From c859cdaa6c24e45433acb920794c38825e87dbdb Mon Sep 17 00:00:00 2001 From: SocialSisterYi Date: Wed, 18 Sep 2024 16:20:38 +0000 Subject: [PATCH] Auto deploy from Github Actions --- 404.html | 33 + CONTRIBUTING.html | 75 + assets/2233login-eb1b3759.png | Bin 0 -> 45074 bytes assets/404.html-8ea661bc.js | 1 + assets/404.html-f9875e7b.js | 1 + assets/404_manga.html-3728076c.js | 1 + assets/404_manga.html-e53b4e70.js | 1 + assets/APP.html-8a506c9f.js | 215 + assets/APP.html-cb1b78f3.js | 1 + assets/APPKey.html-0481e527.js | 1 + assets/APPKey.html-d63a95b5.js | 1 + assets/Activity.html-a923504a.js | 1 + assets/Activity.html-faf7be1d.js | 15 + assets/Bcoin.html-b63f5927.js | 129 + assets/Bcoin.html-d21d4767.js | 1 + assets/CONTRIBUTING.html-5d94bebf.js | 1 + assets/CONTRIBUTING.html-f9abf910.js | 43 + assets/ClockIn.html-36eccb71.js | 1 + assets/ClockIn.html-6e2ed69b.js | 95 + assets/Comic.html-60b0b4e2.js | 3976 ++++++++++ assets/Comic.html-9ee1e999.js | 1 + assets/Download.html-c420264b.js | 81 + assets/Download.html-d94bfad4.js | 1 + assets/QR.html-a05c71a7.js | 228 + assets/QR.html-bff1a326.js | 1 + assets/SMS.html-60911019.js | 1 + assets/SMS.html-94182c8d.js | 144 + assets/Season.html-42122ee3.js | 226 + assets/Season.html-e0471143.js | 1 + assets/User.html-514e9117.js | 1 + assets/User.html-c532625a.js | 541 ++ assets/WeChat_Alipay.html-0bc9f08c.js | 59 + assets/WeChat_Alipay.html-bba849f5.js | 1 + assets/action.html-01bc4d46.js | 1 + assets/action.html-24e14d87.js | 1 + assets/action.html-272fbcc1.js | 36 + assets/action.html-2ba45e5b.js | 22 + assets/action.html-2ca62efe.js | 218 + assets/action.html-3356cd3c.js | 1 + assets/action.html-4c17f791.js | 31 + assets/action.html-58fcaece.js | 21 + assets/action.html-6aa7eeb7.js | 1 + assets/action.html-6c04cf4d.js | 1 + assets/action.html-6e3075b1.js | 25 + assets/action.html-7f82daf4.js | 148 + assets/action.html-861bae92.js | 1 + assets/action.html-9bd365d2.js | 192 + assets/action.html-9cda16a3.js | 72 + assets/action.html-a80f5e24.js | 1 + assets/action.html-ad3d1d10.js | 1 + assets/action.html-b9118deb.js | 1 + assets/action.html-b93efa81.js | 1 + assets/action.html-c0a0ae8b.js | 14 + assets/action.html-c38bf9cd.js | 105 + assets/action.html-c589c8dd.js | 1 + assets/action.html-c774e5e5.js | 35 + assets/action.html-e8f03a7c.js | 1 + assets/action.html-f620e347.js | 1 + assets/action.html-f884747b.js | 198 + assets/activity_list.html-012e4721.js | 76 + assets/activity_list.html-b5ef105b.js | 1 + assets/ad-9ab8d23b.svg | 14 + assets/add-5a779700.svg | 20 + assets/aiSummary-a0a0fc86.svg | 1 + assets/akari-2ec5bc83.jpg | Bin 0 -> 8992 bytes assets/all.html-154d0518.js | 1 + assets/all.html-57c6fbc0.js | 7099 ++++++++++++++++++ assets/animal-95ff87f2.svg | 11 + assets/anime-b33a4df8.svg | 16 + assets/app-3168cb19.js | 10 + assets/appeal.html-165e521c.js | 1 + assets/appeal.html-d4790fd7.js | 316 + assets/articles.html-619e0082.js | 1 + assets/articles.html-b3d5b82c.js | 194 + assets/atlist.html-81f8cc20.js | 158 + assets/atlist.html-fa32d23a.js | 1 + assets/attribute_data.html-0fdac87d.js | 1 + assets/attribute_data.html-5dc2207b.js | 1 + assets/b23tv.html-c7be515d.js | 27 + assets/b23tv.html-d6b87429.js | 1 + assets/back-to-top-8efcbe56.svg | 1 + assets/banlist.html-66dae847.js | 1 + assets/banlist.html-94e6eb17.js | 99 + assets/base_info.html-7d06d12f.js | 1 + assets/base_info.html-c57cadd4.js | 70 + assets/basicInfo.html-66f99d8f.js | 1439 ++++ assets/basicInfo.html-a98cd743.js | 1 + assets/battery-100-5a4d9900.js | 1 + assets/battery-100-bb809c09.png | Bin 0 -> 6261 bytes assets/bili_ticket.html-adc31ae6.js | 1 + assets/bili_ticket.html-e7e91356.js | 212 + assets/buvid3_4.html-38eb5f56.js | 24 + assets/buvid3_4.html-f3f7f1a7.js | 1 + assets/buzzword.html-364eeafa.js | 221 + assets/buzzword.html-a8e3d82e.js | 1 + assets/bvid_desc.html-a8fdbbd8.js | 623 ++ assets/bvid_desc.html-b2719796.js | 1 + assets/car-c766485c.svg | 20 + assets/card_info.html-078fd045.js | 316 + assets/card_info.html-d39c91de.js | 1 + assets/category.html-c2e3b38d.js | 1 + assets/category.html-edc6a497.js | 1 + assets/center.html-64584776.js | 1 + assets/center.html-82cb2ccc.js | 1353 ++++ assets/channel-923e6c49.svg | 6 + assets/charge_list.html-0163a41d.js | 1 + assets/charge_list.html-dc5bb8bb.js | 202 + assets/charge_msg.html-1b0e26da.js | 1 + assets/charge_msg.html-b2cb8103.js | 82 + assets/check_nickname.html-cdaa209d.js | 1 + assets/check_nickname.html-dccbb7ba.js | 31 + assets/cinephile-c8d74b94.svg | 14 + assets/class-c9216c98.svg | 7 + assets/clockin.html-573e0083.js | 11 + assets/clockin.html-a8dcfb3a.js | 1 + assets/coin-56bd2c69.svg | 7 + assets/collect-398d30e8.svg | 9 + assets/collection.html-1faca104.js | 1326 ++++ assets/collection.html-9e323f66.js | 1 + assets/color.html-2e085ee9.js | 185 + assets/color.html-7899ab27.js | 1 + assets/comment-d1bbcde2.svg | 7 + assets/config.html-27430538.js | 1 + assets/config.html-2b097c04.js | 10 + assets/content.html-5f1b721f.js | 915 +++ assets/content.html-744ba654.js | 1 + assets/contract.html-36410063.js | 1 + assets/contract.html-688107af.js | 30 + assets/cookie_refresh.html-89ab1a74.js | 1 + assets/cookie_refresh.html-9bad92a2.js | 297 + assets/dance-26e4156b.svg | 10 + assets/danmaku_proto.html-6ea771c0.js | 1 + assets/danmaku_proto.html-d56e750f.js | 30 + assets/danmaku_view_proto.html-72774a23.js | 120 + assets/danmaku_view_proto.html-9762318d.js | 1 + assets/danmaku_xml.html-a2cff1ad.js | 1 + assets/danmaku_xml.html-e97b4963.js | 33 + assets/delete-88b14593.svg | 9 + assets/detail.html-81fd3bab.js | 220 + assets/detail.html-e0842ebd.js | 1 + assets/device_identity.html-754167b9.js | 1 + assets/device_identity.html-a75f2bc8.js | 22 + assets/digital-d249bb54.svg | 13 + assets/documentary-2c550e67.svg | 31 + assets/douga-551968c9.svg | 14 + assets/download-512c5cac.svg | 7 + assets/download-d77df227.js | 1 + assets/dynamic.html-c7efbb1d.js | 1 + assets/dynamic.html-dfaefdaa.js | 391 + assets/dynamic_enum.html-202a3e68.js | 1 + assets/dynamic_enum.html-faf3d743.js | 1 + assets/ent-ed6247e0.svg | 17 + assets/errcode.html-30388d7a.js | 1 + assets/errcode.html-c005e1a0.js | 1 + assets/exit.html-01fc4142.js | 13 + assets/exit.html-7995bef8.js | 1 + assets/fashion-773241bb.svg | 11 + assets/fav-55c612b4.js | 1 + assets/fav-e784befa.svg | 6 + assets/fetch.html-0a76fd10.js | 1 + assets/fetch.html-e7fe2c52.js | 115 + assets/follow-c1c4dc33.svg | 23 + assets/follow.html-30502485.js | 27 + assets/follow.html-c3918f68.js | 1 + assets/follow_up_live.html-0945217c.js | 78 + assets/follow_up_live.html-e585736a.js | 1 + assets/food-5883d8d8.svg | 32 + assets/game-158a0730.svg | 9 + assets/get_dynamic_detail.html-2540d0b4.js | 1 + assets/get_dynamic_detail.html-76bc1809.js | 402 + assets/guochuang-2887858d.svg | 11 + assets/header.html-46eb8c14.js | 1 + assets/header.html-7ea3c62c.js | 17 + assets/history.html-36b46734.js | 429 ++ assets/history.html-71ecd67c.js | 97 + assets/history.html-95de220d.js | 1 + assets/history.html-e040429f.js | 1 + assets/home-9af3d482.svg | 6 + assets/hot.html-54c5456f.js | 441 ++ assets/hot.html-b03b462b.js | 1 + assets/index.html-0d1d246d.js | 1 + assets/index.html-4a9bcc52.js | 1 + assets/index.html-57334ef1.js | 1 + assets/index.html-68ada05c.js | 78 + assets/index.html-8ea2447b.js | 1 + assets/index.html-965d5df0.js | 31 + assets/index.html-9f2fa5e9.js | 1 + assets/index.html-a1a3558c.js | 1 + assets/index.html-b057461c.js | 1 + assets/index.html-ba30f90b.js | 47 + assets/index.html-bab316ab.js | 1 + assets/index.html-c20a1382.js | 57 + assets/index_file.html-b4d3d75b.js | 1 + assets/index_file.html-b9e570dc.js | 151 + assets/info.html-0a88b4dc.js | 1 + assets/info.html-0ee7d366.js | 1 + assets/info.html-327a946d.js | 1 + assets/info.html-3698858a.js | 1 + assets/info.html-3e528fa8.js | 1 + assets/info.html-418558e4.js | 1 + assets/info.html-42872bfc.js | 1 + assets/info.html-49043672.js | 73 + assets/info.html-4f3267d8.js | 294 + assets/info.html-54ba32d2.js | 234 + assets/info.html-556f8b0b.js | 1 + assets/info.html-6273db3e.js | 543 ++ assets/info.html-7afe2277.js | 95 + assets/info.html-809c19c5.js | 168 + assets/info.html-84fe7504.js | 54 + assets/info.html-8a8a4952.js | 31 + assets/info.html-a6721c37.js | 358 + assets/info.html-ad870103.js | 1 + assets/info.html-c42e4c4d.js | 1 + assets/info.html-c6dce5c8.js | 585 ++ assets/info.html-c8498357.js | 1 + assets/info.html-ccc81d99.js | 101 + assets/info.html-d84481e4.js | 1 + assets/info.html-e8fa1744.js | 3803 ++++++++++ assets/info.html-e903c48b.js | 1687 +++++ assets/info.html-ed1280ca.js | 1 + assets/info.html-f20ce56c.js | 24 + assets/info.html-f7a47d1e.js | 1 + assets/information-d98c5ed0.svg | 17 + assets/interact_video.html-440fac1d.js | 1 + assets/interact_video.html-f9b5e535.js | 164 + assets/ip.html-298243ad.js | 1 + assets/ip.html-2da36839.js | 49 + assets/judgement_info.html-1834630d.js | 1 + assets/judgement_info.html-c79d96cf.js | 359 + assets/kichiku-8f960ae2.svg | 16 + assets/knowledge-65fd8dce.svg | 18 + assets/life-1f4a6ef5.svg | 8 + assets/light_card.html-8a7d5469.js | 1 + assets/light_card.html-b4e072c6.js | 74 + assets/like-10f92194.svg | 5 + assets/list.html-2971c414.js | 1 + assets/list.html-2e89a343.js | 1 + assets/list.html-3cdf3e48.js | 410 + assets/list.html-3dfb5395.js | 132 + assets/list.html-5b7d0fdd.js | 357 + assets/list.html-679acea5.js | 406 + assets/list.html-793787fd.js | 1 + assets/list.html-8ecf20ec.js | 363 + assets/list.html-a602ffd3.js | 1 + assets/list.html-a87f31ef.js | 1 + assets/list.html-b3a77f44.js | 1 + assets/list.html-bfe00ca6.js | 2163 ++++++ assets/list.html-cc87d355.js | 2983 ++++++++ assets/list.html-fecb6b5b.js | 1 + assets/live_area.html-356ac7cf.js | 136 + assets/live_area.html-ce157910.js | 1 + assets/live_stream.html-94a4c09a.js | 63 + assets/live_stream.html-b3d301d8.js | 1 + assets/login_info.html-36215953.js | 1 + assets/login_info.html-5c768007.js | 232 + assets/login_notice.html-7185cdfc.js | 142 + assets/login_notice.html-97e2098a.js | 1 + assets/logo-bba15bcf.png | Bin 0 -> 257403 bytes assets/lottery.html-26f89263.js | 1 + assets/lottery.html-dde100fd.js | 450 ++ assets/manage.html-7d0ae503.js | 139 + assets/manage.html-eebfa53f.js | 1 + assets/medals.html-7443ffc7.js | 712 ++ assets/medals.html-d0d88f47.js | 1 + assets/member_center.html-6f18a7bd.js | 1 + assets/member_center.html-df93d06f.js | 272 + assets/message_stream.html-748c2caf.js | 1 + assets/message_stream.html-de3e2486.js | 1278 ++++ assets/monthly.html-2d7b3991.js | 1 + assets/monthly.html-34428be2.js | 172 + assets/movie-693cc994.svg | 11 + assets/msg.html-01fe066d.js | 22 + assets/msg.html-3c183e1d.js | 24 + assets/msg.html-4c0114f9.js | 1 + assets/msg.html-4cf1c080.js | 1 + assets/music-1d6aa097.svg | 11 + assets/music_list.html-02cb5f36.js | 1 + assets/music_list.html-948014df.js | 423 ++ assets/musicstream_url.html-0b86e281.js | 1 + assets/musicstream_url.html-8d4fb03d.js | 92 + assets/nav.html-ed72f33d.js | 1 + assets/nav.html-edb82272.js | 1103 +++ assets/official_role.html-59ee6d6a.js | 1 + assets/official_role.html-7ca2f8f7.js | 1 + assets/online.html-1b0dccef.js | 33 + assets/online.html-400a48bb.js | 1 + assets/password.html-56ccacec.js | 250 + assets/password.html-dbfc4745.js | 1 + assets/pbp.html-01c4795b.js | 1 + assets/pbp.html-725c7aae.js | 11 + assets/picture.html-c263cc7f.js | 1 + assets/picture.html-f91aec82.js | 1 + assets/player.html-5366c33c.js | 68 + assets/player.html-cf523e40.js | 1 + assets/ploading-a19ded76.gif | Bin 0 -> 4610 bytes assets/point_shop.html-40ba9a23.js | 1 + assets/point_shop.html-7a438cfd.js | 208 + assets/popular.html-2b3dbd59.js | 1 + assets/popular.html-d45fd54b.js | 1120 +++ assets/precious_videos.html-5631067f.js | 1 + assets/precious_videos.html-9a30c052.js | 84 + assets/private_msg.html-009e81c7.js | 126 + assets/private_msg.html-634b92fa.js | 1 + assets/publish.html-22e9a0f5.js | 373 + assets/publish.html-d8d80fa5.js | 1 + assets/railgun.html-3eebb2b8.js | 1 + assets/railgun.html-65db39d5.js | 85 + assets/rank.html-19652baf.js | 912 +++ assets/rank.html-4e3c963c.js | 1 + assets/ranking-dab90b6f.svg | 4 + assets/ranking.html-59b4f152.js | 891 +++ assets/ranking.html-a8249ce4.js | 1 + assets/recommend.html-17187d4f.js | 1 + assets/recommend.html-713ec7a6.js | 1345 ++++ assets/recommend_author.html-09eae6c9.js | 79 + assets/recommend_author.html-3c1e94fe.js | 1 + assets/redpocket.html-6b792f64.js | 58 + assets/redpocket.html-cdfefdfc.js | 1 + assets/register.html-38064566.js | 1 + assets/register.html-f58638c9.js | 30 + assets/relation-08c1f69b.svg | 10 + assets/relation.html-14a829cb.js | 896 +++ assets/relation.html-27f5509d.js | 1 + assets/report.html-57293111.js | 43 + assets/report.html-5869853f.js | 12 + assets/report.html-6d528c1b.js | 1 + assets/report.html-bbde5309.js | 1 + assets/search-0782d0d1.svg | 1 + assets/search_request.html-0aeac133.js | 1119 +++ assets/search_request.html-36282e12.js | 1 + assets/search_response.html-1e3f68f3.js | 1 + assets/search_response.html-d949438a.js | 313 + assets/season.html-a8ef16a3.js | 1 + assets/season.html-bb9de1e4.js | 289 + assets/silent_user_manage.html-06a238c6.js | 62 + assets/silent_user_manage.html-8048b3b2.js | 1 + assets/skin.html-3e672649.js | 1 + assets/skin.html-ea0d224b.js | 109 + assets/snapshot.html-07090ac3.js | 1 + assets/snapshot.html-14943ed7.js | 1 + assets/snapshot.html-7339a613.js | 82 + assets/snapshot.html-80616d50.js | 32 + assets/space.html-1cf9b287.js | 2118 ++++++ assets/space.html-4e00af2f.js | 1109 +++ assets/space.html-54138a19.js | 1 + assets/space.html-9698dd19.js | 1 + assets/splash.html-53855429.js | 1 + assets/splash.html-b03843c0.js | 308 + assets/sponsorQR-4cf95420.jpg | Bin 0 -> 706776 bytes assets/sports-bfc825f3.svg | 8 + assets/statistics_data.html-bb56dc74.js | 1 + assets/statistics_data.html-d098ac65.js | 290 + assets/status_number.html-074075bf.js | 74 + assets/status_number.html-3b1e7ab4.js | 1 + assets/status_number.html-67103aea.js | 1 + assets/status_number.html-69cf8d68.js | 1 + assets/status_number.html-c7e1d5ee.js | 14 + assets/status_number.html-e4b8a09a.js | 58 + assets/style-a7819745.css | 1 + assets/sub-c7668de6.svg | 5 + assets/suggest.html-244bfb39.js | 92 + assets/suggest.html-dd957e1a.js | 1 + assets/summary.html-1f6071ea.js | 1 + assets/summary.html-9ab442a0.js | 74 + assets/tag_dynamics.html-4e6ea181.js | 7797 +++++++++++++++++++ assets/tag_dynamics.html-5123e50e.js | 1 + assets/tags.html-07cf4faf.js | 1 + assets/tags.html-6bacf551.js | 138 + assets/tech-8f2eb72e.svg | 12 + assets/teenager_mode.html-a693181f.js | 1 + assets/teenager_mode.html-b7bd4838.js | 33 + assets/teleplay-1f3272a8.svg | 11 + assets/thumbup.html-0fc03e12.js | 42 + assets/thumbup.html-6ff33710.js | 1 + assets/time_stamp.html-64394855.js | 27 + assets/time_stamp.html-e2fb6a61.js | 1 + assets/timeline.html-0a3a89de.js | 1 + assets/timeline.html-6f23474d.js | 712 ++ assets/topic.html-88e9eef2.js | 68 + assets/topic.html-a5de20a4.js | 1 + assets/toview.html-2dab38e4.js | 193 + assets/toview.html-98244225.js | 1 + assets/upload.html-1fd73832.js | 1 + assets/upload.html-87900af5.js | 493 ++ assets/user.html-c5c69524.js | 1 + assets/user.html-c8b446e0.js | 134 + assets/v_voucher.html-5f66a796.js | 1 + assets/v_voucher.html-8a3762e5.js | 42 + assets/ver.html-2794aad3.js | 30 + assets/ver.html-b7ca0cfa.js | 1 + assets/video_room.html-6222ad7b.js | 1 + assets/video_room.html-bf5197aa.js | 33 + assets/video_up-3b7a0949.svg | 6 + assets/video_zone.html-57dc301a.js | 1 + assets/video_zone.html-f7319cb2.js | 1 + assets/videos.html-38ec2be9.js | 338 + assets/videos.html-6d040dc8.js | 1 + assets/videostream_url.html-0a0e9cbe.js | 1 + assets/videostream_url.html-17311e3a.js | 93 + assets/videostream_url.html-7da33be4.js | 872 +++ assets/videostream_url.html-c73eea90.js | 1 + assets/videostream_url.html-ecea5d0c.js | 1 + assets/videostream_url.html-f0ad9cde.js | 83 + assets/wbi.html-5acf1126.js | 1128 +++ assets/wbi.html-ba871bc6.js | 1 + assets/webmask.html-63925768.js | 29 + assets/webmask.html-cd2d5b20.js | 1 + assets/zone_upload.html-5153b09f.js | 33 + assets/zone_upload.html-d796767f.js | 1 + docs/APP_widget/splash.html | 340 + docs/APP_widget/ver.html | 62 + docs/activity/info.html | 63 + docs/activity/list.html | 164 + docs/album/action.html | 68 + docs/album/activity_list.html | 108 + docs/album/info.html | 127 + docs/album/list.html | 2195 ++++++ docs/album/recommend_author.html | 111 + docs/article/action.html | 67 + docs/article/articles.html | 226 + docs/article/category.html | 33 + docs/article/info.html | 105 + docs/article/list.html | 442 ++ docs/audio/action.html | 57 + docs/audio/info.html | 200 + docs/audio/music_list.html | 455 ++ docs/audio/musicstream_url.html | 124 + docs/audio/rank.html | 944 +++ docs/audio/status_number.html | 46 + docs/bangumi/follow.html | 59 + docs/bangumi/info.html | 617 ++ docs/bangumi/timeline.html | 744 ++ docs/bangumi/videostream_url.html | 115 + docs/blackroom/banlist.html | 131 + docs/blackroom/jury/action.html | 104 + docs/blackroom/jury/base_info.html | 102 + docs/blackroom/jury/judgement_info.html | 391 + docs/broadcast/index.html | 79 + docs/broadcast/video_room.html | 65 + docs/cheese/info.html | 326 + docs/cheese/videostream_url.html | 125 + docs/clientinfo/ip.html | 81 + docs/comment/action.html | 250 + docs/comment/index.html | 33 + docs/comment/list.html | 3015 ++++++++ docs/creativecenter/railgun.html | 117 + docs/creativecenter/season.html | 321 + docs/creativecenter/statistics_data.html | 322 + docs/creativecenter/upload.html | 525 ++ docs/creativecenter/videos.html | 370 + docs/customerservice/msg.html | 56 + docs/danmaku/action.html | 230 + docs/danmaku/buzzword.html | 253 + docs/danmaku/config.html | 42 + docs/danmaku/danmaku_proto.html | 62 + docs/danmaku/danmaku_view_proto.html | 152 + docs/danmaku/danmaku_xml.html | 65 + docs/danmaku/history.html | 129 + docs/danmaku/snapshot.html | 64 + docs/danmaku/thumbup.html | 74 + docs/danmaku/webmask.html | 61 + docs/dynamic/action.html | 46 + docs/dynamic/all.html | 7131 ++++++++++++++++++ docs/dynamic/atlist.html | 190 + docs/dynamic/basicInfo.html | 1471 ++++ docs/dynamic/card_info.html | 348 + docs/dynamic/content.html | 947 +++ docs/dynamic/detail.html | 252 + docs/dynamic/dynamic_enum.html | 33 + docs/dynamic/get_dynamic_detail.html | 434 ++ docs/dynamic/nav.html | 1135 +++ docs/dynamic/publish.html | 405 + docs/dynamic/space.html | 1141 +++ docs/dynamic/tag_dynamics.html | 7829 ++++++++++++++++++++ docs/dynamic/topic.html | 100 + docs/electric/Bcoin.html | 161 + docs/electric/WeChat_Alipay.html | 91 + docs/electric/charge_list.html | 234 + docs/electric/charge_msg.html | 114 + docs/electric/monthly.html | 204 + docs/emoji/action.html | 53 + docs/emoji/list.html | 438 ++ docs/fav/action.html | 180 + docs/fav/info.html | 266 + docs/fav/list.html | 395 + docs/garb/color.html | 217 + docs/garb/lottery.html | 482 ++ docs/garb/skin.html | 141 + docs/history_toview/history.html | 461 ++ docs/history_toview/toview.html | 225 + docs/live/follow_up_live.html | 110 + docs/live/info.html | 1719 +++++ docs/live/live_area.html | 168 + docs/live/live_stream.html | 95 + docs/live/manage.html | 171 + docs/live/message_stream.html | 1310 ++++ docs/live/redpocket.html | 90 + docs/live/report.html | 44 + docs/live/silent_user_manage.html | 94 + docs/live/user.html | 166 + docs/login/cookie_refresh.html | 329 + docs/login/exit.html | 45 + docs/login/login_action/QR.html | 260 + docs/login/login_action/SMS.html | 176 + docs/login/login_action/index.html | 63 + docs/login/login_action/password.html | 282 + docs/login/login_info.html | 264 + docs/login/login_notice.html | 174 + docs/login/member_center.html | 304 + docs/manga/Activity.html | 47 + docs/manga/ClockIn.html | 127 + docs/manga/Comic.html | 4008 ++++++++++ docs/manga/Download.html | 113 + docs/manga/Season.html | 258 + docs/manga/User.html | 573 ++ docs/manga/index_file.html | 183 + docs/manga/light_card.html | 106 + docs/manga/point_shop.html | 240 + docs/message/msg.html | 54 + docs/message/private_msg.html | 158 + docs/misc/b23tv.html | 59 + docs/misc/buvid3_4.html | 56 + docs/misc/bvid_desc.html | 655 ++ docs/misc/device_identity.html | 54 + docs/misc/errcode.html | 33 + docs/misc/picture.html | 37 + docs/misc/sign/APP.html | 247 + docs/misc/sign/APPKey.html | 33 + docs/misc/sign/bili_ticket.html | 244 + docs/misc/sign/v_voucher.html | 74 + docs/misc/sign/wbi.html | 1160 +++ docs/misc/time_stamp.html | 59 + docs/newbie_exam/action.html | 137 + docs/newbie_exam/fetch.html | 147 + docs/newbie_exam/info.html | 390 + docs/note/action.html | 63 + docs/note/index.html | 110 + docs/note/info.html | 133 + docs/note/list.html | 389 + docs/search/hot.html | 473 ++ docs/search/search_request.html | 1151 +++ docs/search/search_response.html | 345 + docs/search/suggest.html | 124 + docs/teenager/teenager_mode.html | 65 + docs/user/check_nickname.html | 63 + docs/user/contract.html | 62 + docs/user/info.html | 575 ++ docs/user/medals.html | 744 ++ docs/user/official_role.html | 33 + docs/user/register.html | 62 + docs/user/relation.html | 928 +++ docs/user/space.html | 2150 ++++++ docs/user/status_number.html | 106 + docs/video/action.html | 224 + docs/video/appeal.html | 348 + docs/video/attribute_data.html | 33 + docs/video/collection.html | 1358 ++++ docs/video/info.html | 3835 ++++++++++ docs/video/interact_video.html | 196 + docs/video/online.html | 65 + docs/video/pbp.html | 43 + docs/video/player.html | 100 + docs/video/recommend.html | 1377 ++++ docs/video/report.html | 75 + docs/video/snapshot.html | 114 + docs/video/status_number.html | 90 + docs/video/summary.html | 106 + docs/video/tags.html | 170 + docs/video/video_zone.html | 33 + docs/video/videostream_url.html | 904 +++ docs/video_ranking/dynamic.html | 423 ++ docs/video_ranking/popular.html | 1152 +++ docs/video_ranking/precious_videos.html | 116 + docs/video_ranking/ranking.html | 923 +++ docs/vip/action.html | 54 + docs/vip/center.html | 1385 ++++ docs/vip/clockin.html | 43 + docs/vip/info.html | 86 + docs/wallet/info.html | 56 + docs/web_widget/404_manga.html | 33 + docs/web_widget/header.html | 49 + docs/web_widget/zone_upload.html | 65 + grpc_api/index.html | 89 + index.html | 33 + logo2.jpg | Bin 0 -> 17236 bytes 585 files changed, 148036 insertions(+) create mode 100644 404.html create mode 100644 CONTRIBUTING.html create mode 100644 assets/2233login-eb1b3759.png create mode 100644 assets/404.html-8ea661bc.js create mode 100644 assets/404.html-f9875e7b.js create mode 100644 assets/404_manga.html-3728076c.js create mode 100644 assets/404_manga.html-e53b4e70.js create mode 100644 assets/APP.html-8a506c9f.js create mode 100644 assets/APP.html-cb1b78f3.js create mode 100644 assets/APPKey.html-0481e527.js create mode 100644 assets/APPKey.html-d63a95b5.js create mode 100644 assets/Activity.html-a923504a.js create mode 100644 assets/Activity.html-faf7be1d.js create mode 100644 assets/Bcoin.html-b63f5927.js create mode 100644 assets/Bcoin.html-d21d4767.js create mode 100644 assets/CONTRIBUTING.html-5d94bebf.js create mode 100644 assets/CONTRIBUTING.html-f9abf910.js create mode 100644 assets/ClockIn.html-36eccb71.js create mode 100644 assets/ClockIn.html-6e2ed69b.js create mode 100644 assets/Comic.html-60b0b4e2.js create mode 100644 assets/Comic.html-9ee1e999.js create mode 100644 assets/Download.html-c420264b.js create mode 100644 assets/Download.html-d94bfad4.js create mode 100644 assets/QR.html-a05c71a7.js create mode 100644 assets/QR.html-bff1a326.js create mode 100644 assets/SMS.html-60911019.js create mode 100644 assets/SMS.html-94182c8d.js create mode 100644 assets/Season.html-42122ee3.js create mode 100644 assets/Season.html-e0471143.js create mode 100644 assets/User.html-514e9117.js create mode 100644 assets/User.html-c532625a.js create mode 100644 assets/WeChat_Alipay.html-0bc9f08c.js create mode 100644 assets/WeChat_Alipay.html-bba849f5.js create mode 100644 assets/action.html-01bc4d46.js create mode 100644 assets/action.html-24e14d87.js create mode 100644 assets/action.html-272fbcc1.js create mode 100644 assets/action.html-2ba45e5b.js create mode 100644 assets/action.html-2ca62efe.js create mode 100644 assets/action.html-3356cd3c.js create mode 100644 assets/action.html-4c17f791.js create mode 100644 assets/action.html-58fcaece.js create mode 100644 assets/action.html-6aa7eeb7.js create mode 100644 assets/action.html-6c04cf4d.js create mode 100644 assets/action.html-6e3075b1.js create mode 100644 assets/action.html-7f82daf4.js create mode 100644 assets/action.html-861bae92.js create mode 100644 assets/action.html-9bd365d2.js create mode 100644 assets/action.html-9cda16a3.js create mode 100644 assets/action.html-a80f5e24.js create mode 100644 assets/action.html-ad3d1d10.js create mode 100644 assets/action.html-b9118deb.js create mode 100644 assets/action.html-b93efa81.js create mode 100644 assets/action.html-c0a0ae8b.js create mode 100644 assets/action.html-c38bf9cd.js create mode 100644 assets/action.html-c589c8dd.js create mode 100644 assets/action.html-c774e5e5.js create mode 100644 assets/action.html-e8f03a7c.js create mode 100644 assets/action.html-f620e347.js create mode 100644 assets/action.html-f884747b.js create mode 100644 assets/activity_list.html-012e4721.js create mode 100644 assets/activity_list.html-b5ef105b.js create mode 100644 assets/ad-9ab8d23b.svg create mode 100644 assets/add-5a779700.svg create mode 100644 assets/aiSummary-a0a0fc86.svg create mode 100644 assets/akari-2ec5bc83.jpg create mode 100644 assets/all.html-154d0518.js create mode 100644 assets/all.html-57c6fbc0.js create mode 100644 assets/animal-95ff87f2.svg create mode 100644 assets/anime-b33a4df8.svg create mode 100644 assets/app-3168cb19.js create mode 100644 assets/appeal.html-165e521c.js create mode 100644 assets/appeal.html-d4790fd7.js create mode 100644 assets/articles.html-619e0082.js create mode 100644 assets/articles.html-b3d5b82c.js create mode 100644 assets/atlist.html-81f8cc20.js create mode 100644 assets/atlist.html-fa32d23a.js create mode 100644 assets/attribute_data.html-0fdac87d.js create mode 100644 assets/attribute_data.html-5dc2207b.js create mode 100644 assets/b23tv.html-c7be515d.js create mode 100644 assets/b23tv.html-d6b87429.js create mode 100644 assets/back-to-top-8efcbe56.svg create mode 100644 assets/banlist.html-66dae847.js create mode 100644 assets/banlist.html-94e6eb17.js create mode 100644 assets/base_info.html-7d06d12f.js create mode 100644 assets/base_info.html-c57cadd4.js create mode 100644 assets/basicInfo.html-66f99d8f.js create mode 100644 assets/basicInfo.html-a98cd743.js create mode 100644 assets/battery-100-5a4d9900.js create mode 100644 assets/battery-100-bb809c09.png create mode 100644 assets/bili_ticket.html-adc31ae6.js create mode 100644 assets/bili_ticket.html-e7e91356.js create mode 100644 assets/buvid3_4.html-38eb5f56.js create mode 100644 assets/buvid3_4.html-f3f7f1a7.js create mode 100644 assets/buzzword.html-364eeafa.js create mode 100644 assets/buzzword.html-a8e3d82e.js create mode 100644 assets/bvid_desc.html-a8fdbbd8.js create mode 100644 assets/bvid_desc.html-b2719796.js create mode 100644 assets/car-c766485c.svg create mode 100644 assets/card_info.html-078fd045.js create mode 100644 assets/card_info.html-d39c91de.js create mode 100644 assets/category.html-c2e3b38d.js create mode 100644 assets/category.html-edc6a497.js create mode 100644 assets/center.html-64584776.js create mode 100644 assets/center.html-82cb2ccc.js create mode 100644 assets/channel-923e6c49.svg create mode 100644 assets/charge_list.html-0163a41d.js create mode 100644 assets/charge_list.html-dc5bb8bb.js create mode 100644 assets/charge_msg.html-1b0e26da.js create mode 100644 assets/charge_msg.html-b2cb8103.js create mode 100644 assets/check_nickname.html-cdaa209d.js create mode 100644 assets/check_nickname.html-dccbb7ba.js create mode 100644 assets/cinephile-c8d74b94.svg create mode 100644 assets/class-c9216c98.svg create mode 100644 assets/clockin.html-573e0083.js create mode 100644 assets/clockin.html-a8dcfb3a.js create mode 100644 assets/coin-56bd2c69.svg create mode 100644 assets/collect-398d30e8.svg create mode 100644 assets/collection.html-1faca104.js create mode 100644 assets/collection.html-9e323f66.js create mode 100644 assets/color.html-2e085ee9.js create mode 100644 assets/color.html-7899ab27.js create mode 100644 assets/comment-d1bbcde2.svg create mode 100644 assets/config.html-27430538.js create mode 100644 assets/config.html-2b097c04.js create mode 100644 assets/content.html-5f1b721f.js create mode 100644 assets/content.html-744ba654.js create mode 100644 assets/contract.html-36410063.js create mode 100644 assets/contract.html-688107af.js create mode 100644 assets/cookie_refresh.html-89ab1a74.js create mode 100644 assets/cookie_refresh.html-9bad92a2.js create mode 100644 assets/dance-26e4156b.svg create mode 100644 assets/danmaku_proto.html-6ea771c0.js create mode 100644 assets/danmaku_proto.html-d56e750f.js create mode 100644 assets/danmaku_view_proto.html-72774a23.js create mode 100644 assets/danmaku_view_proto.html-9762318d.js create mode 100644 assets/danmaku_xml.html-a2cff1ad.js create mode 100644 assets/danmaku_xml.html-e97b4963.js create mode 100644 assets/delete-88b14593.svg create mode 100644 assets/detail.html-81fd3bab.js create mode 100644 assets/detail.html-e0842ebd.js create mode 100644 assets/device_identity.html-754167b9.js create mode 100644 assets/device_identity.html-a75f2bc8.js create mode 100644 assets/digital-d249bb54.svg create mode 100644 assets/documentary-2c550e67.svg create mode 100644 assets/douga-551968c9.svg create mode 100644 assets/download-512c5cac.svg create mode 100644 assets/download-d77df227.js create mode 100644 assets/dynamic.html-c7efbb1d.js create mode 100644 assets/dynamic.html-dfaefdaa.js create mode 100644 assets/dynamic_enum.html-202a3e68.js create mode 100644 assets/dynamic_enum.html-faf3d743.js create mode 100644 assets/ent-ed6247e0.svg create mode 100644 assets/errcode.html-30388d7a.js create mode 100644 assets/errcode.html-c005e1a0.js create mode 100644 assets/exit.html-01fc4142.js create mode 100644 assets/exit.html-7995bef8.js create mode 100644 assets/fashion-773241bb.svg create mode 100644 assets/fav-55c612b4.js create mode 100644 assets/fav-e784befa.svg create mode 100644 assets/fetch.html-0a76fd10.js create mode 100644 assets/fetch.html-e7fe2c52.js create mode 100644 assets/follow-c1c4dc33.svg create mode 100644 assets/follow.html-30502485.js create mode 100644 assets/follow.html-c3918f68.js create mode 100644 assets/follow_up_live.html-0945217c.js create mode 100644 assets/follow_up_live.html-e585736a.js create mode 100644 assets/food-5883d8d8.svg create mode 100644 assets/game-158a0730.svg create mode 100644 assets/get_dynamic_detail.html-2540d0b4.js create mode 100644 assets/get_dynamic_detail.html-76bc1809.js create mode 100644 assets/guochuang-2887858d.svg create mode 100644 assets/header.html-46eb8c14.js create mode 100644 assets/header.html-7ea3c62c.js create mode 100644 assets/history.html-36b46734.js create mode 100644 assets/history.html-71ecd67c.js create mode 100644 assets/history.html-95de220d.js create mode 100644 assets/history.html-e040429f.js create mode 100644 assets/home-9af3d482.svg create mode 100644 assets/hot.html-54c5456f.js create mode 100644 assets/hot.html-b03b462b.js create mode 100644 assets/index.html-0d1d246d.js create mode 100644 assets/index.html-4a9bcc52.js create mode 100644 assets/index.html-57334ef1.js create mode 100644 assets/index.html-68ada05c.js create mode 100644 assets/index.html-8ea2447b.js create mode 100644 assets/index.html-965d5df0.js create mode 100644 assets/index.html-9f2fa5e9.js create mode 100644 assets/index.html-a1a3558c.js create mode 100644 assets/index.html-b057461c.js create mode 100644 assets/index.html-ba30f90b.js create mode 100644 assets/index.html-bab316ab.js create mode 100644 assets/index.html-c20a1382.js create mode 100644 assets/index_file.html-b4d3d75b.js create mode 100644 assets/index_file.html-b9e570dc.js create mode 100644 assets/info.html-0a88b4dc.js create mode 100644 assets/info.html-0ee7d366.js create mode 100644 assets/info.html-327a946d.js create mode 100644 assets/info.html-3698858a.js create mode 100644 assets/info.html-3e528fa8.js create mode 100644 assets/info.html-418558e4.js create mode 100644 assets/info.html-42872bfc.js create mode 100644 assets/info.html-49043672.js create mode 100644 assets/info.html-4f3267d8.js create mode 100644 assets/info.html-54ba32d2.js create mode 100644 assets/info.html-556f8b0b.js create mode 100644 assets/info.html-6273db3e.js create mode 100644 assets/info.html-7afe2277.js create mode 100644 assets/info.html-809c19c5.js create mode 100644 assets/info.html-84fe7504.js create mode 100644 assets/info.html-8a8a4952.js create mode 100644 assets/info.html-a6721c37.js create mode 100644 assets/info.html-ad870103.js create mode 100644 assets/info.html-c42e4c4d.js create mode 100644 assets/info.html-c6dce5c8.js create mode 100644 assets/info.html-c8498357.js create mode 100644 assets/info.html-ccc81d99.js create mode 100644 assets/info.html-d84481e4.js create mode 100644 assets/info.html-e8fa1744.js create mode 100644 assets/info.html-e903c48b.js create mode 100644 assets/info.html-ed1280ca.js create mode 100644 assets/info.html-f20ce56c.js create mode 100644 assets/info.html-f7a47d1e.js create mode 100644 assets/information-d98c5ed0.svg create mode 100644 assets/interact_video.html-440fac1d.js create mode 100644 assets/interact_video.html-f9b5e535.js create mode 100644 assets/ip.html-298243ad.js create mode 100644 assets/ip.html-2da36839.js create mode 100644 assets/judgement_info.html-1834630d.js create mode 100644 assets/judgement_info.html-c79d96cf.js create mode 100644 assets/kichiku-8f960ae2.svg create mode 100644 assets/knowledge-65fd8dce.svg create mode 100644 assets/life-1f4a6ef5.svg create mode 100644 assets/light_card.html-8a7d5469.js create mode 100644 assets/light_card.html-b4e072c6.js create mode 100644 assets/like-10f92194.svg create mode 100644 assets/list.html-2971c414.js create mode 100644 assets/list.html-2e89a343.js create mode 100644 assets/list.html-3cdf3e48.js create mode 100644 assets/list.html-3dfb5395.js create mode 100644 assets/list.html-5b7d0fdd.js create mode 100644 assets/list.html-679acea5.js create mode 100644 assets/list.html-793787fd.js create mode 100644 assets/list.html-8ecf20ec.js create mode 100644 assets/list.html-a602ffd3.js create mode 100644 assets/list.html-a87f31ef.js create mode 100644 assets/list.html-b3a77f44.js create mode 100644 assets/list.html-bfe00ca6.js create mode 100644 assets/list.html-cc87d355.js create mode 100644 assets/list.html-fecb6b5b.js create mode 100644 assets/live_area.html-356ac7cf.js create mode 100644 assets/live_area.html-ce157910.js create mode 100644 assets/live_stream.html-94a4c09a.js create mode 100644 assets/live_stream.html-b3d301d8.js create mode 100644 assets/login_info.html-36215953.js create mode 100644 assets/login_info.html-5c768007.js create mode 100644 assets/login_notice.html-7185cdfc.js create mode 100644 assets/login_notice.html-97e2098a.js create mode 100644 assets/logo-bba15bcf.png create mode 100644 assets/lottery.html-26f89263.js create mode 100644 assets/lottery.html-dde100fd.js create mode 100644 assets/manage.html-7d0ae503.js create mode 100644 assets/manage.html-eebfa53f.js create mode 100644 assets/medals.html-7443ffc7.js create mode 100644 assets/medals.html-d0d88f47.js create mode 100644 assets/member_center.html-6f18a7bd.js create mode 100644 assets/member_center.html-df93d06f.js create mode 100644 assets/message_stream.html-748c2caf.js create mode 100644 assets/message_stream.html-de3e2486.js create mode 100644 assets/monthly.html-2d7b3991.js create mode 100644 assets/monthly.html-34428be2.js create mode 100644 assets/movie-693cc994.svg create mode 100644 assets/msg.html-01fe066d.js create mode 100644 assets/msg.html-3c183e1d.js create mode 100644 assets/msg.html-4c0114f9.js create mode 100644 assets/msg.html-4cf1c080.js create mode 100644 assets/music-1d6aa097.svg create mode 100644 assets/music_list.html-02cb5f36.js create mode 100644 assets/music_list.html-948014df.js create mode 100644 assets/musicstream_url.html-0b86e281.js create mode 100644 assets/musicstream_url.html-8d4fb03d.js create mode 100644 assets/nav.html-ed72f33d.js create mode 100644 assets/nav.html-edb82272.js create mode 100644 assets/official_role.html-59ee6d6a.js create mode 100644 assets/official_role.html-7ca2f8f7.js create mode 100644 assets/online.html-1b0dccef.js create mode 100644 assets/online.html-400a48bb.js create mode 100644 assets/password.html-56ccacec.js create mode 100644 assets/password.html-dbfc4745.js create mode 100644 assets/pbp.html-01c4795b.js create mode 100644 assets/pbp.html-725c7aae.js create mode 100644 assets/picture.html-c263cc7f.js create mode 100644 assets/picture.html-f91aec82.js create mode 100644 assets/player.html-5366c33c.js create mode 100644 assets/player.html-cf523e40.js create mode 100644 assets/ploading-a19ded76.gif create mode 100644 assets/point_shop.html-40ba9a23.js create mode 100644 assets/point_shop.html-7a438cfd.js create mode 100644 assets/popular.html-2b3dbd59.js create mode 100644 assets/popular.html-d45fd54b.js create mode 100644 assets/precious_videos.html-5631067f.js create mode 100644 assets/precious_videos.html-9a30c052.js create mode 100644 assets/private_msg.html-009e81c7.js create mode 100644 assets/private_msg.html-634b92fa.js create mode 100644 assets/publish.html-22e9a0f5.js create mode 100644 assets/publish.html-d8d80fa5.js create mode 100644 assets/railgun.html-3eebb2b8.js create mode 100644 assets/railgun.html-65db39d5.js create mode 100644 assets/rank.html-19652baf.js create mode 100644 assets/rank.html-4e3c963c.js create mode 100644 assets/ranking-dab90b6f.svg create mode 100644 assets/ranking.html-59b4f152.js create mode 100644 assets/ranking.html-a8249ce4.js create mode 100644 assets/recommend.html-17187d4f.js create mode 100644 assets/recommend.html-713ec7a6.js create mode 100644 assets/recommend_author.html-09eae6c9.js create mode 100644 assets/recommend_author.html-3c1e94fe.js create mode 100644 assets/redpocket.html-6b792f64.js create mode 100644 assets/redpocket.html-cdfefdfc.js create mode 100644 assets/register.html-38064566.js create mode 100644 assets/register.html-f58638c9.js create mode 100644 assets/relation-08c1f69b.svg create mode 100644 assets/relation.html-14a829cb.js create mode 100644 assets/relation.html-27f5509d.js create mode 100644 assets/report.html-57293111.js create mode 100644 assets/report.html-5869853f.js create mode 100644 assets/report.html-6d528c1b.js create mode 100644 assets/report.html-bbde5309.js create mode 100644 assets/search-0782d0d1.svg create mode 100644 assets/search_request.html-0aeac133.js create mode 100644 assets/search_request.html-36282e12.js create mode 100644 assets/search_response.html-1e3f68f3.js create mode 100644 assets/search_response.html-d949438a.js create mode 100644 assets/season.html-a8ef16a3.js create mode 100644 assets/season.html-bb9de1e4.js create mode 100644 assets/silent_user_manage.html-06a238c6.js create mode 100644 assets/silent_user_manage.html-8048b3b2.js create mode 100644 assets/skin.html-3e672649.js create mode 100644 assets/skin.html-ea0d224b.js create mode 100644 assets/snapshot.html-07090ac3.js create mode 100644 assets/snapshot.html-14943ed7.js create mode 100644 assets/snapshot.html-7339a613.js create mode 100644 assets/snapshot.html-80616d50.js create mode 100644 assets/space.html-1cf9b287.js create mode 100644 assets/space.html-4e00af2f.js create mode 100644 assets/space.html-54138a19.js create mode 100644 assets/space.html-9698dd19.js create mode 100644 assets/splash.html-53855429.js create mode 100644 assets/splash.html-b03843c0.js create mode 100644 assets/sponsorQR-4cf95420.jpg create mode 100644 assets/sports-bfc825f3.svg create mode 100644 assets/statistics_data.html-bb56dc74.js create mode 100644 assets/statistics_data.html-d098ac65.js create mode 100644 assets/status_number.html-074075bf.js create mode 100644 assets/status_number.html-3b1e7ab4.js create mode 100644 assets/status_number.html-67103aea.js create mode 100644 assets/status_number.html-69cf8d68.js create mode 100644 assets/status_number.html-c7e1d5ee.js create mode 100644 assets/status_number.html-e4b8a09a.js create mode 100644 assets/style-a7819745.css create mode 100644 assets/sub-c7668de6.svg create mode 100644 assets/suggest.html-244bfb39.js create mode 100644 assets/suggest.html-dd957e1a.js create mode 100644 assets/summary.html-1f6071ea.js create mode 100644 assets/summary.html-9ab442a0.js create mode 100644 assets/tag_dynamics.html-4e6ea181.js create mode 100644 assets/tag_dynamics.html-5123e50e.js create mode 100644 assets/tags.html-07cf4faf.js create mode 100644 assets/tags.html-6bacf551.js create mode 100644 assets/tech-8f2eb72e.svg create mode 100644 assets/teenager_mode.html-a693181f.js create mode 100644 assets/teenager_mode.html-b7bd4838.js create mode 100644 assets/teleplay-1f3272a8.svg create mode 100644 assets/thumbup.html-0fc03e12.js create mode 100644 assets/thumbup.html-6ff33710.js create mode 100644 assets/time_stamp.html-64394855.js create mode 100644 assets/time_stamp.html-e2fb6a61.js create mode 100644 assets/timeline.html-0a3a89de.js create mode 100644 assets/timeline.html-6f23474d.js create mode 100644 assets/topic.html-88e9eef2.js create mode 100644 assets/topic.html-a5de20a4.js create mode 100644 assets/toview.html-2dab38e4.js create mode 100644 assets/toview.html-98244225.js create mode 100644 assets/upload.html-1fd73832.js create mode 100644 assets/upload.html-87900af5.js create mode 100644 assets/user.html-c5c69524.js create mode 100644 assets/user.html-c8b446e0.js create mode 100644 assets/v_voucher.html-5f66a796.js create mode 100644 assets/v_voucher.html-8a3762e5.js create mode 100644 assets/ver.html-2794aad3.js create mode 100644 assets/ver.html-b7ca0cfa.js create mode 100644 assets/video_room.html-6222ad7b.js create mode 100644 assets/video_room.html-bf5197aa.js create mode 100644 assets/video_up-3b7a0949.svg create mode 100644 assets/video_zone.html-57dc301a.js create mode 100644 assets/video_zone.html-f7319cb2.js create mode 100644 assets/videos.html-38ec2be9.js create mode 100644 assets/videos.html-6d040dc8.js create mode 100644 assets/videostream_url.html-0a0e9cbe.js create mode 100644 assets/videostream_url.html-17311e3a.js create mode 100644 assets/videostream_url.html-7da33be4.js create mode 100644 assets/videostream_url.html-c73eea90.js create mode 100644 assets/videostream_url.html-ecea5d0c.js create mode 100644 assets/videostream_url.html-f0ad9cde.js create mode 100644 assets/wbi.html-5acf1126.js create mode 100644 assets/wbi.html-ba871bc6.js create mode 100644 assets/webmask.html-63925768.js create mode 100644 assets/webmask.html-cd2d5b20.js create mode 100644 assets/zone_upload.html-5153b09f.js create mode 100644 assets/zone_upload.html-d796767f.js create mode 100644 docs/APP_widget/splash.html create mode 100644 docs/APP_widget/ver.html create mode 100644 docs/activity/info.html create mode 100644 docs/activity/list.html create mode 100644 docs/album/action.html create mode 100644 docs/album/activity_list.html create mode 100644 docs/album/info.html create mode 100644 docs/album/list.html create mode 100644 docs/album/recommend_author.html create mode 100644 docs/article/action.html create mode 100644 docs/article/articles.html create mode 100644 docs/article/category.html create mode 100644 docs/article/info.html create mode 100644 docs/article/list.html create mode 100644 docs/audio/action.html create mode 100644 docs/audio/info.html create mode 100644 docs/audio/music_list.html create mode 100644 docs/audio/musicstream_url.html create mode 100644 docs/audio/rank.html create mode 100644 docs/audio/status_number.html create mode 100644 docs/bangumi/follow.html create mode 100644 docs/bangumi/info.html create mode 100644 docs/bangumi/timeline.html create mode 100644 docs/bangumi/videostream_url.html create mode 100644 docs/blackroom/banlist.html create mode 100644 docs/blackroom/jury/action.html create mode 100644 docs/blackroom/jury/base_info.html create mode 100644 docs/blackroom/jury/judgement_info.html create mode 100644 docs/broadcast/index.html create mode 100644 docs/broadcast/video_room.html create mode 100644 docs/cheese/info.html create mode 100644 docs/cheese/videostream_url.html create mode 100644 docs/clientinfo/ip.html create mode 100644 docs/comment/action.html create mode 100644 docs/comment/index.html create mode 100644 docs/comment/list.html create mode 100644 docs/creativecenter/railgun.html create mode 100644 docs/creativecenter/season.html create mode 100644 docs/creativecenter/statistics_data.html create mode 100644 docs/creativecenter/upload.html create mode 100644 docs/creativecenter/videos.html create mode 100644 docs/customerservice/msg.html create mode 100644 docs/danmaku/action.html create mode 100644 docs/danmaku/buzzword.html create mode 100644 docs/danmaku/config.html create mode 100644 docs/danmaku/danmaku_proto.html create mode 100644 docs/danmaku/danmaku_view_proto.html create mode 100644 docs/danmaku/danmaku_xml.html create mode 100644 docs/danmaku/history.html create mode 100644 docs/danmaku/snapshot.html create mode 100644 docs/danmaku/thumbup.html create mode 100644 docs/danmaku/webmask.html create mode 100644 docs/dynamic/action.html create mode 100644 docs/dynamic/all.html create mode 100644 docs/dynamic/atlist.html create mode 100644 docs/dynamic/basicInfo.html create mode 100644 docs/dynamic/card_info.html create mode 100644 docs/dynamic/content.html create mode 100644 docs/dynamic/detail.html create mode 100644 docs/dynamic/dynamic_enum.html create mode 100644 docs/dynamic/get_dynamic_detail.html create mode 100644 docs/dynamic/nav.html create mode 100644 docs/dynamic/publish.html create mode 100644 docs/dynamic/space.html create mode 100644 docs/dynamic/tag_dynamics.html create mode 100644 docs/dynamic/topic.html create mode 100644 docs/electric/Bcoin.html create mode 100644 docs/electric/WeChat_Alipay.html create mode 100644 docs/electric/charge_list.html create mode 100644 docs/electric/charge_msg.html create mode 100644 docs/electric/monthly.html create mode 100644 docs/emoji/action.html create mode 100644 docs/emoji/list.html create mode 100644 docs/fav/action.html create mode 100644 docs/fav/info.html create mode 100644 docs/fav/list.html create mode 100644 docs/garb/color.html create mode 100644 docs/garb/lottery.html create mode 100644 docs/garb/skin.html create mode 100644 docs/history_toview/history.html create mode 100644 docs/history_toview/toview.html create mode 100644 docs/live/follow_up_live.html create mode 100644 docs/live/info.html create mode 100644 docs/live/live_area.html create mode 100644 docs/live/live_stream.html create mode 100644 docs/live/manage.html create mode 100644 docs/live/message_stream.html create mode 100644 docs/live/redpocket.html create mode 100644 docs/live/report.html create mode 100644 docs/live/silent_user_manage.html create mode 100644 docs/live/user.html create mode 100644 docs/login/cookie_refresh.html create mode 100644 docs/login/exit.html create mode 100644 docs/login/login_action/QR.html create mode 100644 docs/login/login_action/SMS.html create mode 100644 docs/login/login_action/index.html create mode 100644 docs/login/login_action/password.html create mode 100644 docs/login/login_info.html create mode 100644 docs/login/login_notice.html create mode 100644 docs/login/member_center.html create mode 100644 docs/manga/Activity.html create mode 100644 docs/manga/ClockIn.html create mode 100644 docs/manga/Comic.html create mode 100644 docs/manga/Download.html create mode 100644 docs/manga/Season.html create mode 100644 docs/manga/User.html create mode 100644 docs/manga/index_file.html create mode 100644 docs/manga/light_card.html create mode 100644 docs/manga/point_shop.html create mode 100644 docs/message/msg.html create mode 100644 docs/message/private_msg.html create mode 100644 docs/misc/b23tv.html create mode 100644 docs/misc/buvid3_4.html create mode 100644 docs/misc/bvid_desc.html create mode 100644 docs/misc/device_identity.html create mode 100644 docs/misc/errcode.html create mode 100644 docs/misc/picture.html create mode 100644 docs/misc/sign/APP.html create mode 100644 docs/misc/sign/APPKey.html create mode 100644 docs/misc/sign/bili_ticket.html create mode 100644 docs/misc/sign/v_voucher.html create mode 100644 docs/misc/sign/wbi.html create mode 100644 docs/misc/time_stamp.html create mode 100644 docs/newbie_exam/action.html create mode 100644 docs/newbie_exam/fetch.html create mode 100644 docs/newbie_exam/info.html create mode 100644 docs/note/action.html create mode 100644 docs/note/index.html create mode 100644 docs/note/info.html create mode 100644 docs/note/list.html create mode 100644 docs/search/hot.html create mode 100644 docs/search/search_request.html create mode 100644 docs/search/search_response.html create mode 100644 docs/search/suggest.html create mode 100644 docs/teenager/teenager_mode.html create mode 100644 docs/user/check_nickname.html create mode 100644 docs/user/contract.html create mode 100644 docs/user/info.html create mode 100644 docs/user/medals.html create mode 100644 docs/user/official_role.html create mode 100644 docs/user/register.html create mode 100644 docs/user/relation.html create mode 100644 docs/user/space.html create mode 100644 docs/user/status_number.html create mode 100644 docs/video/action.html create mode 100644 docs/video/appeal.html create mode 100644 docs/video/attribute_data.html create mode 100644 docs/video/collection.html create mode 100644 docs/video/info.html create mode 100644 docs/video/interact_video.html create mode 100644 docs/video/online.html create mode 100644 docs/video/pbp.html create mode 100644 docs/video/player.html create mode 100644 docs/video/recommend.html create mode 100644 docs/video/report.html create mode 100644 docs/video/snapshot.html create mode 100644 docs/video/status_number.html create mode 100644 docs/video/summary.html create mode 100644 docs/video/tags.html create mode 100644 docs/video/video_zone.html create mode 100644 docs/video/videostream_url.html create mode 100644 docs/video_ranking/dynamic.html create mode 100644 docs/video_ranking/popular.html create mode 100644 docs/video_ranking/precious_videos.html create mode 100644 docs/video_ranking/ranking.html create mode 100644 docs/vip/action.html create mode 100644 docs/vip/center.html create mode 100644 docs/vip/clockin.html create mode 100644 docs/vip/info.html create mode 100644 docs/wallet/info.html create mode 100644 docs/web_widget/404_manga.html create mode 100644 docs/web_widget/header.html create mode 100644 docs/web_widget/zone_upload.html create mode 100644 grpc_api/index.html create mode 100644 index.html create mode 100644 logo2.jpg diff --git a/404.html b/404.html new file mode 100644 index 0000000000..03d9b8858e --- /dev/null +++ b/404.html @@ -0,0 +1,33 @@ + + + + + + + + + BAC Document + + + + +

404

That's a Four-Oh-Four.
Take me home
+ + + diff --git a/CONTRIBUTING.html b/CONTRIBUTING.html new file mode 100644 index 0000000000..735d907579 --- /dev/null +++ b/CONTRIBUTING.html @@ -0,0 +1,75 @@ + + + + + + + + + bilibili-API-collect | BAC Document + + + + +

bilibili-API-collect

欢迎来到 bilibili-API-collect 社区贡献指南,本文主要面向需要进行提交贡献文档内容的用户。

总则

bilibili-API-collectopen in new window 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 B站(哔哩哔哩)open in new window API(应用程序接口) 文档,使用 CC-BY-NC 4.0 协议open in new window 开源,它将无差别收集整理相关的主站业务接口

该项目使用 MarkDownopen in new window 语法进行文档书写,按照业务类型及功能以 路径 + 文件 形式索引,任何用户都可通过 Pull Request 提供自己分析出的接口地址与使用说明。

本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如httpssecurityRpcwss

Issue与社群讨论

对文档内容存在不理解之处、以及发现文档内容有所缺失错误,可直接提出,强烈建议以发 Issue 的形式参与用户反馈,并希望关于本项目的各种交流都是公开进行的,因为这样才可以保证关键信息的一致性。

由于本项目属于文档型项目,故不设置 Issue 模板,同时允许中英文标题,但提交 Issue 请遵守以下原则:

  1. 标题言简意骇,说明欲提出的问题要点,如如何通过xx接口获取yyxx接口地址已失效关于xx字段意义的探讨 建议将xx加入yy分类等标题;切勿使用表意含糊不清或索取性的标题,如怎么解决风控补充搜索的接口是什么好兄弟有没有投稿的接口等标题
  2. Issue 正文应对问题进行尽可能详细的描述,展开并聚焦有关的信息,例如:“在前端页面某地址 / APP 某界面会访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
  3. 提出问题时注意 提问的智慧open in new window 并且 别像弱智一样提问open in new window

同时,您还可以通过加入社群的方式参与讨论

✅提示

QQ 交流群为综合技术交流群(兼 Owner 的粉丝群),可交流探讨任何技术,包括但不限于 BAC 项目open in new window

Telegram 交流群主要用作 BAC 项目open in new window 的 Github Bot 接收,也可以进行项目相关的讨论,但不建议在此讨论交流其他内容(公开群)

⚠️注意

群内讨论同样需要遵守公开交流的原则,以及群内会定期清理不活跃成员。

QQ 交流群 的加群问题答案可以去 Owner 的主页open in new window Contact 部分找到,如果您填写“我不知道,从 Github 来的“那么管理员将有理由禁止您进群讨论!

🈲禁止

项目 Issue 及其相关社群中 禁止 询问讨论 风控解除、爬虫(采集)、破解、漏洞利用、买卖代码和账号 相关内容,抵制基于本项目进行的一切黑产行为!

目录与路径结构

目录

文档目录以 Markdown无序列表 语法写在 README.md 中,使用缩进标识文档的层级,如视频下存在基本信息快照推荐等子分类,使用 Markdown 复选框 语法该标注文档是否编写完成

- [x] 视频
+  - [x] 基本信息
+  - [x] 快照
+  - [x] 推荐
+

路径

路径层级应当与文档目录一致,以文件夹的形式存放在项目中的/docs路径下,命名统一使用英文,如videodanmakucomment

二级、三级路径应当存在二级三级目录,以README.md的形式

文件

各个子接口集整理为 md 文件,命名统一使用英文,如info.mdaction.mdlist.md

文档文件中用于存放相关的接口的说明,如video/下的info.md,存在查询视频基本信息查询视频简介查询视频分P列表等内容

Markdown文档内容格式

文档使用 Vuepressopen in new window 生成,可以使用 Vuepress md 扩展语法open in new window编写

注:以下文档范式可根据实际情况进行调整

头部

文档首行为 一级标签 格式标题

文档头部不再需要手写索引

接口说明

文档中可存在多个接口说明,应当遵守同一范式,依次排列在文档中

接口说明分为标题地址说明请求参数响应正文示例这些部分

接口标题为 二级以下 的标签,接口地址使用 引用 语法,地址只保留 REST API 路径,不应携带 query 等内容

接口地址下方需要注明接口的请求方式,如GETPOSTPUT等,使用 斜体 语法

若接口存在认证或鉴权,需要在说明中注明,如Cookie(SESSDATA)APP(认证是针对用户的,鉴权是针对接口使用的

其他使用说明也可写在这里,如限制游客访问的视频需要登录

eg:

## 获取视频详细信息_web端
+
+> https://api.bilibili.com/x/web-interface/view
+
+*请求方式:GET*
+
+认证方式:Cookie(SESSDATA)
+
+限制游客访问的视频需要登录
+

请求参数应在接口说明的下方,应注明参数类型 url 参数或 正文参数(正文参数应注明 content-type,如application/x-www-form-urlencodedmultipart/form-data),使用 加粗 语法

对象的字段及其含义使用 表格 进行整理,表头统一为参数名类型内容必要性备注,类型为numstrboolnumsstrsfile等,必要性为必要非必要必要(可选)等,表格内每个字段为一行

eg:

参数名类型内容必要性备注
aidnum稿件 avid必要 (可选)avid 与 bvid 任选
bvidstr稿件 bvid必要 (可选)avid 与 bvid 任选

响应正文应在请求参数的下方,接口响应的数据格式应标注,如JSON回复XML回复Protobuf回复,使用 加粗 语法

json object 或 protobuf message 应以对象的 表格 形式书写,表头为根对象xx中的yy对象,若对象位于数组中为xx数组中的对象

表头统一为字段类型内容备注,类型为 JSON / Protobuf 的标准类型

不明确定义的字段说明在末尾添加问号,如播放数?;定义尚未明确的字段使用问号包于括号中占位,如(?)

多个对象及数组,使用遍历树的顺序进行排列

eg:

data对象:

字段类型内容备注
bvidstr稿件 bvid
aidnum稿件 avid
videosnum稿件分P总数默认为 1
tidnum分区 tid

json array 或 protobuf repeated 类型使用数组的 表格 形式书写,表头统一为类型内容备注,无限长度数组表尾需要添加省略号

数组每项内容若与实际数据有关联,内容字段则可标为(n+1)P 视频内容这样的形式

eg:

data中的pages数组:

类型内容备注
0obj1P 视频内容无分P仅有此项
nobj(n+1)P 视频内容
……obj…………

示例部分位于所有响应正文部分下方,需要加粗格式,分为请求命令示例与响应体示例两部分

请求命令示例为一段可测试该接口的 curl 命令或 Python 脚本,使用 代码块 语法书写,命令应当尽可能简短、便于使人阅读

示例命令中的认证信息应做脱敏处理,如 Cookie、Token、access_key 等,可替换为xxx占位

示例命令前后可以适当添加一些文字说明

响应体示例为一段格式化后的 JSON 或 protobuf message,使用 代码块 语法书写,并使用<details>标签进行折叠

eg:

示例:

获取视频av85440373的基本信息

curl -G 'https://api.bilibili.com/x/web-interface/view' \
+	--data-urlencode 'aid=85440373'
+
<details>
+<summary>查看响应示例:</summary>
+
{
+  "code": 0,
+  "message": "0",
+  "ttl": 1,
+  "data": {
+    "bvid": "BV117411r7R1",
+    "aid": 85440373,
+    "videos": 1,
+    "tid": 28,
+    "tname": "原创音乐",
+    "copyright": 1,
+    ...
+
</details>
+

枚举值与属性位

接口返回或请求中若存在一些 enum 类型或二进制属性位,应当单独进行探讨,如视频的属性位attribute或视频清晰度qn

这些值及其说明使用 表格 进行整理,表头统一为 / 代码 / 含义备注

这些枚举值或属性位的用法应附加文字说明

eg:

含义备注
6240P 极速仅 MP4 格式支持
platform=html5时有效
16360P 流畅
32480P 清晰
64720P 高清WEB 端默认值
B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址
无 720P 时则为 720P60
74720P60 高帧率登录认证
801080P 高清TV 端与 APP 端默认值
登录认证

Proto定义格式

proto 文件为 Protocol Buffersopen in new window 以及 gRPCopen in new window 的数据结构体定义,多用于客户端的接口,本文档也做相关的收集

存放于项目的/grpc_api路径下,使用包名进行路径层级的组织,如

/grpc_api/bilibili/main/community/reply/v1/reply.proto
+/grpc_api/bilibili/app/archive/v1/archive.proto
+/grpc_api/bilibili/app/view/v1/view.proto
+

proto 文件内使用 单行注释 标注字段或对象的含义,如

// UP主信息
+message Author {
+	// UP主mid
+	int64 mid = 1;
+	// UP主昵称
+	string name = 2;
+	// UP主头像url
+	string face = 3;
+}
+

文档提交

TODO

+ + + diff --git a/assets/2233login-eb1b3759.png b/assets/2233login-eb1b3759.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9ff562262bff55999c956f1765c46842219904 GIT binary patch literal 45074 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 literal 0 HcmV?d00001 diff --git a/assets/404.html-8ea661bc.js b/assets/404.html-8ea661bc.js new file mode 100644 index 0000000000..7279a12419 --- /dev/null +++ b/assets/404.html-8ea661bc.js @@ -0,0 +1 @@ +import{_ as e,o as c,c as t}from"./app-3168cb19.js";const _={};function o(r,n){return c(),t("div")}const a=e(_,[["render",o],["__file","404.html.vue"]]);export{a as default}; diff --git a/assets/404.html-f9875e7b.js b/assets/404.html-f9875e7b.js new file mode 100644 index 0000000000..5a0b8dedc8 --- /dev/null +++ b/assets/404.html-f9875e7b.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-3706649a","path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{t as data}; diff --git a/assets/404_manga.html-3728076c.js b/assets/404_manga.html-3728076c.js new file mode 100644 index 0000000000..7817205563 --- /dev/null +++ b/assets/404_manga.html-3728076c.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-6252a41e","path":"/docs/web_widget/404_manga.html","title":"404页漫画收集","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"视频稿件错误提示图","slug":"视频稿件错误提示图","link":"#视频稿件错误提示图","children":[]},{"level":2,"title":"static类型","slug":"static类型","link":"#static类型","children":[]},{"level":2,"title":"dynamic类型","slug":"dynamic类型","link":"#dynamic类型","children":[]}],"git":{},"filePathRelative":"docs/web_widget/404_manga.md"}');export{e as data}; diff --git a/assets/404_manga.html-e53b4e70.js b/assets/404_manga.html-e53b4e70.js new file mode 100644 index 0000000000..defa21a5a0 --- /dev/null +++ b/assets/404_manga.html-e53b4e70.js @@ -0,0 +1 @@ +import{_ as o,r as s,o as n,c,a as t,b as e,d as a}from"./app-3168cb19.js";const l={},p=t("h1",{id:"_404页漫画收集",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#_404页漫画收集","aria-hidden":"true"},"#"),e(" 404页漫画收集")],-1),i=t("h2",{id:"视频稿件错误提示图",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#视频稿件错误提示图","aria-hidden":"true"},"#"),e(" 视频稿件错误提示图")],-1),f={href:"https://static.hdslb.com/images/error/no_video.png",target:"_blank",rel:"noopener noreferrer"},h={href:"https://static.hdslb.com/images/error/wait_for_release.png",target:"_blank",rel:"noopener noreferrer"},d={href:"https://static.hdslb.com/images/error/wait_for_review.png",target:"_blank",rel:"noopener noreferrer"},b={href:"https://static.hdslb.com/images/error/no_video_login.png",target:"_blank",rel:"noopener noreferrer"},v={href:"https://static.hdslb.com/images/error/video_conflict.png",target:"_blank",rel:"noopener noreferrer"},g=t("h2",{id:"static类型",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#static类型","aria-hidden":"true"},"#"),e(" static类型")],-1),_={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-1.png",target:"_blank",rel:"noopener noreferrer"},m={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-2.png",target:"_blank",rel:"noopener noreferrer"},y={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-3.png",target:"_blank",rel:"noopener noreferrer"},k={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-4.png",target:"_blank",rel:"noopener noreferrer"},u={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-5.png",target:"_blank",rel:"noopener noreferrer"},j={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-6.png",target:"_blank",rel:"noopener noreferrer"},w={href:"https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-7.png",target:"_blank",rel:"noopener noreferrer"},z=t("h2",{id:"dynamic类型",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#dynamic类型","aria-hidden":"true"},"#"),e(" dynamic类型")],-1),x=t("p",null,[e("以下内容爬取自接口"),t("code",null,"https://api.bilibili.com/x/activity/operation/list?source_id=630edcfddbd0b39ca7371ad2&pn=1&ps=5"),e("且进行去重")],-1),q={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171215/o6y3r7or6z.png",target:"_blank",rel:"noopener noreferrer"},P={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171215/2978n4wwpj.png",target:"_blank",rel:"noopener noreferrer"},B={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171215/697mr4w97k.png",target:"_blank",rel:"noopener noreferrer"},K={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171215/1297m40w7j.png",target:"_blank",rel:"noopener noreferrer"},V={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171110/697zx5k7p3.png",target:"_blank",rel:"noopener noreferrer"},A={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171110/z4prl744z3.png",target:"_blank",rel:"noopener noreferrer"},H={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171110/798z30yro1.png",target:"_blank",rel:"noopener noreferrer"},I={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171110/890zl5z890.png",target:"_blank",rel:"noopener noreferrer"},W={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171110/o6y4qnjr3z.png",target:"_blank",rel:"noopener noreferrer"},E={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/j6q4m9o9k3.png",target:"_blank",rel:"noopener noreferrer"},N={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073x5k78w.png",target:"_blank",rel:"noopener noreferrer"},Q={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/n6xkqmlkr0.png",target:"_blank",rel:"noopener noreferrer"},X={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/597vq87jxx.png",target:"_blank",rel:"noopener noreferrer"},Y={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/4973p51n10.png",target:"_blank",rel:"noopener noreferrer"},Z={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073x5084w.png",target:"_blank",rel:"noopener noreferrer"},T={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/397ro5k761.png",target:"_blank",rel:"noopener noreferrer"},F={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/597vq8kwxk.png",target:"_blank",rel:"noopener noreferrer"},L={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/697wr522nn.png",target:"_blank",rel:"noopener noreferrer"},O={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/n6xkqm5wjp.png",target:"_blank",rel:"noopener noreferrer"},R={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/k7rwnj474r.png",target:"_blank",rel:"noopener noreferrer"},U={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/397rokjopp.png",target:"_blank",rel:"noopener noreferrer"},C={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073xqk97w.png",target:"_blank",rel:"noopener noreferrer"},M={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171103/4973pln894.png",target:"_blank",rel:"noopener noreferrer"},D={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/l61j9zw8qm.png",target:"_blank",rel:"noopener noreferrer"},J={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/o6kmv3r2w5.png",target:"_blank",rel:"noopener noreferrer"},G={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/396mxjn5mq.png",target:"_blank",rel:"noopener noreferrer"},S={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/k7z6myrz2v.png",target:"_blank",rel:"noopener noreferrer"},$={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/y4xzkn6y09.png",target:"_blank",rel:"noopener noreferrer"},tt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/y4xzkn1ryz.png",target:"_blank",rel:"noopener noreferrer"},et={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/z4y06on3mm.png",target:"_blank",rel:"noopener noreferrer"},rt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/j6y5nx3wjw.png",target:"_blank",rel:"noopener noreferrer"},at={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/m62ko1j4j8.png",target:"_blank",rel:"noopener noreferrer"},ot={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm09plj.png",target:"_blank",rel:"noopener noreferrer"},st={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/z4y06mm37l.png",target:"_blank",rel:"noopener noreferrer"},nt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/n6jl5yq9yp.png",target:"_blank",rel:"noopener noreferrer"},ct={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/x60yjknjzw.png",target:"_blank",rel:"noopener noreferrer"},lt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/o6kmvzp2pz.png",target:"_blank",rel:"noopener noreferrer"},pt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm169w7.png",target:"_blank",rel:"noopener noreferrer"},it={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/029jozv8jp.png",target:"_blank",rel:"noopener noreferrer"},ft={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/126kq1owy3.png",target:"_blank",rel:"noopener noreferrer"},ht={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/596ox53lzp.png",target:"_blank",rel:"noopener noreferrer"},dt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm1p94x.png",target:"_blank",rel:"noopener noreferrer"},bt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/k7z6mv4ryr.png",target:"_blank",rel:"noopener noreferrer"},vt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/l61j9jzwvm.png",target:"_blank",rel:"noopener noreferrer"},gt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20171017/496nrnmz9x.png",target:"_blank",rel:"noopener noreferrer"},_t={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/q0r1q5o63q.png",target:"_blank",rel:"noopener noreferrer"},mt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/39l7rjmxl5.png",target:"_blank",rel:"noopener noreferrer"},yt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/q0r1q51434.png",target:"_blank",rel:"noopener noreferrer"},kt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/n6oxk2onql.png",target:"_blank",rel:"noopener noreferrer"},ut={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/y46oqn1lj9.png",target:"_blank",rel:"noopener noreferrer"},jt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/49m73k2r1x.png",target:"_blank",rel:"noopener noreferrer"},wt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170626/90r73kv75y.png",target:"_blank",rel:"noopener noreferrer"},zt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170522/39lv2lxqnp.png",target:"_blank",rel:"noopener noreferrer"},xt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170522/r9v5j96lk4.png",target:"_blank",rel:"noopener noreferrer"},qt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170522/z45lr4vmk3.png",target:"_blank",rel:"noopener noreferrer"},Pt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66kmm08q8.png",target:"_blank",rel:"noopener noreferrer"},Bt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/z440ww0xox.png",target:"_blank",rel:"noopener noreferrer"},Kt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/l66jllq8kq.png",target:"_blank",rel:"noopener noreferrer"},Vt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170522/12j0zwpp5l.png",target:"_blank",rel:"noopener noreferrer"},At={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66kmm8w78.png",target:"_blank",rel:"noopener noreferrer"},Ht={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/399m88l87m.png",target:"_blank",rel:"noopener noreferrer"},It={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/n66lnnmqjj.png",target:"_blank",rel:"noopener noreferrer"},Wt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170522/m6nz424xn9.png",target:"_blank",rel:"noopener noreferrer"},Et={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k334q84.png",target:"_blank",rel:"noopener noreferrer"},Nt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/900vooj8xw.png",target:"_blank",rel:"noopener noreferrer"},Qt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/o66mooowy6.png",target:"_blank",rel:"noopener noreferrer"},Xt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/k776kkw10o.png",target:"_blank",rel:"noopener noreferrer"},Yt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/499njjrv79.png",target:"_blank",rel:"noopener noreferrer"},Zt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/y44zww9mz9.png",target:"_blank",rel:"noopener noreferrer"},Tt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66km4xz6p.png",target:"_blank",rel:"noopener noreferrer"},Ft={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/499njw4m17.png",target:"_blank",rel:"noopener noreferrer"},Lt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3zlm7j.png",target:"_blank",rel:"noopener noreferrer"},Ot={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/l66jl28oqq.png",target:"_blank",rel:"noopener noreferrer"},Rt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw048k8.png",target:"_blank",rel:"noopener noreferrer"},Ut={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/j665jz9j5v.png",target:"_blank",rel:"noopener noreferrer"},Ct={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/699pl2484w.png",target:"_blank",rel:"noopener noreferrer"},Mt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/x66y3r2nyo.png",target:"_blank",rel:"noopener noreferrer"},Dt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3z3lp3.png",target:"_blank",rel:"noopener noreferrer"},Jt={href:"https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw6r98w.png",target:"_blank",rel:"noopener noreferrer"},Gt={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/moCBusxHG2.png",target:"_blank",rel:"noopener noreferrer"},St={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/LJjOhuzi2l.png",target:"_blank",rel:"noopener noreferrer"},$t={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/fzjTcKtbOA.png",target:"_blank",rel:"noopener noreferrer"},te={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PEXod21DmE.png",target:"_blank",rel:"noopener noreferrer"},ee={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/5NYt7b0jWy.png",target:"_blank",rel:"noopener noreferrer"},re={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I6DotAbsU0.png",target:"_blank",rel:"noopener noreferrer"},ae={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VZkCQV3H8N.png",target:"_blank",rel:"noopener noreferrer"},oe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/pMst3j1Wh2.png",target:"_blank",rel:"noopener noreferrer"},se={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/FFBsId9kkU.png",target:"_blank",rel:"noopener noreferrer"},ne={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/j8PQollWgb.png",target:"_blank",rel:"noopener noreferrer"},ce={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/CvPAnLwfLB.png",target:"_blank",rel:"noopener noreferrer"},le={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/86Og1GMuE6.png",target:"_blank",rel:"noopener noreferrer"},pe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/4gKxYMNEd7.png",target:"_blank",rel:"noopener noreferrer"},ie={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VUahg7oVIp.png",target:"_blank",rel:"noopener noreferrer"},fe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0Wp3GSTqa2.png",target:"_blank",rel:"noopener noreferrer"},he={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/GI167h1ubu.png",target:"_blank",rel:"noopener noreferrer"},de={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/abiv2iRJiN.png",target:"_blank",rel:"noopener noreferrer"},be={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/vocgKB4Bjl.png",target:"_blank",rel:"noopener noreferrer"},ve={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/6cLRxO9RkR.png",target:"_blank",rel:"noopener noreferrer"},ge={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aoqhUIvZ3x.png",target:"_blank",rel:"noopener noreferrer"},_e={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/zRespfCkmo.png",target:"_blank",rel:"noopener noreferrer"},me={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/3wdVaSoWjI.png",target:"_blank",rel:"noopener noreferrer"},ye={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XywNN8KlpA.png",target:"_blank",rel:"noopener noreferrer"},ke={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Yg8QV17GKZ.png",target:"_blank",rel:"noopener noreferrer"},ue={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/h4ytfrWZID.png",target:"_blank",rel:"noopener noreferrer"},je={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/J8BB0k7uKM.png",target:"_blank",rel:"noopener noreferrer"},we={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/i8sLpoa4Wn.png",target:"_blank",rel:"noopener noreferrer"},ze={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XHhqvtddUA.png",target:"_blank",rel:"noopener noreferrer"},xe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hr97jf0KpZ.png",target:"_blank",rel:"noopener noreferrer"},qe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/DUmMBOlW5E.png",target:"_blank",rel:"noopener noreferrer"},Pe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dKua3o3HRw.png",target:"_blank",rel:"noopener noreferrer"},Be={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/f1BYK2oCwp.png",target:"_blank",rel:"noopener noreferrer"},Ke={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/els4Nwd0F6.png",target:"_blank",rel:"noopener noreferrer"},Ve={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PSI3OAv9Hs.png",target:"_blank",rel:"noopener noreferrer"},Ae={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JGrXDA8RKH.png",target:"_blank",rel:"noopener noreferrer"},He={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wT6pn2O18p.png",target:"_blank",rel:"noopener noreferrer"},Ie={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Okx4iJ1PLv.png",target:"_blank",rel:"noopener noreferrer"},We={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/8Ri6Xlk826.png",target:"_blank",rel:"noopener noreferrer"},Ee={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/nNEBpbZlI0.png",target:"_blank",rel:"noopener noreferrer"},Ne={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HtPXYfpuXU.png",target:"_blank",rel:"noopener noreferrer"},Qe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Wwzw0XTwUl.png",target:"_blank",rel:"noopener noreferrer"},Xe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/E738vcDvd3.png",target:"_blank",rel:"noopener noreferrer"},Ye={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dFQfkypPWA.png",target:"_blank",rel:"noopener noreferrer"},Ze={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hinEAw6Abq.png",target:"_blank",rel:"noopener noreferrer"},Te={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/KNH7Hz104m.png",target:"_blank",rel:"noopener noreferrer"},Fe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/2ETVB2F8Pq.png",target:"_blank",rel:"noopener noreferrer"},Le={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Bk5vekQZoa.png",target:"_blank",rel:"noopener noreferrer"},Oe={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/IcRizWqXCq.png",target:"_blank",rel:"noopener noreferrer"},Re={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/jvNq7sSxAT.png",target:"_blank",rel:"noopener noreferrer"},Ue={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/laYMWQCnnY.png",target:"_blank",rel:"noopener noreferrer"},Ce={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I2ep6rPv8i.png",target:"_blank",rel:"noopener noreferrer"},Me={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HKynZO2AxL.png",target:"_blank",rel:"noopener noreferrer"},De={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dtYHFq8LIq.png",target:"_blank",rel:"noopener noreferrer"},Je={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/egQQvfxwvY.png",target:"_blank",rel:"noopener noreferrer"},Ge={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/duwQurWqyy.png",target:"_blank",rel:"noopener noreferrer"},Se={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wqP0BMH8vp.png",target:"_blank",rel:"noopener noreferrer"},$e={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/00FlTw9i50.png",target:"_blank",rel:"noopener noreferrer"},tr={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/V8wFvnEm3T.png",target:"_blank",rel:"noopener noreferrer"},er={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VrYZXfmehY.png",target:"_blank",rel:"noopener noreferrer"},rr={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/QBchCuhVFr.png",target:"_blank",rel:"noopener noreferrer"},ar={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hJo8sPKDkj.png",target:"_blank",rel:"noopener noreferrer"},or={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JnqnvZTKxf.png",target:"_blank",rel:"noopener noreferrer"},sr={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0gu9qonH7t.png",target:"_blank",rel:"noopener noreferrer"},nr={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aA5e4coXVQ.png",target:"_blank",rel:"noopener noreferrer"},cr={href:"https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/UM9bnucVhq.png",target:"_blank",rel:"noopener noreferrer"};function lr(pr,ir){const r=s("ExternalLinkIcon");return n(),c("div",null,[p,i,t("p",null,[t("a",f,[e("https://static.hdslb.com/images/error/no_video.png"),a(r)])]),t("p",null,[t("a",h,[e("https://static.hdslb.com/images/error/wait_for_release.png"),a(r)])]),t("p",null,[t("a",d,[e("https://static.hdslb.com/images/error/wait_for_review.png"),a(r)])]),t("p",null,[t("a",b,[e("https://static.hdslb.com/images/error/no_video_login.png"),a(r)])]),t("p",null,[t("a",v,[e("https://static.hdslb.com/images/error/video_conflict.png"),a(r)])]),g,t("p",null,[t("a",_,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-1.png"),a(r)])]),t("p",null,[t("a",m,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-2.png"),a(r)])]),t("p",null,[t("a",y,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-3.png"),a(r)])]),t("p",null,[t("a",k,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-4.png"),a(r)])]),t("p",null,[t("a",u,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-5.png"),a(r)])]),t("p",null,[t("a",j,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-6.png"),a(r)])]),t("p",null,[t("a",w,[e("https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-7.png"),a(r)])]),z,x,t("p",null,[t("a",q,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171215/o6y3r7or6z.png"),a(r)])]),t("p",null,[t("a",P,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171215/2978n4wwpj.png"),a(r)])]),t("p",null,[t("a",B,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171215/697mr4w97k.png"),a(r)])]),t("p",null,[t("a",K,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171215/1297m40w7j.png"),a(r)])]),t("p",null,[t("a",V,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171110/697zx5k7p3.png"),a(r)])]),t("p",null,[t("a",A,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171110/z4prl744z3.png"),a(r)])]),t("p",null,[t("a",H,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171110/798z30yro1.png"),a(r)])]),t("p",null,[t("a",I,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171110/890zl5z890.png"),a(r)])]),t("p",null,[t("a",W,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171110/o6y4qnjr3z.png"),a(r)])]),t("p",null,[t("a",E,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/j6q4m9o9k3.png"),a(r)])]),t("p",null,[t("a",N,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073x5k78w.png"),a(r)])]),t("p",null,[t("a",Q,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/n6xkqmlkr0.png"),a(r)])]),t("p",null,[t("a",X,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/597vq87jxx.png"),a(r)])]),t("p",null,[t("a",Y,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/4973p51n10.png"),a(r)])]),t("p",null,[t("a",Z,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073x5084w.png"),a(r)])]),t("p",null,[t("a",T,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/397ro5k761.png"),a(r)])]),t("p",null,[t("a",F,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/597vq8kwxk.png"),a(r)])]),t("p",null,[t("a",L,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/697wr522nn.png"),a(r)])]),t("p",null,[t("a",O,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/n6xkqm5wjp.png"),a(r)])]),t("p",null,[t("a",R,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/k7rwnj474r.png"),a(r)])]),t("p",null,[t("a",U,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/397rokjopp.png"),a(r)])]),t("p",null,[t("a",C,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073xqk97w.png"),a(r)])]),t("p",null,[t("a",M,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171103/4973pln894.png"),a(r)])]),t("p",null,[t("a",D,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/l61j9zw8qm.png"),a(r)])]),t("p",null,[t("a",J,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/o6kmv3r2w5.png"),a(r)])]),t("p",null,[t("a",G,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/396mxjn5mq.png"),a(r)])]),t("p",null,[t("a",S,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/k7z6myrz2v.png"),a(r)])]),t("p",null,[t("a",$,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/y4xzkn6y09.png"),a(r)])]),t("p",null,[t("a",tt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/y4xzkn1ryz.png"),a(r)])]),t("p",null,[t("a",et,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/z4y06on3mm.png"),a(r)])]),t("p",null,[t("a",rt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/j6y5nx3wjw.png"),a(r)])]),t("p",null,[t("a",at,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/m62ko1j4j8.png"),a(r)])]),t("p",null,[t("a",ot,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm09plj.png"),a(r)])]),t("p",null,[t("a",st,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/z4y06mm37l.png"),a(r)])]),t("p",null,[t("a",nt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/n6jl5yq9yp.png"),a(r)])]),t("p",null,[t("a",ct,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/x60yjknjzw.png"),a(r)])]),t("p",null,[t("a",lt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/o6kmvzp2pz.png"),a(r)])]),t("p",null,[t("a",pt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm169w7.png"),a(r)])]),t("p",null,[t("a",it,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/029jozv8jp.png"),a(r)])]),t("p",null,[t("a",ft,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/126kq1owy3.png"),a(r)])]),t("p",null,[t("a",ht,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/596ox53lzp.png"),a(r)])]),t("p",null,[t("a",dt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm1p94x.png"),a(r)])]),t("p",null,[t("a",bt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/k7z6mv4ryr.png"),a(r)])]),t("p",null,[t("a",vt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/l61j9jzwvm.png"),a(r)])]),t("p",null,[t("a",gt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20171017/496nrnmz9x.png"),a(r)])]),t("p",null,[t("a",_t,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/q0r1q5o63q.png"),a(r)])]),t("p",null,[t("a",mt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/39l7rjmxl5.png"),a(r)])]),t("p",null,[t("a",yt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/q0r1q51434.png"),a(r)])]),t("p",null,[t("a",kt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/n6oxk2onql.png"),a(r)])]),t("p",null,[t("a",ut,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/y46oqn1lj9.png"),a(r)])]),t("p",null,[t("a",jt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/49m73k2r1x.png"),a(r)])]),t("p",null,[t("a",wt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170626/90r73kv75y.png"),a(r)])]),t("p",null,[t("a",zt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170522/39lv2lxqnp.png"),a(r)])]),t("p",null,[t("a",xt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170522/r9v5j96lk4.png"),a(r)])]),t("p",null,[t("a",qt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170522/z45lr4vmk3.png"),a(r)])]),t("p",null,[t("a",Pt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66kmm08q8.png"),a(r)])]),t("p",null,[t("a",Bt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/z440ww0xox.png"),a(r)])]),t("p",null,[t("a",Kt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/l66jllq8kq.png"),a(r)])]),t("p",null,[t("a",Vt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170522/12j0zwpp5l.png"),a(r)])]),t("p",null,[t("a",At,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66kmm8w78.png"),a(r)])]),t("p",null,[t("a",Ht,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/399m88l87m.png"),a(r)])]),t("p",null,[t("a",It,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/n66lnnmqjj.png"),a(r)])]),t("p",null,[t("a",Wt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170522/m6nz424xn9.png"),a(r)])]),t("p",null,[t("a",Et,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k334q84.png"),a(r)])]),t("p",null,[t("a",Nt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/900vooj8xw.png"),a(r)])]),t("p",null,[t("a",Qt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/o66mooowy6.png"),a(r)])]),t("p",null,[t("a",Xt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/k776kkw10o.png"),a(r)])]),t("p",null,[t("a",Yt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/499njjrv79.png"),a(r)])]),t("p",null,[t("a",Zt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/y44zww9mz9.png"),a(r)])]),t("p",null,[t("a",Tt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66km4xz6p.png"),a(r)])]),t("p",null,[t("a",Ft,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/499njw4m17.png"),a(r)])]),t("p",null,[t("a",Lt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3zlm7j.png"),a(r)])]),t("p",null,[t("a",Ot,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/l66jl28oqq.png"),a(r)])]),t("p",null,[t("a",Rt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw048k8.png"),a(r)])]),t("p",null,[t("a",Ut,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/j665jz9j5v.png"),a(r)])]),t("p",null,[t("a",Ct,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/699pl2484w.png"),a(r)])]),t("p",null,[t("a",Mt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/x66y3r2nyo.png"),a(r)])]),t("p",null,[t("a",Dt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3z3lp3.png"),a(r)])]),t("p",null,[t("a",Jt,[e("https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw6r98w.png"),a(r)])]),t("p",null,[t("a",Gt,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/moCBusxHG2.png"),a(r)])]),t("p",null,[t("a",St,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/LJjOhuzi2l.png"),a(r)])]),t("p",null,[t("a",$t,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/fzjTcKtbOA.png"),a(r)])]),t("p",null,[t("a",te,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PEXod21DmE.png"),a(r)])]),t("p",null,[t("a",ee,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/5NYt7b0jWy.png"),a(r)])]),t("p",null,[t("a",re,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I6DotAbsU0.png"),a(r)])]),t("p",null,[t("a",ae,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VZkCQV3H8N.png"),a(r)])]),t("p",null,[t("a",oe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/pMst3j1Wh2.png"),a(r)])]),t("p",null,[t("a",se,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/FFBsId9kkU.png"),a(r)])]),t("p",null,[t("a",ne,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/j8PQollWgb.png"),a(r)])]),t("p",null,[t("a",ce,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/CvPAnLwfLB.png"),a(r)])]),t("p",null,[t("a",le,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/86Og1GMuE6.png"),a(r)])]),t("p",null,[t("a",pe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/4gKxYMNEd7.png"),a(r)])]),t("p",null,[t("a",ie,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VUahg7oVIp.png"),a(r)])]),t("p",null,[t("a",fe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0Wp3GSTqa2.png"),a(r)])]),t("p",null,[t("a",he,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/GI167h1ubu.png"),a(r)])]),t("p",null,[t("a",de,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/abiv2iRJiN.png"),a(r)])]),t("p",null,[t("a",be,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/vocgKB4Bjl.png"),a(r)])]),t("p",null,[t("a",ve,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/6cLRxO9RkR.png"),a(r)])]),t("p",null,[t("a",ge,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aoqhUIvZ3x.png"),a(r)])]),t("p",null,[t("a",_e,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/zRespfCkmo.png"),a(r)])]),t("p",null,[t("a",me,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/3wdVaSoWjI.png"),a(r)])]),t("p",null,[t("a",ye,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XywNN8KlpA.png"),a(r)])]),t("p",null,[t("a",ke,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Yg8QV17GKZ.png"),a(r)])]),t("p",null,[t("a",ue,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/h4ytfrWZID.png"),a(r)])]),t("p",null,[t("a",je,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/J8BB0k7uKM.png"),a(r)])]),t("p",null,[t("a",we,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/i8sLpoa4Wn.png"),a(r)])]),t("p",null,[t("a",ze,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XHhqvtddUA.png"),a(r)])]),t("p",null,[t("a",xe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hr97jf0KpZ.png"),a(r)])]),t("p",null,[t("a",qe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/DUmMBOlW5E.png"),a(r)])]),t("p",null,[t("a",Pe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dKua3o3HRw.png"),a(r)])]),t("p",null,[t("a",Be,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/f1BYK2oCwp.png"),a(r)])]),t("p",null,[t("a",Ke,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/els4Nwd0F6.png"),a(r)])]),t("p",null,[t("a",Ve,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PSI3OAv9Hs.png"),a(r)])]),t("p",null,[t("a",Ae,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JGrXDA8RKH.png"),a(r)])]),t("p",null,[t("a",He,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wT6pn2O18p.png"),a(r)])]),t("p",null,[t("a",Ie,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Okx4iJ1PLv.png"),a(r)])]),t("p",null,[t("a",We,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/8Ri6Xlk826.png"),a(r)])]),t("p",null,[t("a",Ee,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/nNEBpbZlI0.png"),a(r)])]),t("p",null,[t("a",Ne,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HtPXYfpuXU.png"),a(r)])]),t("p",null,[t("a",Qe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Wwzw0XTwUl.png"),a(r)])]),t("p",null,[t("a",Xe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/E738vcDvd3.png"),a(r)])]),t("p",null,[t("a",Ye,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dFQfkypPWA.png"),a(r)])]),t("p",null,[t("a",Ze,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hinEAw6Abq.png"),a(r)])]),t("p",null,[t("a",Te,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/KNH7Hz104m.png"),a(r)])]),t("p",null,[t("a",Fe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/2ETVB2F8Pq.png"),a(r)])]),t("p",null,[t("a",Le,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Bk5vekQZoa.png"),a(r)])]),t("p",null,[t("a",Oe,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/IcRizWqXCq.png"),a(r)])]),t("p",null,[t("a",Re,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/jvNq7sSxAT.png"),a(r)])]),t("p",null,[t("a",Ue,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/laYMWQCnnY.png"),a(r)])]),t("p",null,[t("a",Ce,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I2ep6rPv8i.png"),a(r)])]),t("p",null,[t("a",Me,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HKynZO2AxL.png"),a(r)])]),t("p",null,[t("a",De,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dtYHFq8LIq.png"),a(r)])]),t("p",null,[t("a",Je,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/egQQvfxwvY.png"),a(r)])]),t("p",null,[t("a",Ge,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/duwQurWqyy.png"),a(r)])]),t("p",null,[t("a",Se,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wqP0BMH8vp.png"),a(r)])]),t("p",null,[t("a",$e,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/00FlTw9i50.png"),a(r)])]),t("p",null,[t("a",tr,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/V8wFvnEm3T.png"),a(r)])]),t("p",null,[t("a",er,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VrYZXfmehY.png"),a(r)])]),t("p",null,[t("a",rr,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/QBchCuhVFr.png"),a(r)])]),t("p",null,[t("a",ar,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hJo8sPKDkj.png"),a(r)])]),t("p",null,[t("a",or,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JnqnvZTKxf.png"),a(r)])]),t("p",null,[t("a",sr,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0gu9qonH7t.png"),a(r)])]),t("p",null,[t("a",nr,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aA5e4coXVQ.png"),a(r)])]),t("p",null,[t("a",cr,[e("https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/UM9bnucVhq.png"),a(r)])])])}const hr=o(l,[["render",lr],["__file","404_manga.html.vue"]]);export{hr as default}; diff --git a/assets/APP.html-8a506c9f.js b/assets/APP.html-8a506c9f.js new file mode 100644 index 0000000000..c684652536 --- /dev/null +++ b/assets/APP.html-8a506c9f.js @@ -0,0 +1,215 @@ +import{_ as i,r as o,o as l,c as u,a as s,b as n,d as a,w as c,e as p}from"./app-3168cb19.js";const r={},k=s("h1",{id:"app-api-签名与鉴权",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#app-api-签名与鉴权","aria-hidden":"true"},"#"),n(" APP API 签名与鉴权")],-1),d=s("h2",{id:"app-api-签名特性",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#app-api-签名特性","aria-hidden":"true"},"#"),n(" APP API 签名特性")],-1),v=s("code",null,"appkey",-1),m=s("code",null,"appsec",-1),b=s("code",null,"AppKey",-1),g=s("code",null,"AppSec",-1),y=p('

  • 不同 appkey 对应不同的 app (如客户端、概念版、必剪、漫画、bililink等)

  • 不同平台同 app 也会存在不同的 appkey (如安卓端、ios端、TV端等)

  • 同平台同 app 下不同功能也会存在不同的 appkey(如登录专用、取流专用等)

  • 不同版本的客户端的 appkey 也可能不同

  • appkey与appsec一一对应

APP API 签名算法

  1. 首先为参数中添加appkey字段
  2. 然后按照参数的 Key 重新排序
  3. 再对这个 Key-Value 进行 url query 序列化,并拼接与之对应的appsec (盐) 进行 md5 Hash 运算(32-bit 字符小写),该 hash 便是 API 签名
  4. 最后在参数尾部增添sign字段,它的 Value 为上一步计算所得的 hash,一并作为表单或 Query 提交

Demo

该 Demo 提供 PythonJavaTS/JSSwiftC++ 语言例程

使用 appkey = 1d8b6e7d45233436, appsec = 560c52ccd288fed045859ed18bffd973 对如下 params 参数进行签名

',6),h=s("code",null,"appkey",-1),f=s("code",null,"AppSec",-1),q=p(`

Python

import hashlib
+import urllib.parse
+
+def appsign(params, appkey, appsec):
+    '为请求参数进行 APP 签名'
+    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)
+

输出内容分别是进行 APP 签名的后参数的 key-Value 以及 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
+

Java

package io.github.cctyl;
+
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.net.URLEncoder;
+import java.util.TreeMap;
+
+/**
+ * @author cctyl
+ */
+public class AppSigner {
+
+    private static final String APP_KEY = "1d8b6e7d45233436";
+    private static final String APP_SEC = "560c52ccd288fed045859ed18bffd973";
+
+    public static String appSign(Map<String, String> params) {
+        // 为请求参数进行 APP 签名
+        params.put("appkey", APP_KEY);
+        // 按照 key 重排参数
+        Map<String, String> sortedParams = new TreeMap<>(params);
+        // 序列化参数
+        StringBuilder queryBuilder = new StringBuilder();
+        for (Map.Entry<String, String> entry : sortedParams.entrySet()) {
+            if (queryBuilder.length() > 0) {
+                queryBuilder.append('&');
+            }
+            queryBuilder
+                    .append(URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8))
+                    .append('=')
+                    .append(URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8));
+        }
+        return generateMD5(queryBuilder .append(APP_SEC).toString());
+    }
+
+    private static String generateMD5(String input) {
+        try {
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            byte[] digest = md.digest(input.getBytes());
+            StringBuilder sb = new StringBuilder();
+            for (byte b : digest) {
+                sb.append(String.format("%02x", b));
+            }
+            return sb.toString();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static void main(String[] args) {
+        Map<String, String> params = new HashMap<>();
+        params.put("id", "114514");
+        params.put("str", "1919810");
+        params.put("test", "いいよ,こいよ");
+        System.out.println(appSign(params));
+    }
+}
+

输出结果为:01479cf20504d865519ac50f33ba3a7d

TypeScript/JavaScript

import { createHash } from 'node:crypto'
+
+type Params = Record<string, any>
+
+const md5 = (str: string) => createHash('md5').update(str).digest('hex')
+
+/**
+ * 为请求参数进行 APP 签名
+ */
+export function appSign(params: Params, appkey: string, appsec: string) {
+  params.appkey = appkey
+  const searchParams = new URLSearchParams(params)
+  searchParams.sort()
+  return md5(searchParams.toString() + appsec)
+}
+
+console.log(
+  appSign(
+    {
+      id: 114514,
+      str: '1919810',
+      test: 'いいよ,こいよ',
+    },
+    '1d8b6e7d45233436',
+    '560c52ccd288fed045859ed18bffd973',
+  ),
+  '01479cf20504d865519ac50f33ba3a7d',
+)
+

输出结果为:01479cf20504d865519ac50f33ba3a7d

Swift

import Foundation
+import CommonCrypto
+
+//Swift标准库没有MD5函数,所以我们要自己实现一个
+func MD5(string: String) -> String {
+    let length = Int(CC_MD5_DIGEST_LENGTH)
+    var digest = [UInt8](repeating: 0, count: length)
+
+    if let d = string.data(using: .utf8) {
+        _ = d.withUnsafeBytes { body -> String in
+            CC_MD5(body.baseAddress, CC_LONG(d.count), &digest)
+            return ""
+        }
+    }
+
+    return (0..<length).reduce("") {
+        $0 + String(format: "%02x", digest[$1])
+    }
+}
+
+func appSign(params: [String:String],appKey:String,appSec:String) -> String {
+    var signedParams = params
+    signedParams["appkey"] = appKey
+    let sortedParams = signedParams.sorted { $0.key < $1.key }
+    //在制作成query时,需要显式addingPercentEncoding转换
+    let query = sortedParams.map { "\\($0.key)=\\($0.value.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)" }.joined(separator: "&")
+    let sign = MD5(string: query+appSec)
+    return sign
+}
+
+
+//testSign
+let appKey = "1d8b6e7d45233436"
+let appSec = "560c52ccd288fed045859ed18bffd973"
+let signResult = appSign(params: [
+    "id": "114514",
+    "str": "1919810",
+    "test": "いいよ,こいよ",
+],appKey:appKey,appSec:appSec)
+print(signResult)
+

输出结果为:01479cf20504d865519ac50f33ba3a7d

CplusPlus

`,14),_={href:"https://github.com/libcpr/cpr",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/weidai11/cryptopp",target:"_blank",rel:"noopener noreferrer"},P={href:"https://github.com/nlohmann/json",target:"_blank",rel:"noopener noreferrer"},S=p(`
#include <print>    // std::println
+
+/// thrid party libraries
+#include <cpr/cpr.h>            // cpr::util::urlEncode()
+#include <cryptopp/md5.h>
+#include <cryptopp/hex.h>
+#include <nlohmann/json.hpp>
+
+/*
+ * 注意,假定不会发生错误!
+ */
+
+/* 获取 md5 hex(lower) */
+std::string Get_md5_hex(const std::string &Input_str) {
+    CryptoPP::Weak1::MD5 hash;
+    std::string          md5_hex;
+
+    CryptoPP::StringSource ss(Input_str, true,
+        new CryptoPP::HashFilter(hash,
+            new CryptoPP::HexEncoder(
+                new CryptoPP::StringSink(md5_hex)
+            )
+        )
+    );
+
+    std::ranges::for_each(md5_hex, [](char &x) { x = std::tolower(x); });
+    return md5_hex;
+}
+
+/* 将 json 转换为 url 编码字符串 */
+std::string Json_to_url_encode_str(const nlohmann::json &Json) {
+    std::string encode_str;
+    for (const auto &[key, value]: Json.items()) {
+        encode_str.append(key).append("=").append(cpr::util::urlEncode(value.is_string() ? value.get<std::string>() : to_string(value))).append("&");
+    }
+
+    // remove the last '&'
+    encode_str.resize(encode_str.size() - 1, '\\0');
+    return encode_str;
+}
+
+std::string App_sign(nlohmann::json &Params, const std::string &App_key, const std::string &App_sec) {
+    Params["appkey"] = App_key;
+    Params["sign"]   = Get_md5_hex(Json_to_url_encode_str(Params) + App_sec);
+    return Json_to_url_encode_str(Params);
+}
+
+int main() {
+    nlohmann::json Params;
+    Params["id"]   = 114514;
+    Params["str"]  = "1919810";
+    Params["test"] = "いいよ,こいよ";
+
+    constexpr auto App_key = "1d8b6e7d45233436";
+    constexpr auto App_sec = "560c52ccd288fed045859ed18bffd973";
+    std::string    sign    = App_sign(Params, App_key, App_sec);
+    std::println("{}", to_string(Params));
+    std::println("{}", sign);
+}
+
{"appkey":"1d8b6e7d45233436","id":114514,"sign":"01479cf20504d865519ac50f33ba3a7d","str":"1919810","test":"いいよ,こいよ"}
+appkey=1d8b6e7d45233436&id=114514&sign=01479cf20504d865519ac50f33ba3a7d&str=1919810&test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88
+
`,2);function x(A,E){const e=o("RouterLink"),t=o("ExternalLinkIcon");return l(),u("div",null,[k,d,s("p",null,[n("部分客户端专用的 REST API 存在基于参数签名的鉴权,需要使用规定的"),v,n("及其对应的"),m,n("与原始请求参数进行签名计算,部分"),b,n("及与之对应的"),g,n("已经被公开:见该文档 "),a(e,{to:"/docs/misc/sign/APPKey.html"},{default:c(()=>[n("APPKey")]),_:1})]),y,s("p",null,[n("上述示例"),h,n("、"),f,n("均来自文档 "),a(e,{to:"/docs/misc/sign/APPKey.html"},{default:c(()=>[n("APPKey")]),_:1})]),q,s("p",null,[n("需要 c++ 23 标准库,"),s("a",_,[n("cpr"),a(t)]),n("、"),s("a",w,[n("cryptopp"),a(t)]),n("、"),s("a",P,[n("nlohmann/json"),a(t)]),n(" 等依赖")]),S])}const j=i(r,[["render",x],["__file","APP.html.vue"]]);export{j as default}; diff --git a/assets/APP.html-cb1b78f3.js b/assets/APP.html-cb1b78f3.js new file mode 100644 index 0000000000..c1dacf24e1 --- /dev/null +++ b/assets/APP.html-cb1b78f3.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-58c05ce2","path":"/docs/misc/sign/APP.html","title":"APP API 签名与鉴权","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"APP API 签名特性","slug":"app-api-签名特性","link":"#app-api-签名特性","children":[]},{"level":2,"title":"APP API 签名算法","slug":"app-api-签名算法","link":"#app-api-签名算法","children":[]},{"level":2,"title":"Demo","slug":"demo","link":"#demo","children":[{"level":3,"title":"Python","slug":"python","link":"#python","children":[]},{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"TypeScript/JavaScript","slug":"typescript-javascript","link":"#typescript-javascript","children":[]},{"level":3,"title":"Swift","slug":"swift","link":"#swift","children":[]},{"level":3,"title":"CplusPlus","slug":"cplusplus","link":"#cplusplus","children":[]}]}],"git":{},"filePathRelative":"docs/misc/sign/APP.md"}');export{l as data}; diff --git a/assets/APPKey.html-0481e527.js b/assets/APPKey.html-0481e527.js new file mode 100644 index 0000000000..e4e3df4587 --- /dev/null +++ b/assets/APPKey.html-0481e527.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-4458a551","path":"/docs/misc/sign/APPKey.html","title":"APPKey","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/misc/sign/APPKey.md"}');export{e as data}; diff --git a/assets/APPKey.html-d63a95b5.js b/assets/APPKey.html-d63a95b5.js new file mode 100644 index 0000000000..ae9383aa6f --- /dev/null +++ b/assets/APPKey.html-d63a95b5.js @@ -0,0 +1 @@ +import{_ as t,o as e,c as d,e as n}from"./app-3168cb19.js";const l={},c=n('

APPKey

以下为已知的 APPkey / APPSec,及部分使用场景参数信息,均来自抓包与逆向工程

APPKEYAPPSECplatform2APP类型neuronAppId1mobi_app2备注
9d5889cf67e615cd8fd9bb32efea8cef801fd895bef2713dandroidAi4cCreatorAndroid
1d8b6e7d45233436560c52ccd288fed045859ed18bffd973android粉版1android获取资源通用
783bbb7264451d822653583c8873dea268ab9386918b1d65android粉版1android仅获取用户信息时使用(7.X及更新版本)
57263273bc6b67f6a0488e488d1567960d3a765e8d129f90android粉版1android可能来自旧版
07da50c9a0bf829f25bdede4e1581c836cab73a48790ca6eandroid概念版3android_b
191c3b6b975af1841673b15a09ef5e4427627f47b03a0578android概念版3android_b仅获取用户信息时使用(7.X及更新版本)
178cf125136ca8ea34381a26236dd1171185c0beb042e1c6android概念版3android_b可能来自旧版
7d336ec01856996ba1ce6983bc89e20a36c37f40c4f1a0ddandroid概念版3android_b可能来自旧版
dfca71928277209bb5475a8825547a4fc26c7d518eaaa02eandroidHD 版5android_hd
bb3101000e232e2736efcfed79309338ced0380abd824ac1android白版14android_i
ae57252b0c09105dc75875c596a69eb55bd119e74b07cfe3android白版14android_i仅获取用户信息时使用(7.X及更新版本)
8e16697a1b4f8121f5dd03b752426f2e623d7badb28d190aandroid白版14android_i可能来自旧版
7d089525d3611b1cacd495b248ec528c2eed1e862d393126android蓝版30bstar_a
iVGUTjsxvpLeuDCfaHRmhWMLkdeMuILqORnYZocwMBpMEOdtandroid---视频取流专用, 仅5.X旧版使用
YvirImLGlLANCLvMJNlZNgfNGKZEpaDTkCdPQVXntXhuiJEMios---视频取流专用
27eb53fc9058f8c3c2ed53a74eeefe3cf99fbd01d8c9c375web/ios?---第三方授权使用
84956560bc028eb794aba54af9065f71de72f5508f1cd42e?UWP 版--部分API不接受此appkey, 返回-663错误
85eb6835b0a1034e2ad42749773c441109bdc0191257a664?UWP 版?--部分API不接受此appkey, 返回-663错误
4ebafd7c4951b3668cb98205e9b2ad3669aad0fce12a4c13iosiPhone 客户端?iphone?
8d23902c1688a798710f0212e62bd499b8d3ac6e1db9302aandroidAndroidBiliThings??
4c6e1021617d40d9e559a59044eb2701b7a8628c86aa12aeandroidAndroidMallTicket??
c034e8b74130a886e4e8966b1e71847dc4a3830f2d078523androidAndroidOttSdk7?
4409e2ce8ffd12b859b43e04ad6965f34319062b478f83ddandroid云视听小电视(TV版)9?android_tv_yst?
37207f2beaebf8d7e988e794d4d4b6dd43bc0e89d6e90c43androidBiliLink??
9a75abf7de2d894735ca1c82be6c2c242ecc04d88c735f31androidBiliScan??
aae92bc66f3edfabaf125a0d5279fd576c1b4418a3e8276d?PC 投稿工具-?
bca7e84c2d947ac660698ba2f68e01ce44738920a0ffe768?login-?
h9Ejat5tFh81cq8VBdiI92bjmZ9QRcjJBWv2EEssyjekAGKtbilibili游戏 web端 游戏详情页API

注释:

1 neuronAppId,产品编号,由数据平台分配,详情如下:

  • 粉(国内版)=1
  • 白(GooglePlay 版)=2
  • 蓝(东南亚版)=3
  • 直播姬=4
  • HD=5
  • 海外=6
  • OTT=7
  • 漫画=8
  • TV野版=9
  • 小视频=10
  • 网易漫画=11
  • 网易漫画lite=12
  • 网易漫画HD=13,
  • 国际版=14

2 platform, mobi_app 仅供参考, 具体值需要抓包确定.

',7),a=[c];function r(i,s){return e(),d("div",null,a)}const x=t(l,[["render",r],["__file","APPKey.html.vue"]]);export{x as default}; diff --git a/assets/Activity.html-a923504a.js b/assets/Activity.html-a923504a.js new file mode 100644 index 0000000000..cb04f9a4b5 --- /dev/null +++ b/assets/Activity.html-a923504a.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-52b13614","path":"/docs/manga/Activity.html","title":"漫画任务操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"分享漫画","slug":"分享漫画","link":"#分享漫画","children":[]}],"git":{},"filePathRelative":"docs/manga/Activity.md"}');export{t as data}; diff --git a/assets/Activity.html-faf7be1d.js b/assets/Activity.html-faf7be1d.js new file mode 100644 index 0000000000..1b9512d926 --- /dev/null +++ b/assets/Activity.html-faf7be1d.js @@ -0,0 +1,15 @@ +import{_ as t,o as a,c as n,e as s}from"./app-3168cb19.js";const e={},d=s(`

漫画任务操作

分享漫画

https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic

请求方式:POST

认证方式:Cookie(SESSDATA)/ APP

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
platformstr平台必要android

json 回复:

根对象:

字段类型内容备注
codenum / str返回值见对应表格
msgstr错误信息
metaobj错误信息invalid_argument 时存在,例如 {"argument":"platform"}
dataobjcode 为 0,msg 为空时存在

code - msg 对应表:

codecode 类型msg备注
0num分享成功,data 存在
0num今日已分享
invalid_argumentstrxxxx must be validxxxx 字段为必须,meta存在
unauthenticatedstrmust login必须登录才能分享

data 对象:

字段类型内容备注
pointnum获取积分

示例:

curl -X POST https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic \\
+-b "SESSDATA=xxxxx" \\
+--data-urlencode 'platform=android'
+
分享成功:
{
+  "code": 0,
+  "msg": "",
+  "data": {
+    "point": 5
+  }
+}
+
今日已分享:
{
+  "code": 0,
+  "msg": "今日已分享"
+}
+
`,18),o=[d];function r(i,p){return a(),n("div",null,o)}const l=t(e,[["render",r],["__file","Activity.html.vue"]]);export{l as default}; diff --git a/assets/Bcoin.html-b63f5927.js b/assets/Bcoin.html-b63f5927.js new file mode 100644 index 0000000000..2824661b09 --- /dev/null +++ b/assets/Bcoin.html-b63f5927.js @@ -0,0 +1,129 @@ +import{_ as s}from"./battery-100-5a4d9900.js";import{_ as n,o as a,c as t,e}from"./app-3168cb19.js";const p={},o=e('

B币方式充电

:以前充电是电池的概念,1B币折合10电池,一般地充电10电池可获得1经验

目前(2020/12/02后)则是贝壳的概念,1B币折合1贝壳、1经验(如果存在小数点,则经验值向下取整,即2.5B币获得2经验)

新版本B币充电

https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick

请求方式:POST

认证方式:Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
bp_numnum贝壳数量必要必须在2-9999之间
is_bp_remains_priorbool是否优先扣除B币余额必要[true,false],B币充电请选择true
up_midnum充电对象用户mid必要
otypestr充电来源必要up:空间充电
archive:视频充电
oidnum充电来源代码必要空间充电:充电对象用户mid
视频充电:稿件avid
csrfstrCSRF Token(位于cookie)必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功(并不代表充电成功)
-101:账号未登录
-111:csrf校验失败
-400:请求错误
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
midnum本用户mid
up_midnum目标用户mid
order_nostr留言token用于添加充电留言
bp_numstr充电贝壳数
expnum获得经验数
statusnum返回结果4:成功
-2:低于20电池下限
-4:B币不足
msgstr错误信息默认为空

示例:

以空间的方式向用户mid=293793435充了2贝壳,得到2经验,留言token为BPRG5CEC3VUPOOANA540

此时data.status=4

自己给自己冲QAQ

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'
+
查看响应示例:
{
+    "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

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'
+
查看响应示例:
{
+    "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

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'
+
查看响应示例:
{
+    "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_numnum充电电池数量必要必须在2-9999之间
up_midnum充电对象用户mid必要
otypestr充电来源必要up:空间充电
archive:视频充电
oidnum充电来源代码必要空间充电:充电对象用户mid
视频充电:稿件avid
csrfstrCSRF Token(位于cookie)必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功(并不代表充电成功)
-101:账号未登录
-111:csrf校验失败
-400:请求错误
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
midnum本用户mid
up_midnum目标用户mid
order_nostr留言token用于添加充电留言
elec_numnum充电电池数
expnum获得经验数
statusnum返回结果4:成功
-2:低于20电池下限
-4:B币不足
msgstr错误信息默认为空

示例:

以空间的方式向用户mid=293793435充了20电池,得到2经验,留言token为BPRG5CEC3VUPOOANA540

此时data.status=4

再次自己冲自己QAQ

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'
+
查看响应示例:
{
+    "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

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'
+
查看响应示例:
{
+    "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

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'
+
查看响应示例:
{
+    "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 币余额不足"
+    }
+}
+
`,32),d=[o];function c(r,l){return a(),t("div",null,d)}const k=n(p,[["render",c],["__file","Bcoin.html.vue"]]);export{k as default}; diff --git a/assets/Bcoin.html-d21d4767.js b/assets/Bcoin.html-d21d4767.js new file mode 100644 index 0000000000..de3cd3ef23 --- /dev/null +++ b/assets/Bcoin.html-d21d4767.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-76365d86","path":"/docs/electric/Bcoin.html","title":"B币方式充电","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"新版本B币充电","slug":"新版本b币充电","link":"#新版本b币充电","children":[]},{"level":2,"title":"老版本B币充电","slug":"老版本b币充电","link":"#老版本b币充电","children":[]}],"git":{},"filePathRelative":"docs/electric/Bcoin.md"}');export{e as data}; diff --git a/assets/CONTRIBUTING.html-5d94bebf.js b/assets/CONTRIBUTING.html-5d94bebf.js new file mode 100644 index 0000000000..e5704e7706 --- /dev/null +++ b/assets/CONTRIBUTING.html-5d94bebf.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-73005554","path":"/CONTRIBUTING.html","title":"bilibili-API-collect","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"总则","slug":"总则","link":"#总则","children":[]},{"level":2,"title":"Issue与社群讨论","slug":"issue与社群讨论","link":"#issue与社群讨论","children":[]},{"level":2,"title":"目录与路径结构","slug":"目录与路径结构","link":"#目录与路径结构","children":[{"level":3,"title":"目录","slug":"目录","link":"#目录","children":[]},{"level":3,"title":"路径","slug":"路径","link":"#路径","children":[]},{"level":3,"title":"文件","slug":"文件","link":"#文件","children":[]}]},{"level":2,"title":"Markdown文档内容格式","slug":"markdown文档内容格式","link":"#markdown文档内容格式","children":[{"level":3,"title":"头部","slug":"头部","link":"#头部","children":[]},{"level":3,"title":"接口说明","slug":"接口说明","link":"#接口说明","children":[]},{"level":3,"title":"枚举值与属性位","slug":"枚举值与属性位","link":"#枚举值与属性位","children":[]}]},{"level":2,"title":"Proto定义格式","slug":"proto定义格式","link":"#proto定义格式","children":[]},{"level":2,"title":"文档提交","slug":"文档提交","link":"#文档提交","children":[]}],"git":{},"filePathRelative":"CONTRIBUTING.md"}');export{l as data}; diff --git a/assets/CONTRIBUTING.html-f9abf910.js b/assets/CONTRIBUTING.html-f9abf910.js new file mode 100644 index 0000000000..9f65836019 --- /dev/null +++ b/assets/CONTRIBUTING.html-f9abf910.js @@ -0,0 +1,43 @@ +import{_ as c,r as a,o as r,c as i,a as t,b as e,d as n,w as l,e as o}from"./app-3168cb19.js";const p={},u=t("h1",{id:"bilibili-api-collect",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#bilibili-api-collect","aria-hidden":"true"},"#"),e(" bilibili-API-collect")],-1),h=t("p",null,"欢迎来到 bilibili-API-collect 社区贡献指南,本文主要面向需要进行提交贡献文档内容的用户。",-1),b=t("h2",{id:"总则",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#总则","aria-hidden":"true"},"#"),e(" 总则")],-1),m={href:"https://github.com/SocialSisterYi/bilibili-API-collect",target:"_blank",rel:"noopener noreferrer"},g={href:"https://www.bilibili.com/",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"},k=t("strong",null,"主站业务接口",-1),_={href:"https://zh.wikipedia.org/zh-cn/Markdown",target:"_blank",rel:"noopener noreferrer"},f=t("strong",null,"路径",-1),x=t("strong",null,"文件",-1),P=o('

本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如httpssecurityRpcwss

Issue与社群讨论

对文档内容存在不理解之处、以及发现文档内容有所缺失错误,可直接提出,强烈建议以发 Issue 的形式参与用户反馈,并希望关于本项目的各种交流都是公开进行的,因为这样才可以保证关键信息的一致性。

由于本项目属于文档型项目,故不设置 Issue 模板,同时允许中英文标题,但提交 Issue 请遵守以下原则:

',4),y=o("
  • 标题言简意骇,说明欲提出的问题要点,如如何通过xx接口获取yyxx接口地址已失效关于xx字段意义的探讨 建议将xx加入yy分类等标题;切勿使用表意含糊不清或索取性的标题,如怎么解决风控补充搜索的接口是什么好兄弟有没有投稿的接口等标题
  • Issue 正文应对问题进行尽可能详细的描述,展开并聚焦有关的信息,例如:“在前端页面某地址 / APP 某界面会访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
  • ",2),w={href:"https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md",target:"_blank",rel:"noopener noreferrer"},q={href:"https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways",target:"_blank",rel:"noopener noreferrer"},A=t("p",null,"同时,您还可以通过加入社群的方式参与讨论",-1),S={href:"https://jq.qq.com/?_wv=1027&k=s1M0LCcu",target:"_blank",rel:"noopener noreferrer"},I={href:"https://t.me/bilibili_API_collect_community",target:"_blank",rel:"noopener noreferrer"},T={class:"custom-container tip"},C=t("p",{class:"custom-container-title"},"✅提示",-1),E={href:"https://github.com/SocialSisterYi/bilibili-API-collect",target:"_blank",rel:"noopener noreferrer"},B={href:"https://github.com/SocialSisterYi/bilibili-API-collect",target:"_blank",rel:"noopener noreferrer"},N={class:"custom-container warning"},R=t("p",{class:"custom-container-title"},"⚠️注意",-1),j=t("p",null,[e("群内讨论同样需要遵守"),t("strong",null,"公开交流"),e("的原则,以及群内会定期清理不活跃成员。")],-1),M=t("strong",null,"QQ 交流群",-1),O={href:"https://github.com/SocialSisterYi",target:"_blank",rel:"noopener noreferrer"},Q=o('

    🈲禁止

    项目 Issue 及其相关社群中 禁止 询问讨论 风控解除、爬虫(采集)、破解、漏洞利用、买卖代码和账号 相关内容,抵制基于本项目进行的一切黑产行为!

    目录与路径结构

    目录

    ',3),V=t("strong",null,"Markdown无序列表",-1),D=t("code",null,"视频",-1),G=t("code",null,"基本信息",-1),L=t("code",null,"快照",-1),U=t("code",null,"推荐",-1),Y=t("strong",null,"Markdown 复选框",-1),W=o(`
    - [x] 视频
    +  - [x] 基本信息
    +  - [x] 快照
    +  - [x] 推荐
    +

    路径

    路径层级应当与文档目录一致,以文件夹的形式存放在项目中的/docs路径下,命名统一使用英文,如videodanmakucomment

    二级、三级路径应当存在二级三级目录,以README.md的形式

    文件

    各个子接口集整理为 md 文件,命名统一使用英文,如info.mdaction.mdlist.md

    文档文件中用于存放相关的接口的说明,如video/下的info.md,存在查询视频基本信息查询视频简介查询视频分P列表等内容

    Markdown文档内容格式

    `,8),z={href:"https://vuepress.vuejs.org/",target:"_blank",rel:"noopener noreferrer"},J={href:"https://vuepress.vuejs.org/guide/markdown.html",target:"_blank",rel:"noopener noreferrer"},H=o(`

    注:以下文档范式可根据实际情况进行调整

    头部

    文档首行为 一级标签 格式标题

    文档头部不再需要手写索引

    接口说明

    文档中可存在多个接口说明,应当遵守同一范式,依次排列在文档中

    接口说明分为标题地址说明请求参数响应正文示例这些部分

    接口标题为 二级以下 的标签,接口地址使用 引用 语法,地址只保留 REST API 路径,不应携带 query 等内容

    接口地址下方需要注明接口的请求方式,如GETPOSTPUT等,使用 斜体 语法

    若接口存在认证或鉴权,需要在说明中注明,如Cookie(SESSDATA)APP(认证是针对用户的,鉴权是针对接口使用的

    其他使用说明也可写在这里,如限制游客访问的视频需要登录

    eg:

    ## 获取视频详细信息_web端
    +
    +> https://api.bilibili.com/x/web-interface/view
    +
    +*请求方式:GET*
    +
    +认证方式:Cookie(SESSDATA)
    +
    +限制游客访问的视频需要登录
    +

    请求参数应在接口说明的下方,应注明参数类型 url 参数或 正文参数(正文参数应注明 content-type,如application/x-www-form-urlencodedmultipart/form-data),使用 加粗 语法

    对象的字段及其含义使用 表格 进行整理,表头统一为参数名类型内容必要性备注,类型为numstrboolnumsstrsfile等,必要性为必要非必要必要(可选)等,表格内每个字段为一行

    eg:

    参数名类型内容必要性备注
    aidnum稿件 avid必要 (可选)avid 与 bvid 任选
    bvidstr稿件 bvid必要 (可选)avid 与 bvid 任选

    响应正文应在请求参数的下方,接口响应的数据格式应标注,如JSON回复XML回复Protobuf回复,使用 加粗 语法

    json object 或 protobuf message 应以对象的 表格 形式书写,表头为根对象xx中的yy对象,若对象位于数组中为xx数组中的对象

    表头统一为字段类型内容备注,类型为 JSON / Protobuf 的标准类型

    不明确定义的字段说明在末尾添加问号,如播放数?;定义尚未明确的字段使用问号包于括号中占位,如(?)

    多个对象及数组,使用遍历树的顺序进行排列

    eg:

    data对象:

    字段类型内容备注
    bvidstr稿件 bvid
    aidnum稿件 avid
    videosnum稿件分P总数默认为 1
    tidnum分区 tid

    json array 或 protobuf repeated 类型使用数组的 表格 形式书写,表头统一为类型内容备注,无限长度数组表尾需要添加省略号

    数组每项内容若与实际数据有关联,内容字段则可标为(n+1)P 视频内容这样的形式

    eg:

    data中的pages数组:

    类型内容备注
    0obj1P 视频内容无分P仅有此项
    nobj(n+1)P 视频内容
    ……obj…………

    示例部分位于所有响应正文部分下方,需要加粗格式,分为请求命令示例与响应体示例两部分

    请求命令示例为一段可测试该接口的 curl 命令或 Python 脚本,使用 代码块 语法书写,命令应当尽可能简短、便于使人阅读

    示例命令中的认证信息应做脱敏处理,如 Cookie、Token、access_key 等,可替换为xxx占位

    示例命令前后可以适当添加一些文字说明

    响应体示例为一段格式化后的 JSON 或 protobuf message,使用 代码块 语法书写,并使用<details>标签进行折叠

    eg:

    示例:

    获取视频av85440373的基本信息

    curl -G 'https://api.bilibili.com/x/web-interface/view' \\
    +	--data-urlencode 'aid=85440373'
    +
    <details>
    +<summary>查看响应示例:</summary>
    +
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "bvid": "BV117411r7R1",
    +    "aid": 85440373,
    +    "videos": 1,
    +    "tid": 28,
    +    "tname": "原创音乐",
    +    "copyright": 1,
    +    ...
    +
    </details>
    +

    枚举值与属性位

    接口返回或请求中若存在一些 enum 类型或二进制属性位,应当单独进行探讨,如视频的属性位attribute或视频清晰度qn

    这些值及其说明使用 表格 进行整理,表头统一为 / 代码 / 含义备注

    这些枚举值或属性位的用法应附加文字说明

    eg:

    含义备注
    6240P 极速仅 MP4 格式支持
    platform=html5时有效
    16360P 流畅
    32480P 清晰
    64720P 高清WEB 端默认值
    B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址
    无 720P 时则为 720P60
    74720P60 高帧率登录认证
    801080P 高清TV 端与 APP 端默认值
    登录认证

    Proto定义格式

    `,49),X={href:"https://protobuf.dev/",target:"_blank",rel:"noopener noreferrer"},F={href:"https://grpc.io/docs/",target:"_blank",rel:"noopener noreferrer"},K=o(`

    存放于项目的/grpc_api路径下,使用包名进行路径层级的组织,如

    /grpc_api/bilibili/main/community/reply/v1/reply.proto
    +/grpc_api/bilibili/app/archive/v1/archive.proto
    +/grpc_api/bilibili/app/view/v1/view.proto
    +

    proto 文件内使用 单行注释 标注字段或对象的含义,如

    // UP主信息
    +message Author {
    +	// UP主mid
    +	int64 mid = 1;
    +	// UP主昵称
    +	string name = 2;
    +	// UP主头像url
    +	string face = 3;
    +}
    +

    文档提交

    TODO

    `,6);function Z($,ee){const s=a("ExternalLinkIcon"),d=a("RouterLink");return r(),i("div",null,[u,h,b,t("p",null,[t("a",m,[e("bilibili-API-collect"),n(s)]),e(" 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 "),t("a",g,[e("B站(哔哩哔哩)"),n(s)]),e(" API(应用程序接口) 文档,使用 "),t("a",v,[e("CC-BY-NC 4.0 协议"),n(s)]),e(" 开源,它将无差别收集整理相关的"),k,e("。")]),t("p",null,[e("该项目使用 "),t("a",_,[e("MarkDown"),n(s)]),e(" 语法进行文档书写,按照业务类型及功能以 "),f,e(" + "),x,e(" 形式索引,任何用户都可通过 Pull Request 提供自己分析出的接口地址与使用说明。")]),P,t("ol",null,[y,t("li",null,[e("提出问题时注意 "),t("a",w,[e("提问的智慧"),n(s)]),e(" 并且 "),t("a",q,[e("别像弱智一样提问"),n(s)])])]),A,t("ul",null,[t("li",null,[e("QQ 交流群:"),t("a",S,[e("邀请链接"),n(s)])]),t("li",null,[e("Telegram 交流群:"),t("a",I,[e("@bilibili_API_collect_community"),n(s)])])]),t("div",T,[C,t("p",null,[e("QQ 交流群为综合技术交流群(兼 Owner 的粉丝群),可交流探讨任何技术,包括但不限于 "),t("a",E,[e("BAC 项目"),n(s)])]),t("p",null,[e("Telegram 交流群主要用作 "),t("a",B,[e("BAC 项目"),n(s)]),e(" 的 Github Bot 接收,也可以进行项目相关的讨论,但不建议在此讨论交流其他内容(公开群)")])]),t("div",N,[R,j,t("p",null,[M,e(" 的加群问题答案可以去 "),t("a",O,[e("Owner 的主页"),n(s)]),e(" Contact 部分找到,如果您填写“我不知道,从 Github 来的“那么管理员将有理由禁止您进群讨论!")])]),Q,t("p",null,[e("文档目录以 "),V,e(" 语法写在 "),n(d,{to:"/"},{default:l(()=>[e("README.md")]),_:1}),e(" 中,使用缩进标识文档的层级,如"),D,e("下存在"),G,e("、"),L,e("、"),U,e("等子分类,使用 "),Y,e(" 语法该标注文档是否编写完成")]),W,t("p",null,[e("文档使用 "),t("a",z,[e("Vuepress"),n(s)]),e(" 生成,可以使用 "),t("a",J,[e("Vuepress md 扩展语法"),n(s)]),e("编写")]),H,t("p",null,[e("proto 文件为 "),t("a",X,[e("Protocol Buffers"),n(s)]),e(" 以及 "),t("a",F,[e("gRPC"),n(s)]),e(" 的数据结构体定义,多用于客户端的接口,本文档也做相关的收集")]),K])}const ne=c(p,[["render",Z],["__file","CONTRIBUTING.html.vue"]]);export{ne as default}; diff --git a/assets/ClockIn.html-36eccb71.js b/assets/ClockIn.html-36eccb71.js new file mode 100644 index 0000000000..501cdae69d --- /dev/null +++ b/assets/ClockIn.html-36eccb71.js @@ -0,0 +1 @@ +const a=JSON.parse('{"key":"v-37a976bc","path":"/docs/manga/ClockIn.html","title":"签到","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/manga/ClockIn.md"}');export{a as data}; diff --git a/assets/ClockIn.html-6e2ed69b.js b/assets/ClockIn.html-6e2ed69b.js new file mode 100644 index 0000000000..62e81877d5 --- /dev/null +++ b/assets/ClockIn.html-6e2ed69b.js @@ -0,0 +1,95 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    签到

    https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    platformstr平台必要android
    devicestr平台非必要h5

    正文参数( application/json ):

    参数名类型内容必要性备注
    typenum非必要补签时使用
    datestr补签日期必要补签时使用

    json回复:

    根对象:

    字段类型内容备注
    codenum / str返回值0:成功
    invalid_argument:今日已签到
    msgstr错误信息成功:空
    已签到:clockin clockin is duplicate
    metaobj错误信息今日已签到时存在
    dataobj

    示例:

    普通签到:

    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'
    +
    签到成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {}
    +}
    +
    今日已签到:
    {
    +  "code": "invalid_argument",
    +  "msg": "clockin clockin is duplicate",
    +  "meta": {
    +    "argument": "clockin"
    +  }
    +}
    +

    补签:

    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"}'
    +
    补签成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {}
    +}
    +

    查询签到状态

    https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj信息本体

    data 对象:

    字段类型内容备注
    day_countnum连续签到天数
    statusnum今日是否已签到0:未签到
    1:已签到
    credit_iconstr
    sign_before_iconstr
    sign_today_iconstr
    breathe_iconstr
    new_credit_x_iconstr
    coupon_picstr
    pointsarray一次签到周期中每次签到可获得点数
    point_infosarray

    point_infos数组中的对象:

    字段类型内容备注
    pointnum签到可获取积分
    origin_pointnum
    is_activitybool
    titlestr签到奖励描述

    示例:

    curl -L -X POST 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo' \\
    +-H 'Cookie: SESSDATA=xxx'
    +
    成功:
    {
    +  "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"
    +  }
    +}
    +
    `,33),e=[o];function i(c,l){return s(),a("div",null,e)}const d=n(p,[["render",i],["__file","ClockIn.html.vue"]]);export{d as default}; diff --git a/assets/Comic.html-60b0b4e2.js b/assets/Comic.html-60b0b4e2.js new file mode 100644 index 0000000000..9d026cd262 --- /dev/null +++ b/assets/Comic.html-60b0b4e2.js @@ -0,0 +1,3976 @@ +import{_ as s,o as n,c as a,e as p}from"./app-3168cb19.js";const t={},o=p(`

    购买漫画章节

    https://manga.bilibili.com/twirp/comic.v1.Comic/BuyEpisode

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证必要使用APP鉴权方式时必填
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.13.0非必要
    buildstr36413002非必要
    channelstrbilicomic非必要
    platformstrandroid必要
    devicestrandroid非必要
    buvidstr非必要
    machinestrsamsung+SM-G9730非必要
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    epIdnum章节id必要
    buyMethodnum购买方式必要2:漫读券
    4:新人等免
    5:通用券
    couponIdnum漫读券id必要
    comicIdnum漫画id可选buyMethod:4为必要
    autoPayGoldStatusnum2可选buyMethod:2,5 为必要
    buyMethod:4为不必要
    isPresalenum0可选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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    0:本话无需购买
    1:没有足够的卡券使用次数
    msgstr错误信息

    示例:

    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
    +}'
    +
    购买成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "auto_use_item": ""
    +  }
    +}
    +

    获取漫画详情

    https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证非必要可不登录访问
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.13.0非必要
    buildstr36413002非必要
    channelstrbilicomic非必要
    platformstrandroid非必要可选值:web/android
    devicestrandroid必要如不填则不会获取ep_list信息,可选值:pc/android
    buvidstr非必要
    machinestrsamsung+SM-G9730非必要
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    comicIdnum漫画id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    idnum漫画id
    titlestr漫画名称
    comic_typenum0,1
    page_defaultnum0,1,2,4,8
    page_allownum
    horizontal_coverstr横板封面
    square_coverstr方形封面
    vertical_coverstr竖版封面
    author_namearray作者列表
    stylesarray
    last_ordnum最新一话序号
    is_finishnum完结状态
    0:未完结 1:已完结
    statusnum-1,0
    favnum
    read_ordernum
    evaluatenum漫画简介
    totalnum总话数
    ep_listarray章节信息
    release_timestr
    is_limitnum
    read_epidnum
    last_read_timestr
    is_downloadnum
    read_short_titlestr
    styles2array
    renewal_timestr
    last_short_titlestr最新一话短标题
    discount_typenum
    discountnum
    discount_endstr
    no_rewardbool
    batch_discount_typenum
    ep_discount_typenum
    has_fav_activitybool
    fav_free_amountnum
    allow_wait_freebool是否等就免费
    wait_hournum等待时间(小时)
    wait_free_atnum等待时间(小时)
    no_danmakunum
    auto_pay_statusnum
    no_month_ticketbool
    immersivebool
    no_discountbool
    show_typenum
    pay_modenum
    chaptersarray
    classic_linesstr漫画简介
    pay_for_newnum
    fav_comic_infoobj
    serial_statusnum
    series_infoobj
    album_countnum
    wiki_idnum
    disable_coupon_amountnum
    japan_comicbool是否为日本漫画
    interact_valuenum
    temporary_finish_timestr
    video
    introductionstr介绍
    comment_statusnum
    no_screenshotbool
    typenum
    vomic_cvsarray
    no_rankbool
    presale_epsarray
    presale_textstr
    presale_discountnum
    no_leaderboardbool

    ep_list数组中的对象:

    字段类型内容备注
    idnum章节id
    ordnum章节序号,最新章节排在前面
    readnum是否阅读过,0:没有 1:阅读过
    pay_modenum
    is_lockedbool是否处于锁定状态
    pay_goldnum解锁所需漫币
    sizenum文件大小(字节)
    short_titlestr短标题
    is_in_freebool
    titlestr标题
    coverstr封面
    pub_timestr发布日期
    commentsnum评论数
    unlock_expire_atstr
    unlock_typenum
    allow_wait_freebool
    progressstr
    like_countnum点赞数
    chapter_idnum
    typenum
    extranum

    styles2数组中的对象:

    字段类型内容备注
    idnum漫画风格id
    namestr漫画风格名称

    fav_comic_info对象:

    字段类型内容备注
    has_fav_activitybool
    fav_free_amountnum
    fav_coupon_typenum

    series_info对象:

    字段类型内容备注
    idnum
    comicsarray

    示例:

    curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail?device=pc' \\
    +-H 'Content-Type: application/json' \\
    +--data-raw '{
    +    "comicId": 28500
    +}'
    +
    查看响应示例:
    {
    +  "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
    +  }
    +}
    +
    `,44),e=[o];function l(c,u){return n(),a("div",null,e)}const i=s(t,[["render",l],["__file","Comic.html.vue"]]);export{i as default}; diff --git a/assets/Comic.html-9ee1e999.js b/assets/Comic.html-9ee1e999.js new file mode 100644 index 0000000000..5043d949b9 --- /dev/null +++ b/assets/Comic.html-9ee1e999.js @@ -0,0 +1 @@ +const a=JSON.parse('{"key":"v-14f31e98","path":"/docs/manga/Comic.html","title":"购买漫画章节","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/manga/Comic.md"}');export{a as data}; diff --git a/assets/Download.html-c420264b.js b/assets/Download.html-c420264b.js new file mode 100644 index 0000000000..740f07503a --- /dev/null +++ b/assets/Download.html-c420264b.js @@ -0,0 +1,81 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const d={},e=a(`

    获取当前话全部图片地址

    https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证必要使用APP鉴权方式时必填
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.21.0非必要
    buildstr36421000非必要
    channelstrbilicomic非必要
    platformstrandroid非必要
    devicestrandroid非必要
    buvidstrXY118701XXXXXXXXX104911DXXXXXCAEXXXXE非必要长度为37
    machinestr非必要手机品牌+型号
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    epId(ep_id)num当前话的id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj

    data 对象:

    字段类型内容备注
    pathstr.index 文件路径
    imagesarray本话图片信息
    last_modifiedstr本话信息最后修改时间
    hoststrhttps://manga.hdslb.com
    videoobj

    images 数组中的对象:

    字段类型内容备注
    pathstr图片的路径不包含host
    xnum图片宽度单位:像素px
    ynum图片高度单位:像素px
    video_pathstr
    video_sizestr

    video 对象:

    字段类型内容备注
    svidstr
    filenamestr
    routestr
    resourcearray
    raw_widthstr
    raw_heightstr
    raw_rotatestr
    img_urlsarray
    bin_urlstr
    img_x_lennum
    img_x_sizenum
    img_y_lennum
    img_y_sizenum

    示例:

    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
    +}'
    +
    查看响应示例:
    {
    +  "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_keystrAPP登录凭证必要使用APP鉴权方式时必填
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.21.0非必要
    buildstr36421000非必要
    channelstrbilicomic非必要
    platformstrandroid非必要
    devicestrandroid非必要
    buvidstrXY118701XXXXXXXXX104911DXXXXXCAEXXXXE非必要长度为37
    machinestrsamsung+SM-G9730非必要手机品牌+型号
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    urlsstr请求token的图片地址必要[\\"https://i0.hdslb.com{path}\\"]
    {path}代表图片的相对网站路径,支持jpg和webp

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataarray

    data 数组中的对象:

    字段类型内容备注
    urlstr图片下载的地址此时网址开头 https://manga.hdslb.com
    tokenstr图片下载需要的token

    示例:

    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\\"]"
    +}'
    +
    查看响应示例:
    {
    +  "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
    +

    :若不加取图 Token 直接访问 https://(i0|i1).hdslb.com/bfs/(manga|new_dyn|archive)/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg均无法获取

    `,44),o=[e];function p(r,i){return s(),n("div",null,o)}const l=t(d,[["render",p],["__file","Download.html.vue"]]);export{l as default}; diff --git a/assets/Download.html-d94bfad4.js b/assets/Download.html-d94bfad4.js new file mode 100644 index 0000000000..6b0e74210b --- /dev/null +++ b/assets/Download.html-d94bfad4.js @@ -0,0 +1 @@ +const a=JSON.parse('{"key":"v-db4c378a","path":"/docs/manga/Download.html","title":"获取当前话全部图片地址","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/manga/Download.md"}');export{a as data}; diff --git a/assets/QR.html-a05c71a7.js b/assets/QR.html-a05c71a7.js new file mode 100644 index 0000000000..d12c5d28a1 --- /dev/null +++ b/assets/QR.html-a05c71a7.js @@ -0,0 +1,228 @@ +import{_ as e,r as p,o,c as d,a as n,b as s,d as c,w as l,e as a}from"./app-3168cb19.js";const r="/bilibili-API-collect/assets/2233login-eb1b3759.png",i={},u=a('

    二维码登录

    扫码登录流程(伪代码)

    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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    urlstr二维码内容 (登录页面 url)
    qrcode_keystr扫码登录秘钥恒为32字符

    示例:

    url中的值生成二维码,等待手机客户端扫描,并将qrcode_key保存备用

    curl 'https://passport.bilibili.com/x/passport-login/web/qrcode/generate'
    +
    查看响应示例:
    {
    +    "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

    url参数:

    参数名类型内容必要性备注
    qrcode_keystr扫码登录秘钥必要

    密钥超时为180秒

    验证登录成功后会进行设置以下cookie项:

    DedeUserID DedeUserID__ckMd5 SESSDATA bili_jct

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    dataobj信息本体

    data 对象:

    字段类型内容备注
    urlstr游戏分站跨域登录 url未登录为空
    refresh_tokenstr刷新refresh_token未登录为空
    timestampnum登录时间未登录为0
    时间戳 单位为毫秒
    codenum0:扫码登录成功
    86038:二维码已失效
    86090:二维码已扫码未确认
    86101:未扫码
    messagestr扫码状态信息

    示例:

    使用扫描秘钥c3bd5286a2b40a822f5f60e9bf3f602e登录

    curl -G "https://passport.bilibili.com/x/passport-login/web/qrcode/poll"\\
    +--data-urlencode 'qrcode_key=c3bd5286a2b40a822f5f60e9bf3f602e' \\
    +-c 'cookie.txt'
    +

    当密钥正确时但未扫描时code86101

    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "url": "",
    +    "refresh_token": "",
    +    "timestamp": 0,
    +    "code": 86101,
    +    "message": "未扫码"
    +  }
    +}
    +

    扫描成功但手机端未确认时code86090

    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "url": "",
    +        "refresh_token": "",
    +        "timestamp": 0,
    +        "code": 86090,
    +        "message": "二维码已扫码未确认"
    +    }
    +}
    +

    扫描成功手机端确认登录后,code0,并向浏览器写入cookie

    查看响应示例:
    {
    +    "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/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
    +

    二维码失效时code86038

    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    statusbooltrue作用尚不明确
    tsnum请求时间时间戳
    dataobj信息本体

    data对象:

    字段类型内容备注
    urlstr二维码内容 (登录页面 url)
    oauthKeystr扫码登录秘钥恒为32字符

    示例:

    url中的值生成二维码,等待手机客户端扫描,并将oauthKey保存备用

    curl 'https://passport.bilibili.com/qrcode/getLoginUrl'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"status": true,
    +	"ts": 1583314311,
    +	"data": {
    +		"url": "https://passport.bilibili.com/qrcode/h5/login?oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e",
    +		"oauthKey": "c3bd5286a2b40a822f5f60e9bf3f602e"
    +	}
    +}
    +

    扫码登录(web端-旧版)

    接口已失效,请求结果始终为 { code: 20000, message: '该版本已不支持当前功能,请升级新版本!' }

    https://passport.bilibili.com/qrcode/getLoginInfo

    请求方式:POST

    内容已过时:

    密钥超时为180秒

    验证登录成功后会进行设置以下cookie项:

    DedeUserID DedeUserID__ckMd5 SESSDATA bili_jct

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    oauthKeystr扫码登录秘钥必要
    gourlstr跳转url非必要默认为http://www.bilibili.com

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功,
    20000:该版本已不支持当前功能,请升级新版本!
    messagestr正确无
    tsnum扫码时间错误无
    statusbool扫码是否成功true:成功
    false:未成功
    data正确时:obj
    错误时:num
    正确时:游戏分站url
    错误时:错误代码
    未成功时:
    -1:密钥错误
    -2:密钥超时
    -4:未扫描
    -5:未确认

    data 对象:

    字段类型内容备注
    urlstr游戏分站跨域登录 url

    示例:

    使用扫描秘钥c3bd5286a2b40a822f5f60e9bf3f602e登录

    curl "https://passport.bilibili.com/qrcode/getLoginInfo"\\
    +--data-urlencode 'oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e' \\
    +-c 'cookie.txt'
    +

    当密钥正确时但未扫描时statusfalsedata-4

    查看响应示例:
    {
    +    "status":false,
    +    "data":-4,
    +    "message":"Can't scan~"
    +}
    +

    扫描成功但手机端未确认时statusfalsedata-5

    查看响应示例:
    {
    +    "status":false,
    +    "data":-5,
    +    "message":"Can't confirm~"
    +}
    +

    扫描成功手机端确认登录后,statustruedata为对象,并向浏览器写入cookie

    查看响应示例:
    {
    +	"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/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 ):

    参数名类型内容必要性备注
    appkeystrAPP 密钥APP 方式必要可用
    local_idnumTV 端 idTV 端必要可为0
    tsnum当前时间戳APP 方式必要
    signstrAPP 签名APP 方式必要
    mobi_appstr平台标识非必要会被拼接到返回的 url query

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    urlstr二维码内容 url
    auth_codestr扫码登录秘钥恒为 32 字符

    示例:

    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'
    +
    查看响应示例:
    {
    +  "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):

    参数名类型内容必要性备注
    appkeystrAPP密钥APP方式必要可用
    auth_codestr扫码秘钥必要
    local_idnumTV端idTV端必要可为0
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    -404:啥都木有
    86038:二维码已失效
    86039:二维码尚未确认
    86090:二维码已扫码未确认
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    信息本体

    data对象:

    字段类型内容备注
    midnum登录用户mid
    access_tokenstrAPP登录Token
    refresh_tokenstrAPP刷新Token
    expires_innum有效时间默认:15552000秒,等于180天

    示例:

    使用扫描秘钥6214464b3025541abf6f654cf7569a01进行验证登录

    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' 
    +
    查看响应示例:
    {
    +  "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"
    +    ]
    +  }
    +}
    +

    appkey 可用列表

    `,100),k=a('
    APPKEYAPPSECplatformAPP类型neuronAppIdmobi_app2备注
    783bbb7264451d822653583c8873dea268ab9386918b1d65android粉版1android仅获取用户信息时使用(7.X及更新版本)
    8d23902c1688a798710f0212e62bd499b8d3ac6e1db9302aandroidAndroidBiliThings??
    bca7e84c2d947ac660698ba2f68e01ce44738920a0ffe768?login-?
    27eb53fc9058f8c3c2ed53a74eeefe3cf99fbd01d8c9c375web/ios?---第三方授权使用
    4409e2ce8ffd12b859b43e04ad6965f34319062b478f83ddandroid云视听小电视(TV版)9?android_tv_yst?
    dfca71928277209bb5475a8825547a4fc26c7d518eaaa02eandroidHD 版5android_hd

    注意:

    通过某一组 APPKEY/APPSEC 获取到的 access_token,当接口需要 sign 签名时也只能使用该组 APPKEY/APPSEC,否则出现 { code: -663, message: '鉴权失败,请联系账号组', ttl: 1 } 错误。

    例外:

    783bbb7264451d82/2653583c8873dea268ab9386918b1d65 获取到的 access_token 可配合 1d8b6e7d45233436/560c52ccd288fed045859ed18bffd973 使用。

    ',5);function b(v,m){const t=p("RouterLink");return o(),d("div",null,[u,n("p",null,[n("strong",null,[s("仅覆盖 "),c(t,{to:"/docs/misc/sign/APPKey.html"},{default:l(()=>[s("docs/misc/sign/APPKey")]),_:1}),s(" 中包含的 appkey")])]),k])}const q=e(i,[["render",b],["__file","QR.html.vue"]]);export{q as default}; diff --git a/assets/QR.html-bff1a326.js b/assets/QR.html-bff1a326.js new file mode 100644 index 0000000000..43747987b9 --- /dev/null +++ b/assets/QR.html-bff1a326.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-d18ced94","path":"/docs/login/login_action/QR.html","title":"二维码登录","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"扫码登录流程(伪代码)","slug":"扫码登录流程-伪代码","link":"#扫码登录流程-伪代码","children":[]},{"level":2,"title":"web端扫码登录","slug":"web端扫码登录","link":"#web端扫码登录","children":[{"level":3,"title":"申请二维码(web端)","slug":"申请二维码-web端","link":"#申请二维码-web端","children":[]},{"level":3,"title":"扫码登录(web端)","slug":"扫码登录-web端","link":"#扫码登录-web端","children":[]}]},{"level":2,"title":"web端扫码登录-旧版","slug":"web端扫码登录-旧版","link":"#web端扫码登录-旧版","children":[{"level":3,"title":"申请二维码(web端-旧版)","slug":"申请二维码-web端-旧版","link":"#申请二维码-web端-旧版","children":[]},{"level":3,"title":"扫码登录(web端-旧版)","slug":"扫码登录-web端-旧版","link":"#扫码登录-web端-旧版","children":[]}]},{"level":2,"title":"TV端扫码登录","slug":"tv端扫码登录","link":"#tv端扫码登录","children":[{"level":3,"title":"申请二维码(TV端)","slug":"申请二维码-tv端","link":"#申请二维码-tv端","children":[]},{"level":3,"title":"扫码登录(TV端)","slug":"扫码登录-tv端","link":"#扫码登录-tv端","children":[]},{"level":3,"title":"appkey 可用列表","slug":"appkey-可用列表","link":"#appkey-可用列表","children":[]}]}],"git":{},"filePathRelative":"docs/login/login_action/QR.md"}');export{e as data}; diff --git a/assets/SMS.html-60911019.js b/assets/SMS.html-60911019.js new file mode 100644 index 0000000000..f18f5dfa04 --- /dev/null +++ b/assets/SMS.html-60911019.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-53277122","path":"/docs/login/login_action/SMS.html","title":"短信登录","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取国际冠字码_web端","slug":"获取国际冠字码-web端","link":"#获取国际冠字码-web端","children":[]},{"level":2,"title":"发送短信验证码_app端","slug":"发送短信验证码-app端","link":"#发送短信验证码-app端","children":[]},{"level":2,"title":"发送短信验证码_web端","slug":"发送短信验证码-web端","link":"#发送短信验证码-web端","children":[]},{"level":2,"title":"使用短信验证码登录_app端","slug":"使用短信验证码登录-app端","link":"#使用短信验证码登录-app端","children":[]},{"level":2,"title":"使用短信验证码登录_web端","slug":"使用短信验证码登录-web端","link":"#使用短信验证码登录-web端","children":[]}],"git":{},"filePathRelative":"docs/login/login_action/SMS.md"}');export{e as data}; diff --git a/assets/SMS.html-94182c8d.js b/assets/SMS.html-94182c8d.js new file mode 100644 index 0000000000..ce71849719 --- /dev/null +++ b/assets/SMS.html-94182c8d.js @@ -0,0 +1,144 @@ +import{_ as p,r as d,o as l,c,a as n,d as t,w as e,b as s,e as o}from"./app-3168cb19.js";const i={},r=n("h1",{id:"短信登录",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#短信登录","aria-hidden":"true"},"#"),s(" 短信登录")],-1),u=n("p",null,"web端短信登录流程:",-1),k=o("
  • 发送短信,使用国际地区代码cid+手机号码tel+登录密钥token+极验challenge+验证结果validate+验证结果seccode
  • 提交短信验证码以验证登录操作,使用国际地区代码cid+手机号码tel+短信验证码code
  • ",2),h=o(`

    获取国际冠字码_web端

    https://passport.bilibili.com/web/generic/country/list

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj数据本体

    data对象:

    字段类型内容备注
    commonarray常用国家&地区
    othersarray其他国家&地区

    data中的commonothers数组:

    类型内容备注
    0obj国家&地区1
    nobj国家&地区(n+1)
    ……obj…………

    commonothers数组中的对象:

    字段类型内容备注
    idnum国际代码值
    cnamestr国家&地区名
    country_idstr国家&地区区号

    示例:

    curl 'https://passport.bilibili.com/web/generic/country/list'
    +
    查看响应示例:
    {
    +    "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"
    +            },
    +            …………
    +        ]
    +    }
    +}
    +

    发送短信验证码_app端

    https://passport.bilibili.com/x/passport-login/sms/send

    请求方式:POST

    同手机号短信发送 CD 时间为 60s

    短信验证码 timeout 为 5min

    验证内容由第一次返回进行处理,解析recaptcha_url的params传到极验进行验证后取到验证结果入参后再次调用即可

    正文参数 (application/x-www-form-urlencoded):

    `,22),m=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),b=n("tr",null,[n("td",null,"cid"),n("td",null,"num"),n("td",null,"国际冠字码"),n("td",null,"必要"),n("td",null,[s("可以从"),n("a",{href:"#%E8%8E%B7%E5%8F%96%E5%9B%BD%E9%99%85%E5%86%A0%E5%AD%97%E7%A0%81(web%E7%AB%AF)"},"获取国际冠字码"),s("获取")])],-1),v=n("tr",null,[n("td",null,"tel"),n("td",null,"num"),n("td",null,"手机号码"),n("td",null,"必要"),n("td")],-1),g=n("tr",null,[n("td",null,"login_session_id"),n("td",null,"str"),n("td",null,"登录标识"),n("td",null,"必要"),n("td",null,"uuid去掉'-'后得到")],-1),_=n("td",null,"recaptcha_token",-1),y=n("td",null,"str",-1),q=n("td",null,"登录 API token",-1),E=n("td",null,"必要",-1),w=n("td",null,"gee_challenge",-1),A=n("td",null,"str",-1),f=n("td",null,"极验 challenge",-1),x=n("td",null,"必要",-1),S=n("tr",null,[n("td",null,"gee_validate"),n("td",null,"str"),n("td",null,"极验 result"),n("td",null,"必要"),n("td",null,"极验验证后得到")],-1),j=n("tr",null,[n("td",null,"gee_seccode"),n("td",null,"str"),n("td",null,[s("极验 result +"),n("code",null,"|jordan")]),n("td",null,"必要"),n("td",null,"极验验证后得到")],-1),D=n("tr",null,[n("td",null,"channel"),n("td",null,"str"),n("td",null,"通道?"),n("td",null,"必要"),n("td",null,'一般固定值为"bili"')],-1),C=n("tr",null,[n("td",null,"buvid"),n("td",null,"str"),n("td",null,"buvid"),n("td",null,"必要"),n("td",null,"参考如下方法生成")],-1),B=n("tr",null,[n("td",null,"local_id"),n("td",null,"str"),n("td",null,"同上"),n("td",null,"必要"),n("td",null,"同上")],-1),T=n("tr",null,[n("td",null,"statistics"),n("td",null,"str"),n("td",null,"?"),n("td",null,"必要"),n("td",null,'一般固定为{"appId":1,"platform":3,"version":"7.27.0","abtest":""},非key-value入参需要转URL编码')],-1),F=o(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1002:手机号格式错误
    86203:短信发送次数已达上限
    1003:验证码已经发送
    1025:该手机号在哔哩哔哩有过永久封禁记录,无法再次注册或绑定新账号
    2400:登录秘钥错误
    2406:验证极验服务出错
    messagestr错误信息成功为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    captcha_keystr短信登录 token在下方传参时需要,请备用

    示例:

    例如手机号为13888888888,国际id为1 (中国大陆),登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行发送短信验证码操作

    curl 'https://passport.bilibili.com/x/passport-login/sms/send' \\
    +--data-urlencode 'tel=13888888888' \\
    +--data-urlencode 'cid=1' \\
    +--data-urlencode 'login_session_id=669900' \\
    +--data-urlencode 'recaptcha_token=aabbccdd' \\
    +--data-urlencode 'gee_challenge=2333' \\
    +--data-urlencode 'gee_validate=666666' \\
    +--data-urlencode 'gee_seccode=666666|jordan' \\
    +--data-urlencode 'channel=bili' \\
    +--data-urlencode 'buvid=999999' \\
    +--data-urlencode 'local_id=999999' \\
    +--data-urlencode 'statistics=%7B%22appId%22%3A1%2C%22platform%22%3A3%2C%22version%22%3A%227.27.0%22%2C%22abtest%22%3A%22%22%7D'
    +

    生成buvid方法

    static buvid() : string {
    +    var mac = [];
    +    for (let i = 0; i < 6; i++) {
    +        var min = Math.min(0, 0xff)
    +        var max = Math.max(0, 0xff)
    +        var num = parseInt((Math.random() * (min - max + 1) + max).toString()).toString(16)
    +        mac.push(num)
    +    }
    +    var md5 = this.md5(mac.join(':'));
    +    var md5Arr = md5.split('');
    +    return "XY\${md5Arr[2]}\${md5Arr[12]}\${md5Arr[22]}\${md5}"
    +}
    +
    查看响应示例:
    {"code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "captcha_key":"7542f109c3318d74847626495c68c321",
    +        "recaptcha_url":"...."
    +    }
    +}
    +

    发送短信验证码_web端

    https://passport.bilibili.com/x/passport-login/web/sms/send

    请求方式:POST

    同手机号短信发送 CD 时间为 60s

    短信验证码 timeout 为 5min

    正文参数 (application/x-www-form-urlencoded):

    `,17),M=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),P=n("tr",null,[n("td",null,"cid"),n("td",null,"num"),n("td",null,"国际冠字码"),n("td",null,"必要"),n("td",null,[s("可以从"),n("a",{href:"#%E8%8E%B7%E5%8F%96%E5%9B%BD%E9%99%85%E5%86%A0%E5%AD%97%E7%A0%81(web%E7%AB%AF)"},"获取国际冠字码"),s("获取")])],-1),G=n("tr",null,[n("td",null,"tel"),n("td",null,"num"),n("td",null,"手机号码"),n("td",null,"必要"),n("td")],-1),J=n("tr",null,[n("td",null,"source"),n("td",null,"str"),n("td",null,"登录来源"),n("td",null,"必要"),n("td",null,[n("code",null,"main_web"),s(":独立登录页"),n("br"),n("code",null,"main_mini"),s(":小窗登录")])],-1),I=n("td",null,"token",-1),U=n("td",null,"str",-1),O=n("td",null,"登录 API token",-1),L=n("td",null,"必要",-1),H=n("td",null,"challenge",-1),N=n("td",null,"str",-1),V=n("td",null,"极验 challenge",-1),$=n("td",null,"必要",-1),R=n("tr",null,[n("td",null,"validate"),n("td",null,"str"),n("td",null,"极验 result"),n("td",null,"必要"),n("td",null,"极验验证后得到")],-1),X=n("tr",null,[n("td",null,"seccode"),n("td",null,"str"),n("td",null,[s("极验 result +"),n("code",null,"|jordan")]),n("td",null,"必要"),n("td",null,"极验验证后得到")],-1),Y=o(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1002:手机号格式错误
    86203:短信发送次数已达上限
    1003:验证码已经发送
    1025:该手机号在哔哩哔哩有过永久封禁记录,无法再次注册或绑定新账号
    2400:登录秘钥错误
    2406:验证极验服务出错
    messagestr错误信息成功为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    captcha_keystr短信登录 token在下方传参时需要,请备用

    示例:

    例如手机号为13888888888,国际id为1 (中国大陆),登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行发送短信验证码操作

    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'
    +
    查看响应示例:
    {"code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "captcha_key":"7542f109c3318d74847626495c68c321"
    +    }
    +}
    +

    使用短信验证码登录_app端

    https://passport.bilibili.com/x/passport-login/login/sms

    请求方式:POST

    验证登录成功后会返回实体内容:

    mid expires_in access_token refresh_token

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从获取国际冠字码获取
    telnum手机号码必要
    login_session_idstr登录标识必要必须与上述login_session_id保持一致
    codenum短信验证码必要timeout 为 5min
    captcha_keystr短信登录 token必要上述API请求成功后返回

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1006:请输入正确的短信验证码
    1007:短信验证码已过期
    messagestr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    midstr用户uid
    expires_instr过时时间
    access_tokenstr登录 token
    refresh_tokenstr刷新 token
    cookie_infoArraycookie集合

    示例:

    使用手机号13888888888,短信验证码为123456,进行验证登录操作

    curl 'https://passport.bilibili.com/x/passport-login/login/sms' 
    +--data-urlencode 'cid=1' \\
    +--data-urlencode 'tel=13888888888' \\
    +--data-urlencode 'code=123456' \\
    +--data-urlencode 'captcha_key=999999' \\
    +--data-urlencode 'login_session_id=669900' 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "token_info": {
    +        "mid": "...",
    +        "expires_in": "114514",
    +        "access_token": "",
    +        "refresh_token": ""
    +        //...
    +    },
    +    "cookie_info":[
    +        //...
    +    ],
    +    "message": "0"
    +  }
    +}
    +

    响应头部抓包信息:

    可明显看见设置了几个cookie(填入浏览器即可成功登录)

    查看响应示例:
    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
    +
    +

    使用短信验证码登录_web端

    https://passport.bilibili.com/x/passport-login/web/login/sms

    请求方式:POST

    验证登录成功后会进行设置以下cookie项:

    DedeUserID DedeUserID__ckMd5 SESSDATA bili_jct

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从获取国际冠字码获取
    telnum手机号码必要
    codenum短信验证码必要timeout 为 5min
    sourcestr登录来源必要main_web:独立登录页
    main_mini:小窗登录
    captcha_keystr短信登录 token必要上述API请求成功后返回
    go_urlstr跳转url非必要默认为 https://www.bilibili.com
    keepbool是否记住登录非必要true:记住登录
    false:不记住登录

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1006:请输入正确的短信验证码
    1007:短信验证码已过期
    messagestr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    is_newbool是否为新注册用户false:非新注册用户
    true:新注册用户
    statusnum0未知,可能0就是成功吧
    urlstr跳转 url默认为 https://www.bilibili.com

    示例:

    使用手机号13888888888,短信验证码为123456,进行验证登录操作

    curl 'https://passport.bilibili.com/x/passport-login/web/login/sms' 
    +--data-urlencode 'cid=1' \\
    +--data-urlencode 'tel=13888888888' \\
    +--data-urlencode 'code=123456'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "is_new": false,
    +    "status": 0,
    +    "url": "https://space.bilibili.com"
    +  }
    +}
    +

    响应头部抓包信息:

    可明显看见设置了几个cookie(填入浏览器即可成功登录)

    查看响应示例:
    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
    +
    +
    `,47);function z(K,W){const a=d("RouterLink");return l(),c("div",null,[r,u,n("ol",null,[n("li",null,[t(a,{to:"/docs/login/login_action/"},{default:e(()=>[s("完成人机验证")]),_:1})]),k]),h,n("table",null,[m,n("tbody",null,[b,v,g,n("tr",null,[_,y,q,E,n("td",null,[s("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[s("申请 captcha 验证码")]),_:1}),s("接口处获取")])]),n("tr",null,[w,A,f,x,n("td",null,[s("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[s("申请 captcha 验证码")]),_:1}),s("接口处获取")])]),S,j,D,C,B,T])]),F,n("table",null,[M,n("tbody",null,[P,G,J,n("tr",null,[I,U,O,L,n("td",null,[s("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[s("申请 captcha 验证码")]),_:1}),s("接口处获取")])]),n("tr",null,[H,N,V,$,n("td",null,[s("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[s("申请 captcha 验证码")]),_:1}),s("接口处获取")])]),R,X])]),Y])}const Z=p(i,[["render",z],["__file","SMS.html.vue"]]);export{Z as default}; diff --git a/assets/Season.html-42122ee3.js b/assets/Season.html-42122ee3.js new file mode 100644 index 0000000000..03a001183d --- /dev/null +++ b/assets/Season.html-42122ee3.js @@ -0,0 +1,226 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const p={},o=a(`

    漫画赛季

    :漫画赛季仅在 app 端可见,但可以使用 Cookie 鉴权

    获取赛季信息

    https://manga.bilibili.com/twirp/user.v1.Season/GetSeasonInfo

    请求方式:POST

    :接口不鉴权可查看基本信息,鉴权后可查看赛季个人信息和赛季规则。

    认证方式:Cookie(SESSDATA)/ APP

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data 对象:

    字段类型内容备注
    current_timestr当前时间字符串ISO 8601
    start_timestr赛季开始ISO 8601
    end_timestr赛季结束ISO 8601
    remain_amountnum拥有积分未登录为 0
    season_idstr第几个赛季
    tasksarray待领取奖励的任务未登录/没有可领取时为 []
    welfarearray赛季奖励
    nextobj未知未登录为 null
    coverstr版头图片
    today_tasksarray今日的任务完成情况
    textobj赛季相关文案未登录为 null
    season_clock_inobj
    announcementobj未知未登录为 null
    lotteryobj
    mission_point_ratestr
    season_titlestr赛季标题
    point_rateobj
    rankobj

    data 对象的 rank

    字段类型内容备注
    is_visibleboolfalse

    data 对象的 tasks

    字段类型内容备注
    titlestr任务描述
    idstr
    statusnum任务状态应该都是1:待领取奖励
    typenum与 today_tasks 的一致
    amountnum可获取积分
    ctimestr完成时间ISO 8601

    data 对象的 next

    字段类型内容备注
    titlestr
    amountnum0
    gap_timenum0
    current_timenum0

    data 对象的 text

    字段类型内容备注
    noticestr赛季公告
    clonckInRulestr赛季签到规则

    data 对象的 announcement

    字段类型内容备注
    titlestr
    jump_urlstr
    enableboolfalse

    data 对象的 point_rate

    字段类型内容备注
    sign_innum0
    gamenum0
    daily_missionnum0
    week_missionnum0

    data 对象的 lottery

    字段类型内容备注
    lottery_act_idstr'0'
    enable_lotterybool是否开启抽奖
    lottery_idstr'0'
    advance_lottery_act_idstr'0'
    advance_pool_idstr'0'

    data 对象的 season_clock_in

    字段类型内容备注
    is_super_luckbool
    draw_luck_timestr
    prize_typenum
    prize_titlestr
    add_up_signnum赛季连续签到天数
    titlestr签到标题
    sign_old_amountnum
    preluck_amountnum
    continuous_daysnum连续签到天数
    address_idstr
    has_super_prizebool
    subtitlestr签到子标题
    prize_imagestr
    prize_target_daysnum
    prize_amountnum
    tomorrow_amountnum明日签到积分
    entrance_tagstr

    data 对象的 today_tasks

    字段类型内容备注
    typenum
    titlestr任务标题可能为空字符串
    amountnum可获得积分
    statusnum完成状态0:未完成
    1:待领取奖励
    2:已完成
    durationnum耗时(分)直接完成的为 0
    comicscomic 数组任务指定漫画type=22时有内容,所有账号是一致的
    page_urlstr
    progressnum已完成进度
    sub_idnumtype 一致时有效
    share_typenum0

    today_tasks对象的 comics

    字段类型内容备注
    comic_idnum漫画 id
    titlestr漫画名称
    vertical_coverstr漫画封面
    stylesstr 数组漫画类型

    data 对象的 welfare

    字段类型内容备注
    typenum奖励类型200-限免卡
    202-漫读券
    203-优惠券
    205-最终宝箱
    successnum兑换状态0-未兑换
    2-已兑换
    exchange_amountnum积分消耗
    boss_welfarebool最终奖励
    boss_remainnum最终奖励剩余
    ranknum顺序
    titlestr
    urlstr
    kind_address_idstr'0'

    示例:

    curl -X POST https://manga.bilibili.com/twirp/user.v1.Season/GetSeasonInfo
    +
    查看响应示例:
    {
    +  "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_idnum赛季 id必要必须为本赛季 id

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息

    code - msg 对照表:

    codemsg备注
    0领取成功
    2当前没有正在进行的赛季,无法兑换奖励season_id 字段不正确
    7任务已领取或者未完成没有已经完成的 today_tasks
    `,48),e=[o];function r(u,c){return n(),t("div",null,e)}const l=s(p,[["render",r],["__file","Season.html.vue"]]);export{l as default}; diff --git a/assets/Season.html-e0471143.js b/assets/Season.html-e0471143.js new file mode 100644 index 0000000000..7a958e09d2 --- /dev/null +++ b/assets/Season.html-e0471143.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-7f153540","path":"/docs/manga/Season.html","title":"漫画赛季","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取赛季信息","slug":"获取赛季信息","link":"#获取赛季信息","children":[]},{"level":2,"title":"赛季奖励领取","slug":"赛季奖励领取","link":"#赛季奖励领取","children":[]}],"git":{},"filePathRelative":"docs/manga/Season.md"}');export{e as data}; diff --git a/assets/User.html-514e9117.js b/assets/User.html-514e9117.js new file mode 100644 index 0000000000..094849485c --- /dev/null +++ b/assets/User.html-514e9117.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-36175050","path":"/docs/manga/User.html","title":"漫画用户信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取拥有的漫读券列表","slug":"获取拥有的漫读券列表","link":"#获取拥有的漫读券列表","children":[]},{"level":2,"title":"获取已购漫画","slug":"获取已购漫画","link":"#获取已购漫画","children":[]}],"git":{},"filePathRelative":"docs/manga/User.md"}');export{e as data}; diff --git a/assets/User.html-c532625a.js b/assets/User.html-c532625a.js new file mode 100644 index 0000000000..0822101edb --- /dev/null +++ b/assets/User.html-c532625a.js @@ -0,0 +1,541 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    漫画用户信息

    获取拥有的漫读券列表

    https://manga.bilibili.com/twirp/user.v1.User/GetCoupons

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证必要使用APP鉴权方式时必填

    正文参数 (application/json):

    参数名类型内容必要性备注
    pageNumnum页数必要
    pageSizenum分页大小必要默认20,取值范围[1,100]
    notExpiredbooltrue非必要
    tabTypenum1非必要
    typenum0非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj

    data 对象:

    字段类型内容备注
    total_remain_amountnum
    user_couponsarray
    coupon_infoobj

    user_coupons 数组中的对象:

    字段类型内容备注
    IDnum漫读券id
    remain_amountnum漫读券剩余数
    expire_timenum过期时间
    reasonnum获取方式
    typenum类型
    ctimenum获取时间
    total_amountnum漫读券总数
    limitsarray(?)
    type_numnum7:福利券
    will_expirenum是否即将过期?
    0:否
    1:是
    discountnum0
    discount_limitnum0
    is_from_cardnum0
    valid_timestr0001-01-01
    discount_basenum0

    coupon_info 对象:

    字段类型内容备注
    new_coupon_numnum
    coupon_will_expirenum
    rent_will_expirenum
    new_rent_numnum
    discount_will_expirenum
    new_discount_numnum
    month_ticket_will_expirenum
    new_month_ticket_numnum
    silver_will_expirenum
    new_silver_numnum
    remain_itemnum
    remain_discountnum
    remain_couponnum拥有的漫读券数量
    remain_silvernum拥有的通用券数量
    remain_shop_couponnum拥有的商城优惠券数量
    new_shop_numnum
    shop_will_expirenum
    new_suit_idnum
    remain_suit_couponnum
    new_suit_numnum
    suit_will_expirenum
    vip_priv_couponbool

    示例:

    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
    +}'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    devicestr设备非必要
    platformstr平台非必要

    正文参数 (application/json):

    参数名类型内容必要性备注
    page_numnum页数必要
    page_sizenum分页大小必要默认15

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj(array)

    dataarray中的对象

    字段类型内容备注
    idnum内部id
    comic_idstr漫画id
    comic_titlestr漫画标题
    hcoverstr横版头图
    scoverstr方形头图
    vcoverstr竖版封面图
    bought_ep_countnum已购章节数
    gold_statusnum
    coupon_statusnum
    comic_statusnum漫画状态
    last_ordnum最后一话
    ctimestr获取时间
    last_short_titlestr最后一话的短标题
    bug_typenum购买类型
    ep_for_chaptersnum
    ordersobj自动扣费顺序
    enable_auto_paybool是否开启自动付费
    typenum

    示例:

    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}'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    `,37),e=[o];function c(u,l){return n(),a("div",null,e)}const i=s(p,[["render",c],["__file","User.html.vue"]]);export{i as default}; diff --git a/assets/WeChat_Alipay.html-0bc9f08c.js b/assets/WeChat_Alipay.html-0bc9f08c.js new file mode 100644 index 0000000000..935f615cc8 --- /dev/null +++ b/assets/WeChat_Alipay.html-0bc9f08c.js @@ -0,0 +1,59 @@ +import{_ as s}from"./battery-100-5a4d9900.js";import{_ as t,o as n,c as a,e}from"./app-3168cb19.js";const p={},o=e('

    微信&支付宝方式充电

    操作流程:

    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_numnum充电B币数量必要必须在2-9999之间
    up_midnum充电对象用户mid必要
    is_bp_remains_priorbool是否优先扣除B币必要true:是
    false:否
    在B币不足时剩余的部分利用支付平台支付
    otypestr充电来源必要up:空间充电
    archive:视频充电
    oidnum充电来源代码必要空间充电:充电对象用户mid
    视频充电:稿件avid
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -500:服务器错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    qr_code_urlstr支付二维码生成内容存在转义
    qr_tokenstr扫码秘钥
    expnum获得经验数

    示例:

    申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"qr_code_url": "https://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_tokenstr扫码秘钥必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    qr_tokenstr扫码秘钥
    order_nostr留言token未成功则无此项
    用于添加充电留言
    midnum当前用户mid
    statusnum状态值若秘钥错误则无此项
    1:已支付
    2:未扫描
    3:未确认

    示例:

    当申请到的支付二维码未被扫描时,data.ststus的值为2

    curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \\
    +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "qr_token":"c7cbdc47fc424cd18f2146db653597b8",
    +        "mid":293793435,
    +        "status":2
    +    }
    +}
    +

    当申请到的支付二维码已扫描但未确认时,data.ststus的值为3

    curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \\
    +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "qr_token":"c7cbdc47fc424cd18f2146db653597b8",
    +        "mid":293793435,
    +        "status":3
    +    }
    +}
    +

    成功支付后,data.ststus的值为1,且data.order_no存在留言token

    curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \\
    +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "qr_token":"bd649c836c524550bfe22a369334fc05",
    +        "order_no":"BPTD36U3KP82I31RSSLG",
    +        "mid":293793435,
    +        "status":1
    +    }
    +}
    +
    `,41),d=[o];function r(c,l){return n(),a("div",null,d)}const b=t(p,[["render",r],["__file","WeChat_Alipay.html.vue"]]);export{b as default}; diff --git a/assets/WeChat_Alipay.html-bba849f5.js b/assets/WeChat_Alipay.html-bba849f5.js new file mode 100644 index 0000000000..9cca566844 --- /dev/null +++ b/assets/WeChat_Alipay.html-bba849f5.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-3661cea6","path":"/docs/electric/WeChat_Alipay.html","title":"微信&支付宝方式充电","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"申请充电二维码及扫码秘钥","slug":"申请充电二维码及扫码秘钥","link":"#申请充电二维码及扫码秘钥","children":[]},{"level":2,"title":"检查扫码支付结果","slug":"检查扫码支付结果","link":"#检查扫码支付结果","children":[]}],"git":{},"filePathRelative":"docs/electric/WeChat&Alipay.md"}');export{e as data}; diff --git a/assets/action.html-01bc4d46.js b/assets/action.html-01bc4d46.js new file mode 100644 index 0000000000..986d1bbb76 --- /dev/null +++ b/assets/action.html-01bc4d46.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-9d5f1690","path":"/docs/dynamic/action.html","title":"动态操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"删除动态","slug":"删除动态","link":"#删除动态","children":[]}],"git":{},"filePathRelative":"docs/dynamic/action.md"}');export{t as data}; diff --git a/assets/action.html-24e14d87.js b/assets/action.html-24e14d87.js new file mode 100644 index 0000000000..c1dc3e49f9 --- /dev/null +++ b/assets/action.html-24e14d87.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-3b30947e","path":"/docs/note/action.html","title":"笔记操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"保存视频笔记","slug":"保存视频笔记","link":"#保存视频笔记","children":[]},{"level":2,"title":"删除视频笔记","slug":"删除视频笔记","link":"#删除视频笔记","children":[]}],"git":{},"filePathRelative":"docs/note/action.md"}');export{e as data}; diff --git a/assets/action.html-272fbcc1.js b/assets/action.html-272fbcc1.js new file mode 100644 index 0000000000..5a5155730b --- /dev/null +++ b/assets/action.html-272fbcc1.js @@ -0,0 +1,36 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    相簿操作

    点赞相簿

    https://api.vc.bilibili.com/link_draw/v2/Vote/operate

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    doc_idnum相簿id必要
    typenum操作方式必要1:点赞
    2:取消赞
    csrf_tokenstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    3:未登录
    110022:已经操作过了
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    typenum操作方式1:点赞
    2:取消赞

    示例:

    点赞相簿id=99184721

    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'
    +
    查看响应示例:
    {
    +    "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_idnum相簿id必要
    biz_typenum2必要作用尚不明确
    csrf_tokenstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:参数错误
    -500:未登录
    -507:已收藏
    msgstr错误信息默认为OK
    messagestr错误信息默认为OK
    dataarray

    示例:

    收藏相簿id=99184721

    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'
    +
    查看响应示例:
    {
    +    "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_idnum相簿id必要
    biz_typenum2必要作用尚不明确
    csrf_tokenstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:参数错误
    -500:未登录
    msgstr错误信息默认为OK
    messagestr错误信息默认为OK
    dataarray

    示例:

    取消收藏相簿id=99184721

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "OK",
    +    "message": "OK",
    +    "data": []
    +}
    +
    `,42),o=[d];function p(r,i){return s(),n("div",null,o)}const l=t(e,[["render",p],["__file","action.html.vue"]]);export{l as default}; diff --git a/assets/action.html-2ba45e5b.js b/assets/action.html-2ba45e5b.js new file mode 100644 index 0000000000..0d13880b8b --- /dev/null +++ b/assets/action.html-2ba45e5b.js @@ -0,0 +1,22 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    大会员操作

    兑换卡券

    https://api.bilibili.com/x/vip/privilege/receive

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    typenum兑换类型必要1:B币券
    2:会员购优惠券
    3:漫画福利券
    4:会员购包邮券
    5:漫画商城优惠券
    6:装扮体验卡
    7:课堂优惠券
    csrfstrCSRF Token (位于cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值-101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    69800:网络繁忙 请稍后再试
    69801:你已领取过该权益
    0:成功
    messagestr错误信息
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/vip/privilege/receive' \\
    +	-b 'SESSDATA=xxx' \\
    +	--data-urlencode 'type=1' \\
    +	--data-urlencode 'csrf=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    大会员每日经验

    https://api.bilibili.com/x/vip/experience/add

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值-101:账号未登录
    -111:csrf 校验失败
    69198:用户经验已经领取
    6034007:请求频繁,请稍后再试
    0:成功
    messagestr错误信息\`
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    typenum0
    is_grantbool暂时发现 code 为 0 时为 true

    示例:

    curl 'https://api.bilibili.com/x/vip/experience/add' \\
    +	-b 'SESSDATA=xxx' \\
    +	--data-urlencode 'csrf=xxx'
    +
    查看响应示例:
    {
    +  "code": 69198,
    +  "message": "用户经验已经领取",
    +  "ttl": 1,
    +  "data": {
    +    "type": 0,
    +    "is_grant": false
    +  }
    +}
    +
    `,27),o=[d];function r(p,i){return s(),n("div",null,o)}const c=t(e,[["render",r],["__file","action.html.vue"]]);export{c as default}; diff --git a/assets/action.html-2ca62efe.js b/assets/action.html-2ca62efe.js new file mode 100644 index 0000000000..6400f34e24 --- /dev/null +++ b/assets/action.html-2ca62efe.js @@ -0,0 +1,218 @@ +import{_ as p,r as l,o as u,c as r,a as n,d as a,w as o,b as s,e}from"./app-3168cb19.js";const c={},d=n("h1",{id:"评论区操作",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#评论区操作","aria-hidden":"true"},"#"),s(" 评论区操作")],-1),i=n("h2",{id:"发表评论",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#发表评论","aria-hidden":"true"},"#"),s(" 发表评论")],-1),k=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/v2/reply/add")],-1),b=n("p",null,[n("em",null,"请求方式:POST")],-1),v=n("p",null,"认证方式:Cookie(SESSDATA)或APP",-1),m=n("p",null,[n("strong",null,"正文参数( application/x-www-form-urlencoded ):")],-1),q=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),h=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录Token"),n("td",null,"APP方式必要"),n("td")],-1),_=n("td",null,"type",-1),y=n("td",null,"num",-1),g=n("td",null,"评论区类型代码",-1),A=n("td",null,"必要",-1),f=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区id"),n("td",null,"必要"),n("td")],-1),x=n("tr",null,[n("td",null,"root"),n("td",null,"num"),n("td",null,"根评论rpid"),n("td",null,"非必要"),n("td",null,"二级评论以上使用")],-1),E=n("tr",null,[n("td",null,"parent"),n("td",null,"num"),n("td",null,"父评论rpid"),n("td",null,"非必要"),n("td",null,[s("二级评论同根评论id"),n("br"),s("大于二级评论为要回复的评论id")])],-1),B=n("tr",null,[n("td",null,"message"),n("td",null,"str"),n("td",null,"发送评论内容"),n("td",null,"必要"),n("td",null,[s("最大1000字符"),n("br"),s("表情使用表情转义符")])],-1),S=n("tr",null,[n("td",null,"plat"),n("td",null,"num"),n("td",null,"发送平台标识"),n("td",null,"非必要"),n("td",null,[s("1:web端"),n("br"),s("2:安卓客户端"),n("br"),s("3:ios客户端"),n("br"),s("4:wp客户端"),n("br"),s("默认为1")])],-1),w=n("tr",null,[n("td",null,"csrf"),n("td",null,"str"),n("td",null,"CSRF Token(位于cookie)"),n("td",null,"Cookie方式必要"),n("td")],-1),P=e("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -509:请求过于频繁
    12001:已经存在评论主题
    12002:评论区已关闭
    12003:禁止回复
    12006:没有该评论
    12009:评论主体的type不合法
    12015:需要评论验证码
    12016:评论内容包含敏感信息
    12025:评论字数过多
    12035:该账号被UP主列入评论黑名单
    12051:重复评论,请勿刷屏
    12052:评论区已关闭
    12045:购买后即可发表评论
    (其他错误码有待补充)
    messagestr错误信息
    ttlnum1
    dataobj数据本体

    data对象:

    ",4),T=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),j=n("tr",null,[n("td",null,"success_action"),n("td",null,"num"),n("td",null,"0"),n("td",null,[n("strong",null,"作用尚不明确")])],-1),C=n("tr",null,[n("td",null,"success_toast"),n("td",null,"str"),n("td",null,"状态文字"),n("td")],-1),D=n("tr",null,[n("td",null,"need_captcha"),n("td",null,"bool"),n("td",null,"false"),n("td",null,"评论需要验证码(未证实)")],-1),F=n("tr",null,[n("td",null,"url"),n("td",null,"str"),n("td",null,"空"),n("td",null,[n("strong",null,"作用尚不明确")])],-1),R=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"评论rpid"),n("td")],-1),O=n("tr",null,[n("td",null,"rpid_str"),n("td",null,"str"),n("td",null,"评论rpid"),n("td",null,"字串格式")],-1),N=n("tr",null,[n("td",null,"dialog"),n("td",null,"num"),n("td",null,"回复对方rpid"),n("td",null,[s("若为一级评论则为0"),n("br"),s("若为二级评论则为该评论id"),n("br"),s("大于二级评论为上一级评论id")])],-1),V=n("tr",null,[n("td",null,"dialog_str"),n("td",null,"str"),n("td",null,"回复对方rpid"),n("td",null,"字串格式")],-1),z=n("tr",null,[n("td",null,"root"),n("td",null,"num"),n("td",null,"根评论rpid"),n("td",null,[s("若为一级评论则为0"),n("br"),s("大于一级评论则为根评论id")])],-1),L=n("tr",null,[n("td",null,"root_str"),n("td",null,"str"),n("td",null,"根评论rpid"),n("td",null,"字串格式")],-1),Q=n("tr",null,[n("td",null,"parent"),n("td",null,"num"),n("td",null,"回复父评论rpid"),n("td",null,[s("若为一级评论则为0"),n("br"),s("若为二级评论则为根评论id"),n("br"),s("大于二级评论为上一级评论id")])],-1),M=n("tr",null,[n("td",null,"parent_str"),n("td",null,"str"),n("td",null,"回复父评论rpid"),n("td",null,"字串格式")],-1),U=n("td",null,"emote",-1),W=n("td",null,"obj",-1),G=n("td",null,"表情转义符信息",-1),H=n("td",null,"reply",-1),I=n("td",null,[s("有效时:obj"),n("br"),s("无效时:null")],-1),J=n("td",null,null,-1),K=e(`

    示例:

    给视频av243322853发送内容为测试test[泠鸢yousa_awsl]的评论(带有表情转义符),平台标识为1(web端)

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    `,10),X=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),Y=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录Token"),n("td",null,"APP方式必要"),n("td")],-1),Z=n("td",null,"type",-1),$=n("td",null,"num",-1),nn=n("td",null,"评论区类型代码",-1),sn=n("td",null,"必要",-1),tn=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区id"),n("td",null,"必要"),n("td")],-1),an=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"目标评论rpid"),n("td",null,"必要"),n("td")],-1),on=n("tr",null,[n("td",null,"action"),n("td",null,"num"),n("td",null,"操作代码"),n("td",null,"非必要"),n("td",null,[s("默认为0"),n("br"),s("0:取消赞"),n("br"),s("1:点赞")])],-1),en=n("tr",null,[n("td",null,"csrf"),n("td",null,"str"),n("td",null,"CSRF Token(位于cookie)"),n("td",null,"Cookie方式必要"),n("td")],-1),pn=e(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12004:禁止操作 赞或踩
    12006:没有该评论
    12009:评论主体的type不合法
    12011:不合法的赞或踩
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点赞视频av243322853下评论rpid=3039053308

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    点踩评论

    https://api.bilibili.com/x/v2/reply/hate

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    点踩成功后会同时消去该评论的点赞

    正文参数( application/x-www-form-urlencoded ):

    `,13),ln=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),un=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录Token"),n("td",null,"APP方式必要"),n("td")],-1),rn=n("td",null,"type",-1),cn=n("td",null,"num",-1),dn=n("td",null,"评论区类型代码",-1),kn=n("td",null,"必要",-1),bn=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区id"),n("td",null,"必要"),n("td")],-1),vn=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"目标评论rpid"),n("td",null,"必要"),n("td")],-1),mn=n("tr",null,[n("td",null,"action"),n("td",null,"num"),n("td",null,"操作代码"),n("td",null,"非必要"),n("td",null,[s("默认为0"),n("br"),s("0:取消踩"),n("br"),s("1:点踩")])],-1),qn=n("tr",null,[n("td",null,"csrf"),n("td",null,"str"),n("td",null,"CSRF Token(位于cookie)"),n("td",null,"Cookie方式必要"),n("td")],-1),hn=e(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12004:禁止操作 赞或踩
    12006:没有该评论
    12009:评论主体的type不合法
    12011:不合法的赞或踩
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点踩视频av243322853下评论rpid=3039053308

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除评论

    https://api.bilibili.com/x/v2/reply/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    只能删除自己的评论,或自己管理的评论区下的评论

    正文参数( application/x-www-form-urlencoded ):

    `,13),_n=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),yn=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录Token"),n("td",null,"APP方式必要"),n("td")],-1),gn=n("td",null,"type",-1),An=n("td",null,"num",-1),fn=n("td",null,"评论区类型代码",-1),xn=n("td",null,"必要",-1),En=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区id"),n("td",null,"必要"),n("td")],-1),Bn=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"目标评论rpid"),n("td",null,"必要"),n("td")],-1),Sn=n("tr",null,[n("td",null,"csrf"),n("td",null,"str"),n("td",null,"CSRF Token(位于cookie)"),n("td",null,"Cookie方式必要"),n("td")],-1),wn=e(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -403:权限不足
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12009:评论主体的type不合法
    12022:已经被删除了
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1作用尚不明确

    示例:

    删除av243322853下评论rpid=3039053308

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    置顶评论

    https://api.bilibili.com/x/v2/reply/top

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    只能置顶自己管理的评论区中的一级评论

    正文参数( application/x-www-form-urlencoded ):

    `,13),Pn=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),Tn=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录Token"),n("td",null,"APP方式必要"),n("td")],-1),jn=n("td",null,"type",-1),Cn=n("td",null,"num",-1),Dn=n("td",null,"评论区类型代码",-1),Fn=n("td",null,"必要",-1),Rn=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区id"),n("td",null,"必要"),n("td")],-1),On=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"目标评论rpid"),n("td",null,"必要"),n("td")],-1),Nn=n("tr",null,[n("td",null,"action"),n("td",null,"num"),n("td",null,"操作代码"),n("td",null,"非必要"),n("td",null,[s("默认为0"),n("br"),s("0:取消置顶"),n("br"),s("1:设为置顶")])],-1),Vn=n("tr",null,[n("td",null,"csrf"),n("td",null,"str"),n("td",null,"CSRF Token(位于cookie)"),n("td",null,"Cookie方式必要"),n("td")],-1),zn=e(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -403:权限不足
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12006:没有该评论
    12009:评论主体的type不合法
    12029:已经有置顶评论
    12030:不能置顶非一级评论
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    置顶视频av243322853下评论rpid=2940645593

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    举报评论

    https://api.bilibili.com/x/v2/reply/report

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    `,12),Ln=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),Qn=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录Token"),n("td",null,"APP方式必要"),n("td")],-1),Mn=n("td",null,"type",-1),Un=n("td",null,"num",-1),Wn=n("td",null,"评论区类型代码",-1),Gn=n("td",null,"必要",-1),Hn=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区id"),n("td",null,"必要"),n("td")],-1),In=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"目标评论rpid"),n("td",null,"必要"),n("td")],-1),Jn=n("tr",null,[n("td",null,"reason"),n("td",null,"num"),n("td",null,"举报类型"),n("td",null,"必要"),n("td",null,[n("strong",null,"类型代码见下表")])],-1),Kn=n("tr",null,[n("td",null,"content"),n("td",null,"str"),n("td",null,"其他举报备注"),n("td",null,"非必要"),n("td",null,[n("code",null,"reason=0"),s("时有效")])],-1),Xn=n("tr",null,[n("td",null,"csrf"),n("td",null,"str"),n("td",null,"CSRF Token(位于cookie)"),n("td",null,"Cookie方式必要"),n("td")],-1),Yn=e(`

    举报类型reason

    代码含义
    0其他
    1垃圾广告
    2色情
    3刷屏
    4引战
    5剧透
    6政治
    7人身攻击
    8内容不相关
    9违法违规
    10低俗
    11非法网站
    12赌博诈骗
    13传播不实信息
    14怂恿教唆信息
    15侵犯隐私
    16抢楼
    17青少年不良信息

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -403:权限不足
    -404:无此项
    -500:服务器错误
    -509:请求过于频繁
    12002:评论区已关闭
    12006:没有该评论
    12008:已经举报过了
    12009:评论主体的type不合法
    12019:举报过于频繁
    12077:其他举报理由过长或过短
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    举报视频av752881391下评论rpid=3062537442,理由是引战

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,9);function Zn($n,ns){const t=l("RouterLink");return u(),r("div",null,[d,i,k,b,v,m,n("table",null,[q,n("tbody",null,[h,n("tr",null,[_,y,g,A,n("td",null,[n("strong",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:o(()=>[s("类型代码见表")]),_:1})])])]),f,x,E,B,S,w])]),P,n("table",null,[T,n("tbody",null,[j,C,D,F,R,O,N,V,z,L,Q,M,n("tr",null,[U,W,G,n("td",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:o(()=>[s("对象定义见表")]),_:1})])]),n("tr",null,[H,I,J,n("td",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:o(()=>[s("对象定义见表")]),_:1})])])])]),K,n("table",null,[X,n("tbody",null,[Y,n("tr",null,[Z,$,nn,sn,n("td",null,[n("strong",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:o(()=>[s("类型代码见表")]),_:1})])])]),tn,an,on,en])]),pn,n("table",null,[ln,n("tbody",null,[un,n("tr",null,[rn,cn,dn,kn,n("td",null,[n("strong",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:o(()=>[s("类型代码见表")]),_:1})])])]),bn,vn,mn,qn])]),hn,n("table",null,[_n,n("tbody",null,[yn,n("tr",null,[gn,An,fn,xn,n("td",null,[n("strong",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:o(()=>[s("类型代码见表")]),_:1})])])]),En,Bn,Sn])]),wn,n("table",null,[Pn,n("tbody",null,[Tn,n("tr",null,[jn,Cn,Dn,Fn,n("td",null,[n("strong",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:o(()=>[s("类型代码见表")]),_:1})])])]),Rn,On,Nn,Vn])]),zn,n("table",null,[Ln,n("tbody",null,[Qn,n("tr",null,[Mn,Un,Wn,Gn,n("td",null,[n("strong",null,[a(t,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:o(()=>[s("类型代码见表")]),_:1})])])]),Hn,In,Jn,Kn,Xn])]),Yn])}const ts=p(c,[["render",Zn],["__file","action.html.vue"]]);export{ts as default}; diff --git a/assets/action.html-3356cd3c.js b/assets/action.html-3356cd3c.js new file mode 100644 index 0000000000..e099092035 --- /dev/null +++ b/assets/action.html-3356cd3c.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-00bd94f6","path":"/docs/blackroom/jury/action.html","title":"仲裁操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"申请加入风纪委员会","slug":"申请加入风纪委员会","link":"#申请加入风纪委员会","children":[]},{"level":2,"title":"拉取新案件","slug":"拉取新案件","link":"#拉取新案件","children":[]},{"level":2,"title":"进行仲裁投票","slug":"进行仲裁投票","link":"#进行仲裁投票","children":[]}],"git":{},"filePathRelative":"docs/blackroom/jury/action.md"}');export{l as data}; diff --git a/assets/action.html-4c17f791.js b/assets/action.html-4c17f791.js new file mode 100644 index 0000000000..6ec4538e43 --- /dev/null +++ b/assets/action.html-4c17f791.js @@ -0,0 +1,31 @@ +import{_ as d,r as l,o as a,c as e,a as t,b as n,d as o,w as u,e as i}from"./app-3168cb19.js";const r={},c=t("h1",{id:"笔记操作",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#笔记操作","aria-hidden":"true"},"#"),n(" 笔记操作")],-1),p=t("h2",{id:"保存视频笔记",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#保存视频笔记","aria-hidden":"true"},"#"),n(" 保存视频笔记")],-1),h=t("blockquote",null,[t("p",null,"https://api.bilibili.com/x/note/add")],-1),b=t("p",null,[t("em",null,"请求方式:POST")],-1),m=t("p",null,"认证方式:Cookie(SESSDATA)",-1),v=t("p",null,[t("strong",null,"正文参数( application/x-www-form-urlencoded ):")],-1),_=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),k=t("tr",null,[t("td",null,"oid"),t("td",null,"num"),t("td",null,"目标id"),t("td",null,"必要"),t("td")],-1),g=t("tr",null,[t("td",null,"oid_type"),t("td",null,"num"),t("td",null,"目标id类型"),t("td",null,"必要"),t("td",null,[t("code",null,"0"),n("视频(oid=avid)")])],-1),q=t("tr",null,[t("td",null,"note_id"),t("td",null,"num"),t("td",null,"笔记id"),t("td",null,"非必要"),t("td",null,"创建时无需此项")],-1),x=t("tr",null,[t("td",null,"title"),t("td",null,"str"),t("td",null,"笔记标题"),t("td",null,"必要"),t("td")],-1),y=t("tr",null,[t("td",null,"summary"),t("td",null,"str"),t("td",null,"笔记预览文本"),t("td",null,"必要"),t("td")],-1),f=t("td",null,"content",-1),S=t("td",null,"str",-1),A=t("td",null,"笔记正文json序列",-1),E=t("td",null,"必要",-1),T=t("tr",null,[t("td",null,"tags"),t("td",null,"str"),t("td",null,"笔记跳转标签列表"),t("td",null,"非必要"),t("td")],-1),j=t("tr",null,[t("td",null,"cls"),t("td",null,"num"),t("td",null,"1"),t("td",null,"非必要"),t("td",null,"作用尚不明确")],-1),w=t("tr",null,[t("td",null,"from"),t("td",null,"str"),t("td",null,"提交类型"),t("td",null,"非必要"),t("td",null,[t("code",null,"auto"),n("自动提交"),t("br"),t("code",null,"save"),n("手动提交"),t("br"),t("code",null,"close"),n("关闭时自动提交")])],-1),C=t("tr",null,[t("td",null,"cont_len"),t("td",null,"num"),t("td",null,"正文字数"),t("td",null,"非必要"),t("td")],-1),B=t("tr",null,[t("td",null,"platform"),t("td",null,"str"),t("td",null,"平台"),t("td",null,"非必要"),t("td",null,[n("可为"),t("code",null,"web")])],-1),N=t("tr",null,[t("td",null,"publish"),t("td",null,"num"),t("td",null,"是否公开笔记"),t("td",null,"非必要"),t("td",null,[t("code",null,"0"),n("不公开"),t("br"),t("code",null,"1"),n("公开")])],-1),R=t("tr",null,[t("td",null,"auto_comment"),t("td",null,"num"),t("td",null,"是否添加到评论区"),t("td",null,"非必要"),t("td",null,[t("code",null,"0"),n("不添加"),t("br"),t("code",null,"1"),n("添加")])],-1),D=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"必要"),t("td")],-1),O=i(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -101账号未登录
    -111csrf校验失败
    -400请求错误
    79508该稿件已存在笔记,无法新增
    79513笔记所属视频不合法
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    note_idnum笔记id

    示例:

    保存内容为加粗的STRONG的笔记3809605586518023av970322090

    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'
    +
    查看响应示例:
    {
    +  "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 ):

    参数名类型内容必要性备注
    oidnum目标稿件avid必要
    note_idnum笔记id非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除稿件av457253380下的笔记4075968478576647

    curl 'https://api.bilibili.com/x/note/del' \\
    +--data-urlencode 'oid=457253380' \\
    +--data-urlencode 'note_id=4075968478576647' \\
    +--data-urlencode 'csrf=xxx'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +
    `,22);function F(V,G){const s=l("RouterLink");return a(),e("div",null,[c,p,h,b,m,v,t("table",null,[_,t("tbody",null,[k,g,q,x,y,t("tr",null,[f,S,A,E,t("td",null,[n("格式见"),o(s,{to:"/docs/note/#%E9%99%84%E8%A1%A8-%E7%AC%94%E8%AE%B0%E6%AD%A3%E6%96%87%E5%BA%8F%E5%88%97%E6%A0%BC%E5%BC%8F"},{default:u(()=>[n("附表")]),_:1})])]),T,j,w,C,B,N,R,D])]),O])}const P=d(r,[["render",F],["__file","action.html.vue"]]);export{P as default}; diff --git a/assets/action.html-58fcaece.js b/assets/action.html-58fcaece.js new file mode 100644 index 0000000000..9599fec9a6 --- /dev/null +++ b/assets/action.html-58fcaece.js @@ -0,0 +1,21 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    表情操作

    添加表情包

    https://api.bilibili.com/x/emote/package/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    只能添加有会员权限或已购买的表情包

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    package_idnum表情包id必要
    businessstr使用场景必要reply:评论区
    dynamic:动态
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例:

    添加id为25的表情包,使用场景为评论区

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    移除表情包

    https://api.bilibili.com/x/emote/package/remove

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    package_idnum表情包id必要
    businessstr使用场景必要reply:评论区
    dynamic:动态
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例:

    移除id为25的表情包,使用场景为评论区

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,28),o=[d];function r(p,i){return s(),n("div",null,o)}const l=t(e,[["render",r],["__file","action.html.vue"]]);export{l as default}; diff --git a/assets/action.html-6aa7eeb7.js b/assets/action.html-6aa7eeb7.js new file mode 100644 index 0000000000..f89aadadb0 --- /dev/null +++ b/assets/action.html-6aa7eeb7.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-2d665a50","path":"/docs/comment/action.html","title":"评论区操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"发表评论","slug":"发表评论","link":"#发表评论","children":[]},{"level":2,"title":"点赞评论","slug":"点赞评论","link":"#点赞评论","children":[]},{"level":2,"title":"点踩评论","slug":"点踩评论","link":"#点踩评论","children":[]},{"level":2,"title":"删除评论","slug":"删除评论","link":"#删除评论","children":[]},{"level":2,"title":"置顶评论","slug":"置顶评论","link":"#置顶评论","children":[]},{"level":2,"title":"举报评论","slug":"举报评论","link":"#举报评论","children":[]}],"git":{},"filePathRelative":"docs/comment/action.md"}');export{l as data}; diff --git a/assets/action.html-6c04cf4d.js b/assets/action.html-6c04cf4d.js new file mode 100644 index 0000000000..c97dd78ba4 --- /dev/null +++ b/assets/action.html-6c04cf4d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-2ed1dfb0","path":"/docs/album/action.html","title":"相簿操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"点赞相簿","slug":"点赞相簿","link":"#点赞相簿","children":[]},{"level":2,"title":"收藏相簿","slug":"收藏相簿","link":"#收藏相簿","children":[]},{"level":2,"title":"取消收藏相簿","slug":"取消收藏相簿","link":"#取消收藏相簿","children":[]}],"git":{},"filePathRelative":"docs/album/action.md"}');export{l as data}; diff --git a/assets/action.html-6e3075b1.js b/assets/action.html-6e3075b1.js new file mode 100644 index 0000000000..3bee83bed3 --- /dev/null +++ b/assets/action.html-6e3075b1.js @@ -0,0 +1,25 @@ +import{_ as t,o as s,c as a,e as n}from"./app-3168cb19.js";const e={},d=n(`

    音频投币&收藏

    查询音频收藏状态

    https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:账号未登陆
    7201006:该音频不存在或已被下架
    msgstr错误信息默认为success
    databool是否收藏false:未收藏
    true:已收藏

    示例:

    查询音频au13598的收藏状态

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll' \\
    +--data-urlencode 'sid=13598' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "success",
    +    "data": true
    +}
    +

    查询音频投币数

    https://www.bilibili.com/audio/music-service-c/web/coin/audio

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:账号未登陆
    7201006:该音频不存在或已被下架
    msgstr错误信息默认为success
    datanum投币数量0为未投币,上限为2

    示例:

    查询音频au13598的投币数

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/coin/audio' \\
    +--data-urlencode 'sid=15664' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "success",
    +    "data": 1
    +}
    +

    投币音频

    https://www.bilibili.com/audio/music-service-c/web/coin/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    sidnum音频 auid必要
    multiplynum投币数量(最大为 2)必要
    csrfstrCSRF Token(位于 cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:账号未登陆
    7201006:该音频不存在或已被下架
    msgstr错误信息默认为 0
    datastr当前投币数量0 为未投币,上限为 2

    示例:

    为音频au13598投币

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/coin/add' \\
    +--data-urlencode 'sid=15664' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "0",
    +    "data": "1"
    +}
    +
    `,42),o=[d];function r(i,p){return s(),a("div",null,o)}const l=t(e,[["render",r],["__file","action.html.vue"]]);export{l as default}; diff --git a/assets/action.html-7f82daf4.js b/assets/action.html-7f82daf4.js new file mode 100644 index 0000000000..dbd1ea90f9 --- /dev/null +++ b/assets/action.html-7f82daf4.js @@ -0,0 +1,148 @@ +import{_ as o,r as d,o as r,c,a as n,b as s,d as e,w as p,e as t}from"./app-3168cb19.js";const l={},i=t('

    收藏夹操作

    管理收藏夹

    新建收藏夹

    https://api.bilibili.com/x/v3/fav/folder/add

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    titlestr收藏夹标题必要
    introstr收藏夹简介非必要默认为空
    privacynum是否公开非必要默认为公开
    0:公开
    1:私密
    coverstr封面图url非必要封面会被审核
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -102:账号被封停
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    略....

    ',13),u=n("code",null,"data",-1),k=t(`

    示例:

    创建一个叫test,简介是2333,封面https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png,的公开收藏夹:

    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'
    +
    查看响应示例:
    {
    +    "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_idnum目标收藏夹mdid必要
    titlestr修改收藏夹标题必要
    introstr修改收藏夹简介非必要
    privacynum是否公开非必要默认为公开

    0:公开
    1:私密
    coverstr封面图url非必要封面会被审核
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -102:账号被封停
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    略....

    `,15),b=n("code",null,"data",-1),v=t(`

    示例:

    修改id为1182306172的名字为test,简介为2333,封面为https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png,公开收藏夹:

    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'
    +
    查看响应示例:
    {
    +    "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_idsnums目标收藏夹mdid列表必要每个成员间用,分隔
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为0
    ttlnum1
    datanum信息本体成功为0

    示例:

    删除id为1182306172的收藏夹:

    curl 'https://api.bilibili.com/x/v3/fav/folder/del' \\
    +--data-urlencode 'media_ids=1182306172' \\
    +--data-urlencode 'csrf=xxxx' \\
    +-b 'SESSDATA=xxxx'
    +
    查看响应示例:
    {
    +    "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_idnum源收藏夹id必要
    tar_media_idnum目标收藏夹id必要
    midnum当前用户mid必要
    resourcesstrs目标内容id列表必要格式:{内容id}:{内容类型}
    每个成员间用,分隔
    类型:
    2:视频稿件
    12:音频
    21:视频合集
    内容id:
    视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    platformstr平台标识非必要可为web
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    11010:您访问的内容不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    将id为1288061499的收藏夹中视频稿件av21822819 av21918689 av22288065复制到id为1178751999的收藏夹中

    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'
    +
    查看响应示例:
    {
    +    "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_idnum源收藏夹id必要
    tar_media_idnum目标收藏夹id必要
    midnum当前用户mid必要
    resourcesstrs目标内容id列表必要格式:{内容id}:{内容类型}
    每个成员间用,分隔
    类型:
    2:视频稿件
    12:音频
    21:视频合集
    内容id:
    视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    platformstr平台标识非必要可为web
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    11010:您访问的内容不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    将id为1288061499的收藏夹中视频稿件av21822819 av21918689 av22288065移动到id为1178751999的收藏夹中

    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'
    +
    查看响应示例:
    {
    +    "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_idnum目标收藏夹id必要
    platformstr平台标识非必要可为web
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    11010:您访问的内容不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    将id为1178751999的收藏夹中视频稿件av21822819 av21918689 av22288065取消收藏

    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'
    +
    查看响应示例:
    {
    +    "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_idnum目标收藏夹id必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    清理id为1161340172的收藏夹

    curl 'https://api.bilibili.com/x/v3/fav/resource/clean' \\
    +--data-urlencode 'media_id=1161340172' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":0
    +}
    +
    `,70);function m(h,q){const a=d("RouterLink");return r(),c("div",null,[i,n("p",null,[s("详见"),e(a,{to:"/docs/fav/info.html#%E8%8E%B7%E5%8F%96%E6%94%B6%E8%97%8F%E5%A4%B9%E5%85%83%E6%95%B0%E6%8D%AE"},{default:p(()=>[s("获取收藏夹元数据")]),_:1}),s("中的"),u,s("对象")]),k,n("p",null,[s("详见"),e(a,{to:"/docs/fav/info.html#%E8%8E%B7%E5%8F%96%E6%94%B6%E8%97%8F%E5%A4%B9%E5%85%83%E6%95%B0%E6%8D%AE"},{default:p(()=>[s("获取收藏夹元数据")]),_:1}),s("中的"),b,s("对象")]),v])}const y=o(l,[["render",m],["__file","action.html.vue"]]);export{y as default}; diff --git a/assets/action.html-861bae92.js b/assets/action.html-861bae92.js new file mode 100644 index 0000000000..fd3939586d --- /dev/null +++ b/assets/action.html-861bae92.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-2922b588","path":"/docs/danmaku/action.html","title":"弹幕操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"发送视频弹幕","slug":"发送视频弹幕","link":"#发送视频弹幕","children":[]},{"level":2,"title":"发送互动弹幕","slug":"发送互动弹幕","link":"#发送互动弹幕","children":[]},{"level":2,"title":"发送打分弹幕","slug":"发送打分弹幕","link":"#发送打分弹幕","children":[]},{"level":2,"title":"撤回弹幕","slug":"撤回弹幕","link":"#撤回弹幕","children":[]},{"level":2,"title":"购买高级弹幕发送权限","slug":"购买高级弹幕发送权限","link":"#购买高级弹幕发送权限","children":[]},{"level":2,"title":"检测高级弹幕发送权限","slug":"检测高级弹幕发送权限","link":"#检测高级弹幕发送权限","children":[]},{"level":2,"title":"点赞弹幕","slug":"点赞弹幕","link":"#点赞弹幕","children":[]},{"level":2,"title":"举报弹幕","slug":"举报弹幕","link":"#举报弹幕","children":[]},{"level":2,"title":"保护&删除弹幕","slug":"保护-删除弹幕","link":"#保护-删除弹幕","children":[]},{"level":2,"title":"修改字幕池","slug":"修改字幕池","link":"#修改字幕池","children":[]}],"git":{},"filePathRelative":"docs/danmaku/action.md"}');export{l as data}; diff --git a/assets/action.html-9bd365d2.js b/assets/action.html-9bd365d2.js new file mode 100644 index 0000000000..310df218dd --- /dev/null +++ b/assets/action.html-9bd365d2.js @@ -0,0 +1,192 @@ +import{_ as e,a,b as n}from"./fav-55c612b4.js";import{_ as o,r as i,o as r,c as l,a as s,b as t,d as c,e as d}from"./app-3168cb19.js";const u={},b=d('

    稿件观众操作

    点赞

    点赞视频(web端)

    https://api.bilibili.com/x/web-interface/archive/like

    请求方式:POST

    认证方式:仅可Cookie(SESSDATA)

    需验证 Cookie 中buvid3字段存在且正常, 否则将导致触发风控

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    likenum操作方式必要1:点赞
    2:取消赞
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403: 账号异常
    10003:不存在该稿件
    65004:取消点赞失败
    65006:重复点赞
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点赞视频av79677524/BV1uJ411r7hL

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    点赞视频(APP端)

    https://app.bilibili.com/x/v2/view/like

    请求方式:POST

    认证方式:仅可APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要
    likenum操作方式必要0:点赞
    1:取消赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    -403: 账号异常
    10003:不存在该稿件
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    toaststr提示信息内容

    示例:

    点赞视频av79677524

    curl 'https://app.bilibili.com/x/v2/view/like' \\
    +--data-urlencode 'access_key=xxx' \\
    +--data-urlencode 'aid=79677524' \\
    +--data-urlencode 'like=0'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "toast": "点赞收到!视频可能推荐哦"
    +    }
    +}
    +

    判断视频近期是否被点赞(双端)

    https://api.bilibili.com/x/web-interface/archive/has/like

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    `,39),v=s("strong",null,"在近期内",-1),h=s("code",null,"0",-1),m={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/380",target:"_blank",rel:"noopener noreferrer"},k=d(`

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    datanum被点赞标志0:未点赞
    1:已点赞

    示例:

    视频av39330059/BV1Bt411z799的状态为已点赞

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \\
    +--data-urlencode 'aid=39330059' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \\
    +--data-urlencode 'bvid=BV1Bt411z799' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 Token必要
    aidnum视频 aid必要
    dislikenum操作类型必要0:点踩
    1:取消点踩

    json回复:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    -404:啥都木有
    65005:取消踩失败 未点踩过
    65007:已踩过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点踩视频

    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'
    +

    取消点踩

    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)

    需验证 Cookie 中buvid3字段存在且正常, 否则将导致触发风控

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    multiplynum投币数量必要上限为2
    select_likenum是否附加点赞非必要0:不点赞
    1:同时点赞
    默认为0
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -104:硬币不足
    -111:csrf校验失败
    -400:请求错误
    -403: 账号异常
    10003:不存在该稿件
    34002:不能给自己投币
    34003:非法的投币数量
    34004:投币间隔太短
    34005:超过投币上限
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    已赞过则附加点赞失败

    示例:

    为视频av90671873/BV1N7411A7wC投币2枚

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要
    multiplynum投币数量必要上限为2
    select_likenum附加点赞非必要0:不点赞
    1:同时点赞
    默认为0

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -104:硬币不足
    -400:请求错误
    10003:不存在该稿件
    34002:不能给自己投币
    34003:非法的投币数量
    34004:投币间隔太短
    34005:超过投币上限
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    已赞过则附加点赞失败

    为视频av90671873投币2枚

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"like": true
    +	}
    +}
    +

    判断视频是否被投币(双端)

    https://api.bilibili.com/x/web-interface/archive/coins

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP方式必要
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    multiplynum投币枚数未投币为0

    示例:

    视频av37896701/BV18t411q7zz的投币数为2枚

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/coins' \\
    +--data-urlencode 'aid=37896701' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/coins' \\
    +--data-urlencode 'bvid=BV18t411q7zz' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"multiply": 2
    +	}
    +}
    +

    收藏

    收藏视频(双端)

    https://api.bilibili.com/medialist/gateway/coll/resource/deal

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    鉴权方式:Cookie方式时需要验证referer为 .bilibili.com域名下

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    ridnum稿件 avid必要
    typenum必须为2必要
    add_media_idsnums需要加入的收藏夹 mlid非必要(可选)同时添加多个,用,(%2C)分隔
    del_media_idsnums需要取消的收藏夹 mlid非必要(可选)同时取消多个,用,(%2C)分隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403:访问权限不足
    10003:不存在该稿件
    11010: 您访问的内容不存在
    11201:已经收藏过了
    11202:已经取消收藏了
    11203:达到收藏上限
    72010017:参数错误
    messagestr错误信息正确为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    promptbool是否为未关注用户收藏false:否
    true:是

    示例:

    将视频av49166435添加到收藏夹49166435

    Cookie方式:

    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方式:

    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='
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"data": {
    +		"prompt": false
    +	},
    +	"message": "success"
    +}
    +

    收藏视频(Web端)

    https://api.bilibili.com/x/v3/fav/resource/deal

    请求方式: POST

    认证方式: Cookie(SESSDATA)

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    ridnum稿件 avid必要
    typenum必须为2必要
    add_media_idsnums需要加入的收藏夹 mlid非必要(可选)同时添加多个,用,(%2C)分隔
    del_media_idsnums需要取消的收藏夹 mlid非必要(可选)同时取消多个,用,(%2C)分隔
    csrfstrCSRF Token (即 Cookie 中 bili_jct)必要
    platformstr平台标识?非必要web端: web
    eab_xnum1非必要作用尚不明确
    ramvalnum正整数非必要可能与在该页面的停留时间相关?
    ganum1非必要作用尚不明确
    gaia_sourcestr???非必要web端: web_normal

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    -111: csrf 校验失败
    2001000: 参数错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体错误时为 null 或不存在

    data对象:

    字段类型内容备注
    promptbool是否为未关注用户收藏?false:否
    true:是
    ga_datanull作用尚不明确
    toast_msgstr作用尚不明确
    success_numnum0作用尚不明确

    示例:

    将视频 av1906473802 添加到收藏夹 1164192068

    curl -sX POST "https://api.bilibili.com/x/v3/fav/resource/deal" \\
    +--data-urlencode "rid=1906473802" \\
    +--data-urlencode  "type=2" \\
    +--data-urlencode "csrf=xxx" \\
    +--data-urlencode "add_media_ids=1164192068" \\
    +-b "SESSDATA=xxx; bili_jct=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "prompt": false,
    +    "ga_data": null,
    +    "toast_msg": "",
    +    "success_num": 0
    +  }
    +}
    +

    判断视频是否被收藏(双端)

    https://api.bilibili.com/x/v2/fav/video/favoured

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    aidnum 或 str稿件 avid 或稿件 bvid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    countnum1作用尚不明确
    favouredbool是否收藏true:已收藏
    false:未收藏

    示例:

    视频av46281123/BV1Bb411H7Dv的状态为已收藏

    avid方式:

    curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \\
    +--data-urlencode 'aid=46281123' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \\
    +--data-urlencode 'aid=BV1Bb411H7Dv' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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)

    同时点赞投币收藏视频,收藏于默认收藏夹中

    需验证 Cookie 中buvid3字段存在且正常, 否则将导致触发风控

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    10003:不存在该稿件
    -403: 账号异常
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    coinbool是否投币成功true:成功
    false:失败
    favbool是否收藏成功true:成功
    false:失败
    multiplynum投币枚数默认为2

    示例:

    将视频av91003840/BV1Wj411f79U一键三连

    avid方式:

    curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \\
    +--data-urlencode 'aid=91003840' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \\
    +--data-urlencode 'bvid=BV1Wj411f79U' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    10003:不存在该稿件
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    coinbool是否投币成功true:成功
    false:失败
    favbool是否收藏成功true:成功
    false:失败
    multiplynum投币枚数默认为2

    示例:

    将视频av91003840一键三连

    curl 'https://app.bilibili.com/x/v2/view/like/triple' \\
    +--data-urlencode 'access_key=xxx' \\
    +--data-urlencode 'aid=91003840'
    +
    查看响应示例:
    {
    +	"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

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid任 选一个
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    datanum当前分享数

    示例:

    分享视频BV1oA411776z

    curl 'https://api.bilibili.com/x/web-interface/share/add' \\
    +--data-urlencode 'csrf=xxx' \\
    +--data-urlencode 'bvid=BV1oA411776z'
    +
    查看响应示例:
    {
    +	"code":0,
    +	"message":"0",
    +	"ttl":1,
    +	"data":19
    +}
    +
    `,184);function g(x,q){const p=i("ExternalLinkIcon");return r(),l("div",null,[b,s("p",null,[t("注: 这一 API 实际上只能判断出视频"),v,t("是否被点赞, 并不能判断出视频是否被点赞. 「近期」的定义不明, 但至少半年前点赞过的视频, 用这一接口获取到的结果就已经是 "),h,t(" 了. 参见 "),s("a",m,[t("#380"),c(p)]),t(".")]),k])}const w=o(u,[["render",g],["__file","action.html.vue"]]);export{w as default}; diff --git a/assets/action.html-9cda16a3.js b/assets/action.html-9cda16a3.js new file mode 100644 index 0000000000..38cb5f6e46 --- /dev/null +++ b/assets/action.html-9cda16a3.js @@ -0,0 +1,72 @@ +import{_ as l,r as o,o as i,c as p,a as t,b as n,d as a,w as e,e as d}from"./app-3168cb19.js";const r={},c=d(`

    仲裁操作

    申请加入风纪委员会

    https://api.bilibili.com/x/credit/v2/jury/apply

    请求方式:POST

    认证方式:Cookie

    只有用户会员90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会

    申请成功后可获得30天资格

    正文参数( application/x-www-form-urlencoded):

    参数名类型内容必要性
    csrfstrcookie中bili_jct的值必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    25001:申请等级限制(会员等级<3)
    25002:没有实名认证
    25003:90天内有封禁记录
    25013:不能重复申请风纪委资格
    25016:当日风纪委员名额已发完
    messagestr信息默认为0
    ttlnum1
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    25001:申请等级限制(会员等级<3)
    25002:没有实名认证
    25003:90天内有封禁记录
    25013:不能重复申请风纪委资格
    25016:当日风纪委员名额已发完
    messagestr信息默认为0
    ttlnum1

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/jury/apply' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl 'https://api.bilibili.com/x/credit/jury/apply' \\
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    拉取新案件

    https://api.bilibili.com/x/credit/v2/jury/case/next

    请求方式:GET

    认证方式:Cookie

    标头参数(Headers):

    参数名类型内容必要性备注
    CookiestrCookie必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    25006:风纪委员资格已过期
    25008:没有案件
    25014:已审满
    messagestr信息默认为0,当code不为0时,显示错误信息
    ttlnum1作用尚不明确
    dataobject数据本体

    data对象:

    字段类型内容备注
    case_idstr仲裁案件id

    示例:

    Cookie方式:

    curl -G 'https://api.bilibili.com/x/credit/v2/jury/case/next' \\
    +--header 'cookie: XXXXX'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    25005:不是风纪委员
    25008:没有案件
    25014:已审满
    messagestr信息默认为0
    ttlnum1作用尚不明确
    dataobject数据本体

    data对象:

    字段类型内容备注
    idnum仲裁案件id

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/jury/caseObtain' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl 'https://api.bilibili.com/x/credit/jury/caseObtain' \\
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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 ):

    `,37),u=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),b=t("tr",null,[t("td",null,"case_id"),t("td",null,"str"),t("td",null,"案件id"),t("td",null,"必要"),t("td")],-1),h=t("td",null,"vote",-1),m=t("td",null,"num",-1),k=t("td",null,"投票类型",-1),v=t("td",null,"必要",-1),g=t("td",null,"insiders",-1),_=t("td",null,"num",-1),y=t("td",null,"是否观看此类视频",-1),x=t("td",null,"非必要",-1),q=t("br",null,null,-1),j=t("tr",null,[t("td",null,"content"),t("td",null,"str"),t("td",null,"理由"),t("td",null,"非必要"),t("td")],-1),f=t("tr",null,[t("td",null,"anonymous"),t("td",null,"num"),t("td",null,"是否匿名"),t("td",null,"非必要"),t("td",null,[n("默认值为0"),t("br"),n("0:不匿名"),t("br"),n("1:匿名")])],-1),P=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,[n("cookie中"),t("code",null,"bili_jct"),n("的值")]),t("td",null,"必要"),t("td")],-1),A=d(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:未登录
    -111:csrf 错误
    -400:请求错误(投票类型错误)
    25005:不是风纪委员
    25011:投票类型错误
    25018:不能进行此操作

    注:新版本对于一个不存在的case_id,不会报错。
    messagestr信息默认为0
    ttlnum1作用尚不明确
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    旧API

    `,5),S=t("summary",null,"查看旧版API:",-1),C=t("p",null,[t("em",null,"请求方式:POST")],-1),T=t("p",null,"认证方式:Cookie(SESSDATA)或APP",-1),w=t("p",null,[t("strong",null,"正文参数( application/x-www-form-urlencoded ):")],-1),E=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),O=t("tr",null,[t("td",null,"cid"),t("td",null,"num"),t("td",null,"案件id"),t("td",null,"必要"),t("td")],-1),I=t("td",null,"vote",-1),D=t("td",null,"num",-1),R=t("td",null,"投票类型",-1),X=t("td",null,"必要",-1),N=t("td",null,"content",-1),V=t("td",null,"str",-1),B=t("td",null,"理由",-1),F=t("td",null,"非必要",-1),H=t("tr",null,[t("td",null,"likes"),t("td",null,"nums"),t("td",null,"支持的观点"),t("td",null,"非必要"),t("td")],-1),L=t("tr",null,[t("td",null,"hates"),t("td",null,"nums"),t("td",null,"反对的观点"),t("td",null,"非必要"),t("td")],-1),G=t("tr",null,[t("td",null,"attr"),t("td",null,"num"),t("td",null,"是否匿名"),t("td",null,"非必要"),t("td",null,[n("0:匿名"),t("br"),n("1:不匿名")])],-1),z=t("tr",null,[t("td",null,"apply_type"),t("td",null,"num"),t("td",null,"是否更改原因"),t("td",null,"非必要"),t("td",null,[n("0:保持原来原因"),t("br"),n("1:投票给新原因")])],-1),J=t("tr",null,[t("td",null,"origin_reason"),t("td",null,"num"),t("td",null,"原始原因"),t("td",null,"非必要"),t("td",null,"见「封禁公示」中表")],-1),K=t("tr",null,[t("td",null,"apply_reason"),t("td",null,"num"),t("td",null,"新原因"),t("td",null,"非必要"),t("td",null,"见「封禁公示」中表")],-1),M=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1),Q=d(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:未登录
    -111:csrf 错误
    -400:请求错误(投票类型错误)
    25005:不是风纪委员
    25009: 案件不存在
    25011:投票类型错误
    25012:重复投票
    messagestr信息默认为0
    ttlnum1作用尚不明确

    示例:

    为案件2333投票,建议封禁,无理由,不匿名,无支持/反对观点,不修改投票原因

    Cookie方式:

    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方式:

    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='
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,10);function U(W,Y){const s=o("RouterLink");return i(),p("div",null,[c,t("table",null,[u,t("tbody",null,[b,t("tr",null,[h,m,k,v,t("td",null,[n("见「"),a(s,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>[n("众裁信息")]),_:1}),n("」中表")])]),t("tr",null,[g,_,y,x,t("td",null,[n("默认值为0"),q,n("见「"),a(s,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>[n("众裁信息")]),_:1}),n("」中表")])]),j,f,P])]),A,t("details",null,[S,n(" > https://api.bilibili.com/x/credit/jury/vote "),C,T,w,t("table",null,[E,t("tbody",null,[O,t("tr",null,[I,D,R,X,t("td",null,[n("见「"),a(s,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>[n("众裁信息")]),_:1}),n("」中表")])]),t("tr",null,[N,V,B,F,t("td",null,[n("见「"),a(s,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>[n("众裁信息")]),_:1}),n("」中表")])]),H,L,G,z,J,K,M])]),Q])])}const $=l(r,[["render",U],["__file","action.html.vue"]]);export{$ as default}; diff --git a/assets/action.html-a80f5e24.js b/assets/action.html-a80f5e24.js new file mode 100644 index 0000000000..ec1b088786 --- /dev/null +++ b/assets/action.html-a80f5e24.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-0bd4bcd9","path":"/docs/newbie_exam/action.html","title":"操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"提交答题","slug":"提交答题","link":"#提交答题","children":[{"level":3,"title":"提交基础题","slug":"提交基础题","link":"#提交基础题","children":[]},{"level":3,"title":"提交附加题","slug":"提交附加题","link":"#提交附加题","children":[]},{"level":3,"title":"提交自选题","slug":"提交自选题","link":"#提交自选题","children":[]}]},{"level":2,"title":"获取验证码","slug":"获取验证码","link":"#获取验证码","children":[]},{"level":2,"title":"提交验证码","slug":"提交验证码","link":"#提交验证码","children":[]},{"level":2,"title":"提交自选题分类","slug":"提交自选题分类","link":"#提交自选题分类","children":[]},{"level":2,"title":"提前交卷","slug":"提前交卷","link":"#提前交卷","children":[]}],"git":{},"filePathRelative":"docs/newbie_exam/action.md"}');export{l as data}; diff --git a/assets/action.html-ad3d1d10.js b/assets/action.html-ad3d1d10.js new file mode 100644 index 0000000000..257dc54e23 --- /dev/null +++ b/assets/action.html-ad3d1d10.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-4e28f222","path":"/docs/article/action.html","title":"专栏投币&点赞&收藏","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"点赞文章","slug":"点赞文章","link":"#点赞文章","children":[]},{"level":2,"title":"投币文章","slug":"投币文章","link":"#投币文章","children":[]},{"level":2,"title":"收藏文章","slug":"收藏文章","link":"#收藏文章","children":[]}],"git":{},"filePathRelative":"docs/article/action.md"}');export{e as data}; diff --git a/assets/action.html-b9118deb.js b/assets/action.html-b9118deb.js new file mode 100644 index 0000000000..c68c25c108 --- /dev/null +++ b/assets/action.html-b9118deb.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-2e61077f","path":"/docs/emoji/action.html","title":"表情操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"添加表情包","slug":"添加表情包","link":"#添加表情包","children":[]},{"level":2,"title":"移除表情包","slug":"移除表情包","link":"#移除表情包","children":[]}],"git":{},"filePathRelative":"docs/emoji/action.md"}');export{e as data}; diff --git a/assets/action.html-b93efa81.js b/assets/action.html-b93efa81.js new file mode 100644 index 0000000000..525dbf84e9 --- /dev/null +++ b/assets/action.html-b93efa81.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-5de169e2","path":"/docs/audio/action.html","title":"音频投币&收藏","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询音频收藏状态","slug":"查询音频收藏状态","link":"#查询音频收藏状态","children":[]},{"level":2,"title":"查询音频投币数","slug":"查询音频投币数","link":"#查询音频投币数","children":[]},{"level":2,"title":"投币音频","slug":"投币音频","link":"#投币音频","children":[]}],"git":{},"filePathRelative":"docs/audio/action.md"}');export{e as data}; diff --git a/assets/action.html-c0a0ae8b.js b/assets/action.html-c0a0ae8b.js new file mode 100644 index 0000000000..0632c6883a --- /dev/null +++ b/assets/action.html-c0a0ae8b.js @@ -0,0 +1,14 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const d={},e=a(`

    动态操作

    删除动态

    https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数(multipart/form-data):

    参数名类型内容必要性备注
    dynamic_idnum动态id必要
    csrf_tokenstrcsrf必要
    csrfstrcsrf必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    500404:已经删除过该动态
    500406:动态不是自己的
    msgstr错误信息成功时为空文本
    messagestr错误信息msg
    dataobj数据本体

    data对象:

    字段类型内容备注
    _gt_num0作用尚不明确

    示例:

    删除动态dynamic_id=588320531406678918

    curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic' \\
    +--data-urlencode 'dynamic_id=588320531406678918' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "",
    +    "message": "",
    +    "data": {
    +        "_gt_": 0
    +    }
    +}
    +
    `,16),o=[e];function r(c,p){return s(),n("div",null,o)}const l=t(d,[["render",r],["__file","action.html.vue"]]);export{l as default}; diff --git a/assets/action.html-c38bf9cd.js b/assets/action.html-c38bf9cd.js new file mode 100644 index 0000000000..f5db3777ff --- /dev/null +++ b/assets/action.html-c38bf9cd.js @@ -0,0 +1,105 @@ +import{_ as o,r as p,o as l,c as r,a as t,b as s,d as a,w as e,e as d}from"./app-3168cb19.js";const c={},i=d('

    操作

    提交答题

    提交基础题

    https://api.bilibili.com/x/answer/v4/base/check

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    ',7),u=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),b=t("td",null,"question_id",-1),h=t("td",null,"num",-1),k=t("td",null,"题目id",-1),m=t("td",null,"必要",-1),v=t("td",null,"ans_hash",-1),g=t("td",null,"str",-1),q=t("td",null,"选项hash",-1),_=t("td",null,"必要",-1),y=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1),x=d(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41012:用户答题提交题目id不合法
    41020:用户基础题已通过
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    passedbool选项是否正确true:选项正确
    false:选项错误

    示例:

    提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    `,14),f=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),S=t("td",null,"question_id",-1),A=t("td",null,"num",-1),E=t("td",null,"题目id",-1),w=t("td",null,"必要",-1),j=t("td",null,"ans_hash",-1),T=t("td",null,"str",-1),C=t("td",null,"选项hash",-1),P=t("td",null,"必要",-1),F=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1),B=d(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41012:用户答题提交题目id不合法
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    passedbool选项是否正确true:选项正确
    false:选项错误

    示例:

    提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    `,14),D=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),R=t("td",null,"question_id",-1),O=t("td",null,"num",-1),N=t("td",null,"题目id",-1),V=t("td",null,"必要",-1),G=t("td",null,"ans_hash",-1),L=t("td",null,"str",-1),z=t("td",null,"选项hash",-1),H=t("td",null,"必要",-1),I=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1),J=d(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41012:用户答题提交题目id不合法
    41023:用户答题记录不存在
    41026:获取用户DB题目信息异常
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    passedbooltrue恒为true

    示例:

    提交题目id为2935的题,选项hash为ffd55cbe0624f466bee2ea3eb576a4d0

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "passed": true
    +    }
    +}
    +

    获取验证码

    https://api.bilibili.com/x/answer/v4/captcha

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41010:用户答题非法访问
    41014:答题过快或错误太多
    41020:用户基础题已通过
    41021:用户基础题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    typestr验证码类型?geetest:极验
    gtstr极验id
    challengestr极验key
    tokenstr(?)
    urlstr(?)

    示例:

    curl 'https://api.bilibili.com/x/answer/v4/captcha' \\
    +-b 'SESSDATA=xxxx'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    typesnums自选题分类(旧版)非必要新版不需要此字段
    typestr验证码类型非必要
    bilibili_tokenstr非必要
    bilibili_codestr非必要
    geetest_challengestr极验key非必要
    geetest_seccodestr极验结果+|jordan非必要
    geetest_validatestr极验结果非必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -105:验证码错误
    -400:请求错误
    41010:用户答题非法访问
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41031:自选题未通过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    typesnums自选题分类(新版)必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41010:用户答题非法访问
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41031:自选题未通过
    41052:用户题目类型不合法
    41055:基础附加题未通过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    选择游戏 影视 科教/知识 动画/动漫分类

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    提前交卷

    https://api.bilibili.com/x/answer/v4/submit

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    当当前得分>=60时,可请求本接口提前完成答题

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41023:用户答题记录不存在
    41031:自选题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hidnum答题会话id
    midnum答题用户mid
    scorenum得分
    statusnum0
    numbernum0
    resultstrsucceed
    stagestrresult
    versionstr版本目前为v4
    start_timenum本次答题开始时间时间戳
    first_answernum0
    progressstr
    textstr
    urlstr
    in_reg_auditbool
    editionnum答题版本0:旧版(40+10+50)
    2:新版(40+30+30)
    rewardsnull
    captchanum1

    示例:

    curl 'https://api.bilibili.com/x/answer/v4/submit' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxxx'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,64);function K(M,Q){const n=p("RouterLink");return l(),r("div",null,[i,t("table",null,[u,t("tbody",null,[t("tr",null,[b,h,k,m,t("td",null,[s("从"),a(n,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>[s("拉取基础题api")]),_:1}),s("获得")])]),t("tr",null,[v,g,q,_,t("td",null,[s("从"),a(n,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>[s("拉取基础题api")]),_:1}),s("获得")])]),y])]),x,t("table",null,[f,t("tbody",null,[t("tr",null,[S,A,E,w,t("td",null,[s("从"),a(n,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>[s("拉取基础题api")]),_:1}),s("获得")])]),t("tr",null,[j,T,C,P,t("td",null,[s("从"),a(n,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>[s("拉取基础题api")]),_:1}),s("获得")])]),F])]),B,t("table",null,[D,t("tbody",null,[t("tr",null,[R,O,N,V,t("td",null,[s("从"),a(n,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>[s("拉取基础题api")]),_:1}),s("获得")])]),t("tr",null,[G,L,z,H,t("td",null,[s("从"),a(n,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>[s("拉取基础题api")]),_:1}),s("获得")])]),I])]),J])}const W=o(c,[["render",K],["__file","action.html.vue"]]);export{W as default}; diff --git a/assets/action.html-c589c8dd.js b/assets/action.html-c589c8dd.js new file mode 100644 index 0000000000..55c8efbf03 --- /dev/null +++ b/assets/action.html-c589c8dd.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-54b0f434","path":"/docs/video/action.html","title":"稿件观众操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"点赞","slug":"点赞","link":"#点赞","children":[{"level":3,"title":"点赞视频(web端)","slug":"点赞视频-web端","link":"#点赞视频-web端","children":[]},{"level":3,"title":"点赞视频(APP端)","slug":"点赞视频-app端","link":"#点赞视频-app端","children":[]},{"level":3,"title":"判断视频近期是否被点赞(双端)","slug":"判断视频近期是否被点赞-双端","link":"#判断视频近期是否被点赞-双端","children":[]}]},{"level":2,"title":"点踩","slug":"点踩","link":"#点踩","children":[{"level":3,"title":"点踩视频(App端)","slug":"点踩视频-app端","link":"#点踩视频-app端","children":[]}]},{"level":2,"title":"投币","slug":"投币","link":"#投币","children":[{"level":3,"title":"投币视频(web端)","slug":"投币视频-web端","link":"#投币视频-web端","children":[]},{"level":3,"title":"投币视频(APP端)","slug":"投币视频-app端","link":"#投币视频-app端","children":[]},{"level":3,"title":"判断视频是否被投币(双端)","slug":"判断视频是否被投币-双端","link":"#判断视频是否被投币-双端","children":[]}]},{"level":2,"title":"收藏","slug":"收藏","link":"#收藏","children":[{"level":3,"title":"收藏视频(双端)","slug":"收藏视频-双端","link":"#收藏视频-双端","children":[]},{"level":3,"title":"收藏视频(Web端)","slug":"收藏视频-web端","link":"#收藏视频-web端","children":[]},{"level":3,"title":"判断视频是否被收藏(双端)","slug":"判断视频是否被收藏-双端","link":"#判断视频是否被收藏-双端","children":[]}]},{"level":2,"title":"一键三连","slug":"一键三连","link":"#一键三连","children":[{"level":3,"title":"一键三连视频(web端)","slug":"一键三连视频-web端","link":"#一键三连视频-web端","children":[]},{"level":3,"title":"一键三连视频(APP端)","slug":"一键三连视频-app端","link":"#一键三连视频-app端","children":[]}]},{"level":2,"title":"分享","slug":"分享","link":"#分享","children":[{"level":3,"title":"分享视频 (Web端)","slug":"分享视频-web端","link":"#分享视频-web端","children":[]}]}],"git":{},"filePathRelative":"docs/video/action.md"}');export{l as data}; diff --git a/assets/action.html-c774e5e5.js b/assets/action.html-c774e5e5.js new file mode 100644 index 0000000000..756ec70a6b --- /dev/null +++ b/assets/action.html-c774e5e5.js @@ -0,0 +1,35 @@ +import{_ as t,a as s,b as n}from"./fav-55c612b4.js";import{_ as a,o as e,c as d,e as o}from"./app-3168cb19.js";const r={},p=o('

    专栏投币&点赞&收藏

    点赞文章

    https://api.bilibili.com/x/article/like

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    idnum文章cvid必要
    typenum操作方式必要1:点赞
    2:取消赞
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    10003:不存在该稿件
    65006:已赞过
    65004:取消点赞失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为文章cv5806746点赞

    curl 'https://api.bilibili.com/x/article/like' \\
    +--data-urlencode 'id=5806746' \\
    +--data-urlencode 'type=1' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    投币文章

    https://api.bilibili.com/x/web-interface/coin/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum文章cvid必要
    upidnum文章作者mid必要
    multiplynum投币数量必要上限为2
    avtypenum2必要必须为2
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -104:硬币不足
    -111:csrf校验失败
    -400:请求错误
    10003:不存在该稿件
    34002:不能给自己投币
    34003:非法的投币数量
    34005:超过投币上限
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    已赞过则附加点赞失败

    示例:

    为文章cv5806746投币1枚

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    idnum文章cvid必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    messagestr错误信息正确为success
    dataobj信息本体

    示例:

    收藏文章cv5806746

    curl 'https://api.bilibili.com/x/article/favorites/add' \\
    +--data-urlencode 'id=5806746' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,45),i=[p];function l(c,u){return e(),d("div",null,i)}const m=a(r,[["render",l],["__file","action.html.vue"]]);export{m as default}; diff --git a/assets/action.html-e8f03a7c.js b/assets/action.html-e8f03a7c.js new file mode 100644 index 0000000000..d751cfe251 --- /dev/null +++ b/assets/action.html-e8f03a7c.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-4d524bd4","path":"/docs/vip/action.html","title":"大会员操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"兑换卡券","slug":"兑换卡券","link":"#兑换卡券","children":[]},{"level":2,"title":"大会员每日经验","slug":"大会员每日经验","link":"#大会员每日经验","children":[]}],"git":{},"filePathRelative":"docs/vip/action.md"}');export{t as data}; diff --git a/assets/action.html-f620e347.js b/assets/action.html-f620e347.js new file mode 100644 index 0000000000..664be2c58d --- /dev/null +++ b/assets/action.html-f620e347.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-7877dfd8","path":"/docs/fav/action.html","title":"收藏夹操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"管理收藏夹","slug":"管理收藏夹","link":"#管理收藏夹","children":[{"level":3,"title":"新建收藏夹","slug":"新建收藏夹","link":"#新建收藏夹","children":[]},{"level":3,"title":"修改收藏夹","slug":"修改收藏夹","link":"#修改收藏夹","children":[]},{"level":3,"title":"删除收藏夹","slug":"删除收藏夹","link":"#删除收藏夹","children":[]}]},{"level":2,"title":"管理收藏内容","slug":"管理收藏内容","link":"#管理收藏内容","children":[{"level":3,"title":"批量复制内容","slug":"批量复制内容","link":"#批量复制内容","children":[]},{"level":3,"title":"批量移动内容","slug":"批量移动内容","link":"#批量移动内容","children":[]},{"level":3,"title":"批量删除内容","slug":"批量删除内容","link":"#批量删除内容","children":[]},{"level":3,"title":"清空所有失效内容","slug":"清空所有失效内容","link":"#清空所有失效内容","children":[]}]}],"git":{},"filePathRelative":"docs/fav/action.md"}');export{l as data}; diff --git a/assets/action.html-f884747b.js b/assets/action.html-f884747b.js new file mode 100644 index 0000000000..63b76cdfd4 --- /dev/null +++ b/assets/action.html-f884747b.js @@ -0,0 +1,198 @@ +import{_ as r,r as p,o as i,c as l,a as t,b as s,d as n,w as e,g as c,e as a}from"./app-3168cb19.js";const u={},b=a('

    弹幕操作

    发送视频弹幕

    https://api.bilibili.com/x/v2/dm/post

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    此接口与漫画弹幕相同

    mode=6的逆向弹幕与mode=8的代码弹幕不可发送

    URL参数:

    ',8),m=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),k=t("tr",null,[t("td",null,"web_location"),t("td",null,"str"),t("td",null,"普通视频: 1315873"),t("td",null,"不必要"),t("td")],-1),v=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token (即 Cookie 中 bili_jct)"),t("td",null,"Cookie 方式必要"),t("td")],-1),h=t("td",null,"w_rid",-1),g=t("td",null,"str",-1),q=t("td",null,"Wbi 签名",-1),y=t("td",null,"必要",-1),x=t("td",null,"wts",-1),S=t("td",null,"str",-1),f=t("td",null,"UNIX 秒级时间戳",-1),_=t("td",null,"必要",-1),P=a(`

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    typenum弹幕类选择必要1:视频弹幕
    2:漫画弹幕
    oidnum视频 cid必要
    msgstr弹幕内容必要长度小于 100 字符
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    progressnum弹幕出现在视频内的时间非必要单位为毫秒
    默认为0
    colornum弹幕颜色设置非必要十进制 RGB888 值
    16777215为 #FFFFFF 即白色
    fontsizenum弹幕字号设置非必要默认为 25
    极小:12
    超小:16
    小:18
    标准:25
    大:36
    超大:45
    极大:64
    poolnum弹幕池选择非必要0:普通池
    1:字幕池
    2:特殊池(代码/BAS弹幕)
    默认为0
    modenum弹幕类型选择必要1:普通弹幕
    4:底部弹幕
    5:顶部弹幕
    7:高级弹幕
    9:BAS弹幕(pool必须为2)
    rndnum当前时间戳*1000000非必要若无此项,则发送弹幕冷却时间限制为90s
    若有此项,则发送弹幕冷却时间限制为5s
    colorfulnum彩色弹幕非必要60001:专属渐变彩色(需要会员)
    checkbox_typenum是否带 UP 身份标识非必要0:普通
    4:带有标识
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值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:当日操作数量超过上限
    36718:目前您不是大会员,无法使用会员权益
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    actionstr(?)
    animationstr弹幕样式 Json?
    colorful_srcstr 或 obj渐变彩色样式信息?当请求参数colorful=60001时有效
    dm_contentstr(?)
    dmidnum弹幕 dmid
    dmid_strstr弹幕 dmid字串形式
    visiblebool(?)

    data中的colorful_src对象:

    字段类型内容备注
    typenum60001
    srcstr渐变色样式 Json?

    示例:

    为视频av2/BV1xx411c7mD(cid为62131)的 5000ms 位置发送一条弹幕前来考古(颜色为 #FFFFFF,字号 25,普通弹幕,游动弹幕)

    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'
    +
    查看响应示例:
    {
    +    "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主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能

    详情见:

    `,19),A={href:"https://www.bilibili.com/read/cv7728299",target:"_blank",rel:"noopener noreferrer"},T={href:"https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html",target:"_blank",rel:"noopener noreferrer"},j=a(`

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum互动弹幕类型必要1:UP主头像弹幕
    2:关联视频弹幕
    5:视频内嵌引导关注按钮
    aidnum稿件avid必要
    cidnum视频cid必要
    progressnum弹幕出现在视频内的时间非必要单位为毫秒
    默认为0
    platnum平台标识必要1:web端
    2:安卓端
    8:视频管理页面
    datastrjson序列必要
    dmidnum修改互动弹幕的弹幕id非必要注:修改弹幕plat必须为8
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    data参数json序列:

    类型为【UP主头像弹幕】时:

    字段类型内容备注
    msgstr弹幕内容

    类型为【关联视频弹幕】时:

    字段类型内容备注
    msgstr弹幕内容
    bvidstr关联视频的bvid

    类型为【视频内嵌引导关注按钮】时:

    字段类型内容备注
    durationnum持续时间单位为毫秒
    posXnumX坐标区间:[118-549]
    posYnumY坐标区间:[82-293]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -500:服务器错误
    36711:该视频禁止发送弹幕
    79026:发送失败,请勿填写当前稿件bvid
    79024:发送失败,请输入正确的bvid
    79036:该指令弹幕超出限制
    79037:关注弹幕坐标溢出
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    commandstr指令?UP主头像弹幕:#UP#
    关联视频弹幕:#LINK#
    视频内嵌引导关注按钮:#ATTENTION#
    contentstr弹幕内容
    extrastr弹幕数据json序列
    idnum弹幕dmid
    idStrstr弹幕dmid字串形式
    midnum用户mid
    oidnum视频cid
    progressnum弹幕出现在视频内的时间
    typenum互动弹幕类型1:UP主头像弹幕
    2:关联视频弹幕
    5:视频内嵌引导关注按钮

    extra序列数据:

    类型为【UP主头像弹幕】时:

    字段类型内容备注
    iconstrUP主头像url

    类型为【关联视频弹幕】时:

    字段类型内容备注
    aidnum关联视频的avid
    titlestr关联视频的标题
    bvidstr关联视频的bvid

    类型为【视频内嵌引导关注按钮】时:

    字段类型内容备注
    durationnum持续时间单位为毫秒
    posXnumX坐标区间:[118-549]
    posYnumY坐标区间:[82-293]
    iconstr按钮图片url不应该是关注按钮吗,但这个是圆形的
    typenum关注按钮类型0:仅关注
    1:仅三联
    2:关注+三联

    示例:

    为视频av201947622(cid为230709860)的5000ms位置发送一条UP主头像弹幕test

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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/v2/dm/command/grade/post

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    `,35),w=a(`

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    aidnum稿件 aid必要
    cidnum分 P cid必要
    progressnum播放进度必要单位为毫秒
    grade_idnum打分 id必要
    grade_scorenum分数偶数, 最大 10
    polaris_app_idnum100不必要
    polaris_platfromnum5不必要
    spmidstr333.788.0.0不必要
    from_spmidstr来源 spmid不必要
    csrfstrCSRF Token (即 Cookie 中的 bili_jct)必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | | dmid | num | 弹幕dmid | | | dmid_str | str | 弹幕dmid | 字串形式 | | visible | bool | 是否可见 | | | action | str | 动作 | "grade:" + (请求的分数 / 2) |

    示例:

    curl -X POST 'https://api.bilibili.com/x/v2/dm/command/grade/post' \\
    +--data-urlencode 'aid=112861976201494' \\
    +--data-urlencode 'cid=500001629877726' \\
    +--data-urlencode 'progress=32000' \\
    +--data-urlencode 'grade_id=3651137' \\
    +--data-urlencode 'grade_score=10' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "dmid": 1651556419721443584,
    +    "dmidStr": "1651556419721443584",
    +    "visible": true,
    +    "action": "grade:5"
    +  }
    +}
    +

    撤回弹幕

    https://api.bilibili.com/x/dm/recall

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    仅能撤回自己两分钟内的弹幕,且每天只有3次机会

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    dmidnum弹幕dmid必要
    cidnum视频cid必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    36301:撤回失败,弹幕发送已过2分钟
    36302:撤回失败,弹幕已经被删除或撤回
    36303:撤回失败,今天撤回的机会已经用完
    36304:撤回失败,服务器出错
    messagestr错误信息成功后显示剩余次数
    ttlnum1

    示例:

    撤回cid=168901231下的弹幕32310301474947077的弹幕

    curl 'https://api.bilibili.com/x/dm/recall' \\
    +--data-urlencode 'cid=168901231' \\
    +--data-urlencode 'dmid=32310301474947077' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "撤回成功,你还有3次撤回机会"
    +}
    +

    购买高级弹幕发送权限

    https://api.bilibili.com/x/dm/adv/buy

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    购买一次需要2硬币,同时向up主发送请求

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    modestrsp必要
    cidnum视频cid必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -107:硬币不足
    -400:请求错误
    36007:不允许购买
    36009:正在确认中
    36010:已购买
    messagestr返回信息
    ttlnum1

    示例:

    购买视频cid为168901231的高级弹幕发送权限

    curl 'https://api.bilibili.com/x/dm/adv/buy' \\
    +--data-urlencode 'cid=168901231' \\
    +--data-urlencode 'mode=sp' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"已成功购买"
    +}
    +

    检测高级弹幕发送权限

    https://api.bilibili.com/x/dm/adv/state

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    modestrsp必要
    cidnum视频cid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    --400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    有效时:信息本体

    data对象:

    字段类型内容备注
    coinsnum需要支付的硬币数
    confirmnum是否同意1:同意
    2:未同意
    未购买时无此项
    acceptbool是否允许申请true:允许
    false:不允许
    hasBuybool是否已购买true:已购买
    未购买时无此项

    示例:

    查询视频cid为168901231的视频高级弹幕权限购买状态

    当前状态为已购买且同意

    curl -G 'https://api.bilibili.com/x/dm/adv/state' \\
    +--data-urlencode 'cid=168901231' \\
    +--data-urlencode 'mode=sp' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "coins": 2,
    +        "confirm": 1,
    +        "accept": true,
    +        "hasBuy": true
    +    }
    +}
    +

    点赞弹幕

    https://api.bilibili.com/x/v2/dm/thumbup/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    `,58),C=a(`

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    dmidnum目标弹幕 dmid必要
    oidnum目标弹幕所在视频 cid必要
    opnum操作必要1:点赞
    2:取消点赞
    platformstr平台标识非必要web_player:web 播放器
    android:安卓端
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    36106:该弹幕已被删除
    36805:该视频禁止点赞弹幕
    65004:取消赞失败 未点赞过
    65006:已赞过
    messagestr错误信息默认为0
    tllnum1

    示例

    cid=145928946下的弹幕35600074482384899点赞

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    举报弹幕

    https://api.bilibili.com/x/dm/report/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    cidnum视频cid必要
    dmidnum弹幕dmid必要
    reasonnum举报类型必要类型代码见下表
    contentstr其他举报备注非必要reason=11时有效
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    举报类型reason

    代码含义
    1违法违禁
    2色情低俗
    3赌博诈骗
    4人身攻击
    5侵犯隐私
    6垃圾广告
    7引战
    8剧透
    9恶意刷屏
    10视频无关
    11其他
    12青少年不良

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    36201:举报弹幕不存在
    36203:举报原因类型错误
    36204:已举报
    messagestr错误信息默认为空
    tllnum1举报失败时

    示例

    举报cid=145928946下的弹幕35600074482384899,理由是引战

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":""
    +}
    +

    保护&删除弹幕

    https://api.bilibili.com/x/v2/dm/edit/state

    请求方式:POST

    认证方式:Cookie(SESSDATA) 或APP

    注:只能操作自己的稿件或有骑士权限的稿件

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum弹幕类选择必要1:视频弹幕
    oidnum视频cid必要
    dmidsnums弹幕dmid必要多个id之间用,分隔
    statenum操作代码必要1:删除弹幕
    2:弹幕保护
    3:取消保护
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例

    删除cid=145928946下的弹幕356000744823848993906730491851571739082777041174531

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    typenum弹幕类选择必要1:视频弹幕
    oidnum视频cid必要
    dmidsnums弹幕dmid必要多个id之间用,分隔
    poolnum操作代码必要0:移出字幕池
    1:移入字幕池
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例

    cid=145928946下的弹幕356000744823848993906730491851571739082777041174531移入字幕池

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +
    `,52);function E(D,F){const d=p("RouterLink"),o=p("ExternalLinkIcon");return i(),l("div",null,[b,t("table",null,[m,t("tbody",null,[k,v,t("tr",null,[h,g,q,y,t("td",null,[s("参见 "),n(d,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("Wbi 签名")]),_:1})])]),t("tr",null,[x,S,f,_,t("td",null,[s("参见 "),n(d,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("Wbi 签名")]),_:1})])])])]),P,t("p",null,[t("a",A,[s("【客户端更新】6.10版本更新!UP主支持发布关联视频弹幕"),n(o)])]),t("p",null,[t("a",T,[s("引导关注卡片"),n(o)])]),j,c(`{ + "gh": [220] +}`),w,t("p",null,[s("查询指定弹幕点赞状态参阅文档 "),n(d,{to:"/docs/danmaku/thumbup.html"},{default:e(()=>[s("弹幕点赞查询")]),_:1})]),C])}const X=r(u,[["render",E],["__file","action.html.vue"]]);export{X as default}; diff --git a/assets/activity_list.html-012e4721.js b/assets/activity_list.html-012e4721.js new file mode 100644 index 0000000000..b65899b8f2 --- /dev/null +++ b/assets/activity_list.html-012e4721.js @@ -0,0 +1,76 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const p={},o=a(`

    相簿活动列表

    获取相簿热门活动列表

    https://api.vc.bilibili.com/photo_activity/v2/Activity/list

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    typenum活动类型非必要0:全部
    1:展示类
    2:比赛类
    biznum分区非必要0:全部
    1:画友
    2:摄影
    默认为0
    page_numnum页码非必要默认为4
    page_sizenum每页项数非必要默认为0

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    total_countstr总计活动数
    itemsarray活动列表

    data中的items数组:

    类型内容备注
    0obj活动 1
    nobj活动 (n+1)
    ……obj…………

    data中的items数组中的对象:

    字段类型内容备注
    coverstr活动图片url
    titlestr活动标题
    linkstr活动页面url
    typenum活动类型1:展示类
    2:比赛类
    biznum所属分区1:画友
    2:摄影
    tagstr活动关联的TAG
    start_timenum开始时间时间戳
    end_timenum结束时间时间戳
    descstr备注
    desc_typenum活动状态1:已结束
    2:进行中

    示例:

    获取画友分区,全部类型的5条活动

    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'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    `,19),e=[o];function c(r,l){return n(),t("div",null,e)}const u=s(p,[["render",c],["__file","activity_list.html.vue"]]);export{u as default}; diff --git a/assets/activity_list.html-b5ef105b.js b/assets/activity_list.html-b5ef105b.js new file mode 100644 index 0000000000..72ad8bf061 --- /dev/null +++ b/assets/activity_list.html-b5ef105b.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-15f43666","path":"/docs/album/activity_list.html","title":"相簿活动列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取相簿热门活动列表","slug":"获取相簿热门活动列表","link":"#获取相簿热门活动列表","children":[]}],"git":{},"filePathRelative":"docs/album/activity_list.md"}');export{t as data}; diff --git a/assets/ad-9ab8d23b.svg b/assets/ad-9ab8d23b.svg new file mode 100644 index 0000000000..3004bbff2e --- /dev/null +++ b/assets/ad-9ab8d23b.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/assets/add-5a779700.svg b/assets/add-5a779700.svg new file mode 100644 index 0000000000..ecdea954c7 --- /dev/null +++ b/assets/add-5a779700.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/aiSummary-a0a0fc86.svg b/assets/aiSummary-a0a0fc86.svg new file mode 100644 index 0000000000..efa4420da5 --- /dev/null +++ b/assets/aiSummary-a0a0fc86.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/akari-2ec5bc83.jpg b/assets/akari-2ec5bc83.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e5ea0bc912b7e8b9eb447d35ee6fe5682616ce8 GIT binary patch literal 8992 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 xueIl6DyOnNq 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 Wf8K0CAWA^W@V`*tubls&nEOBCt+wa@ literal 0 HcmV?d00001 diff --git a/assets/all.html-154d0518.js b/assets/all.html-154d0518.js new file mode 100644 index 0000000000..7bc08344c3 --- /dev/null +++ b/assets/all.html-154d0518.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-3c9c4ba3","path":"/docs/dynamic/all.html","title":"获取动态列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取全部动态列表","slug":"获取全部动态列表","link":"#获取全部动态列表","children":[]},{"level":2,"title":"检测是否有新动态","slug":"检测是否有新动态","link":"#检测是否有新动态","children":[]}],"git":{},"filePathRelative":"docs/dynamic/all.md"}');export{l as data}; diff --git a/assets/all.html-57c6fbc0.js b/assets/all.html-57c6fbc0.js new file mode 100644 index 0000000000..f4a52a0a14 --- /dev/null +++ b/assets/all.html-57c6fbc0.js @@ -0,0 +1,7099 @@ +import{_ as e,r as l,o as c,c as u,a as n,d as t,w as p,b as s,e as o}from"./app-3168cb19.js";const r={},i=o('

    获取动态列表

    获取全部动态列表

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型必要性内容备注
    timezone_offsetstr非必要-480新版无
    typestr非必要分类新版无, all:全部(默认)
    video:视频投稿
    pgc:追番追剧
    article:专栏
    host_midnum非必要UP主UID仅新版, 如 293793435
    offsetnum非必要分页偏移量默认为空, 翻页时使用
    update_baselinestr非必要更新基线获取新动态时使用
    pagenum非必要页数无效参数
    platformstr非必要平台仅新版, 如 web
    featuresstr非必要功能开关?旧版 itemOpusStyle,listOnlyfans
    新版 itemOpusStyle,listOnlyfans,opusBigCover,onlyfansVote,decorationCard,onlyfansAssetsV2,forwardListHidden,ugcDelete
    web_locationstr非必要333.1365仅新版存在

    JSON回复:

    根:

    字段类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr
    ttlnum1
    dataobj信息本体

    data:

    字段类型内容备注
    has_morebool是否有更多数据
    itemsarray数据数组
    offsetstr偏移量等于items中最后一条记录的id
    获取下一页时使用
    update_baselinestr更新基线等于items中第一条记录的id
    update_numnum本次获取获取到了多少条新动态在更新基线以上的动态条数

    data.items[n]:

    ',13),k=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),d=n("tr",null,[n("td",null,"basic"),n("td",null,"obj"),n("td"),n("td")],-1),v=n("tr",null,[n("td",null,"id_str"),n("td",null,"str"),n("td",null,"动态id"),n("td")],-1),q=n("tr",null,[n("td",null,"modules"),n("td",null,"obj"),n("td",null,"动态信息"),n("td")],-1),b=n("td",null,"type",-1),m=n("td",null,"str",-1),y=n("td",null,"动态类型",-1),_=n("tr",null,[n("td",null,"visible"),n("td",null,"bool"),n("td",null,"是否显示"),n("td",null,[n("code",null,"true"),s(":正常显示"),n("br"),n("code",null,"false"),s(":折叠动态")])],-1),g=n("tr",null,[n("td",null,"orig"),n("td",null,"obj"),n("td",null,"原动态信息"),n("td",null,[s("仅动态类型为"),n("code",null,"DYNAMIC_TYPE_FORWARD"),s("的情况下存在")])],-1),h=n("p",null,[n("code",null,"data.items[n].basic"),s(":")],-1),f=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),E=n("td",null,"comment_id_str",-1),x=n("td",null,"str",-1),T=n("td",null,null,-1),w=n("td",null,"comment_type",-1),R=n("td",null,"num",-1),A=n("td",null,null,-1),F=n("tr",null,[n("td",null,"like_icon"),n("td",null,"obj"),n("td"),n("td",null,"见下")],-1),O=n("td",null,"rid_str",-1),N=n("td",null,"str",-1),j=n("td",null,null,-1),C=o("

    data.items[n].basic.like_icon:

    字段类型内容备注
    action_urlstr空串
    end_urlstr空串
    idnum0
    start_urlstr空串

    data.items[n].modules:

    字段类型内容备注
    module_authorobjUP主信息
    module_dynamicobj动态内容信息
    module_moreobj动态右上角三点菜单
    module_statobj动态统计数据
    module_interactionobj热度评论
    module_foldobj动态折叠信息
    module_disputeobj争议小黄条
    module_tagobj置顶信息

    data.items[n].modules.module_author:

    ",5),P=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Y=n("td",null,"avater",-1),I=n("td",null,"obj",-1),L=n("td",null,"头像信息",-1),B=n("tr",null,[n("td",null,"face"),n("td",null,"str"),n("td",null,"头像 URL"),n("td")],-1),D=n("tr",null,[n("td",null,"face_nft"),n("td",null,"bool"),n("td",null,"是否为NFT头像"),n("td")],-1),z=n("tr",null,[n("td",null,"following"),n("td",null,"bool"),n("td",null,"是否关注此UP主"),n("td",null,[s("自己的动态为"),n("code",null,"null")])],-1),G=n("tr",null,[n("td",null,"jump_url"),n("td",null,"str"),n("td",null,"跳转链接"),n("td")],-1),H=n("tr",null,[n("td",null,"label"),n("td",null,"str"),n("td",null,"名称前标签"),n("td",null,[n("code",null,"合集"),n("br"),n("code",null,"电视剧"),n("br"),n("code",null,"番剧")])],-1),X=n("tr",null,[n("td",null,"mid"),n("td",null,"num"),n("td",null,[s("UP主UID"),n("br"),s("剧集SeasonId")]),n("td")],-1),M=n("tr",null,[n("td",null,"name"),n("td",null,"str"),n("td",null,[s("UP主名称"),n("br"),s("剧集名称"),n("br"),s("合集名称")]),n("td")],-1),V=n("tr",null,[n("td",null,"official_verify"),n("td",null,"obj"),n("td",null,"UP主认证信息"),n("td")],-1),U=n("tr",null,[n("td",null,"pendant"),n("td",null,"obj"),n("td",null,"UP主头像框"),n("td")],-1),S=n("tr",null,[n("td",null,"pub_action"),n("td",null,"str"),n("td",null,"更新动作描述"),n("td",null,[n("code",null,"投稿了视频"),n("br"),n("code",null,"直播了"),n("br"),n("code",null,"投稿了文章"),n("br"),n("code",null,"更新了合集"),n("br"),n("code",null,"与他人联合创作"),n("br"),n("code",null,"发布了动态视频"),n("br"),n("code",null,"投稿了直播回放")])],-1),W=n("tr",null,[n("td",null,"pub_location_text"),n("td",null,"str"),n("td",null,"空"),n("td")],-1),J=n("tr",null,[n("td",null,"pub_time"),n("td",null,"str"),n("td",null,"更新时间"),n("td",null,[n("code",null,"x分钟前"),n("br"),n("code",null,"x小时前"),n("br"),n("code",null,"昨天")])],-1),Q=n("tr",null,[n("td",null,"pub_ts"),n("td",null,"num"),n("td",null,"更新时间戳"),n("td",null,"UNIX 秒级时间戳")],-1),K=n("td",null,"type",-1),Z=n("td",null,"str",-1),$=n("td",null,"作者类型",-1),nn=n("tr",null,[n("td",null,"vip"),n("td",null,"obj"),n("td",null,"UP主大会员信息"),n("td")],-1),sn=n("tr",null,[n("td",null,"decorate"),n("td",null,"obj"),n("td",null,"装扮信息"),n("td")],-1),an=n("tr",null,[n("td",null,"nft_info"),n("td",null,"obj"),n("td",null,"NFT头像信息"),n("td")],-1),tn=o("

    data.items[n].modules.module_author.official_verify:

    字段类型内容备注
    descstr认证说明
    typenum认证类型

    data.items[n].modules.module_author.pendant:

    字段类型内容备注
    expirenum过期时间此接口返回恒为0
    imagestr头像框图片url
    image_enhancestr头像框图片url
    image_enhance_framestr头像框图片逐帧序列url
    namestr头像框名称
    pidnum头像框id
    n_pidnum同 pid

    data.items[n].modules.module_author.vip:

    字段类型内容备注
    avatar_subscriptnum是否显示角标0:不显示
    1:显示
    avatar_subscript_urlstr空串
    due_datenum大会员过期时间戳UNIX 毫秒时间戳
    labelobj大会员标签
    nickname_colorstr名字显示颜色大会员:#FB7299
    statusnum大会员状态0:无
    1:有
    2:封禁?
    theme_typenum0
    typenum大会员类型0:无
    1:月大会员
    2:年度及以上大会员

    data.items[n].modules.module_author.vip.label:

    字段类型内容备注
    bg_colorstr会员标签背景颜色#FB7299
    bg_stylenum0 1
    border_colorstr
    img_label_uri_hansstr大会员牌子图片动态版 简体版
    img_label_uri_hans_staticstr大会员牌子图片静态版 简体版
    img_label_uri_hantstr大会员牌子图片动态版 繁体版
    img_label_uri_hant_staticstr大会员牌子图片静态版 繁体版
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    pathstr
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    text_colorstr用户名文字颜色
    use_img_labelbooltrue

    data.items[n].modules.module_author.decorate:

    字段类型内容备注
    card_urlstr动态卡片小图标图片URL
    fanobj粉丝装扮信息
    idnum装扮ID
    jump_urlstr跳转URL
    namestr装扮名称
    typenum1 2 3

    data.items[n].modules.module_author.decorate.fan:

    字段类型内容备注
    colorstr编号颜色
    color_formatobj颜色格式
    is_fanbool是否是粉丝装扮
    num_strstr装扮编号前缀NO.
    numbernum装扮编号

    data.items[n].modules.module_author.decorate.fan.color_format:

    字段类型内容备注
    colorsarray颜色# 前缀的 16 进制颜色代码
    end_pointstr端点0,100
    gradientsarray渐变内容 [0, 100]
    start_pointstr起点0,0

    data.items[n].modules.module_author.nft_info:

    字段类型内容备注
    region_iconstrNFT头像角标URL类型1:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/j8AeXAkEul.gif
    类型2:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/IOHoVs1ebP.gif
    region_typenumNFT头像角标类型1,2
    show_statusnum1

    data.items[n].modules.module_dynamic:

    字段类型内容备注
    additionalobj相关内容卡片信息
    descobj动态文字内容其他动态时为null
    majorobj动态主体对象转发动态时为null
    topicobj话题信息

    data.items[n].modules.module_dynamic.additional:

    ",19),pn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),on=n("tr",null,[n("td",null,"common"),n("td",null,"obj"),n("td",null,"一般类型"),n("td",null,[n("code",null,"ADDITIONAL_TYPE_COMMON"),s("类型独有")])],-1),en=n("td",null,"type",-1),ln=n("td",null,"str",-1),cn=n("td",null,"卡片类型",-1),un=n("tr",null,[n("td",null,"reserve"),n("td",null,"obj"),n("td",null,"预约信息"),n("td",null,[n("code",null,"ADDITIONAL_TYPE_RESERVE"),s("类型独有")])],-1),rn=n("tr",null,[n("td",null,"goods"),n("td",null,"obj"),n("td",null,"商品内容"),n("td",null,[n("code",null,"ADDITIONAL_TYPE_GOODS"),s("类型独有")])],-1),kn=n("tr",null,[n("td",null,"vote"),n("td",null,"obj"),n("td",null,"投票信息"),n("td",null,[n("code",null,"ADDITIONAL_TYPE_VOTE"),s("类型独有")])],-1),dn=n("tr",null,[n("td",null,"ugc"),n("td",null,"obj"),n("td",null,"视频信息"),n("td",null,[n("code",null,"ADDITIONAL_TYPE_UGC"),s("类型独有")])],-1),vn=o("

    data.items[n].modules.module_dynamic.additional.common:

    字段类型内容备注
    buttonobj按钮内容
    coverstr左侧封面图
    desc1str描述1
    desc2str描述2
    head_textstr卡片头文本
    id_strstr相关id
    jump_urlstr跳转URL
    stylenum1
    sub_typestr子类型game
    decoration
    ogv
    titlestr卡片标题

    data.items[n].modules.module_dynamic.additional.common.button:

    字段类型内容备注
    jump_styleobj跳转类型gamedecoration类型特有
    jump_urlstr跳转URL
    typenum1:gamedecoration类型
    2:ogv类型
    checkobjogv类型特有
    statusnum1
    uncheckobjogv类型特有

    data.items[n].modules.module_dynamic.additional.common.button.jump_style:

    字段类型内容备注
    icon_urlstr空串
    textstr按钮显示文案game:进入
    decoration:去看看

    data.items[n].modules.module_dynamic.additional.common.button.check:

    字段类型内容备注
    icon_urlstr按钮图片URL
    textstr按钮显示文案ogv:已追剧

    data.items[n].modules.module_dynamic.additional.common.button.uncheck:

    字段类型内容备注
    icon_urlstr按钮图片URL
    textstr按钮显示文案ogv:追剧

    data.items[n].modules.module_dynamic.additional.reserve:

    字段类型内容备注
    buttonobj按钮信息
    desc1obj预约时间
    desc2obj预约观看量
    jump_urlstr跳转URL
    reserve_totalnum预约人数
    ridnum
    statenum0
    stypenum1 2
    titlestr预约标题
    up_midnum预约发起人UID
    desc3obj预约有奖信息

    data.items[n].modules.module_dynamic.additional.reserve.button:

    字段类型内容备注
    checkobj已预约状态显示内容
    statusnum预约状态1:未预约,使用uncheck
    2:已预约,使用check
    typenum类型1:视频预约,使用jump_style
    2:直播预约,使用checkuncheck
    uncheckobj未预约状态显示内容
    jump_styleobj跳转按钮
    jump_urlstr跳转URL

    data.items[n].modules.module_dynamic.additional.reserve.button.check对象"

    字段类型内容备注
    icon_urlstr空串
    textstr按钮显示文案已预约

    data.items[n].modules.module_dynamic.additional.reserve.button.uncheck:

    字段类型内容备注
    icon_urlstr显示图标URL
    textstr按钮显示文案
    toaststr预约成功显示提示文案
    disablenum是否不可预约1:是

    data.items[n].modules.module_dynamic.additional.reserve.button.jump_style:

    字段类型内容备注
    icon_urlstr空串
    textstr按钮显示文案去观看

    data.items[n].modules.module_dynamic.additional.reserve.desc1:

    字段类型内容备注
    stylenum类型0:视频预约 11-05 20:00 直播 预计今天 17:05发布
    1:直播中
    textstr显示文案

    data.items[n].modules.module_dynamic.additional.reserve.desc2:

    字段类型内容备注
    stylenum0
    textstr显示文案2人预约
    743观看
    1.0万人看过
    2151人气
    visiblebool是否显示true:显示文案
    false:显示已结束

    data.items[n].modules.module_dynamic.additional.reserve.desc3:

    字段类型内容备注
    jump_urlstr开奖信息跳转URL
    stylenum1
    textstr奖品信息显示文案

    data.items[n].modules.module_dynamic.additional.goods:

    字段类型内容备注
    head_iconstr空串
    head_textstr卡片头显示文案
    itemsarray商品信息列表
    jump_urlstr空串

    data.items[n].modules.module_dynamic.additional.goods.items数组中的:

    字段类型内容备注
    briefstr商品副标题
    coverstr商品封面
    idstr商品ID
    jump_descstr跳转按钮显示文案
    jump_urlstr跳转URL
    namestr商品名称
    pricestr商品价格

    data.items[n].modules.module_dynamic.additional.vote:

    字段类型内容备注
    choice_cntnum1
    default_sharenum是否默认勾选同时分享至动态1:勾选
    descstr投票标题
    end_timenum剩余时间单位:秒
    join_numnum已参与人数
    statusnum1
    typenullnull
    uidnum发起人UID
    vote_idnum投票ID

    data.items[n].modules.module_dynamic.additional.ugc:

    字段类型内容备注
    coverstr封面
    desc_secondstr播放量与弹幕数
    durationstr视频长度
    head_textstr空串
    id_strstr视频AV号
    jump_urlstr视频跳转URL
    multi_linebooltrue
    titlestr视频标题

    data.items[n].modules.module_dynamic.desc:

    ",35),qn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),bn=n("td",null,"rich_text_nodes",-1),mn=n("td",null,"array",-1),yn=n("td",null,"富文本节点列表",-1),_n=n("tr",null,[n("td",null,"text"),n("td",null,"str"),n("td",null,"动态的文字内容"),n("td")],-1),gn=n("p",null,[n("code",null,"data.items[n].modules.module_dynamic.desc.rich_text_nodes[o]"),s(":")],-1),hn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),fn=n("tr",null,[n("td",null,"orig_text"),n("td",null,"str"),n("td",null,"原始文本"),n("td")],-1),En=n("tr",null,[n("td",null,"text"),n("td",null,"str"),n("td",null,"替换后的文本"),n("td")],-1),xn=n("td",null,"type",-1),Tn=n("td",null,"str",-1),wn=n("td",null,"节点类型",-1),Rn=n("tr",null,[n("td",null,"emoji"),n("td",null,"obj"),n("td",null,"表情信息"),n("td")],-1),An=n("tr",null,[n("td",null,"jump_url"),n("td",null,"str"),n("td",null,"跳转URL"),n("td")],-1),Fn=n("tr",null,[n("td",null,"rid"),n("td",null,"str"),n("td",null,"关联id"),n("td")],-1),On=n("tr",null,[n("td",null,"goods"),n("td",null,"obj"),n("td",null,"商品信息"),n("td")],-1),Nn=n("tr",null,[n("td",null,"icon_name"),n("td",null,"str"),n("td",null,"图标名称"),n("td",null,[n("code",null,"taobao")])],-1),jn=o("

    data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].emoji:

    字段类型内容备注
    icon_urlstr表情图片URL
    sizenum表情尺寸1 2
    textstr表情的文字代码
    typenum表情类型1 2 3

    data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].goods:

    字段类型内容备注
    jump_urlstr跳转URL
    typenum1

    data.items[n].modules.module_dynamic.major:

    ",5),Cn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Pn=n("td",null,"type",-1),Yn=n("td",null,"str",-1),In=n("td",null,"动态主体类型",-1),Ln=n("tr",null,[n("td",null,"ugc_season"),n("td",null,"obj"),n("td",null,"合集信息"),n("td",null,[n("code",null,"MAJOR_TYPE_UGC_SEASON")])],-1),Bn=n("tr",null,[n("td",null,"article"),n("td",null,"obj"),n("td",null,"专栏类型"),n("td",null,[n("code",null,"MAJOR_TYPE_ARTICLE")])],-1),Dn=n("tr",null,[n("td",null,"draw"),n("td",null,"obj"),n("td",null,"带图动态"),n("td",null,[n("code",null,"MAJOR_TYPE_DRAW")])],-1),zn=n("tr",null,[n("td",null,"archive"),n("td",null,"obj"),n("td",null,"视频信息"),n("td",null,[n("code",null,"MAJOR_TYPE_ARCHIVE")])],-1),Gn=n("tr",null,[n("td",null,"live_rcmd"),n("td",null,"obj"),n("td",null,"直播状态"),n("td",null,[n("code",null,"MAJOR_TYPE_LIVE_RCMD")])],-1),Hn=n("tr",null,[n("td",null,"common"),n("td",null,"obj"),n("td",null,"一般类型"),n("td",null,[n("code",null,"MAJOR_TYPE_COMMON")])],-1),Xn=n("tr",null,[n("td",null,"pgc"),n("td",null,"obj"),n("td",null,"剧集信息"),n("td",null,[n("code",null,"MAJOR_TYPE_PGC")])],-1),Mn=n("tr",null,[n("td",null,"courses"),n("td",null,"obj"),n("td",null,"课程信息"),n("td",null,[n("code",null,"MAJOR_TYPE_COURSES")])],-1),Vn=n("tr",null,[n("td",null,"music"),n("td",null,"obj"),n("td",null,"音频信息"),n("td",null,[n("code",null,"MAJOR_TYPE_MUSIC")])],-1),Un=n("tr",null,[n("td",null,"opus"),n("td",null,"obj"),n("td",null,"图文动态"),n("td",null,[n("code",null,"MAJOR_TYPE_OPUS")])],-1),Sn=n("tr",null,[n("td",null,"live"),n("td",null,"obj"),n("td"),n("td")],-1),Wn=n("tr",null,[n("td",null,"none"),n("td",null,"obj"),n("td",null,"动态失效"),n("td",null,[n("code",null,"MAJOR_TYPE_NONE")])],-1),Jn=o("

    data.items[n].modules.module_dynamic.major.ugc_season:

    字段类型内容备注
    aidnum视频AV号
    badgeobj角标信息
    coverstr视频封面
    descstr视频简介
    disable_previewnum0
    duration_textstr时长
    jump_urlstr跳转URL
    statobj统计信息
    titlestr视频标题

    data.items[n].modules.module_dynamic.major.ugc_season.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.ugc_season.stat:

    字段类型内容备注
    danmakustr弹幕数
    playstr播放数

    data.items[n].modules.module_dynamic.major.article:

    字段类型内容备注
    coversarray封面图数组最多三张
    descstr文章摘要
    idnum文章CV号
    jump_urlstr文章跳转地址
    labelstr文章阅读量
    titlestr文章标题

    data.items[n].modules.module_dynamic.major.draw:

    字段类型内容备注
    idnum对应相簿id
    itemsarray图片信息列表

    data.items[n].modules.module_dynamic.major.draw.items[o]:

    字段类型内容备注
    heightnum图片高度
    sizenum图片大小单位KB
    srcstr图片URL
    tagsarray
    widthnum图片宽度

    data.items[n].modules.module_dynamic.major.archive:

    字段类型内容备注
    aidstr视频AV号
    badgeobj角标信息
    bvidstr视频BVID
    coverstr视频封面
    descstr视频简介
    disable_previewnum0
    duration_textstr视频长度
    jump_urlstr跳转URL
    statobj统计信息
    titlestr视频标题
    typenum1

    data.items[n].modules.module_dynamic.major.archive.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.archive.stat:

    字段类型内容备注
    danmakustr弹幕数
    playstr播放数

    data.items[n].modules.module_dynamic.major.live_rcmd:

    字段类型内容备注
    contentstr直播间内容JSON
    reserve_typenum0

    data.items[n].modules.module_dynamic.major.common:

    字段类型内容备注
    badgeobj角标信息
    biz_typenum0
    coverstr左侧图片封面
    descstr右侧描述信息
    idstr
    jump_urlstr跳转地址
    labelstr空串
    sketch_idstr
    stylenum1
    titlestr右侧标题

    data.items[n].modules.module_dynamic.major.common.badge:

    字段类型内容备注
    bg_colorstr空串
    colorstr空串
    textstr空串

    data.items[n].modules.module_dynamic.major.pgc:

    字段类型内容备注
    badgeobj角标信息
    coverstr视频封面
    epidnum分集EpId
    jump_urlstr跳转URL
    season_idnum剧集SeasonId
    statobj统计信息
    sub_typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    6:漫画
    7:综艺
    titlestr视频标题
    typenum2

    data.items[n].modules.module_dynamic.major.pgc.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.pgc.stat:

    字段类型内容备注
    danmakustr弹幕数
    playstr播放数

    data.items[n].modules.module_dynamic.major.courses:

    字段类型内容备注
    badgeobj角标信息
    coverstr封面图URL
    descstr更新状态描述
    idnum课程id
    jump_urlstr跳转URL
    sub_titlestr课程副标题
    titlestr课程标题

    data.items[n].modules.module_dynamic.major.courses.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.music:

    字段类型内容备注
    coverstr音频封面
    idnum音频AUID
    jump_urlstr跳转URL
    labelstr音频分类
    titlestr音频标题

    data.items[n].modules.module_dynamic.major.opus:

    字段类型内容备注
    fold_actionarray展开收起
    jump_urlstr跳转URL
    picsarray图片信息
    summaryobj动态内容
    titlestr动态标题没有标题时为null

    data.items[n].modules.module_dynamic.major.opus.summary:

    字段类型内容备注
    rich_text_nodesarray富文本节点列表desc对象中的rich_text_nodes数组结构一样
    textstr评论内容

    data.items[n].modules.module_dynamic.major.live:

    字段类型内容备注
    badgeobj角标信息
    coverstr直播封面
    desc_firststr直播主分区名称
    desc_secondstr观看人数
    idnum直播间id
    jump_urlstr直播间跳转URL
    live_statenum直播状态0:直播结束
    1:正在直播
    reserve_typenum0
    titlestr直播间标题

    data.items[n].modules.module_dynamic.major.live.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.none:

    字段类型内容备注
    tipsstr动态失效显示文案deprecated?

    data.items[n].modules.module_dynamic.topic:

    字段类型内容备注
    idnum话题id
    jump_urlstr跳转URL
    namestr话题名称

    data.items[n].modules.module_more:

    字段类型内容备注
    three_point_itemsarray右上角三点菜单

    data.items[n].modules.module_more.three_point_items[o]:

    ",51),Qn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Kn=n("tr",null,[n("td",null,"label"),n("td",null,"str"),n("td",null,"显示文本"),n("td")],-1),Zn=n("td",null,"type",-1),$n=n("td",null,"str",-1),ns=n("td",null,"类型",-1),ss=n("tr",null,[n("td",null,"modal"),n("td",null,"obj"),n("td",null,"弹出框信息"),n("td",null,"删除动态时弹出")],-1),as=n("tr",null,[n("td",null,"params"),n("td",null,"obj"),n("td",null,"参数"),n("td",null,"置顶/取消置顶时使用")],-1),ts=o("

    data.items[n].modules.module_more.three_point_items[o].modal:

    字段类型内容备注
    cancelstr取消按钮我点错了
    confirmstr确认按钮删除
    contentstr提示内容确定要删除此条动态吗?
    titlestr标题删除动态

    data.items[n].modules.module_more.three_point_items[o].params:

    字段类型内容备注
    dynamic_idstr当前动态IDdeprecated?
    statusbool当前动态是否处于置顶状态deprecated?

    data.items[n].modules.module_stat:

    字段类型内容备注
    commentobj评论数据
    forwardobj转发数据
    likeobj点赞数据

    data.items[n].modules.module_stat.comment:

    字段类型内容备注
    countnum评论数
    forbiddenboolfalse
    hiddenbool是否隐藏直播类型动态会隐藏回复功能

    data.items[n].modules.module_stat.forward:

    字段类型内容备注
    countnum转发数
    forbiddenboolfalse

    data.items[n].modules.module_stat.like:

    字段类型内容备注
    countnum点赞数
    forbiddenboolfalse
    statusbool当前用户是否点赞

    data.items[n].modules.module_interaction:

    字段类型内容备注
    itemsarray信息列表

    data.items[n].modules.module_interaction.items数组中的:

    字段类型内容备注
    descobj点赞/评论信息
    typenum类型0:点赞信息
    1:评论信息

    data.items[n].modules.module_interaction.items[o].desc:

    ",17),ps=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),os=n("td",null,"rich_text_nodes",-1),es=n("td",null,"array",-1),ls=n("td",null,"富文本节点列表",-1),cs=n("tr",null,[n("td",null,"text"),n("td",null,"str"),n("td",null,"评论内容"),n("td")],-1),us=n("p",null,[n("code",null,"data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes"),s("数组中的:")],-1),rs=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),is=n("tr",null,[n("td",null,"orig_text"),n("td",null,"str"),n("td",null,"原始文本"),n("td")],-1),ks=n("tr",null,[n("td",null,"rid"),n("td",null,"str"),n("td",null,"关联ID"),n("td",null,"用户UID")],-1),ds=n("tr",null,[n("td",null,"text"),n("td",null,"str"),n("td",null,"替换后文本"),n("td")],-1),vs=n("td",null,"type",-1),qs=n("td",null,"str",-1),bs=n("td",null,"富文本节点类型",-1),ms=n("tr",null,[n("td",null,"emoji"),n("td",null,"obj"),n("td",null,"表情信息"),n("td")],-1),ys=o(`

    data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes[n].emoji:

    字段类型内容备注
    icon_urlstr表情图片URL
    sizenum表情尺寸1 2
    textstr表情的文字代码
    typenum表情类型1 2 3

    data.items[n].modules.module_fold:

    字段类型内容备注
    idsarray被折叠的动态id列表
    statementstr显示文案例:展开x条相关动态
    typenum1
    usersarray空数组

    data.items[n].modules.module_dispute:

    字段类型内容备注
    descstr
    jump_urlstr
    titlestr提醒文案例:视频内含有危险行为,请勿模仿

    data.items[n].modules.module_tag:

    字段类型内容备注
    textstr'置顶'置顶动态出现这个对象,否则没有

    示例:

    curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?type=all' \\
    +-H 'Cookie: SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "has_more": true,
    +    "items": [
    +      {
    +        "basic": {
    +          "comment_id_str": "112981396619958",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "112981396619958"
    +        },
    +        "id_str": "966887968322093078",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i2.hdslb.com/bfs/face/b1c15dd8814d79e648008815517aa5ef50a2fb9c.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "3546730050096047"
    +            },
    +            "face": "https://i2.hdslb.com/bfs/face/b1c15dd8814d79e648008815517aa5ef50a2fb9c.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/3546730050096047/dynamic",
    +            "label": "",
    +            "mid": 3546730050096047,
    +            "name": "青岛LUCIFER",
    +            "official_verify": {
    +              "desc": "",
    +              "type": -1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "刚刚",
    +            "pub_ts": 1723959548,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 0,
    +              "avatar_subscript_url": "",
    +              "due_date": 0,
    +              "label": {
    +                "bg_color": "",
    +                "bg_style": 0,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +                "label_theme": "",
    +                "path": "",
    +                "text": "",
    +                "text_color": "",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "",
    +              "status": 0,
    +              "theme_type": 0,
    +              "type": 0
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "112981396619958",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1oeWNebEv2",
    +                "cover": "http://i2.hdslb.com/bfs/archive/0e3d26d90eb0642d90c7552e63ce690e2fe7f8ce.jpg",
    +                "desc": "给老板娘贴睫毛贴了半天,老登眼皮总动,夹睫毛疼了还骂我,不开心哈哈哈。",
    +                "disable_preview": 0,
    +                "duration_text": "00:16",
    +                "jump_url": "//www.bilibili.com/video/BV1oeWNebEv2/",
    +                "stat": {
    +                  "danmaku": "0",
    +                  "play": "0"
    +                },
    +                "title": "老板娘今天是可爱鬼呀!",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 0,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1756441068",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1756441068"
    +        },
    +        "id_str": "966873782060843027",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/726060100f7b80f3ab17889aa9fb8f380a53b9da.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "266765166"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/726060100f7b80f3ab17889aa9fb8f380a53b9da.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/266765166/dynamic",
    +            "label": "",
    +            "mid": 266765166,
    +            "name": "漫士沉思录",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "55分钟前",
    +            "pub_ts": 1723956245,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 0,
    +              "avatar_subscript_url": "",
    +              "due_date": 0,
    +              "label": {
    +                "bg_color": "",
    +                "bg_style": 0,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +                "label_theme": "",
    +                "path": "",
    +                "text": "",
    +                "text_color": "",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "",
    +              "status": 0,
    +              "theme_type": 0,
    +              "type": 0
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1756441068",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1d4421Z7nW",
    +                "cover": "http://i1.hdslb.com/bfs/archive/df067c178714da9b511f10bde11e1bc75ea676d9.jpg",
    +                "desc": "使用3b1b开发的manim引擎制作",
    +                "disable_preview": 0,
    +                "duration_text": "14:25",
    +                "jump_url": "//www.bilibili.com/video/BV1d4421Z7nW/",
    +                "stat": {
    +                  "danmaku": "217",
    +                  "play": "1.4万"
    +                },
    +                "title": "【漫士科普】如何最简单且本质地理解欧拉公式?",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 142,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 6,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 1959,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325833790",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325833790"
    +        },
    +        "id_str": "966831498138222598",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "233114659"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +              "fan": {
    +                "color": "#903AC2",
    +                "color_format": {
    +                  "colors": [
    +                    "#903AC2FF",
    +                    "#903AC2FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "000001",
    +                "number": 1
    +              },
    +              "id": 1706163888001,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=233114659\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "龙腾啾跃-动态卡片粉丝",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/233114659/dynamic",
    +            "label": "",
    +            "mid": 233114659,
    +            "name": "碧蓝航线",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +              "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +              "n_pid": 1987,
    +              "name": "碧蓝航线2020",
    +              "pid": 1987
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "3小时前",
    +            "pub_ts": 1723946400,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1729526400000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "common": {
    +                "button": {
    +                  "jump_style": {
    +                    "icon_url": "",
    +                    "text": "进入"
    +                  },
    +                  "jump_url": "https://www.biligame.com/detail?id=97\\u0026sourceFrom=1005",
    +                  "type": 1
    +                },
    +                "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +                "desc1": "养成",
    +                "desc2": "指挥官,欢迎回港",
    +                "head_text": "相关游戏",
    +                "id_str": "97",
    +                "jump_url": "https://www.biligame.com/detail?id=97\\u0026sourceFrom=1005",
    +                "style": 1,
    +                "sub_type": "game",
    +                "title": "碧蓝航线"
    +              },
    +              "type": "ADDITIONAL_TYPE_COMMON"
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF",
    +                  "orig_text": "#碧蓝航线#",
    +                  "text": "#碧蓝航线#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF%E6%BC%AB%E5%B1%95",
    +                  "orig_text": "#碧蓝航线漫展#",
    +                  "text": "#碧蓝航线漫展#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=2024%E6%B8%AF%E5%8C%BA%E7%9B%9B%E5%A4%8F%E6%B8%85%E5%87%89%E8%8A%82",
    +                  "orig_text": "#2024港区盛夏清凉节#",
    +                  "text": "#2024港区盛夏清凉节#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": "\\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \\n\\n城市街巷,专属惊喜,\\n绘就绚丽夏日!\\n和少女们一同记录这场特别邂逅吧!\\n\\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\\n◆ 参与方式:无需预约,前往现场即可参与体验~\\n◆ 体验须知:\\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\\n※兑换周边每日数量有限,兑完即止。\\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "text": "\\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \\n\\n城市街巷,专属惊喜,\\n绘就绚丽夏日!\\n和少女们一同记录这场特别邂逅吧!\\n\\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\\n◆ 参与方式:无需预约,前往现场即可参与体验~\\n◆ 体验须知:\\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\\n※兑换周边每日数量有限,兑完即止。\\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "#碧蓝航线# #碧蓝航线漫展# #2024港区盛夏清凉节#\\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \\n\\n城市街巷,专属惊喜,\\n绘就绚丽夏日!\\n和少女们一同记录这场特别邂逅吧!\\n\\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\\n◆ 参与方式:无需预约,前往现场即可参与体验~\\n◆ 体验须知:\\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\\n※兑换周边每日数量有限,兑完即止。\\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325833790,
    +                "items": [
    +                  {
    +                    "height": 4000,
    +                    "size": 16103.947,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/31b32e6dcf2f1a6328552f0fa666302d233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 3905,
    +                    "size": 16620.71,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/e507c60207f486824708a5850d07d1bb233114659.jpg",
    +                    "tags": [],
    +                    "width": 5858
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 16195.393,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/7a7ef9513bb32edc3de887d787a4df43233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4672,
    +                    "size": 11758.82,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/a21461b944e10306e68672df3e92c1b9233114659.jpg",
    +                    "tags": [],
    +                    "width": 7008
    +                  },
    +                  {
    +                    "height": 4672,
    +                    "size": 3962.4902,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/b2c4baa47b4999cabb9c8c338c2da36c233114659.jpg",
    +                    "tags": [],
    +                    "width": 7008
    +                  },
    +                  {
    +                    "height": 4672,
    +                    "size": 11276.51,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/8cf06e142fce875d2c3b83961abbc668233114659.jpg",
    +                    "tags": [],
    +                    "width": 7008
    +                  },
    +                  {
    +                    "height": 3735,
    +                    "size": 13969.533,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/c56cd277f281ba8cc4a395dbe5d9fa54233114659.jpg",
    +                    "tags": [],
    +                    "width": 5603
    +                  },
    +                  {
    +                    "height": 3106,
    +                    "size": 12942.339,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/9049a5c39ebafdd1cb488b26da4f99da233114659.jpg",
    +                    "tags": [],
    +                    "width": 4659
    +                  },
    +                  {
    +                    "height": 3802,
    +                    "size": 18643.953,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/564e469ba092d2381b23547da37ca3c0233114659.jpg",
    +                    "tags": [],
    +                    "width": 5703
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 151,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 31,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 2827,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "37231101",
    +          "comment_type": 12,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "37231101"
    +        },
    +        "id_str": "966827503780888593",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "407045223"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 28,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=407045223\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "2233娘",
    +              "type": 1
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/407045223/dynamic",
    +            "label": "",
    +            "mid": 407045223,
    +            "name": "二次元的中科院物理所",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了文章",
    +            "pub_location_text": "",
    +            "pub_time": "3小时前",
    +            "pub_ts": 1723945470,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1745769600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "article": {
    +                "covers": [
    +                  "https://i0.hdslb.com/bfs/article/f59f635a3784c49eb174da7d589c4e75407045223.jpg"
    +                ],
    +                "desc": "西游记中,孙悟空为了保护师傅,在地上画了一个圈,由此便可限制住妖怪。今天小编带大家布置法术场地,只需在上面画出图案,便可控制水滴的行动!实验器材火柴、蜡烛、空易拉罐、所标杯、细竹签实验步骤安全提示:本实验有明火,请小朋友在家长的陪同下完成,或在空旷的地方进行,避免着火,注意安全。第一步:首先布置施法场地,通过蜡烛将易拉罐底部附着满炭黑。注意此步骤中应保持易拉罐内含一定水分,否则会产生烫伤等风险!第二步:向施法场地滴入水滴,观察场地效果。可以看到水滴在场地内不收约束,自由滑行第三步:当用细竹签等在场地中画出",
    +                "id": 37231101,
    +                "jump_url": "//www.bilibili.com/read/cv37231101/",
    +                "label": "12万阅读",
    +                "title": "带你在家里学会孙悟空的“画地为牢” 丨正经玩"
    +              },
    +              "type": "MAJOR_TYPE_ARTICLE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 9,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 2,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 583,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_ARTICLE",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1306462278",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1306462278"
    +        },
    +        "id_str": "966792134707380227",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_animation": {
    +                        "webp_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 4
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "686127"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/686127/dynamic",
    +            "label": "",
    +            "mid": 686127,
    +            "name": "籽岷",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 2066,
    +              "name": "百年大会员",
    +              "pid": 2066
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "6小时前",
    +            "pub_ts": 1723937235,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 4845196800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +                "label_theme": "hundred_annual_vip",
    +                "path": "",
    +                "text": "百年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1306462278",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV14M4m1175k",
    +                "cover": "http://i1.hdslb.com/bfs/archive/7f8060fe1669b1a0a980844bb90e8150a859499c.jpg",
    +                "desc": "https://www.curseforge.com/minecraft/mc-mods/desert-behemoths-sandworms/",
    +                "disable_preview": 0,
    +                "duration_text": "04:24",
    +                "jump_url": "//www.bilibili.com/video/BV14M4m1175k/",
    +                "stat": {
    +                  "danmaku": "297",
    +                  "play": "10.1万"
    +                },
    +                "title": "我的世界 巨大沙虫",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "bili_49990770610:",
    +                      "rid": "3546583341730698",
    +                      "text": "bili_49990770610:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "emoji": {
    +                        "icon_url": "https://i0.hdslb.com/bfs/emote/1597302b98827463f5b75c7cac1f29ea6ce572c4.png",
    +                        "size": 1,
    +                        "text": "[给心心]",
    +                        "type": 1
    +                      },
    +                      "orig_text": "[给心心]",
    +                      "text": "[给心心]",
    +                      "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                    }
    +                  ],
    +                  "text": "[给心心]"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 248,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 10,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 10276,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325813964",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325813964"
    +        },
    +        "id_str": "966695334756483089",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 1,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 1,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "293793435"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/item/c0cf2235089ed314d92f30efa855c9b5611fa2cd.png",
    +              "fan": {
    +                "color": "#07b6d5",
    +                "color_format": {
    +                  "colors": [
    +                    "#07b6d5FF",
    +                    "#07b6d5FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "005638",
    +                "number": 5638
    +              },
    +              "id": 2513,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=2513\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=293793435\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "初音未来粉丝专属",
    +              "type": 3
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/293793435/dynamic",
    +            "label": "",
    +            "mid": 293793435,
    +            "name": "社会易姐QwQ",
    +            "official_verify": {
    +              "desc": "",
    +              "type": -1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
    +              "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png",
    +              "n_pid": 2511,
    +              "name": "初音未来13周年",
    +              "pid": 2511
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "12小时前",
    +            "pub_ts": 1723914697,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1739116800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "非常好冰箱贴,爱来自硬先生😋😋",
    +                  "text": "非常好冰箱贴,爱来自硬先生😋😋",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@硬核拆解 ",
    +                  "rid": "427494870",
    +                  "text": "@硬核拆解 ",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                }
    +              ],
    +              "text": "非常好冰箱贴,爱来自硬先生😋😋@硬核拆解 "
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325813964,
    +                "items": [
    +                  {
    +                    "height": 1277,
    +                    "size": 98.36,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/60d92e9e0d89a5394a2da69aba6f9710293793435.jpg",
    +                    "tags": [],
    +                    "width": 958
    +                  },
    +                  {
    +                    "height": 1080,
    +                    "size": 905.82,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/0f9bff1938d824ce206a569d539455df293793435.jpg",
    +                    "tags": [],
    +                    "width": 1440
    +                  },
    +                  {
    +                    "height": 1080,
    +                    "size": 693.59,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/ab3332061b793361ec08901ace1782db293793435.jpg",
    +                    "tags": [],
    +                    "width": 1440
    +                  },
    +                  {
    +                    "height": 1080,
    +                    "size": 988.15,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/8e62512db6d04b381dae3814adb95d5e293793435.jpg",
    +                    "tags": [],
    +                    "width": 1440
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 11,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966692349750018048",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966692349750018048"
    +        },
    +        "id_str": "966692349750018048",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "36081646"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/item/684f6dc32decd32fe9db901b81b83b9a1fe39574.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 49922,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=49922\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=36081646\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "古色花香洛天依",
    +              "type": 1
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/36081646/dynamic",
    +            "label": "",
    +            "mid": 36081646,
    +            "name": "洛天依",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 1720437918001,
    +              "name": "洛天依心律共鸣头像框",
    +              "pid": -1843967695
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "12小时前",
    +            "pub_ts": 1723914002,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1764777600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "恭喜",
    +                  "text": "恭喜",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@从一到无穷大Infinity",
    +                  "rid": "697565874",
    +                  "text": "@从一到无穷大Infinity",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@qwq啊啊啊啊啊噜",
    +                  "rid": "189799722",
    +                  "text": "@qwq啊啊啊啊啊噜",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@有时名字不能取太长",
    +                  "rid": "3546388151405126",
    +                  "text": "@有时名字不能取太长",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "等5位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "text": "等5位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "恭喜@从一到无穷大Infinity@qwq啊啊啊啊啊噜@有时名字不能取太长等5位同学中奖,已私信通知,详情请点击抽奖查看。"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "明ちゃん王:",
    +                      "rid": "1280664625",
    +                      "text": "明ちゃん王:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "哇,非常不错呢,跟天依挺搭配的",
    +                      "text": "哇,非常不错呢,跟天依挺搭配的",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    },
    +                    {
    +                      "emoji": {
    +                        "icon_url": "https://i0.hdslb.com/bfs/emote/63c9d1a31c0da745b61cdb35e0ecb28635675db2.png",
    +                        "size": 1,
    +                        "text": "[星星眼]",
    +                        "type": 1
    +                      },
    +                      "orig_text": "[星星眼]",
    +                      "text": "[星星眼]",
    +                      "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                    }
    +                  ],
    +                  "text": "哇,非常不错呢,跟天依挺搭配的[星星眼]"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 88,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 12,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 3088,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "939874290505875465",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.375,
    +                  "width": 1.375
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 3,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "mid": "36081646"
    +              },
    +              "decorate": {
    +                "card_url": "https://i0.hdslb.com/bfs/garb/item/684f6dc32decd32fe9db901b81b83b9a1fe39574.png",
    +                "fan": {
    +                  "color": "",
    +                  "color_format": null,
    +                  "is_fan": false,
    +                  "num_prefix": "",
    +                  "num_str": "",
    +                  "number": 0
    +                },
    +                "id": 49922,
    +                "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=49922\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=36081646\\u0026native.theme=1\\u0026navhide=1",
    +                "name": "古色花香洛天依",
    +                "type": 1
    +              },
    +              "face": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg",
    +              "face_nft": false,
    +              "following": true,
    +              "jump_url": "//space.bilibili.com/36081646/dynamic",
    +              "label": "",
    +              "mid": 36081646,
    +              "name": "洛天依",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 0
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +                "image_enhance": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +                "image_enhance_frame": "",
    +                "n_pid": 1720437918001,
    +                "name": "洛天依心律共鸣头像框",
    +                "pid": -1843967695
    +              },
    +              "pub_action": "",
    +              "pub_time": "",
    +              "pub_ts": 1717669936,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 1,
    +                "avatar_subscript_url": "",
    +                "due_date": 1764777600000,
    +                "label": {
    +                  "bg_color": "#FB7299",
    +                  "bg_style": 1,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                  "label_theme": "annual_vip",
    +                  "path": "",
    +                  "text": "年度大会员",
    +                  "text_color": "#FFFFFF",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "#FB7299",
    +                "status": 1,
    +                "theme_type": 0,
    +                "type": 2
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": {
    +                "goods": {
    +                  "head_icon": "",
    +                  "head_text": "UP主的推荐",
    +                  "items": [
    +                    {
    +                      "brief": "",
    +                      "cover": "https://i0.hdslb.com/bfs/mall/mall/ef/9d/2cb00b3649bcb232f62b3169be95407d.png",
    +                      "id": "901140704120020992",
    +                      "jump_desc": "去看看",
    +                      "jump_url": "https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1\\u0026page=detailuniversal_detail\\u0026saleType=0\\u0026itemsId=10406556\\u0026loadingShow=1\\u0026noTitleBar=1\\u0026msource=cps_Mdynamic_36081646\\u0026from=\\u0026contentId=\\u0026track_id=__BGMT__",
    +                      "name": "天羽川 洛天依 短袖水手服纯色裙长短袜套装",
    +                      "price": "¥49"
    +                    }
    +                  ],
    +                  "jump_url": ""
    +                },
    +                "type": "ADDITIONAL_TYPE_GOODS"
    +              },
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "orig_text": "​互动抽奖",
    +                    "rid": "301330",
    +                    "text": "​互动抽奖",
    +                    "type": "RICH_TEXT_NODE_TYPE_LOTTERY"
    +                  },
    +                  {
    +                    "orig_text": "洛天依X",
    +                    "text": "洛天依X",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "orig_text": "@天羽川JK ",
    +                    "rid": "394187581",
    +                    "text": "@天羽川JK ",
    +                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                  },
    +                  {
    +                    "orig_text": "联名水手服\\u0026长短袜套装 新品预售即将开启啦!\\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~",
    +                    "text": "联名水手服\\u0026长短袜套装 新品预售即将开启啦!\\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "emoji": {
    +                      "icon_url": "http://i0.hdslb.com/bfs/emote/9826fb4f77944387767a37552143fbec40159fa5.png",
    +                      "size": 2,
    +                      "text": "[洛天依_礼物]",
    +                      "type": 3
    +                    },
    +                    "orig_text": "[洛天依_礼物]",
    +                    "text": "[洛天依_礼物]",
    +                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                  },
    +                  {
    +                    "orig_text": "\\n\\n❀联名服饰\\n-洛天依联名款水手服\\n-洛天依还原款长短袜\\n\\n❀预售时间\\n6月8日20:00 起\\n\\n日常\\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?",
    +                    "text": "\\n\\n❀联名服饰\\n-洛天依联名款水手服\\n-洛天依还原款长短袜\\n\\n❀预售时间\\n6月8日20:00 起\\n\\n日常\\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "emoji": {
    +                      "icon_url": "https://i0.hdslb.com/bfs/emote/8034b3cb55370d19b1683eb38e7747c5c6c5dba6.png",
    +                      "size": 2,
    +                      "text": "[洛天依蝶变_星星眼]",
    +                      "type": 3
    +                    },
    +                    "orig_text": "[洛天依蝶变_星星眼]",
    +                    "text": "[洛天依蝶变_星星眼]",
    +                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                  },
    +                  {
    +                    "orig_text": "\\n",
    +                    "text": "\\n",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "​互动抽奖洛天依X@天羽川JK 联名水手服\\u0026长短袜套装 新品预售即将开启啦!\\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~[洛天依_礼物]\\n\\n❀联名服饰\\n-洛天依联名款水手服\\n-洛天依还原款长短袜\\n\\n❀预售时间\\n6月8日20:00 起\\n\\n日常\\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?[洛天依蝶变_星星眼]\\n"
    +              },
    +              "major": {
    +                "draw": {
    +                  "id": 318324614,
    +                  "items": [
    +                    {
    +                      "height": 1280,
    +                      "size": 662.59,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/1f23b61786eadb8c3e3f4c137730715036081646.jpg",
    +                      "tags": [],
    +                      "width": 904
    +                    },
    +                    {
    +                      "height": 1280,
    +                      "size": 614.83,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/7d679216308bb7c65aeba38b4eafdd8936081646.jpg",
    +                      "tags": [],
    +                      "width": 904
    +                    }
    +                  ]
    +                },
    +                "type": "MAJOR_TYPE_DRAW"
    +              },
    +              "topic": {
    +                "id": 1156147,
    +                "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1156147\\u0026topic_name=%E5%A4%A9%E4%BE%9D%E7%9A%84%E5%91%A8%E8%BE%B9",
    +                "name": "天依的周边"
    +              }
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_DRAW",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325807840",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325807840"
    +        },
    +        "id_str": "966677390370537527",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "485703766"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/485703766/dynamic",
    +            "label": "",
    +            "mid": 485703766,
    +            "name": "英伟达GeForce",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "13小时前",
    +            "pub_ts": 1723910520,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 2000563200000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "直面天命,还有 2 天!\\nRTX. ON!\\n\\n投稿来自于:Bilibili",
    +                  "text": "直面天命,还有 2 天!\\nRTX. ON!\\n\\n投稿来自于:Bilibili",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@祗殁",
    +                  "rid": "12299496",
    +                  "text": "@祗殁",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                }
    +              ],
    +              "text": "直面天命,还有 2 天!\\nRTX. ON!\\n\\n投稿来自于:Bilibili@祗殁"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325807840,
    +                "items": [
    +                  {
    +                    "height": 1073,
    +                    "size": 66.29785,
    +                    "src": "https://i0.hdslb.com/bfs/new_dyn/b47b271135c7c496923d76c6b794e596485703766.png",
    +                    "tags": [],
    +                    "width": 1213
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 105,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 7,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 872,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1606450518",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1606450518"
    +        },
    +        "id_str": "966647978674618373",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/bb23fb77a033759a145f8eda7b5e3a15386f637c.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "1503187"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/archive/e495de36cab75f9a610fb6f2d0ba29a87b794cc6.png",
    +              "fan": {
    +                "color": "#BFC8D2",
    +                "color_format": {
    +                  "colors": [
    +                    "#B8C7D0FF",
    +                    "#A2A7B0FF"
    +                  ],
    +                  "end_point": "100,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "002484",
    +                "number": 2484
    +              },
    +              "id": 66898,
    +              "jump_url": "https://www.bilibili.com/h5/mall/digital-card/home?act_id=108\\u0026from=post\\u0026f_source=garb\\u0026-Abrowser=live\\u0026hybrid_set_header=2\\u0026navhide=1\\u0026anchor_task=1",
    +              "name": "BLG 信念干杯勋章",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/bb23fb77a033759a145f8eda7b5e3a15386f637c.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/1503187/dynamic",
    +            "label": "",
    +            "mid": 1503187,
    +            "name": "和谐号舰长",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 22:07",
    +            "pub_ts": 1723903670,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1732204800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1606450518",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV152421Z7bV",
    +                "cover": "http://i1.hdslb.com/bfs/archive/e87786447779ff1a4fb2d941a3321f9750a65300.jpg",
    +                "desc": "多来点这样的更新,太快乐了",
    +                "disable_preview": 0,
    +                "duration_text": "03:39",
    +                "jump_url": "//www.bilibili.com/video/BV152421Z7bV/",
    +                "stat": {
    +                  "danmaku": "406",
    +                  "play": "6.6万"
    +                },
    +                "title": "官方:矿车怎么就不能是飞船?",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "吉吉国民开水儿:",
    +                      "rid": "43514654",
    +                      "text": "吉吉国民开水儿:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "致敬传奇宰人航空大师张泰玩",
    +                      "text": "致敬传奇宰人航空大师张泰玩",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    }
    +                  ],
    +                  "text": "致敬传奇宰人航空大师张泰玩"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 218,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 15,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 5694,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1506427569",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1506427569"
    +        },
    +        "id_str": "966629209415876628",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "407045223"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 28,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=407045223\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "2233娘",
    +              "type": 1
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/407045223/dynamic",
    +            "label": "",
    +            "mid": 407045223,
    +            "name": "二次元的中科院物理所",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 20:55",
    +            "pub_ts": 1723899301,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1745769600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~",
    +                  "text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~"
    +            },
    +            "major": {
    +              "archive": {
    +                "aid": "1506427569",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1uS42197b5",
    +                "cover": "http://i1.hdslb.com/bfs/archive/e13db3349cdc91a00041be9730bbbe42c3e8df55.jpg",
    +                "desc": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~",
    +                "disable_preview": 0,
    +                "duration_text": "44:45",
    +                "jump_url": "//www.bilibili.com/video/BV1uS42197b5/",
    +                "stat": {
    +                  "danmaku": "1",
    +                  "play": "3364"
    +                },
    +                "title": "光照下多姿多彩的世界——光化学和我们的生活【中国科学院科学公开课S06E15】",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": {
    +              "id": 1073121,
    +              "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1073121\\u0026topic_name=%E4%B8%AD%E5%9B%BD%E7%A7%91%E5%AD%A6%E9%99%A2%E7%A7%91%E5%AD%A6%E5%85%AC%E5%BC%80%E8%AF%BE",
    +              "name": "中国科学院科学公开课"
    +            }
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 3,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 2,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 741,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325765582",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325765582"
    +        },
    +        "id_str": "966583356402696224",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "946974"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/946974/dynamic",
    +            "label": "",
    +            "mid": 946974,
    +            "name": "影视飓风",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 17:57",
    +            "pub_ts": 1723888625,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1975248000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "reserve": {
    +                "button": {
    +                  "check": {
    +                    "icon_url": "",
    +                    "text": "已预约"
    +                  },
    +                  "status": 1,
    +                  "type": 2,
    +                  "uncheck": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/album/1d6af68e116985828780dd843ef435ccd6307e63.png",
    +                    "text": "预约"
    +                  }
    +                },
    +                "desc1": {
    +                  "style": 0,
    +                  "text": "今天 20:00 直播"
    +                },
    +                "desc2": {
    +                  "style": 0,
    +                  "text": "4153人预约",
    +                  "visible": true
    +                },
    +                "jump_url": "",
    +                "reserve_total": 4153,
    +                "rid": 4003487,
    +                "state": 0,
    +                "stype": 2,
    +                "title": "直播预约:飓风商店夏促来了!",
    +                "up_mid": 946974
    +              },
    +              "type": "ADDITIONAL_TYPE_RESERVE"
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "飓风商店夏季活动来啦!\\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\\n\\n👇新品看这边\\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\\n👇福利看这边\\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\\n\\n总之,记得预约!",
    +                  "text": "飓风商店夏季活动来啦!\\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\\n\\n👇新品看这边\\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\\n👇福利看这边\\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\\n\\n总之,记得预约!",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "飓风商店夏季活动来啦!\\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\\n\\n👇新品看这边\\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\\n👇福利看这边\\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\\n\\n总之,记得预约!"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325765582,
    +                "items": [
    +                  {
    +                    "height": 9829,
    +                    "size": 5198.785,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/9d690134c84c03f6bacf83cf4d21bd73946974.jpg",
    +                    "tags": [],
    +                    "width": 2251
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 3104,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 154,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 4703,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325753910",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325753910"
    +        },
    +        "id_str": "966552037496979456",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_animation": {
    +                        "webp_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 4
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "686127"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/686127/dynamic",
    +            "label": "",
    +            "mid": 686127,
    +            "name": "籽岷",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 2066,
    +              "name": "百年大会员",
    +              "pid": 2066
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 15:55",
    +            "pub_ts": 1723881333,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 4845196800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +                "label_theme": "hundred_annual_vip",
    +                "path": "",
    +                "text": "百年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "type": "ADDITIONAL_TYPE_UPOWER_LOTTERY",
    +              "upower_lottery": {
    +                "button": {
    +                  "jump_style": {
    +                    "icon_url": "",
    +                    "text": "6元充电"
    +                  },
    +                  "jump_url": "https://www.bilibili.com/h5/upower/index?mid=686127\\u0026default_level=10\\u0026levels=10\\u0026navhide=1\\u0026lotteryId=313280\\u0026businessId=966552037496979456\\u0026prePage=lotteryCard",
    +                  "type": 1
    +                },
    +                "desc": {
    +                  "jump_url": "https://www.bilibili.com/h5/lottery/result?business_id=966552037496979456\\u0026business_type=12",
    +                  "style": 1,
    +                  "text": "【籽岷定制手偶】*10份"
    +                },
    +                "hint": {
    +                  "style": 0,
    +                  "text": "加入当前UP主的「6元档包月充电」即可参与"
    +                },
    +                "jump_url": "https://www.bilibili.com/h5/lottery/result?business_id=966552037496979456\\u0026business_type=12",
    +                "rid": 313280,
    +                "state": 0,
    +                "title": "石粒专属抽奖",
    +                "up_mid": 686127,
    +                "upower_action_state": 2,
    +                "upower_level": 10
    +              }
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "emoji": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/garb/ebeae1235fa9397e6e5598ce1e5e2955bb345a8b.png",
    +                    "size": 2,
    +                    "text": "[UPOWER_686127_闪亮登场]",
    +                    "type": 11
    +                  },
    +                  "orig_text": "[UPOWER_686127_闪亮登场]",
    +                  "text": "[UPOWER_686127_闪亮登场]",
    +                  "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                },
    +                {
    +                  "orig_text": "今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\\n感谢一直为我包月充电的观众们~\\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~",
    +                  "text": "今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\\n感谢一直为我包月充电的观众们~\\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "[UPOWER_686127_闪亮登场]今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\\n感谢一直为我包月充电的观众们~\\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325753910,
    +                "items": [
    +                  {
    +                    "height": 800,
    +                    "size": 596.8096,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/1b03b7888b105765d985f3093e5d6e4a686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  },
    +                  {
    +                    "height": 800,
    +                    "size": 393.75098,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/b69ee39531bf8864471ec9fbc7de4402686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  },
    +                  {
    +                    "height": 800,
    +                    "size": 364.8711,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/0c3fb5268abe60023b0053902bccde66686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  },
    +                  {
    +                    "height": 800,
    +                    "size": 198.65234,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/693a40f83d2ac6a4952c9541365e1265686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": {
    +              "id": 1006239,
    +              "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1006239\\u0026topic_name=%E7%B1%BD%E5%B2%B7%E5%93%81%E9%89%B4%E5%9B%A2",
    +              "name": "籽岷品鉴团"
    +            }
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 28,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 2,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 2686,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1456450441",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1456450441"
    +        },
    +        "id_str": "966513421411418114",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/94183796acd85f2e80f3dca740bc1c3d5cae6410.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 1,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "3493131246897478"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/94183796acd85f2e80f3dca740bc1c3d5cae6410.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/3493131246897478/dynamic",
    +            "label": "",
    +            "mid": 3493131246897478,
    +            "name": "电解碳酸钠",
    +            "official_verify": {
    +              "desc": "",
    +              "type": -1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 13:25",
    +            "pub_ts": 1723872342,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1744732800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "给脚专用的“按键” 我觉得他不应该这么贵",
    +                  "text": "给脚专用的“按键” 我觉得他不应该这么贵",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "给脚专用的“按键” 我觉得他不应该这么贵"
    +            },
    +            "major": {
    +              "archive": {
    +                "aid": "1456450441",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1Yi421a7FC",
    +                "cover": "http://i1.hdslb.com/bfs/archive/b56700e0a1d28ecff2ff135a7cc51e9b09cace79.jpg",
    +                "desc": "用到的配件:\\n·带有热插拔轴体功能的任何全新\\u0026二手键盘 只要功能正常即可\\n·追求极致性价比的 可以直接买剪线键盘进行改造\\n·TFS-1脚踏脚踩开关(我买的3.2一个)\\n要注意这些脚踏开关有可能是3线 分为常闭和常开\\n对于这个型号的开关 我接的是红线+白线 为踩下触发\\n·焊油(推荐针管式单手操作)",
    +                "disable_preview": 0,
    +                "duration_text": "06:01",
    +                "jump_url": "//www.bilibili.com/video/BV1Yi421a7FC/",
    +                "stat": {
    +                  "danmaku": "149",
    +                  "play": "2.7万"
    +                },
    +                "title": "商家别看!脚踩键盘DIY超值方案?市场售价凭啥那么贵!",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 161,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 17,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 2699,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966495069003579398",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966495069003579398"
    +        },
    +        "id_str": "966495069003579398",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "946974"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/946974/dynamic",
    +            "label": "",
    +            "mid": 946974,
    +            "name": "影视飓风",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 12:14",
    +            "pub_ts": 1723868069,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1975248000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~",
    +                  "text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 101,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 7,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 5247,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "966197633939931139",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.35,
    +                  "width": 1.35
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.675,
    +                          "axis_y": 0.675,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1,
    +                          "width": 1
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.8000000000000002,
    +                          "axis_y": 0.8000000000000002,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 3,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "mid": "946974"
    +              },
    +              "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg",
    +              "face_nft": false,
    +              "following": true,
    +              "jump_url": "//space.bilibili.com/946974/dynamic",
    +              "label": "",
    +              "mid": 946974,
    +              "name": "影视飓风",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 0
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "",
    +                "image_enhance": "",
    +                "image_enhance_frame": "",
    +                "n_pid": 0,
    +                "name": "",
    +                "pid": 0
    +              },
    +              "pub_action": "投稿了视频",
    +              "pub_time": "",
    +              "pub_ts": 1723798817,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 1,
    +                "avatar_subscript_url": "",
    +                "due_date": 1975248000000,
    +                "label": {
    +                  "bg_color": "#FB7299",
    +                  "bg_style": 1,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +                  "label_theme": "ten_annual_vip",
    +                  "path": "",
    +                  "text": "十年大会员",
    +                  "text_color": "#FFFFFF",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "#FB7299",
    +                "status": 1,
    +                "theme_type": 0,
    +                "type": 2
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": null,
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "orig_text": "挺久没有更新的看懂电影系列!",
    +                    "text": "挺久没有更新的看懂电影系列!",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "挺久没有更新的看懂电影系列!"
    +              },
    +              "major": {
    +                "archive": {
    +                  "aid": "1506437840",
    +                  "badge": {
    +                    "bg_color": "#FB7299",
    +                    "color": "#FFFFFF",
    +                    "icon_url": null,
    +                    "text": "投稿视频"
    +                  },
    +                  "bvid": "BV13S42197ja",
    +                  "cover": "http://i1.hdslb.com/bfs/archive/50d4705b2d804a76f3c19af269dd7804479aa94e.jpg",
    +                  "desc": "国内外总共有3000多个大大小小的电影节。那么,短片可以参加电影节吗?什么时候投递获奖概率才大一些?这次我们想和你分享一些投递和参加电影节的门道。我们还整理了一份有关电影节的科普文档,可以来我们的官网看看:https://filmfestival.ysjf.com/。\\n如果你喜欢这期视频,请多多支持我们,并将视频分享给其他朋友一起看看!",
    +                  "disable_preview": 0,
    +                  "duration_text": "10:55",
    +                  "jump_url": "//www.bilibili.com/video/BV13S42197ja/",
    +                  "stat": {
    +                    "danmaku": "2067",
    +                    "play": "64.1万"
    +                  },
    +                  "title": "全世界3000多个电影节,都在办些啥?",
    +                  "type": 1
    +                },
    +                "type": "MAJOR_TYPE_ARCHIVE"
    +              },
    +              "topic": null
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_AV",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "37185041",
    +          "comment_type": 12,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "37185041"
    +        },
    +        "id_str": "966484129969340422",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "407045223"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 28,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=407045223\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "2233娘",
    +              "type": 1
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/407045223/dynamic",
    +            "label": "",
    +            "mid": 407045223,
    +            "name": "二次元的中科院物理所",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了文章",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 11:32",
    +            "pub_ts": 1723865522,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1745769600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "article": {
    +                "covers": [
    +                  "https://i0.hdslb.com/bfs/article/708ab38ac38df8fe7851a63c0258fa64407045223.jpg"
    +                ],
    +                "desc": "经历过密码解锁和手势解锁后 真感慨指纹解锁是天才的创造 可惜遇到湿手油手经常失效 甚至擦干了还是这样 这是为什么呢问答导航Q1 鸡蛋在母鸡体内有气室吗?Q2 为什么弹簧是螺旋型的?Q3 闪电为什么总是自上而下,有没有自下而上的闪电呢?Q4 当一束光使电子发生了能级跃迁,原先的光子去哪儿了,消失了吗?Q5 为什么有茶叶的水在转时茶叶会趋向中间而不是两边呢?Q6 为什么塑料相比于其它物质,更容易起静电?Q7 为什么会有空集?空集的存在有什么物理意义? Q8 为什么有纹理的木擦了木蜡油之后会纹理变深,更容易被看",
    +                "id": 37185041,
    +                "jump_url": "//www.bilibili.com/read/cv37185041/",
    +                "label": "16.3万阅读",
    +                "title": "手指沾水擦干但是指纹识别还是失败,这是什么原因?| No.422"
    +              },
    +              "type": "MAJOR_TYPE_ARTICLE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 23,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 7,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 727,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_ARTICLE",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966475883631083553",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966475883631083553"
    +        },
    +        "id_str": "966475883631083553",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "233114659"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +              "fan": {
    +                "color": "#903AC2",
    +                "color_format": {
    +                  "colors": [
    +                    "#903AC2FF",
    +                    "#903AC2FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "000001",
    +                "number": 1
    +              },
    +              "id": 1706163888001,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=233114659\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "龙腾啾跃-动态卡片粉丝",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/233114659/dynamic",
    +            "label": "",
    +            "mid": 233114659,
    +            "name": "碧蓝航线",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +              "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +              "n_pid": 1987,
    +              "name": "碧蓝航线2020",
    +              "pid": 1987
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 11:00",
    +            "pub_ts": 1723863602,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1729526400000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "恭喜",
    +                  "text": "恭喜",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@两百斤的橘猫猫0w0",
    +                  "rid": "8391364",
    +                  "text": "@两百斤的橘猫猫0w0",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@一位隐身的Z23厨",
    +                  "rid": "382382091",
    +                  "text": "@一位隐身的Z23厨",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@默涛默随波",
    +                  "rid": "230373473",
    +                  "text": "@默涛默随波",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "等8位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "text": "等8位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "恭喜@两百斤的橘猫猫0w0@一位隐身的Z23厨@默涛默随波等8位同学中奖,已私信通知,详情请点击抽奖查看。"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 227,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 20,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 3126,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "963893770559946786",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.375,
    +                  "width": 1.375
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "layers": [
    +                  {
    +                    "is_critical_group": true,
    +                    "layers": [
    +                      {
    +                        "general_spec": {
    +                          "pos_spec": {
    +                            "axis_x": 0.6875,
    +                            "axis_y": 0.6875,
    +                            "coordinate_pos": 2
    +                          },
    +                          "render_spec": {
    +                            "opacity": 1
    +                          },
    +                          "size_spec": {
    +                            "height": 0.787,
    +                            "width": 0.787
    +                          }
    +                        },
    +                        "layer_config": {
    +                          "is_critical": true,
    +                          "tags": {
    +                            "AVATAR_LAYER": {},
    +                            "GENERAL_CFG": {
    +                              "config_type": 1,
    +                              "general_config": {
    +                                "web_css_style": {
    +                                  "borderRadius": "50%"
    +                                }
    +                              }
    +                            }
    +                          }
    +                        },
    +                        "resource": {
    +                          "res_image": {
    +                            "image_src": {
    +                              "placeholder": 6,
    +                              "remote": {
    +                                "bfs_style": "widget-layer-avatar",
    +                                "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                              },
    +                              "src_type": 1
    +                            }
    +                          },
    +                          "res_type": 3
    +                        },
    +                        "visible": true
    +                      }
    +                    ]
    +                  },
    +                  {
    +                    "layers": [
    +                      {
    +                        "general_spec": {
    +                          "pos_spec": {
    +                            "axis_x": 0.6875,
    +                            "axis_y": 0.6875,
    +                            "coordinate_pos": 2
    +                          },
    +                          "render_spec": {
    +                            "opacity": 1
    +                          },
    +                          "size_spec": {
    +                            "height": 1.375,
    +                            "width": 1.375
    +                          }
    +                        },
    +                        "layer_config": {
    +                          "tags": {
    +                            "PENDENT_LAYER": {}
    +                          }
    +                        },
    +                        "resource": {
    +                          "res_animation": {
    +                            "webp_src": {
    +                              "remote": {
    +                                "bfs_style": "widget-layer-avatar",
    +                                "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                              },
    +                              "src_type": 1
    +                            }
    +                          },
    +                          "res_type": 4
    +                        },
    +                        "visible": true
    +                      }
    +                    ]
    +                  },
    +                  {
    +                    "layers": [
    +                      {
    +                        "general_spec": {
    +                          "pos_spec": {
    +                            "axis_x": 0.7560000000000001,
    +                            "axis_y": 0.7726666666666667,
    +                            "coordinate_pos": 1
    +                          },
    +                          "render_spec": {
    +                            "opacity": 1
    +                          },
    +                          "size_spec": {
    +                            "height": 0.41666666666666663,
    +                            "width": 0.41666666666666663
    +                          }
    +                        },
    +                        "layer_config": {
    +                          "tags": {
    +                            "GENERAL_CFG": {
    +                              "config_type": 1,
    +                              "general_config": {
    +                                "web_css_style": {
    +                                  "background-color": "rgb(255,255,255)",
    +                                  "border": "2px solid rgba(255,255,255,1)",
    +                                  "borderRadius": "50%",
    +                                  "boxSizing": "border-box"
    +                                }
    +                              }
    +                            },
    +                            "ICON_LAYER": {}
    +                          }
    +                        },
    +                        "resource": {
    +                          "res_image": {
    +                            "image_src": {
    +                              "local": 4,
    +                              "src_type": 2
    +                            }
    +                          },
    +                          "res_type": 3
    +                        },
    +                        "visible": true
    +                      }
    +                    ]
    +                  }
    +                ],
    +                "mid": "233114659"
    +              },
    +              "decorate": {
    +                "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +                "fan": {
    +                  "color": "#903AC2",
    +                  "color_format": {
    +                    "colors": [
    +                      "#903AC2FF",
    +                      "#903AC2FF"
    +                    ],
    +                    "end_point": "0,100",
    +                    "gradients": [
    +                      0,
    +                      100
    +                    ],
    +                    "start_point": "0,0"
    +                  },
    +                  "is_fan": true,
    +                  "num_prefix": "NO.",
    +                  "num_str": "000001",
    +                  "number": 1
    +                },
    +                "id": 1706163888001,
    +                "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=233114659\\u0026native.theme=1\\u0026navhide=1",
    +                "name": "龙腾啾跃-动态卡片粉丝",
    +                "type": 3
    +              },
    +              "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +              "face_nft": false,
    +              "following": true,
    +              "jump_url": "//space.bilibili.com/233114659/dynamic",
    +              "label": "",
    +              "mid": 233114659,
    +              "name": "碧蓝航线",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 1
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +                "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +                "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +                "n_pid": 1987,
    +                "name": "碧蓝航线2020",
    +                "pid": 1987
    +              },
    +              "pub_action": "",
    +              "pub_time": "",
    +              "pub_ts": 1723262407,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 1,
    +                "avatar_subscript_url": "",
    +                "due_date": 1729526400000,
    +                "label": {
    +                  "bg_color": "#FB7299",
    +                  "bg_style": 1,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                  "label_theme": "annual_vip",
    +                  "path": "",
    +                  "text": "年度大会员",
    +                  "text_color": "#FFFFFF",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "#FB7299",
    +                "status": 1,
    +                "theme_type": 0,
    +                "type": 2
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": {
    +                "common": {
    +                  "button": {
    +                    "jump_style": {
    +                      "icon_url": "",
    +                      "text": "进入"
    +                    },
    +                    "jump_url": "https://www.biligame.com/detail?id=97\\u0026sourceFrom=1005",
    +                    "type": 1
    +                  },
    +                  "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +                  "desc1": "养成",
    +                  "desc2": "指挥官,欢迎回港",
    +                  "head_text": "相关游戏",
    +                  "id_str": "97",
    +                  "jump_url": "https://www.biligame.com/detail?id=97\\u0026sourceFrom=1005",
    +                  "style": 1,
    +                  "sub_type": "game",
    +                  "title": "碧蓝航线"
    +                },
    +                "type": "ADDITIONAL_TYPE_COMMON"
    +              },
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF",
    +                    "orig_text": "#碧蓝航线#",
    +                    "text": "#碧蓝航线#",
    +                    "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                  },
    +                  {
    +                    "orig_text": " ",
    +                    "text": " ",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "orig_text": "互动抽奖",
    +                    "rid": "312103",
    +                    "text": "互动抽奖",
    +                    "type": "RICH_TEXT_NODE_TYPE_LOTTERY"
    +                  },
    +                  {
    +                    "orig_text": " \\n兰夜放灯祈相守,\\n纤手弄糕思今宵。\\n\\n关注",
    +                    "text": " \\n兰夜放灯祈相守,\\n纤手弄糕思今宵。\\n\\n关注",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "orig_text": "@碧蓝航线",
    +                    "rid": "233114659",
    +                    "text": "@碧蓝航线",
    +                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                  },
    +                  {
    +                    "orig_text": " 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\\n\\n金风玉露,值此良宵,愿与君共度~",
    +                    "text": " 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\\n\\n金风玉露,值此良宵,愿与君共度~",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "#碧蓝航线# 互动抽奖 \\n兰夜放灯祈相守,\\n纤手弄糕思今宵。\\n\\n关注@碧蓝航线 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\\n\\n金风玉露,值此良宵,愿与君共度~"
    +              },
    +              "major": {
    +                "draw": {
    +                  "id": 324938558,
    +                  "items": [
    +                    {
    +                      "height": 3038,
    +                      "size": 2025.2646,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/b0068d1603aee2849ca46a58642fa99e233114659.jpg",
    +                      "tags": [],
    +                      "width": 5400
    +                    },
    +                    {
    +                      "height": 5063,
    +                      "size": 7377.1143,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/c047aafcf90a48b578a63c3e1b86c1de233114659.jpg",
    +                      "tags": [],
    +                      "width": 9000
    +                    }
    +                  ]
    +                },
    +                "type": "MAJOR_TYPE_DRAW"
    +              },
    +              "topic": null
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_DRAW",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1456253104",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1456253104"
    +        },
    +        "id_str": "966374603744083976",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_animation": {
    +                        "webp_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 4
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "686127"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/686127/dynamic",
    +            "label": "",
    +            "mid": 686127,
    +            "name": "籽岷",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 2066,
    +              "name": "百年大会员",
    +              "pid": 2066
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 04:27",
    +            "pub_ts": 1723840021,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 4845196800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +                "label_theme": "hundred_annual_vip",
    +                "path": "",
    +                "text": "百年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1456253104",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1ai421h7nT",
    +                "cover": "http://i1.hdslb.com/bfs/archive/0245f30593e2963b883cd5953881034ad033fbd5.jpg",
    +                "desc": "https://www.minecraft.net/en-us/article/minecraft-snapshot-24w33a",
    +                "disable_preview": 0,
    +                "duration_text": "16:22",
    +                "jump_url": "//www.bilibili.com/video/BV1ai421h7nT/",
    +                "stat": {
    +                  "danmaku": "2149",
    +                  "play": "24.5万"
    +                },
    +                "title": "收纳袋、红石、矿车大改 我的世界新版本介绍 1.21.2 24w33a",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": {
    +              "id": 1028161,
    +              "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1028161\\u0026topic_name=%E6%95%B4%E7%82%B9%E7%94%B5%E5%AD%90%E6%A6%A8%E8%8F%9C",
    +              "name": "整点电子榨菜"
    +            }
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "名字永远是个谜:",
    +                      "rid": "2022349482",
    +                      "text": "名字永远是个谜:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!",
    +                      "text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    }
    +                  ],
    +                  "text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 921,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 51,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 23138,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325694432",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325694432"
    +        },
    +        "id_str": "966306597269667840",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "485703766"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/485703766/dynamic",
    +            "label": "",
    +            "mid": 485703766,
    +            "name": "英伟达GeForce",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 00:03",
    +            "pub_ts": 1723824187,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 2000563200000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "直面天命,还有 3 天!\\nRTX. ON!\\n\\n投稿来自于:Bilibili",
    +                  "text": "直面天命,还有 3 天!\\nRTX. ON!\\n\\n投稿来自于:Bilibili",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@祗殁 ",
    +                  "rid": "12299496",
    +                  "text": "@祗殁 ",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                }
    +              ],
    +              "text": "直面天命,还有 3 天!\\nRTX. ON!\\n\\n投稿来自于:Bilibili@祗殁 "
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325694432,
    +                "items": [
    +                  {
    +                    "height": 1280,
    +                    "size": 59.246094,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/2e42c52d5e1383fe443f0984a41a9624485703766.jpg",
    +                    "tags": [],
    +                    "width": 1282
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 115,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 3,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 876,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325690655",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325690655"
    +        },
    +        "id_str": "966298866306515029",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "233114659"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +              "fan": {
    +                "color": "#903AC2",
    +                "color_format": {
    +                  "colors": [
    +                    "#903AC2FF",
    +                    "#903AC2FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "000001",
    +                "number": 1
    +              },
    +              "id": 1706163888001,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\\u0026isdiy=0\\u0026part=card\\u0026from=post\\u0026f_source=garb\\u0026vmid=233114659\\u0026native.theme=1\\u0026navhide=1",
    +              "name": "龙腾啾跃-动态卡片粉丝",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/233114659/dynamic",
    +            "label": "",
    +            "mid": 233114659,
    +            "name": "碧蓝航线",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +              "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +              "n_pid": 1987,
    +              "name": "碧蓝航线2020",
    +              "pid": 1987
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "2天前",
    +            "pub_ts": 1723822387,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1729526400000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "common": {
    +                "button": {
    +                  "jump_style": {
    +                    "icon_url": "",
    +                    "text": "进入"
    +                  },
    +                  "jump_url": "https://www.biligame.com/detail?id=97\\u0026sourceFrom=1005",
    +                  "type": 1
    +                },
    +                "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +                "desc1": "养成",
    +                "desc2": "指挥官,欢迎回港",
    +                "head_text": "相关游戏",
    +                "id_str": "97",
    +                "jump_url": "https://www.biligame.com/detail?id=97\\u0026sourceFrom=1005",
    +                "style": 1,
    +                "sub_type": "game",
    +                "title": "碧蓝航线"
    +              },
    +              "type": "ADDITIONAL_TYPE_COMMON"
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF",
    +                  "orig_text": "#碧蓝航线#",
    +                  "text": "#碧蓝航线#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF%E6%BC%AB%E5%B1%95",
    +                  "orig_text": "#碧蓝航线漫展#",
    +                  "text": "#碧蓝航线漫展#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=2024%E6%B8%AF%E5%8C%BA%E7%9B%9B%E5%A4%8F%E6%B8%85%E5%87%89%E8%8A%82",
    +                  "orig_text": "#2024港区盛夏清凉节#",
    +                  "text": "#2024港区盛夏清凉节#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": "\\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \\n\\n碧蓝夏日,映照专属的街景~\\n街区快闪即将开启,\\n与少女们一同踏上这场特别的城市漫步之旅吧!\\n\\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\\n◆ 参与方式:无需预约,前往现场即可参与体验~\\n◆ 体验须知:\\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\\n※兑换周边每日数量有限,兑完即止。\\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "text": "\\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \\n\\n碧蓝夏日,映照专属的街景~\\n街区快闪即将开启,\\n与少女们一同踏上这场特别的城市漫步之旅吧!\\n\\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\\n◆ 参与方式:无需预约,前往现场即可参与体验~\\n◆ 体验须知:\\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\\n※兑换周边每日数量有限,兑完即止。\\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "#碧蓝航线# #碧蓝航线漫展# #2024港区盛夏清凉节#\\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \\n\\n碧蓝夏日,映照专属的街景~\\n街区快闪即将开启,\\n与少女们一同踏上这场特别的城市漫步之旅吧!\\n\\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\\n◆ 参与方式:无需预约,前往现场即可参与体验~\\n◆ 体验须知:\\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\\n※兑换周边每日数量有限,兑完即止。\\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325690655,
    +                "items": [
    +                  {
    +                    "height": 6000,
    +                    "size": 2737.6729,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/722dc5e7eba3c3f6861b294f6bf3020c233114659.jpg",
    +                    "tags": [],
    +                    "width": 4000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 4852.4023,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/b04110f894184880666ee8b204000846233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 3941.9678,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/8ce3c1e6f2d33a47d42f35193b9e5f55233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 4461.9707,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/ab9a5bf2215f88fed6026d67d98ec901233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 3137.0205,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/18e62cf8ebc7c07b99e042ac4cdeeaaa233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 9561.615,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/1036f447fcbec195e717e2a5b3091a73233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "豌豆羹:",
    +                      "rid": "3493280973064560",
    +                      "text": "豌豆羹:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "大帝皮肤加彩蛋!",
    +                      "text": "大帝皮肤加彩蛋!",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    }
    +                  ],
    +                  "text": "大帝皮肤加彩蛋!"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 446,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 47,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 4352,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966281785469042740",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966281785469042740"
    +        },
    +        "id_str": "966281785469042740",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "178429408"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/178429408/dynamic",
    +            "label": "",
    +            "mid": 178429408,
    +            "name": "老弟一号",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "2天前",
    +            "pub_ts": 1723818410,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1728576000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "不管怎么样,我先把香槟开了",
    +                  "text": "不管怎么样,我先把香槟开了",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "emoji": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/emote/bf7e00ecab02171f8461ee8cf439c73db9797748.png",
    +                    "size": 1,
    +                    "text": "[脱单doge]",
    +                    "type": 1
    +                  },
    +                  "orig_text": "[脱单doge]",
    +                  "text": "[脱单doge]",
    +                  "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                },
    +                {
    +                  "orig_text": "要是褒姒,直播抽一百个爵柏电源",
    +                  "text": "要是褒姒,直播抽一百个爵柏电源",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "不管怎么样,我先把香槟开了[脱单doge]要是褒姒,直播抽一百个爵柏电源"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "芊芊老猫的日常:",
    +                      "rid": "1284100140",
    +                      "text": "芊芊老猫的日常:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "还是好人多啊",
    +                      "text": "还是好人多啊",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    },
    +                    {
    +                      "emoji": {
    +                        "icon_url": "https://i0.hdslb.com/bfs/emote/4683fd9ffc925fa6423110979d7dcac5eda297f4.png",
    +                        "size": 1,
    +                        "text": "[OK]",
    +                        "type": 1
    +                      },
    +                      "orig_text": "[OK]",
    +                      "text": "[OK]",
    +                      "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                    }
    +                  ],
    +                  "text": "还是好人多啊[OK]"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 156,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 1,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 1367,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "966274874613956608",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.35,
    +                  "width": 1.35
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.675,
    +                          "axis_y": 0.675,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1,
    +                          "width": 1
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i2.hdslb.com/bfs/face/4c9095a6fc7d6ef7bf97ee1c65767f537763c60c.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.8000000000000002,
    +                          "axis_y": 0.8000000000000002,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "mid": "652239032"
    +              },
    +              "face": "https://i2.hdslb.com/bfs/face/4c9095a6fc7d6ef7bf97ee1c65767f537763c60c.jpg",
    +              "face_nft": false,
    +              "following": null,
    +              "jump_url": "//space.bilibili.com/652239032/dynamic",
    +              "label": "",
    +              "mid": 652239032,
    +              "name": "IGN中国",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 1
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "",
    +                "image_enhance": "",
    +                "image_enhance_frame": "",
    +                "n_pid": 0,
    +                "name": "",
    +                "pid": 0
    +              },
    +              "pub_action": "投稿了视频",
    +              "pub_time": "",
    +              "pub_ts": 1723816801,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 0,
    +                "avatar_subscript_url": "",
    +                "due_date": 0,
    +                "label": {
    +                  "bg_color": "",
    +                  "bg_style": 0,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +                  "label_theme": "",
    +                  "path": "",
    +                  "text": "",
    +                  "text_color": "",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "",
    +                "status": 0,
    +                "theme_type": 0,
    +                "type": 0
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": null,
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "orig_text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。",
    +                    "text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。"
    +              },
    +              "major": {
    +                "archive": {
    +                  "aid": "1456400345",
    +                  "badge": {
    +                    "bg_color": "#FB7299",
    +                    "color": "#FFFFFF",
    +                    "icon_url": null,
    +                    "text": "投稿视频"
    +                  },
    +                  "bvid": "BV1Ti421a7dv",
    +                  "cover": "http://i2.hdslb.com/bfs/archive/fd87a4e75738b0de1388df60f5e4ce5011b1367a.jpg",
    +                  "desc": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,我相信它会成为今年年度游戏的有力竞争者,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。",
    +                  "disable_preview": 0,
    +                  "duration_text": "10:00",
    +                  "jump_url": "//www.bilibili.com/video/BV1Ti421a7dv/",
    +                  "stat": {
    +                    "danmaku": "4.6万",
    +                    "play": "595.1万"
    +                  },
    +                  "title": "【IGN】10分,《黑神话:悟空》评测:踏平坎坷成大道",
    +                  "type": 1
    +                },
    +                "type": "MAJOR_TYPE_ARCHIVE"
    +              },
    +              "topic": null
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_AV",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      }
    +    ],
    +    "offset": "966281785469042740",
    +    "update_baseline": "966888011247648768",
    +    "update_num": 5
    +  }
    +}
    +

    检测是否有新动态

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update

    请求方式:GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    typestr动态类型不必要默认为 all
    update_baselineid更新基线必要用于检测是否有新动态, 默认为上次请求 获取全部动态列表 返回的 update_baseline, 实测填 0 也可正常获取
    web_locationstr333.1365不必要

    JSON回复:

    根:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data :

    字段类型内容备注
    update_numnum有新动态的数量

    示例:

    curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update' \\
    +--data-urlencode 'update_baseline=114514' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "update_num": 9
    +  }
    +}
    +
    `,25);function _s(gs,hs){const a=l("RouterLink");return c(),u("div",null,[i,n("table",null,[k,n("tbody",null,[d,v,q,n("tr",null,[b,m,y,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("动态类型")]),_:1})])]),_,g])]),h,n("table",null,[f,n("tbody",null,[n("tr",null,[E,x,n("td",null,[s("见 "),t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("动态类型")]),_:1})]),T]),n("tr",null,[w,R,A,n("td",null,[s("见 "),t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("动态类型")]),_:1})])]),F,n("tr",null,[O,N,j,n("td",null,[s("见 "),t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("动态类型")]),_:1})])])])]),C,n("table",null,[P,n("tbody",null,[n("tr",null,[Y,I,L,n("td",null,[s("主要用于网页渲染, 若感兴趣可参考 "),t(a,{to:"/docs/misc/picture.html"},{default:p(()=>[s("图片格式化")]),_:1})])]),B,D,z,G,H,X,M,V,U,S,W,J,Q,n("tr",null,[K,Z,$,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E4%BD%9C%E8%80%85%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("作者类型")]),_:1})])]),nn,sn,an])]),tn,n("table",null,[pn,n("tbody",null,[on,n("tr",null,[en,ln,cn,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E7%9B%B8%E5%85%B3%E5%86%85%E5%AE%B9%E5%8D%A1%E7%89%87%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("相关内容卡片类型")]),_:1})])]),un,rn,kn,dn])]),vn,n("table",null,[qn,n("tbody",null,[n("tr",null,[bn,mn,yn,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E8%8A%82%E7%82%B9%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("富文本节点类型")]),_:1})])]),_n])]),gn,n("table",null,[hn,n("tbody",null,[fn,En,n("tr",null,[xn,Tn,wn,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E8%8A%82%E7%82%B9%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("富文本节点类型")]),_:1})])]),Rn,An,Fn,On,Nn])]),jn,n("table",null,[Cn,n("tbody",null,[n("tr",null,[Pn,Yn,In,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%8A%A8%E6%80%81%E4%B8%BB%E4%BD%93%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("动态主体类型")]),_:1})])]),Ln,Bn,Dn,zn,Gn,Hn,Xn,Mn,Vn,Un,Sn,Wn])]),Jn,n("table",null,[Qn,n("tbody",null,[Kn,n("tr",null,[Zn,$n,ns,n("td",null,[s("参见 "),t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%8A%A8%E6%80%81%E4%B8%BB%E4%BD%93%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("动态主体类型")]),_:1})])]),ss,as])]),ts,n("table",null,[ps,n("tbody",null,[n("tr",null,[os,es,ls,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E8%8A%82%E7%82%B9%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("富文本节点类型")]),_:1})])]),cs])]),us,n("table",null,[rs,n("tbody",null,[is,ks,ds,n("tr",null,[vs,qs,bs,n("td",null,[t(a,{to:"/docs/dynamic/dynamic_enum.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E8%8A%82%E7%82%B9%E7%B1%BB%E5%9E%8B"},{default:p(()=>[s("富文本节点类型")]),_:1})])]),ms])]),ys])}const Es=e(r,[["render",_s],["__file","all.html.vue"]]);export{Es as default}; diff --git a/assets/animal-95ff87f2.svg b/assets/animal-95ff87f2.svg new file mode 100644 index 0000000000..4f7708d15f --- /dev/null +++ b/assets/animal-95ff87f2.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/anime-b33a4df8.svg b/assets/anime-b33a4df8.svg new file mode 100644 index 0000000000..fd797d334b --- /dev/null +++ b/assets/anime-b33a4df8.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/app-3168cb19.js b/assets/app-3168cb19.js new file mode 100644 index 0000000000..a8c51c26d7 --- /dev/null +++ b/assets/app-3168cb19.js @@ -0,0 +1,10 @@ +const Gs="modulepreload",Js=function(e){return"/bilibili-API-collect/"+e},er={},u=function(t,l,i){if(!l||l.length===0)return t();const n=document.getElementsByTagName("link");return Promise.all(l.map(r=>{if(r=Js(r),r in er)return;er[r]=!0;const o=r.endsWith(".css"),a=o?'[rel="stylesheet"]':"";if(!!i)for(let d=n.length-1;d>=0;d--){const h=n[d];if(h.href===r&&(!o||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${r}"]${a}`))return;const c=document.createElement("link");if(c.rel=o?"stylesheet":Gs,o||(c.as="script",c.crossOrigin=""),c.href=r,document.head.appendChild(c),o)return new Promise((d,h)=>{c.addEventListener("load",d),c.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t()).catch(r=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r})};function pn(e,t){const l=Object.create(null),i=e.split(",");for(let n=0;n!!l[n.toLowerCase()]:n=>!!l[n]}const Le={},il=[],rt=()=>{},Ys=()=>!1,Qs=/^on[^a-z]/,Nl=e=>Qs.test(e),mn=e=>e.startsWith("onUpdate:"),Oe=Object.assign,_n=(e,t)=>{const l=e.indexOf(t);l>-1&&e.splice(l,1)},Xs=Object.prototype.hasOwnProperty,ve=(e,t)=>Xs.call(e,t),X=Array.isArray,nl=e=>yi(e)==="[object Map]",po=e=>yi(e)==="[object Set]",oe=e=>typeof e=="function",_e=e=>typeof e=="string",gn=e=>typeof e=="symbol",Pe=e=>e!==null&&typeof e=="object",mo=e=>Pe(e)&&oe(e.then)&&oe(e.catch),_o=Object.prototype.toString,yi=e=>_o.call(e),Zs=e=>yi(e).slice(8,-1),go=e=>yi(e)==="[object Object]",bn=e=>_e(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Al=pn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Li=e=>{const t=Object.create(null);return l=>t[l]||(t[l]=e(l))},ea=/-(\w)/g,dt=Li(e=>e.replace(ea,(t,l)=>l?l.toUpperCase():"")),ta=/\B([A-Z])/g,Jt=Li(e=>e.replace(ta,"-$1").toLowerCase()),Pi=Li(e=>e.charAt(0).toUpperCase()+e.slice(1)),Fi=Li(e=>e?`on${Pi(e)}`:""),xl=(e,t)=>!Object.is(e,t),$i=(e,t)=>{for(let l=0;l{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:l})},la=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ia=e=>{const t=_e(e)?Number(e):NaN;return isNaN(t)?e:t};let tr;const Xi=()=>tr||(tr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ml(e){if(X(e)){const t={};for(let l=0;l{if(l){const i=l.split(ra);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function qe(e){let t="";if(_e(e))t=e;else if(X(e))for(let l=0;l_e(e)?e:e==null?"":X(e)||Pe(e)&&(e.toString===_o||!oe(e.toString))?JSON.stringify(e,Eo,2):String(e),Eo=(e,t)=>t&&t.__v_isRef?Eo(e,t.value):nl(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((l,[i,n])=>(l[`${i} =>`]=n,l),{})}:po(t)?{[`Set(${t.size})`]:[...t.values()]}:Pe(t)&&!X(t)&&!go(t)?String(t):t;let Je;class ua{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Je,!t&&Je&&(this.index=(Je.scopes||(Je.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const l=Je;try{return Je=this,t()}finally{Je=l}}}on(){Je=this}off(){Je=this.parent}stop(t){if(this._active){let l,i;for(l=0,i=this.effects.length;l{const t=new Set(e);return t.w=0,t.n=0,t},yo=e=>(e.w&Vt)>0,Lo=e=>(e.n&Vt)>0,fa=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let l=0;for(let i=0;i{(d==="length"||d>=s)&&a.push(c)})}else switch(l!==void 0&&a.push(o.get(l)),t){case"add":X(e)?bn(l)&&a.push(o.get("length")):(a.push(o.get(qt)),nl(e)&&a.push(o.get(en)));break;case"delete":X(e)||(a.push(o.get(qt)),nl(e)&&a.push(o.get(en)));break;case"set":nl(e)&&a.push(o.get(qt));break}if(a.length===1)a[0]&&tn(a[0]);else{const s=[];for(const c of a)c&&s.push(...c);tn(En(s))}}function tn(e,t){const l=X(e)?e:[...e];for(const i of l)i.computed&&ir(i);for(const i of l)i.computed||ir(i)}function ir(e,t){(e!==it||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function pa(e,t){var l;return(l=ci.get(e))==null?void 0:l.get(t)}const ma=pn("__proto__,__v_isRef,__isVue"),wo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(gn)),_a=yn(),ga=yn(!1,!0),ba=yn(!0),nr=Ea();function Ea(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...l){const i=pe(this);for(let r=0,o=this.length;r{e[t]=function(...l){vl();const i=pe(this)[t].apply(this,l);return pl(),i}}),e}function ka(e){const t=pe(this);return We(t,"has",e),t.hasOwnProperty(e)}function yn(e=!1,t=!1){return function(i,n,r){if(n==="__v_isReactive")return!e;if(n==="__v_isReadonly")return e;if(n==="__v_isShallow")return t;if(n==="__v_raw"&&r===(e?t?$a:xo:t?Oo:Io).get(i))return i;const o=X(i);if(!e){if(o&&ve(nr,n))return Reflect.get(nr,n,r);if(n==="hasOwnProperty")return ka}const a=Reflect.get(i,n,r);return(gn(n)?wo.has(n):ma(n))||(e||We(i,"get",n),t)?a:Se(a)?o&&bn(n)?a:a.value:Pe(a)?e?ml(a):Hl(a):a}}const ya=To(),La=To(!0);function To(e=!1){return function(l,i,n,r){let o=l[i];if(al(o)&&Se(o)&&!Se(n))return!1;if(!e&&(!ui(n)&&!al(n)&&(o=pe(o),n=pe(n)),!X(l)&&Se(o)&&!Se(n)))return o.value=n,!0;const a=X(l)&&bn(i)?Number(i)e,Ai=e=>Reflect.getPrototypeOf(e);function Wl(e,t,l=!1,i=!1){e=e.__v_raw;const n=pe(e),r=pe(t);l||(t!==r&&We(n,"get",t),We(n,"get",r));const{has:o}=Ai(n),a=i?Ln:l?wn:Dl;if(o.call(n,t))return a(e.get(t));if(o.call(n,r))return a(e.get(r));e!==n&&e.get(t)}function Gl(e,t=!1){const l=this.__v_raw,i=pe(l),n=pe(e);return t||(e!==n&&We(i,"has",e),We(i,"has",n)),e===n?l.has(e):l.has(e)||l.has(n)}function Jl(e,t=!1){return e=e.__v_raw,!t&&We(pe(e),"iterate",qt),Reflect.get(e,"size",e)}function rr(e){e=pe(e);const t=pe(this);return Ai(t).has.call(t,e)||(t.add(e),Et(t,"add",e,e)),this}function or(e,t){t=pe(t);const l=pe(this),{has:i,get:n}=Ai(l);let r=i.call(l,e);r||(e=pe(e),r=i.call(l,e));const o=n.call(l,e);return l.set(e,t),r?xl(t,o)&&Et(l,"set",e,t):Et(l,"add",e,t),this}function sr(e){const t=pe(this),{has:l,get:i}=Ai(t);let n=l.call(t,e);n||(e=pe(e),n=l.call(t,e)),i&&i.call(t,e);const r=t.delete(e);return n&&Et(t,"delete",e,void 0),r}function ar(){const e=pe(this),t=e.size!==0,l=e.clear();return t&&Et(e,"clear",void 0,void 0),l}function Yl(e,t){return function(i,n){const r=this,o=r.__v_raw,a=pe(o),s=t?Ln:e?wn:Dl;return!e&&We(a,"iterate",qt),o.forEach((c,d)=>i.call(n,s(c),s(d),r))}}function Ql(e,t,l){return function(...i){const n=this.__v_raw,r=pe(n),o=nl(r),a=e==="entries"||e===Symbol.iterator&&o,s=e==="keys"&&o,c=n[e](...i),d=l?Ln:t?wn:Dl;return!t&&We(r,"iterate",s?en:qt),{next(){const{value:h,done:f}=c.next();return f?{value:h,done:f}:{value:a?[d(h[0]),d(h[1])]:d(h),done:f}},[Symbol.iterator](){return this}}}}function At(e){return function(...t){return e==="delete"?!1:this}}function Ia(){const e={get(r){return Wl(this,r)},get size(){return Jl(this)},has:Gl,add:rr,set:or,delete:sr,clear:ar,forEach:Yl(!1,!1)},t={get(r){return Wl(this,r,!1,!0)},get size(){return Jl(this)},has:Gl,add:rr,set:or,delete:sr,clear:ar,forEach:Yl(!1,!0)},l={get(r){return Wl(this,r,!0)},get size(){return Jl(this,!0)},has(r){return Gl.call(this,r,!0)},add:At("add"),set:At("set"),delete:At("delete"),clear:At("clear"),forEach:Yl(!0,!1)},i={get(r){return Wl(this,r,!0,!0)},get size(){return Jl(this,!0)},has(r){return Gl.call(this,r,!0)},add:At("add"),set:At("set"),delete:At("delete"),clear:At("clear"),forEach:Yl(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(r=>{e[r]=Ql(r,!1,!1),l[r]=Ql(r,!0,!1),t[r]=Ql(r,!1,!0),i[r]=Ql(r,!0,!0)}),[e,l,t,i]}const[Oa,xa,Da,Ca]=Ia();function Pn(e,t){const l=t?e?Ca:Da:e?xa:Oa;return(i,n,r)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?i:Reflect.get(ve(l,n)&&n in i?l:i,n,r)}const Va={get:Pn(!1,!1)},Sa={get:Pn(!1,!0)},Fa={get:Pn(!0,!1)},Io=new WeakMap,Oo=new WeakMap,xo=new WeakMap,$a=new WeakMap;function Na(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ma(e){return e.__v_skip||!Object.isExtensible(e)?0:Na(Zs(e))}function Hl(e){return al(e)?e:An(e,!1,Ro,Va,Io)}function Do(e){return An(e,!1,Ra,Sa,Oo)}function ml(e){return An(e,!0,Ta,Fa,xo)}function An(e,t,l,i,n){if(!Pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=n.get(e);if(r)return r;const o=Ma(e);if(o===0)return e;const a=new Proxy(e,o===2?i:l);return n.set(e,a),a}function rl(e){return al(e)?rl(e.__v_raw):!!(e&&e.__v_isReactive)}function al(e){return!!(e&&e.__v_isReadonly)}function ui(e){return!!(e&&e.__v_isShallow)}function Co(e){return rl(e)||al(e)}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function Vo(e){return ai(e,"__v_skip",!0),e}const Dl=e=>Pe(e)?Hl(e):e,wn=e=>Pe(e)?ml(e):e;function Tn(e){xt&&it&&(e=pe(e),Ao(e.dep||(e.dep=En())))}function Rn(e,t){e=pe(e);const l=e.dep;l&&tn(l)}function Se(e){return!!(e&&e.__v_isRef===!0)}function me(e){return So(e,!1)}function In(e){return So(e,!0)}function So(e,t){return Se(e)?e:new Ha(e,t)}class Ha{constructor(t,l){this.__v_isShallow=l,this.dep=void 0,this.__v_isRef=!0,this._rawValue=l?t:pe(t),this._value=l?t:Dl(t)}get value(){return Tn(this),this._value}set value(t){const l=this.__v_isShallow||ui(t)||al(t);t=l?t:pe(t),xl(t,this._rawValue)&&(this._rawValue=t,this._value=l?t:Dl(t),Rn(this))}}function te(e){return Se(e)?e.value:e}const Ba={get:(e,t,l)=>te(Reflect.get(e,t,l)),set:(e,t,l,i)=>{const n=e[t];return Se(n)&&!Se(l)?(n.value=l,!0):Reflect.set(e,t,l,i)}};function Fo(e){return rl(e)?e:new Proxy(e,Ba)}class ja{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:l,set:i}=t(()=>Tn(this),()=>Rn(this));this._get=l,this._set=i}get value(){return this._get()}set value(t){this._set(t)}}function za(e){return new ja(e)}function wi(e){const t=X(e)?new Array(e.length):{};for(const l in e)t[l]=Ka(e,l);return t}class Ua{constructor(t,l,i){this._object=t,this._key=l,this._defaultValue=i,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return pa(pe(this._object),this._key)}}function Ka(e,t,l){const i=e[t];return Se(i)?i:new Ua(e,t,l)}class qa{constructor(t,l,i,n){this._setter=l,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new kn(t,()=>{this._dirty||(this._dirty=!0,Rn(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=i}get value(){const t=pe(this);return Tn(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Wa(e,t,l=!1){let i,n;const r=oe(e);return r?(i=e,n=rt):(i=e.get,n=e.set),new qa(i,n,r||!n,l)}function Dt(e,t,l,i){let n;try{n=i?e(...i):e()}catch(r){Bl(r,t,l)}return n}function Ze(e,t,l,i){if(oe(e)){const r=Dt(e,t,l,i);return r&&mo(r)&&r.catch(o=>{Bl(o,t,l)}),r}const n=[];for(let r=0;r>>1;Vl(He[i])ut&&He.splice(t,1)}function Qa(e){X(e)?ol.push(...e):(!_t||!_t.includes(e,e.allowRecurse?jt+1:jt))&&ol.push(e),No()}function cr(e,t=Cl?ut+1:0){for(;tVl(l)-Vl(i)),jt=0;jt<_t.length;jt++)_t[jt]();_t=null,jt=0}}const Vl=e=>e.id==null?1/0:e.id,Xa=(e,t)=>{const l=Vl(e)-Vl(t);if(l===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return l};function Mo(e){ln=!1,Cl=!0,He.sort(Xa);const t=rt;try{for(ut=0;ut_e(_)?_.trim():_)),h&&(n=l.map(la))}let a,s=i[a=Fi(t)]||i[a=Fi(dt(t))];!s&&r&&(s=i[a=Fi(Jt(t))]),s&&Ze(s,e,6,n);const c=i[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ze(c,e,6,n)}}function Ho(e,t,l=!1){const i=t.emitsCache,n=i.get(e);if(n!==void 0)return n;const r=e.emits;let o={},a=!1;if(!oe(e)){const s=c=>{const d=Ho(c,t,!0);d&&(a=!0,Oe(o,d))};!l&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!r&&!a?(Pe(e)&&i.set(e,null),null):(X(r)?r.forEach(s=>o[s]=null):Oe(o,r),Pe(e)&&i.set(e,o),o)}function Ri(e,t){return!e||!Nl(t)?!1:(t=t.slice(2).replace(/Once$/,""),ve(e,t[0].toLowerCase()+t.slice(1))||ve(e,Jt(t))||ve(e,t))}let $e=null,Ii=null;function hi(e){const t=$e;return $e=e,Ii=e&&e.type.__scopeId||null,t}function Jp(e){Ii=e}function Yp(){Ii=null}function Ve(e,t=$e,l){if(!t||e._n)return e;const i=(...n)=>{i._d&&kr(-1);const r=hi(t);let o;try{o=e(...n)}finally{hi(r),i._d&&kr(1)}return o};return i._n=!0,i._c=!0,i._d=!0,i}function Ni(e){const{type:t,vnode:l,proxy:i,withProxy:n,props:r,propsOptions:[o],slots:a,attrs:s,emit:c,render:d,renderCache:h,data:f,setupState:_,ctx:y,inheritAttrs:L}=e;let A,b;const k=hi(e);try{if(l.shapeFlag&4){const O=n||i;A=lt(d.call(O,O,h,r,_,f,y)),b=s}else{const O=t;A=lt(O.length>1?O(r,{attrs:s,slots:a,emit:c}):O(r,null)),b=t.props?s:ec(s)}}catch(O){Rl.length=0,Bl(O,e,1),A=le(Ye)}let x=A;if(b&&L!==!1){const O=Object.keys(b),{shapeFlag:q}=x;O.length&&q&7&&(o&&O.some(mn)&&(b=tc(b,o)),x=Ft(x,b))}return l.dirs&&(x=Ft(x),x.dirs=x.dirs?x.dirs.concat(l.dirs):l.dirs),l.transition&&(x.transition=l.transition),A=x,hi(k),A}const ec=e=>{let t;for(const l in e)(l==="class"||l==="style"||Nl(l))&&((t||(t={}))[l]=e[l]);return t},tc=(e,t)=>{const l={};for(const i in e)(!mn(i)||!(i.slice(9)in t))&&(l[i]=e[i]);return l};function lc(e,t,l){const{props:i,children:n,component:r}=e,{props:o,children:a,patchFlag:s}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(l&&s>=0){if(s&1024)return!0;if(s&16)return i?ur(i,o,c):!!o;if(s&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function Bo(e,t){t&&t.pendingBranch?X(e)?t.effects.push(...e):t.effects.push(e):Qa(e)}function jo(e,t){return xn(e,null,t)}const Xl={};function et(e,t,l){return xn(e,t,l)}function xn(e,t,{immediate:l,deep:i,flush:n,onTrack:r,onTrigger:o}=Le){var a;const s=ko()===((a=xe)==null?void 0:a.scope)?xe:null;let c,d=!1,h=!1;if(Se(e)?(c=()=>e.value,d=ui(e)):rl(e)?(c=()=>e,i=!0):X(e)?(h=!0,d=e.some(O=>rl(O)||ui(O)),c=()=>e.map(O=>{if(Se(O))return O.value;if(rl(O))return Kt(O);if(oe(O))return Dt(O,s,2)})):oe(e)?t?c=()=>Dt(e,s,2):c=()=>{if(!(s&&s.isUnmounted))return f&&f(),Ze(e,s,3,[_])}:c=rt,t&&i){const O=c;c=()=>Kt(O())}let f,_=O=>{f=k.onStop=()=>{Dt(O,s,4)}},y;if(dl)if(_=rt,t?l&&Ze(t,s,3,[c(),h?[]:void 0,_]):c(),n==="sync"){const O=Zc();y=O.__watcherHandles||(O.__watcherHandles=[])}else return rt;let L=h?new Array(e.length).fill(Xl):Xl;const A=()=>{if(k.active)if(t){const O=k.run();(i||d||(h?O.some((q,Z)=>xl(q,L[Z])):xl(O,L)))&&(f&&f(),Ze(t,s,3,[O,L===Xl?void 0:h&&L[0]===Xl?[]:L,_]),L=O)}else k.run()};A.allowRecurse=!!t;let b;n==="sync"?b=A:n==="post"?b=()=>Ke(A,s&&s.suspense):(A.pre=!0,s&&(A.id=s.uid),b=()=>Ti(A));const k=new kn(c,b);t?l?A():L=k.run():n==="post"?Ke(k.run.bind(k),s&&s.suspense):k.run();const x=()=>{k.stop(),s&&s.scope&&_n(s.scope.effects,k)};return y&&y.push(x),x}function rc(e,t,l){const i=this.proxy,n=_e(e)?e.includes(".")?zo(i,e):()=>i[e]:e.bind(i,i);let r;oe(t)?r=t:(r=t.handler,l=t);const o=xe;ul(this);const a=xn(n,r.bind(i),l);return o?ul(o):Gt(),a}function zo(e,t){const l=t.split(".");return()=>{let i=e;for(let n=0;n{Kt(l,t)});else if(go(e))for(const l in e)Kt(e[l],t);return e}function fi(e,t){const l=$e;if(l===null)return e;const i=Ci(l)||l.proxy,n=e.dirs||(e.dirs=[]);for(let r=0;r{e.isMounted=!0}),Ul(()=>{e.isUnmounting=!0}),e}const Qe=[Function,Array],Uo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Qe,onEnter:Qe,onAfterEnter:Qe,onEnterCancelled:Qe,onBeforeLeave:Qe,onLeave:Qe,onAfterLeave:Qe,onLeaveCancelled:Qe,onBeforeAppear:Qe,onAppear:Qe,onAfterAppear:Qe,onAppearCancelled:Qe},sc={name:"BaseTransition",props:Uo,setup(e,{slots:t}){const l=Sn(),i=oc();let n;return()=>{const r=t.default&&qo(t.default(),!0);if(!r||!r.length)return;let o=r[0];if(r.length>1){for(const L of r)if(L.type!==Ye){o=L;break}}const a=pe(e),{mode:s}=a;if(i.isLeaving)return Mi(o);const c=dr(o);if(!c)return Mi(o);const d=nn(c,a,i,l);rn(c,d);const h=l.subTree,f=h&&dr(h);let _=!1;const{getTransitionKey:y}=c.type;if(y){const L=y();n===void 0?n=L:L!==n&&(n=L,_=!0)}if(f&&f.type!==Ye&&(!zt(c,f)||_)){const L=nn(f,a,i,l);if(rn(f,L),s==="out-in")return i.isLeaving=!0,L.afterLeave=()=>{i.isLeaving=!1,l.update.active!==!1&&l.update()},Mi(o);s==="in-out"&&c.type!==Ye&&(L.delayLeave=(A,b,k)=>{const x=Ko(i,f);x[String(f.key)]=f,A._leaveCb=()=>{b(),A._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=k})}return o}}},ac=sc;function Ko(e,t){const{leavingVNodes:l}=e;let i=l.get(t.type);return i||(i=Object.create(null),l.set(t.type,i)),i}function nn(e,t,l,i){const{appear:n,mode:r,persisted:o=!1,onBeforeEnter:a,onEnter:s,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:h,onLeave:f,onAfterLeave:_,onLeaveCancelled:y,onBeforeAppear:L,onAppear:A,onAfterAppear:b,onAppearCancelled:k}=t,x=String(e.key),O=Ko(l,e),q=(m,U)=>{m&&Ze(m,i,9,U)},Z=(m,U)=>{const H=U[1];q(m,U),X(m)?m.every(J=>J.length<=1)&&H():m.length<=1&&H()},F={mode:r,persisted:o,beforeEnter(m){let U=a;if(!l.isMounted)if(n)U=L||a;else return;m._leaveCb&&m._leaveCb(!0);const H=O[x];H&&zt(e,H)&&H.el._leaveCb&&H.el._leaveCb(),q(U,[m])},enter(m){let U=s,H=c,J=d;if(!l.isMounted)if(n)U=A||s,H=b||c,J=k||d;else return;let R=!1;const V=m._enterCb=S=>{R||(R=!0,S?q(J,[m]):q(H,[m]),F.delayedLeave&&F.delayedLeave(),m._enterCb=void 0)};U?Z(U,[m,V]):V()},leave(m,U){const H=String(e.key);if(m._enterCb&&m._enterCb(!0),l.isUnmounting)return U();q(h,[m]);let J=!1;const R=m._leaveCb=V=>{J||(J=!0,U(),V?q(y,[m]):q(_,[m]),m._leaveCb=void 0,O[H]===e&&delete O[H])};O[H]=e,f?Z(f,[m,R]):R()},clone(m){return nn(m,t,l,i)}};return F}function Mi(e){if(zl(e))return e=Ft(e),e.children=null,e}function dr(e){return zl(e)?e.children?e.children[0]:void 0:e}function rn(e,t){e.shapeFlag&6&&e.component?rn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function qo(e,t=!1,l){let i=[],n=0;for(let r=0;r1)for(let r=0;rOe({name:e.name},t,{setup:e}))():e}const sl=e=>!!e.type.__asyncLoader;function g(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:l,errorComponent:i,delay:n=200,timeout:r,suspensible:o=!0,onError:a}=e;let s=null,c,d=0;const h=()=>(d++,s=null,f()),f=()=>{let _;return s||(_=s=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),a)return new Promise((L,A)=>{a(y,()=>L(h()),()=>A(y),d+1)});throw y}).then(y=>_!==s&&s?s:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return he({name:"AsyncComponentWrapper",__asyncLoader:f,get __asyncResolved(){return c},setup(){const _=xe;if(c)return()=>Hi(c,_);const y=k=>{s=null,Bl(k,_,13,!i)};if(o&&_.suspense||dl)return f().then(k=>()=>Hi(k,_)).catch(k=>(y(k),()=>i?le(i,{error:k}):null));const L=me(!1),A=me(),b=me(!!n);return n&&setTimeout(()=>{b.value=!1},n),r!=null&&setTimeout(()=>{if(!L.value&&!A.value){const k=new Error(`Async component timed out after ${r}ms.`);y(k),A.value=k}},r),f().then(()=>{L.value=!0,_.parent&&zl(_.parent.vnode)&&Ti(_.parent.update)}).catch(k=>{y(k),A.value=k}),()=>{if(L.value&&c)return Hi(c,_);if(A.value&&i)return le(i,{error:A.value});if(l&&!b.value)return le(l)}}})}function Hi(e,t){const{ref:l,props:i,children:n,ce:r}=t.vnode,o=le(e,i,n);return o.ref=l,o.ce=r,delete t.vnode.ce,o}const zl=e=>e.type.__isKeepAlive;function cc(e,t){Wo(e,"a",t)}function uc(e,t){Wo(e,"da",t)}function Wo(e,t,l=xe){const i=e.__wdc||(e.__wdc=()=>{let n=l;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Oi(t,i,l),l){let n=l.parent;for(;n&&n.parent;)zl(n.parent.vnode)&&dc(i,t,l,n),n=n.parent}}function dc(e,t,l,i){const n=Oi(t,e,i,!0);xi(()=>{_n(i[t],n)},l)}function Oi(e,t,l=xe,i=!1){if(l){const n=l[e]||(l[e]=[]),r=t.__weh||(t.__weh=(...o)=>{if(l.isUnmounted)return;vl(),ul(l);const a=Ze(t,l,e,o);return Gt(),pl(),a});return i?n.unshift(r):n.push(r),r}}const yt=e=>(t,l=xe)=>(!dl||e==="sp")&&Oi(e,(...i)=>t(...i),l),hc=yt("bm"),ze=yt("m"),fc=yt("bu"),vc=yt("u"),Ul=yt("bum"),xi=yt("um"),pc=yt("sp"),mc=yt("rtg"),_c=yt("rtc");function gc(e,t=xe){Oi("ec",e,t)}const Go="components";function kt(e,t){return Ec(Go,e,!0,t)||e}const bc=Symbol.for("v-ndc");function Ec(e,t,l=!0,i=!1){const n=$e||xe;if(n){const r=n.type;if(e===Go){const a=Yc(r,!1);if(a&&(a===t||a===dt(t)||a===Pi(dt(t))))return r}const o=hr(n[e]||r[e],t)||hr(n.appContext[e],t);return!o&&i?r:o}}function hr(e,t){return e&&(e[t]||e[dt(t)]||e[Pi(dt(t))])}function St(e,t,l,i){let n;const r=l&&l[i];if(X(e)||_e(e)){n=new Array(e.length);for(let o=0,a=e.length;ot(o,a,void 0,r&&r[a]));else{const o=Object.keys(e);n=new Array(o.length);for(let a=0,s=o.length;a_i(t)?!(t.type===Ye||t.type===ye&&!Jo(t.children)):!0)?e:null}const on=e=>e?os(e)?Ci(e)||e.proxy:on(e.parent):null,wl=Oe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>on(e.parent),$root:e=>on(e.root),$emit:e=>e.emit,$options:e=>Dn(e),$forceUpdate:e=>e.f||(e.f=()=>Ti(e.update)),$nextTick:e=>e.n||(e.n=jl.bind(e.proxy)),$watch:e=>rc.bind(e)}),Bi=(e,t)=>e!==Le&&!e.__isScriptSetup&&ve(e,t),kc={get({_:e},t){const{ctx:l,setupState:i,data:n,props:r,accessCache:o,type:a,appContext:s}=e;let c;if(t[0]!=="$"){const _=o[t];if(_!==void 0)switch(_){case 1:return i[t];case 2:return n[t];case 4:return l[t];case 3:return r[t]}else{if(Bi(i,t))return o[t]=1,i[t];if(n!==Le&&ve(n,t))return o[t]=2,n[t];if((c=e.propsOptions[0])&&ve(c,t))return o[t]=3,r[t];if(l!==Le&&ve(l,t))return o[t]=4,l[t];sn&&(o[t]=0)}}const d=wl[t];let h,f;if(d)return t==="$attrs"&&We(e,"get",t),d(e);if((h=a.__cssModules)&&(h=h[t]))return h;if(l!==Le&&ve(l,t))return o[t]=4,l[t];if(f=s.config.globalProperties,ve(f,t))return f[t]},set({_:e},t,l){const{data:i,setupState:n,ctx:r}=e;return Bi(n,t)?(n[t]=l,!0):i!==Le&&ve(i,t)?(i[t]=l,!0):ve(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=l,!0)},has({_:{data:e,setupState:t,accessCache:l,ctx:i,appContext:n,propsOptions:r}},o){let a;return!!l[o]||e!==Le&&ve(e,o)||Bi(t,o)||(a=r[0])&&ve(a,o)||ve(i,o)||ve(wl,o)||ve(n.config.globalProperties,o)},defineProperty(e,t,l){return l.get!=null?e._.accessCache[t]=0:ve(l,"value")&&this.set(e,t,l.value,null),Reflect.defineProperty(e,t,l)}};function fr(e){return X(e)?e.reduce((t,l)=>(t[l]=null,t),{}):e}let sn=!0;function yc(e){const t=Dn(e),l=e.proxy,i=e.ctx;sn=!1,t.beforeCreate&&vr(t.beforeCreate,e,"bc");const{data:n,computed:r,methods:o,watch:a,provide:s,inject:c,created:d,beforeMount:h,mounted:f,beforeUpdate:_,updated:y,activated:L,deactivated:A,beforeDestroy:b,beforeUnmount:k,destroyed:x,unmounted:O,render:q,renderTracked:Z,renderTriggered:F,errorCaptured:m,serverPrefetch:U,expose:H,inheritAttrs:J,components:R,directives:V,filters:S}=t;if(c&&Lc(c,i,null),o)for(const ne in o){const re=o[ne];oe(re)&&(i[ne]=re.bind(l))}if(n){const ne=n.call(l,l);Pe(ne)&&(e.data=Hl(ne))}if(sn=!0,r)for(const ne in r){const re=r[ne],Ne=oe(re)?re.bind(l,l):oe(re.get)?re.get.bind(l,l):rt,Fe=!oe(re)&&oe(re.set)?re.set.bind(l):rt,Ue=M({get:Ne,set:Fe});Object.defineProperty(i,ne,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:Me=>Ue.value=Me})}if(a)for(const ne in a)Yo(a[ne],i,l,ne);if(s){const ne=oe(s)?s.call(l):s;Reflect.ownKeys(ne).forEach(re=>{Wt(re,ne[re])})}d&&vr(d,e,"c");function K(ne,re){X(re)?re.forEach(Ne=>ne(Ne.bind(l))):re&&ne(re.bind(l))}if(K(hc,h),K(ze,f),K(fc,_),K(vc,y),K(cc,L),K(uc,A),K(gc,m),K(_c,Z),K(mc,F),K(Ul,k),K(xi,O),K(pc,U),X(H))if(H.length){const ne=e.exposed||(e.exposed={});H.forEach(re=>{Object.defineProperty(ne,re,{get:()=>l[re],set:Ne=>l[re]=Ne})})}else e.exposed||(e.exposed={});q&&e.render===rt&&(e.render=q),J!=null&&(e.inheritAttrs=J),R&&(e.components=R),V&&(e.directives=V)}function Lc(e,t,l=rt){X(e)&&(e=an(e));for(const i in e){const n=e[i];let r;Pe(n)?"default"in n?r=Re(n.from||i,n.default,!0):r=Re(n.from||i):r=Re(n),Se(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):t[i]=r}}function vr(e,t,l){Ze(X(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,l)}function Yo(e,t,l,i){const n=i.includes(".")?zo(l,i):()=>l[i];if(_e(e)){const r=t[e];oe(r)&&et(n,r)}else if(oe(e))et(n,e.bind(l));else if(Pe(e))if(X(e))e.forEach(r=>Yo(r,t,l,i));else{const r=oe(e.handler)?e.handler.bind(l):t[e.handler];oe(r)&&et(n,r,e)}}function Dn(e){const t=e.type,{mixins:l,extends:i}=t,{mixins:n,optionsCache:r,config:{optionMergeStrategies:o}}=e.appContext,a=r.get(t);let s;return a?s=a:!n.length&&!l&&!i?s=t:(s={},n.length&&n.forEach(c=>vi(s,c,o,!0)),vi(s,t,o)),Pe(t)&&r.set(t,s),s}function vi(e,t,l,i=!1){const{mixins:n,extends:r}=t;r&&vi(e,r,l,!0),n&&n.forEach(o=>vi(e,o,l,!0));for(const o in t)if(!(i&&o==="expose")){const a=Pc[o]||l&&l[o];e[o]=a?a(e[o],t[o]):t[o]}return e}const Pc={data:pr,props:mr,emits:mr,methods:Pl,computed:Pl,beforeCreate:Be,created:Be,beforeMount:Be,mounted:Be,beforeUpdate:Be,updated:Be,beforeDestroy:Be,beforeUnmount:Be,destroyed:Be,unmounted:Be,activated:Be,deactivated:Be,errorCaptured:Be,serverPrefetch:Be,components:Pl,directives:Pl,watch:wc,provide:pr,inject:Ac};function pr(e,t){return t?e?function(){return Oe(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function Ac(e,t){return Pl(an(e),an(t))}function an(e){if(X(e)){const t={};for(let l=0;l1)return l&&oe(t)?t.call(i&&i.proxy):t}}function Ic(e,t,l,i=!1){const n={},r={};ai(r,Di,1),e.propsDefaults=Object.create(null),Xo(e,t,n,r);for(const o in e.propsOptions[0])o in n||(n[o]=void 0);l?e.props=i?n:Do(n):e.type.props?e.props=n:e.props=r,e.attrs=r}function Oc(e,t,l,i){const{props:n,attrs:r,vnode:{patchFlag:o}}=e,a=pe(n),[s]=e.propsOptions;let c=!1;if((i||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{s=!0;const[f,_]=Zo(h,t,!0);Oe(o,f),_&&a.push(..._)};!l&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!r&&!s)return Pe(e)&&i.set(e,il),il;if(X(r))for(let d=0;d-1,_[1]=L<0||y-1||ve(_,"default"))&&a.push(h)}}}const c=[o,a];return Pe(e)&&i.set(e,c),c}function _r(e){return e[0]!=="$"}function gr(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function br(e,t){return gr(e)===gr(t)}function Er(e,t){return X(t)?t.findIndex(l=>br(l,e)):oe(t)&&br(t,e)?0:-1}const es=e=>e[0]==="_"||e==="$stable",Cn=e=>X(e)?e.map(lt):[lt(e)],xc=(e,t,l)=>{if(t._n)return t;const i=Ve((...n)=>Cn(t(...n)),l);return i._c=!1,i},ts=(e,t,l)=>{const i=e._ctx;for(const n in e){if(es(n))continue;const r=e[n];if(oe(r))t[n]=xc(n,r,i);else if(r!=null){const o=Cn(r);t[n]=()=>o}}},ls=(e,t)=>{const l=Cn(t);e.slots.default=()=>l},Dc=(e,t)=>{if(e.vnode.shapeFlag&32){const l=t._;l?(e.slots=pe(t),ai(t,"_",l)):ts(t,e.slots={})}else e.slots={},t&&ls(e,t);ai(e.slots,Di,1)},Cc=(e,t,l)=>{const{vnode:i,slots:n}=e;let r=!0,o=Le;if(i.shapeFlag&32){const a=t._;a?l&&a===1?r=!1:(Oe(n,t),!l&&a===1&&delete n._):(r=!t.$stable,ts(t,n)),o=t}else t&&(ls(e,t),o={default:1});if(r)for(const a in n)!es(a)&&!(a in o)&&delete n[a]};function mi(e,t,l,i,n=!1){if(X(e)){e.forEach((f,_)=>mi(f,t&&(X(t)?t[_]:t),l,i,n));return}if(sl(i)&&!n)return;const r=i.shapeFlag&4?Ci(i.component)||i.component.proxy:i.el,o=n?null:r,{i:a,r:s}=e,c=t&&t.r,d=a.refs===Le?a.refs={}:a.refs,h=a.setupState;if(c!=null&&c!==s&&(_e(c)?(d[c]=null,ve(h,c)&&(h[c]=null)):Se(c)&&(c.value=null)),oe(s))Dt(s,a,12,[o,d]);else{const f=_e(s),_=Se(s);if(f||_){const y=()=>{if(e.f){const L=f?ve(h,s)?h[s]:d[s]:s.value;n?X(L)&&_n(L,r):X(L)?L.includes(r)||L.push(r):f?(d[s]=[r],ve(h,s)&&(h[s]=d[s])):(s.value=[r],e.k&&(d[e.k]=s.value))}else f?(d[s]=o,ve(h,s)&&(h[s]=o)):_&&(s.value=o,e.k&&(d[e.k]=o))};o?(y.id=-1,Ke(y,l)):y()}}}let wt=!1;const Zl=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",ei=e=>e.nodeType===8;function Vc(e){const{mt:t,p:l,o:{patchProp:i,createText:n,nextSibling:r,parentNode:o,remove:a,insert:s,createComment:c}}=e,d=(b,k)=>{if(!k.hasChildNodes()){l(null,b,k),di(),k._vnode=b;return}wt=!1,h(k.firstChild,b,null,null,null),di(),k._vnode=b,wt&&console.error("Hydration completed but contains mismatches.")},h=(b,k,x,O,q,Z=!1)=>{const F=ei(b)&&b.data==="[",m=()=>L(b,k,x,O,q,F),{type:U,ref:H,shapeFlag:J,patchFlag:R}=k;let V=b.nodeType;k.el=b,R===-2&&(Z=!1,k.dynamicChildren=null);let S=null;switch(U){case cl:V!==3?k.children===""?(s(k.el=n(""),o(b),b),S=b):S=m():(b.data!==k.children&&(wt=!0,b.data=k.children),S=r(b));break;case Ye:V!==8||F?S=m():S=r(b);break;case Tl:if(F&&(b=r(b),V=b.nodeType),V===1||V===3){S=b;const se=!k.children.length;for(let K=0;K{Z=Z||!!k.dynamicChildren;const{type:F,props:m,patchFlag:U,shapeFlag:H,dirs:J}=k,R=F==="input"&&J||F==="option";if(R||U!==-1){if(J&&ct(k,null,x,"created"),m)if(R||!Z||U&48)for(const S in m)(R&&S.endsWith("value")||Nl(S)&&!Al(S))&&i(b,S,null,m[S],!1,void 0,x);else m.onClick&&i(b,"onClick",null,m.onClick,!1,void 0,x);let V;if((V=m&&m.onVnodeBeforeMount)&&Xe(V,x,k),J&&ct(k,null,x,"beforeMount"),((V=m&&m.onVnodeMounted)||J)&&Bo(()=>{V&&Xe(V,x,k),J&&ct(k,null,x,"mounted")},O),H&16&&!(m&&(m.innerHTML||m.textContent))){let S=_(b.firstChild,k,b,x,O,q,Z);for(;S;){wt=!0;const se=S;S=S.nextSibling,a(se)}}else H&8&&b.textContent!==k.children&&(wt=!0,b.textContent=k.children)}return b.nextSibling},_=(b,k,x,O,q,Z,F)=>{F=F||!!k.dynamicChildren;const m=k.children,U=m.length;for(let H=0;H{const{slotScopeIds:F}=k;F&&(q=q?q.concat(F):F);const m=o(b),U=_(r(b),k,m,x,O,q,Z);return U&&ei(U)&&U.data==="]"?r(k.anchor=U):(wt=!0,s(k.anchor=c("]"),m,U),U)},L=(b,k,x,O,q,Z)=>{if(wt=!0,k.el=null,Z){const U=A(b);for(;;){const H=r(b);if(H&&H!==U)a(H);else break}}const F=r(b),m=o(b);return a(b),l(null,k,m,F,x,O,Zl(m),q),F},A=b=>{let k=0;for(;b;)if(b=r(b),b&&ei(b)&&(b.data==="["&&k++,b.data==="]")){if(k===0)return r(b);k--}return b};return[d,h]}const Ke=Bo;function Sc(e){return Fc(e,Vc)}function Fc(e,t){const l=Xi();l.__VUE__=!0;const{insert:i,remove:n,patchProp:r,createElement:o,createText:a,createComment:s,setText:c,setElementText:d,parentNode:h,nextSibling:f,setScopeId:_=rt,insertStaticContent:y}=e,L=(v,p,E,P=null,T=null,I=null,B=!1,C=null,N=!!p.dynamicChildren)=>{if(v===p)return;v&&!zt(v,p)&&(P=w(v),Me(v,T,I,!0),v=null),p.patchFlag===-2&&(N=!1,p.dynamicChildren=null);const{type:D,ref:Y,shapeFlag:W}=p;switch(D){case cl:A(v,p,E,P);break;case Ye:b(v,p,E,P);break;case Tl:v==null&&k(p,E,P,B);break;case ye:R(v,p,E,P,T,I,B,C,N);break;default:W&1?q(v,p,E,P,T,I,B,C,N):W&6?V(v,p,E,P,T,I,B,C,N):(W&64||W&128)&&D.process(v,p,E,P,T,I,B,C,N,$)}Y!=null&&T&&mi(Y,v&&v.ref,I,p||v,!p)},A=(v,p,E,P)=>{if(v==null)i(p.el=a(p.children),E,P);else{const T=p.el=v.el;p.children!==v.children&&c(T,p.children)}},b=(v,p,E,P)=>{v==null?i(p.el=s(p.children||""),E,P):p.el=v.el},k=(v,p,E,P)=>{[v.el,v.anchor]=y(v.children,p,E,P,v.el,v.anchor)},x=({el:v,anchor:p},E,P)=>{let T;for(;v&&v!==p;)T=f(v),i(v,E,P),v=T;i(p,E,P)},O=({el:v,anchor:p})=>{let E;for(;v&&v!==p;)E=f(v),n(v),v=E;n(p)},q=(v,p,E,P,T,I,B,C,N)=>{B=B||p.type==="svg",v==null?Z(p,E,P,T,I,B,C,N):U(v,p,T,I,B,C,N)},Z=(v,p,E,P,T,I,B,C)=>{let N,D;const{type:Y,props:W,shapeFlag:Q,transition:ie,dirs:ae}=v;if(N=v.el=o(v.type,I,W&&W.is,W),Q&8?d(N,v.children):Q&16&&m(v.children,N,null,P,T,I&&Y!=="foreignObject",B,C),ae&&ct(v,null,P,"created"),F(N,v,v.scopeId,B,P),W){for(const be in W)be!=="value"&&!Al(be)&&r(N,be,null,W[be],I,v.children,P,T,Ce);"value"in W&&r(N,"value",null,W.value),(D=W.onVnodeBeforeMount)&&Xe(D,P,v)}ae&&ct(v,null,P,"beforeMount");const Ee=(!T||T&&!T.pendingBranch)&&ie&&!ie.persisted;Ee&&ie.beforeEnter(N),i(N,p,E),((D=W&&W.onVnodeMounted)||Ee||ae)&&Ke(()=>{D&&Xe(D,P,v),Ee&&ie.enter(N),ae&&ct(v,null,P,"mounted")},T)},F=(v,p,E,P,T)=>{if(E&&_(v,E),P)for(let I=0;I{for(let D=N;D{const C=p.el=v.el;let{patchFlag:N,dynamicChildren:D,dirs:Y}=p;N|=v.patchFlag&16;const W=v.props||Le,Q=p.props||Le;let ie;E&&Nt(E,!1),(ie=Q.onVnodeBeforeUpdate)&&Xe(ie,E,p,v),Y&&ct(p,v,E,"beforeUpdate"),E&&Nt(E,!0);const ae=T&&p.type!=="foreignObject";if(D?H(v.dynamicChildren,D,C,E,P,ae,I):B||re(v,p,C,null,E,P,ae,I,!1),N>0){if(N&16)J(C,p,W,Q,E,P,T);else if(N&2&&W.class!==Q.class&&r(C,"class",null,Q.class,T),N&4&&r(C,"style",W.style,Q.style,T),N&8){const Ee=p.dynamicProps;for(let be=0;be{ie&&Xe(ie,E,p,v),Y&&ct(p,v,E,"updated")},P)},H=(v,p,E,P,T,I,B)=>{for(let C=0;C{if(E!==P){if(E!==Le)for(const C in E)!Al(C)&&!(C in P)&&r(v,C,E[C],null,B,p.children,T,I,Ce);for(const C in P){if(Al(C))continue;const N=P[C],D=E[C];N!==D&&C!=="value"&&r(v,C,D,N,B,p.children,T,I,Ce)}"value"in P&&r(v,"value",E.value,P.value)}},R=(v,p,E,P,T,I,B,C,N)=>{const D=p.el=v?v.el:a(""),Y=p.anchor=v?v.anchor:a("");let{patchFlag:W,dynamicChildren:Q,slotScopeIds:ie}=p;ie&&(C=C?C.concat(ie):ie),v==null?(i(D,E,P),i(Y,E,P),m(p.children,E,Y,T,I,B,C,N)):W>0&&W&64&&Q&&v.dynamicChildren?(H(v.dynamicChildren,Q,E,T,I,B,C),(p.key!=null||T&&p===T.subTree)&&is(v,p,!0)):re(v,p,E,Y,T,I,B,C,N)},V=(v,p,E,P,T,I,B,C,N)=>{p.slotScopeIds=C,v==null?p.shapeFlag&512?T.ctx.activate(p,E,P,B,N):S(p,E,P,T,I,B,N):se(v,p,N)},S=(v,p,E,P,T,I,B)=>{const C=v.component=Kc(v,P,T);if(zl(v)&&(C.ctx.renderer=$),qc(C),C.asyncDep){if(T&&T.registerDep(C,K),!v.el){const N=C.subTree=le(Ye);b(null,N,p,E)}return}K(C,v,p,E,T,I,B)},se=(v,p,E)=>{const P=p.component=v.component;if(lc(v,p,E))if(P.asyncDep&&!P.asyncResolved){ne(P,p,E);return}else P.next=p,Ya(P.update),P.update();else p.el=v.el,P.vnode=p},K=(v,p,E,P,T,I,B)=>{const C=()=>{if(v.isMounted){let{next:Y,bu:W,u:Q,parent:ie,vnode:ae}=v,Ee=Y,be;Nt(v,!1),Y?(Y.el=ae.el,ne(v,Y,B)):Y=ae,W&&$i(W),(be=Y.props&&Y.props.onVnodeBeforeUpdate)&&Xe(be,ie,Y,ae),Nt(v,!0);const Ie=Ni(v),tt=v.subTree;v.subTree=Ie,L(tt,Ie,h(tt.el),w(tt),v,T,I),Y.el=Ie.el,Ee===null&&ic(v,Ie.el),Q&&Ke(Q,T),(be=Y.props&&Y.props.onVnodeUpdated)&&Ke(()=>Xe(be,ie,Y,ae),T)}else{let Y;const{el:W,props:Q}=p,{bm:ie,m:ae,parent:Ee}=v,be=sl(p);if(Nt(v,!1),ie&&$i(ie),!be&&(Y=Q&&Q.onVnodeBeforeMount)&&Xe(Y,Ee,p),Nt(v,!0),W&&de){const Ie=()=>{v.subTree=Ni(v),de(W,v.subTree,v,T,null)};be?p.type.__asyncLoader().then(()=>!v.isUnmounted&&Ie()):Ie()}else{const Ie=v.subTree=Ni(v);L(null,Ie,E,P,v,T,I),p.el=Ie.el}if(ae&&Ke(ae,T),!be&&(Y=Q&&Q.onVnodeMounted)){const Ie=p;Ke(()=>Xe(Y,Ee,Ie),T)}(p.shapeFlag&256||Ee&&sl(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&v.a&&Ke(v.a,T),v.isMounted=!0,p=E=P=null}},N=v.effect=new kn(C,()=>Ti(D),v.scope),D=v.update=()=>N.run();D.id=v.uid,Nt(v,!0),D()},ne=(v,p,E)=>{p.component=v;const P=v.vnode.props;v.vnode=p,v.next=null,Oc(v,p.props,P,E),Cc(v,p.children,E),vl(),cr(),pl()},re=(v,p,E,P,T,I,B,C,N=!1)=>{const D=v&&v.children,Y=v?v.shapeFlag:0,W=p.children,{patchFlag:Q,shapeFlag:ie}=p;if(Q>0){if(Q&128){Fe(D,W,E,P,T,I,B,C,N);return}else if(Q&256){Ne(D,W,E,P,T,I,B,C,N);return}}ie&8?(Y&16&&Ce(D,T,I),W!==D&&d(E,W)):Y&16?ie&16?Fe(D,W,E,P,T,I,B,C,N):Ce(D,T,I,!0):(Y&8&&d(E,""),ie&16&&m(W,E,P,T,I,B,C,N))},Ne=(v,p,E,P,T,I,B,C,N)=>{v=v||il,p=p||il;const D=v.length,Y=p.length,W=Math.min(D,Y);let Q;for(Q=0;QY?Ce(v,T,I,!0,!1,W):m(p,E,P,T,I,B,C,N,W)},Fe=(v,p,E,P,T,I,B,C,N)=>{let D=0;const Y=p.length;let W=v.length-1,Q=Y-1;for(;D<=W&&D<=Q;){const ie=v[D],ae=p[D]=N?It(p[D]):lt(p[D]);if(zt(ie,ae))L(ie,ae,E,null,T,I,B,C,N);else break;D++}for(;D<=W&&D<=Q;){const ie=v[W],ae=p[Q]=N?It(p[Q]):lt(p[Q]);if(zt(ie,ae))L(ie,ae,E,null,T,I,B,C,N);else break;W--,Q--}if(D>W){if(D<=Q){const ie=Q+1,ae=ieQ)for(;D<=W;)Me(v[D],T,I,!0),D++;else{const ie=D,ae=D,Ee=new Map;for(D=ae;D<=Q;D++){const Ge=p[D]=N?It(p[D]):lt(p[D]);Ge.key!=null&&Ee.set(Ge.key,D)}let be,Ie=0;const tt=Q-ae+1;let Xt=!1,Qn=0;const gl=new Array(tt);for(D=0;D=tt){Me(Ge,T,I,!0);continue}let at;if(Ge.key!=null)at=Ee.get(Ge.key);else for(be=ae;be<=Q;be++)if(gl[be-ae]===0&&zt(Ge,p[be])){at=be;break}at===void 0?Me(Ge,T,I,!0):(gl[at-ae]=D+1,at>=Qn?Qn=at:Xt=!0,L(Ge,p[at],E,null,T,I,B,C,N),Ie++)}const Xn=Xt?$c(gl):il;for(be=Xn.length-1,D=tt-1;D>=0;D--){const Ge=ae+D,at=p[Ge],Zn=Ge+1{const{el:I,type:B,transition:C,children:N,shapeFlag:D}=v;if(D&6){Ue(v.component.subTree,p,E,P);return}if(D&128){v.suspense.move(p,E,P);return}if(D&64){B.move(v,p,E,$);return}if(B===ye){i(I,p,E);for(let W=0;WC.enter(I),T);else{const{leave:W,delayLeave:Q,afterLeave:ie}=C,ae=()=>i(I,p,E),Ee=()=>{W(I,()=>{ae(),ie&&ie()})};Q?Q(I,ae,Ee):Ee()}else i(I,p,E)},Me=(v,p,E,P=!1,T=!1)=>{const{type:I,props:B,ref:C,children:N,dynamicChildren:D,shapeFlag:Y,patchFlag:W,dirs:Q}=v;if(C!=null&&mi(C,null,E,v,!0),Y&256){p.ctx.deactivate(v);return}const ie=Y&1&&Q,ae=!sl(v);let Ee;if(ae&&(Ee=B&&B.onVnodeBeforeUnmount)&&Xe(Ee,p,v),Y&6)st(v.component,E,P);else{if(Y&128){v.suspense.unmount(E,P);return}ie&&ct(v,null,p,"beforeUnmount"),Y&64?v.type.remove(v,p,E,T,$,P):D&&(I!==ye||W>0&&W&64)?Ce(D,p,E,!1,!0):(I===ye&&W&384||!T&&Y&16)&&Ce(N,p,E),P&&Lt(v)}(ae&&(Ee=B&&B.onVnodeUnmounted)||ie)&&Ke(()=>{Ee&&Xe(Ee,p,v),ie&&ct(v,null,p,"unmounted")},E)},Lt=v=>{const{type:p,el:E,anchor:P,transition:T}=v;if(p===ye){Pt(E,P);return}if(p===Tl){O(v);return}const I=()=>{n(E),T&&!T.persisted&&T.afterLeave&&T.afterLeave()};if(v.shapeFlag&1&&T&&!T.persisted){const{leave:B,delayLeave:C}=T,N=()=>B(E,I);C?C(v.el,I,N):N()}else I()},Pt=(v,p)=>{let E;for(;v!==p;)E=f(v),n(v),v=E;n(p)},st=(v,p,E)=>{const{bum:P,scope:T,update:I,subTree:B,um:C}=v;P&&$i(P),T.stop(),I&&(I.active=!1,Me(B,v,p,E)),C&&Ke(C,p),Ke(()=>{v.isUnmounted=!0},p),p&&p.pendingBranch&&!p.isUnmounted&&v.asyncDep&&!v.asyncResolved&&v.suspenseId===p.pendingId&&(p.deps--,p.deps===0&&p.resolve())},Ce=(v,p,E,P=!1,T=!1,I=0)=>{for(let B=I;Bv.shapeFlag&6?w(v.component.subTree):v.shapeFlag&128?v.suspense.next():f(v.anchor||v.el),z=(v,p,E)=>{v==null?p._vnode&&Me(p._vnode,null,null,!0):L(p._vnode||null,v,p,null,null,null,E),cr(),di(),p._vnode=v},$={p:L,um:Me,m:Ue,r:Lt,mt:S,mc:m,pc:re,pbc:H,n:w,o:e};let G,de;return t&&([G,de]=t($)),{render:z,hydrate:G,createApp:Rc(z,G)}}function Nt({effect:e,update:t},l){e.allowRecurse=t.allowRecurse=l}function is(e,t,l=!1){const i=e.children,n=t.children;if(X(i)&&X(n))for(let r=0;r>1,e[l[a]]0&&(t[i]=l[r-1]),l[r]=i)}}for(r=l.length,o=l[r-1];r-- >0;)l[r]=o,o=t[o];return l}const Nc=e=>e.__isTeleport,ye=Symbol.for("v-fgt"),cl=Symbol.for("v-txt"),Ye=Symbol.for("v-cmt"),Tl=Symbol.for("v-stc"),Rl=[];let nt=null;function j(e=!1){Rl.push(nt=e?null:[])}function Mc(){Rl.pop(),nt=Rl[Rl.length-1]||null}let Sl=1;function kr(e){Sl+=e}function ns(e){return e.dynamicChildren=Sl>0?nt||il:null,Mc(),Sl>0&&nt&&nt.push(e),e}function ee(e,t,l,i,n,r){return ns(ce(e,t,l,i,n,r,!0))}function we(e,t,l,i,n){return ns(le(e,t,l,i,n,!0))}function _i(e){return e?e.__v_isVNode===!0:!1}function zt(e,t){return e.type===t.type&&e.key===t.key}const Di="__vInternal",rs=({key:e})=>e??null,oi=({ref:e,ref_key:t,ref_for:l})=>(typeof e=="number"&&(e=""+e),e!=null?_e(e)||Se(e)||oe(e)?{i:$e,r:e,k:t,f:!!l}:e:null);function ce(e,t=null,l=null,i=0,n=null,r=e===ye?0:1,o=!1,a=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&rs(t),ref:t&&oi(t),scopeId:Ii,slotScopeIds:null,children:l,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:$e};return a?(Vn(s,l),r&128&&e.normalize(s)):l&&(s.shapeFlag|=_e(l)?8:16),Sl>0&&!o&&nt&&(s.patchFlag>0||r&6)&&s.patchFlag!==32&&nt.push(s),s}const le=Hc;function Hc(e,t=null,l=null,i=0,n=null,r=!1){if((!e||e===bc)&&(e=Ye),_i(e)){const a=Ft(e,t,!0);return l&&Vn(a,l),Sl>0&&!r&&nt&&(a.shapeFlag&6?nt[nt.indexOf(e)]=a:nt.push(a)),a.patchFlag|=-2,a}if(Qc(e)&&(e=e.__vccOpts),t){t=Bc(t);let{class:a,style:s}=t;a&&!_e(a)&&(t.class=qe(a)),Pe(s)&&(Co(s)&&!X(s)&&(s=Oe({},s)),t.style=Ml(s))}const o=_e(e)?1:nc(e)?128:Nc(e)?64:Pe(e)?4:oe(e)?2:0;return ce(e,t,l,i,n,o,r,!0)}function Bc(e){return e?Co(e)||Di in e?Oe({},e):e:null}function Ft(e,t,l=!1){const{props:i,ref:n,patchFlag:r,children:o}=e,a=t?un(i||{},t):i;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&rs(a),ref:t&&t.ref?l&&n?X(n)?n.concat(oi(t)):[n,oi(t)]:oi(t):n,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ft(e.ssContent),ssFallback:e.ssFallback&&Ft(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function ht(e=" ",t=0){return le(cl,null,e,t)}function jc(e,t){const l=le(Tl,null,e);return l.staticCount=t,l}function Te(e="",t=!1){return t?(j(),we(Ye,null,e)):le(Ye,null,e)}function lt(e){return e==null||typeof e=="boolean"?le(Ye):X(e)?le(ye,null,e.slice()):typeof e=="object"?It(e):le(cl,null,String(e))}function It(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ft(e)}function Vn(e,t){let l=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(X(t))l=16;else if(typeof t=="object")if(i&65){const n=t.default;n&&(n._c&&(n._d=!1),Vn(e,n()),n._c&&(n._d=!0));return}else{l=32;const n=t._;!n&&!(Di in t)?t._ctx=$e:n===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:$e},l=32):(t=String(t),i&64?(l=16,t=[ht(t)]):l=8);e.children=t,e.shapeFlag|=l}function un(...e){const t={};for(let l=0;lxe||$e;let Fn,Zt,yr="__VUE_INSTANCE_SETTERS__";(Zt=Xi()[yr])||(Zt=Xi()[yr]=[]),Zt.push(e=>xe=e),Fn=e=>{Zt.length>1?Zt.forEach(t=>t(e)):Zt[0](e)};const ul=e=>{Fn(e),e.scope.on()},Gt=()=>{xe&&xe.scope.off(),Fn(null)};function os(e){return e.vnode.shapeFlag&4}let dl=!1;function qc(e,t=!1){dl=t;const{props:l,children:i}=e.vnode,n=os(e);Ic(e,l,n,t),Dc(e,i);const r=n?Wc(e,t):void 0;return dl=!1,r}function Wc(e,t){const l=e.type;e.accessCache=Object.create(null),e.proxy=Vo(new Proxy(e.ctx,kc));const{setup:i}=l;if(i){const n=e.setupContext=i.length>1?Jc(e):null;ul(e),vl();const r=Dt(i,e,0,[e.props,n]);if(pl(),Gt(),mo(r)){if(r.then(Gt,Gt),t)return r.then(o=>{Lr(e,o,t)}).catch(o=>{Bl(o,e,0)});e.asyncDep=r}else Lr(e,r,t)}else ss(e,t)}function Lr(e,t,l){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Pe(t)&&(e.setupState=Fo(t)),ss(e,l)}let Pr;function ss(e,t,l){const i=e.type;if(!e.render){if(!t&&Pr&&!i.render){const n=i.template||Dn(e).template;if(n){const{isCustomElement:r,compilerOptions:o}=e.appContext.config,{delimiters:a,compilerOptions:s}=i,c=Oe(Oe({isCustomElement:r,delimiters:a},o),s);i.render=Pr(n,c)}}e.render=i.render||rt}ul(e),vl(),yc(e),pl(),Gt()}function Gc(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,l){return We(e,"get","$attrs"),t[l]}}))}function Jc(e){const t=l=>{e.exposed=l||{}};return{get attrs(){return Gc(e)},slots:e.slots,emit:e.emit,expose:t}}function Ci(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Fo(Vo(e.exposed)),{get(t,l){if(l in t)return t[l];if(l in wl)return wl[l](e)},has(t,l){return l in t||l in wl}}))}function Yc(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Qc(e){return oe(e)&&"__vccOpts"in e}const M=(e,t)=>Wa(e,t,dl);function ue(e,t,l){const i=arguments.length;return i===2?Pe(t)&&!X(t)?_i(t)?le(e,null,[t]):le(e,t):le(e,null,t):(i>3?l=Array.prototype.slice.call(arguments,2):i===3&&_i(l)&&(l=[l]),le(e,t,l))}const Xc=Symbol.for("v-scx"),Zc=()=>Re(Xc),eu="3.3.4",tu="http://www.w3.org/2000/svg",Ut=typeof document<"u"?document:null,Ar=Ut&&Ut.createElement("template"),lu={insert:(e,t,l)=>{t.insertBefore(e,l||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,l,i)=>{const n=t?Ut.createElementNS(tu,e):Ut.createElement(e,l?{is:l}:void 0);return e==="select"&&i&&i.multiple!=null&&n.setAttribute("multiple",i.multiple),n},createText:e=>Ut.createTextNode(e),createComment:e=>Ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,l,i,n,r){const o=l?l.previousSibling:t.lastChild;if(n&&(n===r||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),l),!(n===r||!(n=n.nextSibling)););else{Ar.innerHTML=i?`${e}`:e;const a=Ar.content;if(i){const s=a.firstChild;for(;s.firstChild;)a.appendChild(s.firstChild);a.removeChild(s)}t.insertBefore(a,l)}return[o?o.nextSibling:t.firstChild,l?l.previousSibling:t.lastChild]}};function iu(e,t,l){const i=e._vtc;i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):l?e.setAttribute("class",t):e.className=t}function nu(e,t,l){const i=e.style,n=_e(l);if(l&&!n){if(t&&!_e(t))for(const r in t)l[r]==null&&dn(i,r,"");for(const r in l)dn(i,r,l[r])}else{const r=i.display;n?t!==l&&(i.cssText=l):t&&e.removeAttribute("style"),"_vod"in e&&(i.display=r)}}const wr=/\s*!important$/;function dn(e,t,l){if(X(l))l.forEach(i=>dn(e,t,i));else if(l==null&&(l=""),t.startsWith("--"))e.setProperty(t,l);else{const i=ru(e,t);wr.test(l)?e.setProperty(Jt(i),l.replace(wr,""),"important"):e[i]=l}}const Tr=["Webkit","Moz","ms"],ji={};function ru(e,t){const l=ji[t];if(l)return l;let i=dt(t);if(i!=="filter"&&i in e)return ji[t]=i;i=Pi(i);for(let n=0;nzi||(hu.then(()=>zi=0),zi=Date.now());function vu(e,t){const l=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=l.attached)return;Ze(pu(i,l.value),t,5,[i])};return l.value=e,l.attached=fu(),l}function pu(e,t){if(X(t)){const l=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{l.call(e),e._stopped=!0},t.map(i=>n=>!n._stopped&&i&&i(n))}else return t}const Or=/^on[a-z]/,mu=(e,t,l,i,n=!1,r,o,a,s)=>{t==="class"?iu(e,i,n):t==="style"?nu(e,l,i):Nl(t)?mn(t)||uu(e,t,l,i,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):_u(e,t,i,n))?su(e,t,i,r,o,a,s):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),ou(e,t,i,n))};function _u(e,t,l,i){return i?!!(t==="innerHTML"||t==="textContent"||t in e&&Or.test(t)&&oe(l)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Or.test(t)&&_e(l)?!1:t in e}const Tt="transition",bl="animation",Kl=(e,{slots:t})=>ue(ac,gu(e),t);Kl.displayName="Transition";const as={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Kl.props=Oe({},Uo,as);const Mt=(e,t=[])=>{X(e)?e.forEach(l=>l(...t)):e&&e(...t)},xr=e=>e?X(e)?e.some(t=>t.length>1):e.length>1:!1;function gu(e){const t={};for(const R in e)R in as||(t[R]=e[R]);if(e.css===!1)return t;const{name:l="v",type:i,duration:n,enterFromClass:r=`${l}-enter-from`,enterActiveClass:o=`${l}-enter-active`,enterToClass:a=`${l}-enter-to`,appearFromClass:s=r,appearActiveClass:c=o,appearToClass:d=a,leaveFromClass:h=`${l}-leave-from`,leaveActiveClass:f=`${l}-leave-active`,leaveToClass:_=`${l}-leave-to`}=e,y=bu(n),L=y&&y[0],A=y&&y[1],{onBeforeEnter:b,onEnter:k,onEnterCancelled:x,onLeave:O,onLeaveCancelled:q,onBeforeAppear:Z=b,onAppear:F=k,onAppearCancelled:m=x}=t,U=(R,V,S)=>{Ht(R,V?d:a),Ht(R,V?c:o),S&&S()},H=(R,V)=>{R._isLeaving=!1,Ht(R,h),Ht(R,_),Ht(R,f),V&&V()},J=R=>(V,S)=>{const se=R?F:k,K=()=>U(V,R,S);Mt(se,[V,K]),Dr(()=>{Ht(V,R?s:r),Rt(V,R?d:a),xr(se)||Cr(V,i,L,K)})};return Oe(t,{onBeforeEnter(R){Mt(b,[R]),Rt(R,r),Rt(R,o)},onBeforeAppear(R){Mt(Z,[R]),Rt(R,s),Rt(R,c)},onEnter:J(!1),onAppear:J(!0),onLeave(R,V){R._isLeaving=!0;const S=()=>H(R,V);Rt(R,h),yu(),Rt(R,f),Dr(()=>{R._isLeaving&&(Ht(R,h),Rt(R,_),xr(O)||Cr(R,i,A,S))}),Mt(O,[R,S])},onEnterCancelled(R){U(R,!1),Mt(x,[R])},onAppearCancelled(R){U(R,!0),Mt(m,[R])},onLeaveCancelled(R){H(R),Mt(q,[R])}})}function bu(e){if(e==null)return null;if(Pe(e))return[Ui(e.enter),Ui(e.leave)];{const t=Ui(e);return[t,t]}}function Ui(e){return ia(e)}function Rt(e,t){t.split(/\s+/).forEach(l=>l&&e.classList.add(l)),(e._vtc||(e._vtc=new Set)).add(t)}function Ht(e,t){t.split(/\s+/).forEach(i=>i&&e.classList.remove(i));const{_vtc:l}=e;l&&(l.delete(t),l.size||(e._vtc=void 0))}function Dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Eu=0;function Cr(e,t,l,i){const n=e._endId=++Eu,r=()=>{n===e._endId&&i()};if(l)return setTimeout(r,l);const{type:o,timeout:a,propCount:s}=ku(e,t);if(!o)return i();const c=o+"end";let d=0;const h=()=>{e.removeEventListener(c,f),r()},f=_=>{_.target===e&&++d>=s&&h()};setTimeout(()=>{d(l[y]||"").split(", "),n=i(`${Tt}Delay`),r=i(`${Tt}Duration`),o=Vr(n,r),a=i(`${bl}Delay`),s=i(`${bl}Duration`),c=Vr(a,s);let d=null,h=0,f=0;t===Tt?o>0&&(d=Tt,h=o,f=r.length):t===bl?c>0&&(d=bl,h=c,f=s.length):(h=Math.max(o,c),d=h>0?o>c?Tt:bl:null,f=d?d===Tt?r.length:s.length:0);const _=d===Tt&&/\b(transform|all)(,|$)/.test(i(`${Tt}Property`).toString());return{type:d,timeout:h,propCount:f,hasTransform:_}}function Vr(e,t){for(;e.lengthSr(l)+Sr(e[i])))}function Sr(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function yu(){return document.body.offsetHeight}const Lu={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Pu=(e,t)=>l=>{if(!("key"in l))return;const i=Jt(l.key);if(t.some(n=>n===i||Lu[n]===i))return e(l)},gi={beforeMount(e,{value:t},{transition:l}){e._vod=e.style.display==="none"?"":e.style.display,l&&t?l.beforeEnter(e):El(e,t)},mounted(e,{value:t},{transition:l}){l&&t&&l.enter(e)},updated(e,{value:t,oldValue:l},{transition:i}){!t!=!l&&(i?t?(i.beforeEnter(e),El(e,!0),i.enter(e)):i.leave(e,()=>{El(e,!1)}):El(e,t))},beforeUnmount(e,{value:t}){El(e,t)}};function El(e,t){e.style.display=t?e._vod:"none"}const Au=Oe({patchProp:mu},lu);let Ki,Fr=!1;function wu(){return Ki=Fr?Ki:Sc(Au),Fr=!0,Ki}const Tu=(...e)=>{const t=wu().createApp(...e),{mount:l}=t;return t.mount=i=>{const n=Ru(i);if(n)return l(n,!0,n instanceof SVGElement)},t};function Ru(e){return _e(e)?document.querySelector(e):e}const Iu={"v-73005554":()=>u(()=>import("./CONTRIBUTING.html-5d94bebf.js"),[]).then(({data:e})=>e),"v-8daa1a0e":()=>u(()=>import("./index.html-0d1d246d.js"),[]).then(({data:e})=>e),"v-8955a406":()=>u(()=>import("./index.html-a1a3558c.js"),[]).then(({data:e})=>e),"v-17b5f640":()=>u(()=>import("./splash.html-53855429.js"),[]).then(({data:e})=>e),"v-5a599330":()=>u(()=>import("./ver.html-b7ca0cfa.js"),[]).then(({data:e})=>e),"v-511a71b4":()=>u(()=>import("./info.html-f7a47d1e.js"),[]).then(({data:e})=>e),"v-45137136":()=>u(()=>import("./list.html-fecb6b5b.js"),[]).then(({data:e})=>e),"v-2ed1dfb0":()=>u(()=>import("./action.html-6c04cf4d.js"),[]).then(({data:e})=>e),"v-15f43666":()=>u(()=>import("./activity_list.html-b5ef105b.js"),[]).then(({data:e})=>e),"v-5938a1f0":()=>u(()=>import("./info.html-c42e4c4d.js"),[]).then(({data:e})=>e),"v-724d6800":()=>u(()=>import("./list.html-793787fd.js"),[]).then(({data:e})=>e),"v-cdc386a0":()=>u(()=>import("./recommend_author.html-3c1e94fe.js"),[]).then(({data:e})=>e),"v-4e28f222":()=>u(()=>import("./action.html-ad3d1d10.js"),[]).then(({data:e})=>e),"v-68f62c48":()=>u(()=>import("./articles.html-619e0082.js"),[]).then(({data:e})=>e),"v-34add227":()=>u(()=>import("./category.html-c2e3b38d.js"),[]).then(({data:e})=>e),"v-180bc312":()=>u(()=>import("./info.html-0ee7d366.js"),[]).then(({data:e})=>e),"v-619ac887":()=>u(()=>import("./list.html-2e89a343.js"),[]).then(({data:e})=>e),"v-5de169e2":()=>u(()=>import("./action.html-b93efa81.js"),[]).then(({data:e})=>e),"v-16ff2ad2":()=>u(()=>import("./info.html-418558e4.js"),[]).then(({data:e})=>e),"v-54373be6":()=>u(()=>import("./music_list.html-02cb5f36.js"),[]).then(({data:e})=>e),"v-3b0c2e90":()=>u(()=>import("./musicstream_url.html-0b86e281.js"),[]).then(({data:e})=>e),"v-f650fc4e":()=>u(()=>import("./rank.html-4e3c963c.js"),[]).then(({data:e})=>e),"v-7e3f2e37":()=>u(()=>import("./status_number.html-3b1e7ab4.js"),[]).then(({data:e})=>e),"v-403a6f12":()=>u(()=>import("./follow.html-c3918f68.js"),[]).then(({data:e})=>e),"v-e8e1d54c":()=>u(()=>import("./info.html-c8498357.js"),[]).then(({data:e})=>e),"v-08a8cbb2":()=>u(()=>import("./timeline.html-0a3a89de.js"),[]).then(({data:e})=>e),"v-172498ff":()=>u(()=>import("./videostream_url.html-ecea5d0c.js"),[]).then(({data:e})=>e),"v-6f936bc8":()=>u(()=>import("./banlist.html-66dae847.js"),[]).then(({data:e})=>e),"v-394457c9":()=>u(()=>import("./index.html-8ea2447b.js"),[]).then(({data:e})=>e),"v-7b9cff31":()=>u(()=>import("./video_room.html-6222ad7b.js"),[]).then(({data:e})=>e),"v-0e0e11ae":()=>u(()=>import("./info.html-3698858a.js"),[]).then(({data:e})=>e),"v-1efa602b":()=>u(()=>import("./videostream_url.html-0a0e9cbe.js"),[]).then(({data:e})=>e),"v-cd0c7f92":()=>u(()=>import("./ip.html-298243ad.js"),[]).then(({data:e})=>e),"v-2d665a50":()=>u(()=>import("./action.html-6aa7eeb7.js"),[]).then(({data:e})=>e),"v-167ffab0":()=>u(()=>import("./list.html-2971c414.js"),[]).then(({data:e})=>e),"v-3bb3d8ab":()=>u(()=>import("./index.html-4a9bcc52.js"),[]).then(({data:e})=>e),"v-3228cc8a":()=>u(()=>import("./railgun.html-3eebb2b8.js"),[]).then(({data:e})=>e),"v-00885146":()=>u(()=>import("./season.html-a8ef16a3.js"),[]).then(({data:e})=>e),"v-22785fe3":()=>u(()=>import("./statistics_data.html-bb56dc74.js"),[]).then(({data:e})=>e),"v-733df0e8":()=>u(()=>import("./upload.html-1fd73832.js"),[]).then(({data:e})=>e),"v-b13d7c1e":()=>u(()=>import("./videos.html-6d040dc8.js"),[]).then(({data:e})=>e),"v-116820eb":()=>u(()=>import("./msg.html-4c0114f9.js"),[]).then(({data:e})=>e),"v-2922b588":()=>u(()=>import("./action.html-861bae92.js"),[]).then(({data:e})=>e),"v-b1f572fe":()=>u(()=>import("./buzzword.html-a8e3d82e.js"),[]).then(({data:e})=>e),"v-68701008":()=>u(()=>import("./config.html-27430538.js"),[]).then(({data:e})=>e),"v-bf935f48":()=>u(()=>import("./danmaku_proto.html-6ea771c0.js"),[]).then(({data:e})=>e),"v-0c967c40":()=>u(()=>import("./danmaku_view_proto.html-9762318d.js"),[]).then(({data:e})=>e),"v-6300ee4d":()=>u(()=>import("./danmaku_xml.html-a2cff1ad.js"),[]).then(({data:e})=>e),"v-6970bc40":()=>u(()=>import("./history.html-e040429f.js"),[]).then(({data:e})=>e),"v-f1eb9d0c":()=>u(()=>import("./snapshot.html-14943ed7.js"),[]).then(({data:e})=>e),"v-547b7003":()=>u(()=>import("./thumbup.html-6ff33710.js"),[]).then(({data:e})=>e),"v-9d8df7d8":()=>u(()=>import("./webmask.html-cd2d5b20.js"),[]).then(({data:e})=>e),"v-9d5f1690":()=>u(()=>import("./action.html-01bc4d46.js"),[]).then(({data:e})=>e),"v-3c9c4ba3":()=>u(()=>import("./all.html-154d0518.js"),[]).then(({data:e})=>e),"v-25e3807d":()=>u(()=>import("./atlist.html-fa32d23a.js"),[]).then(({data:e})=>e),"v-3fe3c830":()=>u(()=>import("./basicInfo.html-a98cd743.js"),[]).then(({data:e})=>e),"v-edaa43f2":()=>u(()=>import("./card_info.html-d39c91de.js"),[]).then(({data:e})=>e),"v-e4fa8b6a":()=>u(()=>import("./content.html-744ba654.js"),[]).then(({data:e})=>e),"v-4e8e1906":()=>u(()=>import("./detail.html-e0842ebd.js"),[]).then(({data:e})=>e),"v-fbe42de6":()=>u(()=>import("./dynamic_enum.html-faf3d743.js"),[]).then(({data:e})=>e),"v-5eaf8994":()=>u(()=>import("./get_dynamic_detail.html-2540d0b4.js"),[]).then(({data:e})=>e),"v-4e377d61":()=>u(()=>import("./nav.html-ed72f33d.js"),[]).then(({data:e})=>e),"v-264d8116":()=>u(()=>import("./publish.html-d8d80fa5.js"),[]).then(({data:e})=>e),"v-78f5e49e":()=>u(()=>import("./space.html-9698dd19.js"),[]).then(({data:e})=>e),"v-fc18a416":()=>u(()=>import("./tag_dynamics.html-5123e50e.js"),[]).then(({data:e})=>e),"v-29283a15":()=>u(()=>import("./topic.html-a5de20a4.js"),[]).then(({data:e})=>e),"v-76365d86":()=>u(()=>import("./Bcoin.html-d21d4767.js"),[]).then(({data:e})=>e),"v-3661cea6":()=>u(()=>import("./WeChat_Alipay.html-bba849f5.js"),[]).then(({data:e})=>e),"v-22b1d447":()=>u(()=>import("./charge_list.html-0163a41d.js"),[]).then(({data:e})=>e),"v-fa6791a8":()=>u(()=>import("./charge_msg.html-1b0e26da.js"),[]).then(({data:e})=>e),"v-48cd1983":()=>u(()=>import("./monthly.html-2d7b3991.js"),[]).then(({data:e})=>e),"v-2e61077f":()=>u(()=>import("./action.html-b9118deb.js"),[]).then(({data:e})=>e),"v-f6d1a5d2":()=>u(()=>import("./list.html-a87f31ef.js"),[]).then(({data:e})=>e),"v-7877dfd8":()=>u(()=>import("./action.html-f620e347.js"),[]).then(({data:e})=>e),"v-253cacdc":()=>u(()=>import("./info.html-556f8b0b.js"),[]).then(({data:e})=>e),"v-da455228":()=>u(()=>import("./list.html-b3a77f44.js"),[]).then(({data:e})=>e),"v-306d26a0":()=>u(()=>import("./color.html-7899ab27.js"),[]).then(({data:e})=>e),"v-767cd3fa":()=>u(()=>import("./lottery.html-26f89263.js"),[]).then(({data:e})=>e),"v-a09b7e1c":()=>u(()=>import("./skin.html-3e672649.js"),[]).then(({data:e})=>e),"v-9de02064":()=>u(()=>import("./history.html-95de220d.js"),[]).then(({data:e})=>e),"v-ad0ed5e0":()=>u(()=>import("./toview.html-98244225.js"),[]).then(({data:e})=>e),"v-60c67fef":()=>u(()=>import("./follow_up_live.html-e585736a.js"),[]).then(({data:e})=>e),"v-3a8d6a43":()=>u(()=>import("./info.html-d84481e4.js"),[]).then(({data:e})=>e),"v-7dfe7a81":()=>u(()=>import("./live_area.html-ce157910.js"),[]).then(({data:e})=>e),"v-0e792a2e":()=>u(()=>import("./live_stream.html-b3d301d8.js"),[]).then(({data:e})=>e),"v-6acf15ec":()=>u(()=>import("./manage.html-eebfa53f.js"),[]).then(({data:e})=>e),"v-1c439f0e":()=>u(()=>import("./message_stream.html-748c2caf.js"),[]).then(({data:e})=>e),"v-be421d0c":()=>u(()=>import("./redpocket.html-cdfefdfc.js"),[]).then(({data:e})=>e),"v-5ac2e77d":()=>u(()=>import("./report.html-bbde5309.js"),[]).then(({data:e})=>e),"v-5773b3bc":()=>u(()=>import("./silent_user_manage.html-8048b3b2.js"),[]).then(({data:e})=>e),"v-0560cd46":()=>u(()=>import("./user.html-c5c69524.js"),[]).then(({data:e})=>e),"v-16551798":()=>u(()=>import("./cookie_refresh.html-89ab1a74.js"),[]).then(({data:e})=>e),"v-215493fa":()=>u(()=>import("./exit.html-7995bef8.js"),[]).then(({data:e})=>e),"v-3001c1d4":()=>u(()=>import("./login_info.html-36215953.js"),[]).then(({data:e})=>e),"v-ab0078ac":()=>u(()=>import("./login_notice.html-97e2098a.js"),[]).then(({data:e})=>e),"v-586ee8e0":()=>u(()=>import("./member_center.html-6f18a7bd.js"),[]).then(({data:e})=>e),"v-52b13614":()=>u(()=>import("./Activity.html-a923504a.js"),[]).then(({data:e})=>e),"v-37a976bc":()=>u(()=>import("./ClockIn.html-36eccb71.js"),[]).then(({data:e})=>e),"v-14f31e98":()=>u(()=>import("./Comic.html-9ee1e999.js"),[]).then(({data:e})=>e),"v-db4c378a":()=>u(()=>import("./Download.html-d94bfad4.js"),[]).then(({data:e})=>e),"v-7f153540":()=>u(()=>import("./Season.html-e0471143.js"),[]).then(({data:e})=>e),"v-36175050":()=>u(()=>import("./User.html-514e9117.js"),[]).then(({data:e})=>e),"v-2212ab8c":()=>u(()=>import("./index_file.html-b4d3d75b.js"),[]).then(({data:e})=>e),"v-6219086a":()=>u(()=>import("./light_card.html-8a7d5469.js"),[]).then(({data:e})=>e),"v-9dc00f84":()=>u(()=>import("./point_shop.html-40ba9a23.js"),[]).then(({data:e})=>e),"v-02292a0a":()=>u(()=>import("./msg.html-4cf1c080.js"),[]).then(({data:e})=>e),"v-0d924737":()=>u(()=>import("./private_msg.html-634b92fa.js"),[]).then(({data:e})=>e),"v-13677488":()=>u(()=>import("./b23tv.html-d6b87429.js"),[]).then(({data:e})=>e),"v-802f7e32":()=>u(()=>import("./buvid3_4.html-f3f7f1a7.js"),[]).then(({data:e})=>e),"v-45f9d6c0":()=>u(()=>import("./bvid_desc.html-b2719796.js"),[]).then(({data:e})=>e),"v-4b4ba74c":()=>u(()=>import("./device_identity.html-754167b9.js"),[]).then(({data:e})=>e),"v-728812ef":()=>u(()=>import("./errcode.html-30388d7a.js"),[]).then(({data:e})=>e),"v-673bee43":()=>u(()=>import("./picture.html-f91aec82.js"),[]).then(({data:e})=>e),"v-450b7300":()=>u(()=>import("./time_stamp.html-e2fb6a61.js"),[]).then(({data:e})=>e),"v-0bd4bcd9":()=>u(()=>import("./action.html-a80f5e24.js"),[]).then(({data:e})=>e),"v-ee5e21ae":()=>u(()=>import("./fetch.html-0a76fd10.js"),[]).then(({data:e})=>e),"v-e6a8723e":()=>u(()=>import("./info.html-0a88b4dc.js"),[]).then(({data:e})=>e),"v-3b30947e":()=>u(()=>import("./action.html-24e14d87.js"),[]).then(({data:e})=>e),"v-f4104c6e":()=>u(()=>import("./info.html-3e528fa8.js"),[]).then(({data:e})=>e),"v-18cef84e":()=>u(()=>import("./list.html-a602ffd3.js"),[]).then(({data:e})=>e),"v-672ca53c":()=>u(()=>import("./index.html-bab316ab.js"),[]).then(({data:e})=>e),"v-2d7e1c50":()=>u(()=>import("./hot.html-b03b462b.js"),[]).then(({data:e})=>e),"v-4940b435":()=>u(()=>import("./search_request.html-36282e12.js"),[]).then(({data:e})=>e),"v-2c341a0d":()=>u(()=>import("./search_response.html-1e3f68f3.js"),[]).then(({data:e})=>e),"v-ba17e9fe":()=>u(()=>import("./suggest.html-dd957e1a.js"),[]).then(({data:e})=>e),"v-02b431cb":()=>u(()=>import("./teenager_mode.html-a693181f.js"),[]).then(({data:e})=>e),"v-337be22a":()=>u(()=>import("./check_nickname.html-cdaa209d.js"),[]).then(({data:e})=>e),"v-cf4c8e04":()=>u(()=>import("./contract.html-36410063.js"),[]).then(({data:e})=>e),"v-ed6e4b3c":()=>u(()=>import("./info.html-327a946d.js"),[]).then(({data:e})=>e),"v-1f4b69b4":()=>u(()=>import("./medals.html-d0d88f47.js"),[]).then(({data:e})=>e),"v-b5df8b90":()=>u(()=>import("./official_role.html-7ca2f8f7.js"),[]).then(({data:e})=>e),"v-640b6e0d":()=>u(()=>import("./register.html-38064566.js"),[]).then(({data:e})=>e),"v-5c0c5b58":()=>u(()=>import("./relation.html-27f5509d.js"),[]).then(({data:e})=>e),"v-2bacf0fc":()=>u(()=>import("./space.html-54138a19.js"),[]).then(({data:e})=>e),"v-58c052cc":()=>u(()=>import("./status_number.html-69cf8d68.js"),[]).then(({data:e})=>e),"v-54b0f434":()=>u(()=>import("./action.html-c589c8dd.js"),[]).then(({data:e})=>e),"v-3857570a":()=>u(()=>import("./appeal.html-165e521c.js"),[]).then(({data:e})=>e),"v-0eaafc5d":()=>u(()=>import("./attribute_data.html-0fdac87d.js"),[]).then(({data:e})=>e),"v-738a744c":()=>u(()=>import("./collection.html-9e323f66.js"),[]).then(({data:e})=>e),"v-c357ce08":()=>u(()=>import("./info.html-ed1280ca.js"),[]).then(({data:e})=>e),"v-7e6a01b8":()=>u(()=>import("./interact_video.html-440fac1d.js"),[]).then(({data:e})=>e),"v-11f54637":()=>u(()=>import("./online.html-400a48bb.js"),[]).then(({data:e})=>e),"v-0919deac":()=>u(()=>import("./pbp.html-01c4795b.js"),[]).then(({data:e})=>e),"v-17800a69":()=>u(()=>import("./player.html-cf523e40.js"),[]).then(({data:e})=>e),"v-66cc282c":()=>u(()=>import("./recommend.html-17187d4f.js"),[]).then(({data:e})=>e),"v-30ce6814":()=>u(()=>import("./report.html-6d528c1b.js"),[]).then(({data:e})=>e),"v-08037526":()=>u(()=>import("./snapshot.html-07090ac3.js"),[]).then(({data:e})=>e),"v-7da8e172":()=>u(()=>import("./status_number.html-67103aea.js"),[]).then(({data:e})=>e),"v-edc6a97c":()=>u(()=>import("./summary.html-1f6071ea.js"),[]).then(({data:e})=>e),"v-1ae1971e":()=>u(()=>import("./tags.html-07cf4faf.js"),[]).then(({data:e})=>e),"v-63d42d8c":()=>u(()=>import("./video_zone.html-57dc301a.js"),[]).then(({data:e})=>e),"v-0acb47c6":()=>u(()=>import("./videostream_url.html-c73eea90.js"),[]).then(({data:e})=>e),"v-6423be9c":()=>u(()=>import("./dynamic.html-c7efbb1d.js"),[]).then(({data:e})=>e),"v-3c77c350":()=>u(()=>import("./popular.html-2b3dbd59.js"),[]).then(({data:e})=>e),"v-7d2bb9de":()=>u(()=>import("./precious_videos.html-5631067f.js"),[]).then(({data:e})=>e),"v-7eae971b":()=>u(()=>import("./ranking.html-a8249ce4.js"),[]).then(({data:e})=>e),"v-4d524bd4":()=>u(()=>import("./action.html-e8f03a7c.js"),[]).then(({data:e})=>e),"v-42caf152":()=>u(()=>import("./center.html-64584776.js"),[]).then(({data:e})=>e),"v-1fe3cbb3":()=>u(()=>import("./clockin.html-a8dcfb3a.js"),[]).then(({data:e})=>e),"v-64c3e144":()=>u(()=>import("./info.html-ad870103.js"),[]).then(({data:e})=>e),"v-38c89e50":()=>u(()=>import("./info.html-42872bfc.js"),[]).then(({data:e})=>e),"v-6252a41e":()=>u(()=>import("./404_manga.html-3728076c.js"),[]).then(({data:e})=>e),"v-2bee0cb2":()=>u(()=>import("./header.html-46eb8c14.js"),[]).then(({data:e})=>e),"v-33a4ed0a":()=>u(()=>import("./zone_upload.html-d796767f.js"),[]).then(({data:e})=>e),"v-00bd94f6":()=>u(()=>import("./action.html-3356cd3c.js"),[]).then(({data:e})=>e),"v-2ffe7b8a":()=>u(()=>import("./base_info.html-7d06d12f.js"),[]).then(({data:e})=>e),"v-ba4e3898":()=>u(()=>import("./judgement_info.html-1834630d.js"),[]).then(({data:e})=>e),"v-d18ced94":()=>u(()=>import("./QR.html-bff1a326.js"),[]).then(({data:e})=>e),"v-53277122":()=>u(()=>import("./SMS.html-60911019.js"),[]).then(({data:e})=>e),"v-5424b67c":()=>u(()=>import("./password.html-dbfc4745.js"),[]).then(({data:e})=>e),"v-feb0d03c":()=>u(()=>import("./index.html-b057461c.js"),[]).then(({data:e})=>e),"v-58c05ce2":()=>u(()=>import("./APP.html-cb1b78f3.js"),[]).then(({data:e})=>e),"v-4458a551":()=>u(()=>import("./APPKey.html-0481e527.js"),[]).then(({data:e})=>e),"v-618ff0fc":()=>u(()=>import("./bili_ticket.html-adc31ae6.js"),[]).then(({data:e})=>e),"v-79d95c04":()=>u(()=>import("./v_voucher.html-5f66a796.js"),[]).then(({data:e})=>e),"v-25192605":()=>u(()=>import("./wbi.html-ba871bc6.js"),[]).then(({data:e})=>e),"v-3706649a":()=>u(()=>import("./404.html-f9875e7b.js"),[]).then(({data:e})=>e)},Ou=JSON.parse('{"base":"/bilibili-API-collect/","lang":"zh-CN","title":"BAC Document","description":"社区开源的第三方哔哩哔哩 API 文档","head":[["link",{"rel":"icon","href":"/logo2.jpg"}]],"locales":{"/":{"lang":"zh-CN"}}}');var xu=([e,t,l])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,l]),Du=e=>{const t=new Set,l=[];return e.forEach(i=>{const n=xu(i);t.has(n)||(t.add(n),l.push(i))}),l},ql=e=>/^(https?:)?\/\//.test(e),Cu=e=>/^mailto:/.test(e),Vu=e=>/^tel:/.test(e),$n=e=>Object.prototype.toString.call(e)==="[object Object]",cs=e=>e[e.length-1]==="/"?e.slice(0,-1):e,us=e=>e[0]==="/"?e.slice(1):e,ds=(e,t)=>{const l=Object.keys(e).sort((i,n)=>{const r=n.split("/").length-i.split("/").length;return r!==0?r:n.length-i.length});for(const i of l)if(t.startsWith(i))return i;return"/"};const hs={"v-73005554":g(()=>u(()=>import("./CONTRIBUTING.html-f9abf910.js"),[])),"v-8daa1a0e":g(()=>u(()=>import("./index.html-57334ef1.js"),[])),"v-8955a406":g(()=>u(()=>import("./index.html-c20a1382.js"),[])),"v-17b5f640":g(()=>u(()=>import("./splash.html-b03843c0.js"),[])),"v-5a599330":g(()=>u(()=>import("./ver.html-2794aad3.js"),[])),"v-511a71b4":g(()=>u(()=>import("./info.html-8a8a4952.js"),[])),"v-45137136":g(()=>u(()=>import("./list.html-3dfb5395.js"),[])),"v-2ed1dfb0":g(()=>u(()=>import("./action.html-272fbcc1.js"),[])),"v-15f43666":g(()=>u(()=>import("./activity_list.html-012e4721.js"),[])),"v-5938a1f0":g(()=>u(()=>import("./info.html-7afe2277.js"),[])),"v-724d6800":g(()=>u(()=>import("./list.html-bfe00ca6.js"),[])),"v-cdc386a0":g(()=>u(()=>import("./recommend_author.html-09eae6c9.js"),[])),"v-4e28f222":g(()=>u(()=>import("./action.html-c774e5e5.js"),["assets/action.html-c774e5e5.js","assets/fav-55c612b4.js"])),"v-68f62c48":g(()=>u(()=>import("./articles.html-b3d5b82c.js"),[])),"v-34add227":g(()=>u(()=>import("./category.html-edc6a497.js"),[])),"v-180bc312":g(()=>u(()=>import("./info.html-49043672.js"),[])),"v-619ac887":g(()=>u(()=>import("./list.html-3cdf3e48.js"),[])),"v-5de169e2":g(()=>u(()=>import("./action.html-6e3075b1.js"),[])),"v-16ff2ad2":g(()=>u(()=>import("./info.html-809c19c5.js"),[])),"v-54373be6":g(()=>u(()=>import("./music_list.html-948014df.js"),[])),"v-3b0c2e90":g(()=>u(()=>import("./musicstream_url.html-8d4fb03d.js"),["assets/musicstream_url.html-8d4fb03d.js","assets/download-d77df227.js"])),"v-f650fc4e":g(()=>u(()=>import("./rank.html-19652baf.js"),[])),"v-7e3f2e37":g(()=>u(()=>import("./status_number.html-c7e1d5ee.js"),[])),"v-403a6f12":g(()=>u(()=>import("./follow.html-30502485.js"),[])),"v-e8e1d54c":g(()=>u(()=>import("./info.html-c6dce5c8.js"),[])),"v-08a8cbb2":g(()=>u(()=>import("./timeline.html-6f23474d.js"),[])),"v-172498ff":g(()=>u(()=>import("./videostream_url.html-f0ad9cde.js"),["assets/videostream_url.html-f0ad9cde.js","assets/download-d77df227.js"])),"v-6f936bc8":g(()=>u(()=>import("./banlist.html-94e6eb17.js"),[])),"v-394457c9":g(()=>u(()=>import("./index.html-ba30f90b.js"),[])),"v-7b9cff31":g(()=>u(()=>import("./video_room.html-bf5197aa.js"),[])),"v-0e0e11ae":g(()=>u(()=>import("./info.html-4f3267d8.js"),[])),"v-1efa602b":g(()=>u(()=>import("./videostream_url.html-17311e3a.js"),["assets/videostream_url.html-17311e3a.js","assets/download-d77df227.js"])),"v-cd0c7f92":g(()=>u(()=>import("./ip.html-2da36839.js"),[])),"v-2d665a50":g(()=>u(()=>import("./action.html-2ca62efe.js"),[])),"v-167ffab0":g(()=>u(()=>import("./list.html-cc87d355.js"),[])),"v-3bb3d8ab":g(()=>u(()=>import("./index.html-9f2fa5e9.js"),[])),"v-3228cc8a":g(()=>u(()=>import("./railgun.html-65db39d5.js"),[])),"v-00885146":g(()=>u(()=>import("./season.html-bb9de1e4.js"),[])),"v-22785fe3":g(()=>u(()=>import("./statistics_data.html-d098ac65.js"),[])),"v-733df0e8":g(()=>u(()=>import("./upload.html-87900af5.js"),[])),"v-b13d7c1e":g(()=>u(()=>import("./videos.html-38ec2be9.js"),[])),"v-116820eb":g(()=>u(()=>import("./msg.html-3c183e1d.js"),[])),"v-2922b588":g(()=>u(()=>import("./action.html-f884747b.js"),[])),"v-b1f572fe":g(()=>u(()=>import("./buzzword.html-364eeafa.js"),[])),"v-68701008":g(()=>u(()=>import("./config.html-2b097c04.js"),[])),"v-bf935f48":g(()=>u(()=>import("./danmaku_proto.html-d56e750f.js"),[])),"v-0c967c40":g(()=>u(()=>import("./danmaku_view_proto.html-72774a23.js"),[])),"v-6300ee4d":g(()=>u(()=>import("./danmaku_xml.html-e97b4963.js"),[])),"v-6970bc40":g(()=>u(()=>import("./history.html-71ecd67c.js"),[])),"v-f1eb9d0c":g(()=>u(()=>import("./snapshot.html-80616d50.js"),[])),"v-547b7003":g(()=>u(()=>import("./thumbup.html-0fc03e12.js"),[])),"v-9d8df7d8":g(()=>u(()=>import("./webmask.html-63925768.js"),[])),"v-9d5f1690":g(()=>u(()=>import("./action.html-c0a0ae8b.js"),[])),"v-3c9c4ba3":g(()=>u(()=>import("./all.html-57c6fbc0.js"),[])),"v-25e3807d":g(()=>u(()=>import("./atlist.html-81f8cc20.js"),[])),"v-3fe3c830":g(()=>u(()=>import("./basicInfo.html-66f99d8f.js"),[])),"v-edaa43f2":g(()=>u(()=>import("./card_info.html-078fd045.js"),[])),"v-e4fa8b6a":g(()=>u(()=>import("./content.html-5f1b721f.js"),[])),"v-4e8e1906":g(()=>u(()=>import("./detail.html-81fd3bab.js"),[])),"v-fbe42de6":g(()=>u(()=>import("./dynamic_enum.html-202a3e68.js"),[])),"v-5eaf8994":g(()=>u(()=>import("./get_dynamic_detail.html-76bc1809.js"),[])),"v-4e377d61":g(()=>u(()=>import("./nav.html-edb82272.js"),[])),"v-264d8116":g(()=>u(()=>import("./publish.html-22e9a0f5.js"),[])),"v-78f5e49e":g(()=>u(()=>import("./space.html-4e00af2f.js"),[])),"v-fc18a416":g(()=>u(()=>import("./tag_dynamics.html-4e6ea181.js"),[])),"v-29283a15":g(()=>u(()=>import("./topic.html-88e9eef2.js"),[])),"v-76365d86":g(()=>u(()=>import("./Bcoin.html-b63f5927.js"),["assets/Bcoin.html-b63f5927.js","assets/battery-100-5a4d9900.js"])),"v-3661cea6":g(()=>u(()=>import("./WeChat_Alipay.html-0bc9f08c.js"),["assets/WeChat_Alipay.html-0bc9f08c.js","assets/battery-100-5a4d9900.js"])),"v-22b1d447":g(()=>u(()=>import("./charge_list.html-dc5bb8bb.js"),[])),"v-fa6791a8":g(()=>u(()=>import("./charge_msg.html-b2cb8103.js"),[])),"v-48cd1983":g(()=>u(()=>import("./monthly.html-34428be2.js"),["assets/monthly.html-34428be2.js","assets/battery-100-5a4d9900.js"])),"v-2e61077f":g(()=>u(()=>import("./action.html-58fcaece.js"),[])),"v-f6d1a5d2":g(()=>u(()=>import("./list.html-679acea5.js"),[])),"v-7877dfd8":g(()=>u(()=>import("./action.html-7f82daf4.js"),[])),"v-253cacdc":g(()=>u(()=>import("./info.html-54ba32d2.js"),[])),"v-da455228":g(()=>u(()=>import("./list.html-8ecf20ec.js"),[])),"v-306d26a0":g(()=>u(()=>import("./color.html-2e085ee9.js"),[])),"v-767cd3fa":g(()=>u(()=>import("./lottery.html-dde100fd.js"),[])),"v-a09b7e1c":g(()=>u(()=>import("./skin.html-ea0d224b.js"),[])),"v-9de02064":g(()=>u(()=>import("./history.html-36b46734.js"),[])),"v-ad0ed5e0":g(()=>u(()=>import("./toview.html-2dab38e4.js"),[])),"v-60c67fef":g(()=>u(()=>import("./follow_up_live.html-0945217c.js"),[])),"v-3a8d6a43":g(()=>u(()=>import("./info.html-e903c48b.js"),[])),"v-7dfe7a81":g(()=>u(()=>import("./live_area.html-356ac7cf.js"),[])),"v-0e792a2e":g(()=>u(()=>import("./live_stream.html-94a4c09a.js"),[])),"v-6acf15ec":g(()=>u(()=>import("./manage.html-7d0ae503.js"),[])),"v-1c439f0e":g(()=>u(()=>import("./message_stream.html-de3e2486.js"),[])),"v-be421d0c":g(()=>u(()=>import("./redpocket.html-6b792f64.js"),[])),"v-5ac2e77d":g(()=>u(()=>import("./report.html-5869853f.js"),[])),"v-5773b3bc":g(()=>u(()=>import("./silent_user_manage.html-06a238c6.js"),[])),"v-0560cd46":g(()=>u(()=>import("./user.html-c8b446e0.js"),[])),"v-16551798":g(()=>u(()=>import("./cookie_refresh.html-9bad92a2.js"),[])),"v-215493fa":g(()=>u(()=>import("./exit.html-01fc4142.js"),[])),"v-3001c1d4":g(()=>u(()=>import("./login_info.html-5c768007.js"),[])),"v-ab0078ac":g(()=>u(()=>import("./login_notice.html-7185cdfc.js"),[])),"v-586ee8e0":g(()=>u(()=>import("./member_center.html-df93d06f.js"),[])),"v-52b13614":g(()=>u(()=>import("./Activity.html-faf7be1d.js"),[])),"v-37a976bc":g(()=>u(()=>import("./ClockIn.html-6e2ed69b.js"),[])),"v-14f31e98":g(()=>u(()=>import("./Comic.html-60b0b4e2.js"),[])),"v-db4c378a":g(()=>u(()=>import("./Download.html-c420264b.js"),[])),"v-7f153540":g(()=>u(()=>import("./Season.html-42122ee3.js"),[])),"v-36175050":g(()=>u(()=>import("./User.html-c532625a.js"),[])),"v-2212ab8c":g(()=>u(()=>import("./index_file.html-b9e570dc.js"),[])),"v-6219086a":g(()=>u(()=>import("./light_card.html-b4e072c6.js"),[])),"v-9dc00f84":g(()=>u(()=>import("./point_shop.html-7a438cfd.js"),[])),"v-02292a0a":g(()=>u(()=>import("./msg.html-01fe066d.js"),[])),"v-0d924737":g(()=>u(()=>import("./private_msg.html-009e81c7.js"),[])),"v-13677488":g(()=>u(()=>import("./b23tv.html-c7be515d.js"),[])),"v-802f7e32":g(()=>u(()=>import("./buvid3_4.html-38eb5f56.js"),[])),"v-45f9d6c0":g(()=>u(()=>import("./bvid_desc.html-a8fdbbd8.js"),[])),"v-4b4ba74c":g(()=>u(()=>import("./device_identity.html-a75f2bc8.js"),[])),"v-728812ef":g(()=>u(()=>import("./errcode.html-c005e1a0.js"),[])),"v-673bee43":g(()=>u(()=>import("./picture.html-c263cc7f.js"),[])),"v-450b7300":g(()=>u(()=>import("./time_stamp.html-64394855.js"),[])),"v-0bd4bcd9":g(()=>u(()=>import("./action.html-c38bf9cd.js"),[])),"v-ee5e21ae":g(()=>u(()=>import("./fetch.html-e7fe2c52.js"),[])),"v-e6a8723e":g(()=>u(()=>import("./info.html-a6721c37.js"),[])),"v-3b30947e":g(()=>u(()=>import("./action.html-4c17f791.js"),[])),"v-f4104c6e":g(()=>u(()=>import("./info.html-ccc81d99.js"),[])),"v-18cef84e":g(()=>u(()=>import("./list.html-5b7d0fdd.js"),[])),"v-672ca53c":g(()=>u(()=>import("./index.html-68ada05c.js"),[])),"v-2d7e1c50":g(()=>u(()=>import("./hot.html-54c5456f.js"),[])),"v-4940b435":g(()=>u(()=>import("./search_request.html-0aeac133.js"),[])),"v-2c341a0d":g(()=>u(()=>import("./search_response.html-d949438a.js"),[])),"v-ba17e9fe":g(()=>u(()=>import("./suggest.html-244bfb39.js"),[])),"v-02b431cb":g(()=>u(()=>import("./teenager_mode.html-b7bd4838.js"),[])),"v-337be22a":g(()=>u(()=>import("./check_nickname.html-dccbb7ba.js"),[])),"v-cf4c8e04":g(()=>u(()=>import("./contract.html-688107af.js"),[])),"v-ed6e4b3c":g(()=>u(()=>import("./info.html-6273db3e.js"),[])),"v-1f4b69b4":g(()=>u(()=>import("./medals.html-7443ffc7.js"),[])),"v-b5df8b90":g(()=>u(()=>import("./official_role.html-59ee6d6a.js"),[])),"v-640b6e0d":g(()=>u(()=>import("./register.html-f58638c9.js"),[])),"v-5c0c5b58":g(()=>u(()=>import("./relation.html-14a829cb.js"),[])),"v-2bacf0fc":g(()=>u(()=>import("./space.html-1cf9b287.js"),[])),"v-58c052cc":g(()=>u(()=>import("./status_number.html-074075bf.js"),[])),"v-54b0f434":g(()=>u(()=>import("./action.html-9bd365d2.js"),["assets/action.html-9bd365d2.js","assets/fav-55c612b4.js"])),"v-3857570a":g(()=>u(()=>import("./appeal.html-d4790fd7.js"),[])),"v-0eaafc5d":g(()=>u(()=>import("./attribute_data.html-5dc2207b.js"),[])),"v-738a744c":g(()=>u(()=>import("./collection.html-1faca104.js"),[])),"v-c357ce08":g(()=>u(()=>import("./info.html-e8fa1744.js"),[])),"v-7e6a01b8":g(()=>u(()=>import("./interact_video.html-f9b5e535.js"),[])),"v-11f54637":g(()=>u(()=>import("./online.html-1b0dccef.js"),[])),"v-0919deac":g(()=>u(()=>import("./pbp.html-725c7aae.js"),[])),"v-17800a69":g(()=>u(()=>import("./player.html-5366c33c.js"),[])),"v-66cc282c":g(()=>u(()=>import("./recommend.html-713ec7a6.js"),[])),"v-30ce6814":g(()=>u(()=>import("./report.html-57293111.js"),[])),"v-08037526":g(()=>u(()=>import("./snapshot.html-7339a613.js"),[])),"v-7da8e172":g(()=>u(()=>import("./status_number.html-e4b8a09a.js"),[])),"v-edc6a97c":g(()=>u(()=>import("./summary.html-9ab442a0.js"),[])),"v-1ae1971e":g(()=>u(()=>import("./tags.html-6bacf551.js"),[])),"v-63d42d8c":g(()=>u(()=>import("./video_zone.html-f7319cb2.js"),[])),"v-0acb47c6":g(()=>u(()=>import("./videostream_url.html-7da33be4.js"),["assets/videostream_url.html-7da33be4.js","assets/download-d77df227.js"])),"v-6423be9c":g(()=>u(()=>import("./dynamic.html-dfaefdaa.js"),[])),"v-3c77c350":g(()=>u(()=>import("./popular.html-d45fd54b.js"),[])),"v-7d2bb9de":g(()=>u(()=>import("./precious_videos.html-9a30c052.js"),[])),"v-7eae971b":g(()=>u(()=>import("./ranking.html-59b4f152.js"),[])),"v-4d524bd4":g(()=>u(()=>import("./action.html-2ba45e5b.js"),[])),"v-42caf152":g(()=>u(()=>import("./center.html-82cb2ccc.js"),[])),"v-1fe3cbb3":g(()=>u(()=>import("./clockin.html-573e0083.js"),[])),"v-64c3e144":g(()=>u(()=>import("./info.html-84fe7504.js"),[])),"v-38c89e50":g(()=>u(()=>import("./info.html-f20ce56c.js"),[])),"v-6252a41e":g(()=>u(()=>import("./404_manga.html-e53b4e70.js"),[])),"v-2bee0cb2":g(()=>u(()=>import("./header.html-7ea3c62c.js"),[])),"v-33a4ed0a":g(()=>u(()=>import("./zone_upload.html-5153b09f.js"),[])),"v-00bd94f6":g(()=>u(()=>import("./action.html-9cda16a3.js"),[])),"v-2ffe7b8a":g(()=>u(()=>import("./base_info.html-c57cadd4.js"),[])),"v-ba4e3898":g(()=>u(()=>import("./judgement_info.html-c79d96cf.js"),[])),"v-d18ced94":g(()=>u(()=>import("./QR.html-a05c71a7.js"),[])),"v-53277122":g(()=>u(()=>import("./SMS.html-94182c8d.js"),[])),"v-5424b67c":g(()=>u(()=>import("./password.html-56ccacec.js"),[])),"v-feb0d03c":g(()=>u(()=>import("./index.html-965d5df0.js"),[])),"v-58c05ce2":g(()=>u(()=>import("./APP.html-8a506c9f.js"),[])),"v-4458a551":g(()=>u(()=>import("./APPKey.html-d63a95b5.js"),[])),"v-618ff0fc":g(()=>u(()=>import("./bili_ticket.html-e7e91356.js"),[])),"v-79d95c04":g(()=>u(()=>import("./v_voucher.html-8a3762e5.js"),[])),"v-25192605":g(()=>u(()=>import("./wbi.html-5acf1126.js"),[])),"v-3706649a":g(()=>u(()=>import("./404.html-8ea661bc.js"),[]))};var Su=Symbol(""),fs=Symbol(""),Fu=ml({key:"",path:"",title:"",lang:"",frontmatter:{},headers:[]}),Ct=()=>{const e=Re(fs);if(!e)throw new Error("pageData() is called without provider.");return e},vs=Symbol(""),gt=()=>{const e=Re(vs);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},ps=Symbol(""),$u=()=>{const e=Re(ps);if(!e)throw new Error("usePageHead() is called without provider.");return e},Nu=Symbol(""),ms=Symbol(""),Mu=()=>{const e=Re(ms);if(!e)throw new Error("usePageLang() is called without provider.");return e},_s=Symbol(""),Hu=()=>{const e=Re(_s);if(!e)throw new Error("usePageLayout() is called without provider.");return e},Bu=me(Iu),Nn=Symbol(""),_l=()=>{const e=Re(Nn);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},ll=me(Ou),gs=()=>ll,bs=Symbol(""),Mn=()=>{const e=Re(bs);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},ju=Symbol(""),zu="Layout",Uu="NotFound",pt=Hl({resolveLayouts:e=>e.reduce((t,l)=>({...t,...l.layouts}),{}),resolvePageData:async e=>{const t=Bu.value[e];return await(t==null?void 0:t())??Fu},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,l)=>{const i=_e(t.description)?t.description:l.description,n=[...X(t.head)?t.head:[],...l.head,["title",{},e],["meta",{name:"description",content:i}]];return Du(n)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(l=>!!l).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||"en-US",resolvePageLayout:(e,t)=>{let l;if(e.path){const i=e.frontmatter.layout;_e(i)?l=i:l=zu}else l=Uu;return t[l]},resolveRouteLocale:(e,t)=>ds(e,t),resolveSiteLocaleData:(e,t)=>({...e,...e.locales[t]})}),Hn=he({name:"ClientOnly",setup(e,t){const l=me(!1);return ze(()=>{l.value=!0}),()=>{var i,n;return l.value?(n=(i=t.slots).default)==null?void 0:n.call(i):null}}}),Ku=he({name:"Content",props:{pageKey:{type:String,required:!1,default:""}},setup(e){const t=Ct(),l=M(()=>hs[e.pageKey||t.value.key]);return()=>l.value?ue(l.value):ue("div","404 Not Found")}}),ft=(e={})=>e,Bn=e=>ql(e)?e:`/bilibili-API-collect/${us(e)}`;function Es(e,t,l){var i,n,r;t===void 0&&(t=50),l===void 0&&(l={});var o=(i=l.isImmediate)!=null&&i,a=(n=l.callback)!=null&&n,s=l.maxWait,c=Date.now(),d=[];function h(){if(s!==void 0){var _=Date.now()-c;if(_+t>=s)return s-_}return t}var f=function(){var _=[].slice.call(arguments),y=this;return new Promise(function(L,A){var b=o&&r===void 0;if(r!==void 0&&clearTimeout(r),r=setTimeout(function(){if(r=void 0,c=Date.now(),!o){var x=e.apply(y,_);a&&a(x),d.forEach(function(O){return(0,O.resolve)(x)}),d=[]}},h()),b){var k=e.apply(y,_);return a&&a(k),L(k)}d.push({resolve:L,reject:A})})};return f.cancel=function(_){r!==void 0&&clearTimeout(r),d.forEach(function(y){return(0,y.reject)(_)}),d=[]},f}/*! + * vue-router v4.2.4 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */const tl=typeof window<"u";function qu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const ge=Object.assign;function qi(e,t){const l={};for(const i in t){const n=t[i];l[i]=ot(n)?n.map(e):e(n)}return l}const Il=()=>{},ot=Array.isArray,Wu=/\/$/,Gu=e=>e.replace(Wu,"");function Wi(e,t,l="/"){let i,n={},r="",o="";const a=t.indexOf("#");let s=t.indexOf("?");return a=0&&(s=-1),s>-1&&(i=t.slice(0,s),r=t.slice(s+1,a>-1?a:t.length),n=e(r)),a>-1&&(i=i||t.slice(0,a),o=t.slice(a,t.length)),i=Xu(i??t,l),{fullPath:i+(r&&"?")+r+o,path:i,query:n,hash:o}}function Ju(e,t){const l=t.query?e(t.query):"";return t.path+(l&&"?")+l+(t.hash||"")}function $r(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Yu(e,t,l){const i=t.matched.length-1,n=l.matched.length-1;return i>-1&&i===n&&hl(t.matched[i],l.matched[n])&&ks(t.params,l.params)&&e(t.query)===e(l.query)&&t.hash===l.hash}function hl(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ks(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const l in e)if(!Qu(e[l],t[l]))return!1;return!0}function Qu(e,t){return ot(e)?Nr(e,t):ot(t)?Nr(t,e):e===t}function Nr(e,t){return ot(t)?e.length===t.length&&e.every((l,i)=>l===t[i]):e.length===1&&e[0]===t}function Xu(e,t){if(e.startsWith("/"))return e;if(!e)return t;const l=t.split("/"),i=e.split("/"),n=i[i.length-1];(n===".."||n===".")&&i.push("");let r=l.length-1,o,a;for(o=0;o1&&r--;else break;return l.slice(0,r).join("/")+"/"+i.slice(o-(o===i.length?1:0)).join("/")}var Fl;(function(e){e.pop="pop",e.push="push"})(Fl||(Fl={}));var Ol;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ol||(Ol={}));function Zu(e){if(!e)if(tl){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Gu(e)}const ed=/^[^#]+#/;function td(e,t){return e.replace(ed,"#")+t}function ld(e,t){const l=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-l.left-(t.left||0),top:i.top-l.top-(t.top||0)}}const Vi=()=>({left:window.pageXOffset,top:window.pageYOffset});function id(e){let t;if("el"in e){const l=e.el,i=typeof l=="string"&&l.startsWith("#"),n=typeof l=="string"?i?document.getElementById(l.slice(1)):document.querySelector(l):l;if(!n)return;t=ld(n,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Mr(e,t){return(history.state?history.state.position-t:-1)+e}const hn=new Map;function nd(e,t){hn.set(e,t)}function rd(e){const t=hn.get(e);return hn.delete(e),t}let od=()=>location.protocol+"//"+location.host;function ys(e,t){const{pathname:l,search:i,hash:n}=t,r=e.indexOf("#");if(r>-1){let a=n.includes(e.slice(r))?e.slice(r).length:1,s=n.slice(a);return s[0]!=="/"&&(s="/"+s),$r(s,"")}return $r(l,e)+i+n}function sd(e,t,l,i){let n=[],r=[],o=null;const a=({state:f})=>{const _=ys(e,location),y=l.value,L=t.value;let A=0;if(f){if(l.value=_,t.value=f,o&&o===y){o=null;return}A=L?f.position-L.position:0}else i(_);n.forEach(b=>{b(l.value,y,{delta:A,type:Fl.pop,direction:A?A>0?Ol.forward:Ol.back:Ol.unknown})})};function s(){o=l.value}function c(f){n.push(f);const _=()=>{const y=n.indexOf(f);y>-1&&n.splice(y,1)};return r.push(_),_}function d(){const{history:f}=window;f.state&&f.replaceState(ge({},f.state,{scroll:Vi()}),"")}function h(){for(const f of r)f();r=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",d)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",d,{passive:!0}),{pauseListeners:s,listen:c,destroy:h}}function Hr(e,t,l,i=!1,n=!1){return{back:e,current:t,forward:l,replaced:i,position:window.history.length,scroll:n?Vi():null}}function ad(e){const{history:t,location:l}=window,i={value:ys(e,l)},n={value:t.state};n.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(s,c,d){const h=e.indexOf("#"),f=h>-1?(l.host&&document.querySelector("base")?e:e.slice(h))+s:od()+e+s;try{t[d?"replaceState":"pushState"](c,"",f),n.value=c}catch(_){console.error(_),l[d?"replace":"assign"](f)}}function o(s,c){const d=ge({},t.state,Hr(n.value.back,s,n.value.forward,!0),c,{position:n.value.position});r(s,d,!0),i.value=s}function a(s,c){const d=ge({},n.value,t.state,{forward:s,scroll:Vi()});r(d.current,d,!0);const h=ge({},Hr(i.value,s,null),{position:d.position+1},c);r(s,h,!1),i.value=s}return{location:i,state:n,push:a,replace:o}}function cd(e){e=Zu(e);const t=ad(e),l=sd(e,t.state,t.location,t.replace);function i(r,o=!0){o||l.pauseListeners(),history.go(r)}const n=ge({location:"",base:e,go:i,createHref:td.bind(null,e)},t,l);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}function ud(e){return typeof e=="string"||e&&typeof e=="object"}function Ls(e){return typeof e=="string"||typeof e=="symbol"}const mt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Ps=Symbol("");var Br;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Br||(Br={}));function fl(e,t){return ge(new Error,{type:e,[Ps]:!0},t)}function vt(e,t){return e instanceof Error&&Ps in e&&(t==null||!!(e.type&t))}const jr="[^/]+?",dd={sensitive:!1,strict:!1,start:!0,end:!0},hd=/[.+*?^${}()[\]/\\]/g;function fd(e,t){const l=ge({},dd,t),i=[];let n=l.start?"^":"";const r=[];for(const c of e){const d=c.length?[]:[90];l.strict&&!c.length&&(n+="/");for(let h=0;ht.length?t.length===1&&t[0]===40+40?1:-1:0}function pd(e,t){let l=0;const i=e.score,n=t.score;for(;l0&&t[t.length-1]<0}const md={type:0,value:""},_d=/[a-zA-Z0-9_]/;function gd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${l})/"${c}": ${_}`)}let l=0,i=l;const n=[];let r;function o(){r&&n.push(r),r=[]}let a=0,s,c="",d="";function h(){c&&(l===0?r.push({type:0,value:c}):l===1||l===2||l===3?(r.length>1&&(s==="*"||s==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),r.push({type:1,value:c,regexp:d,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):t("Invalid state to consume buffer"),c="")}function f(){c+=s}for(;a{o(k)}:Il}function o(d){if(Ls(d)){const h=i.get(d);h&&(i.delete(d),l.splice(l.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=l.indexOf(d);h>-1&&(l.splice(h,1),d.record.name&&i.delete(d.record.name),d.children.forEach(o),d.alias.forEach(o))}}function a(){return l}function s(d){let h=0;for(;h=0&&(d.record.path!==l[h].record.path||!As(d,l[h]));)h++;l.splice(h,0,d),d.record.name&&!Kr(d)&&i.set(d.record.name,d)}function c(d,h){let f,_={},y,L;if("name"in d&&d.name){if(f=i.get(d.name),!f)throw fl(1,{location:d});L=f.record.name,_=ge(Ur(h.params,f.keys.filter(k=>!k.optional).map(k=>k.name)),d.params&&Ur(d.params,f.keys.map(k=>k.name))),y=f.stringify(_)}else if("path"in d)y=d.path,f=l.find(k=>k.re.test(y)),f&&(_=f.parse(y),L=f.record.name);else{if(f=h.name?i.get(h.name):l.find(k=>k.re.test(h.path)),!f)throw fl(1,{location:d,currentLocation:h});L=f.record.name,_=ge({},h.params,d.params),y=f.stringify(_)}const A=[];let b=f;for(;b;)A.unshift(b.record),b=b.parent;return{name:L,path:y,params:_,matched:A,meta:Ld(A)}}return e.forEach(d=>r(d)),{addRoute:r,resolve:c,removeRoute:o,getRoutes:a,getRecordMatcher:n}}function Ur(e,t){const l={};for(const i of t)i in e&&(l[i]=e[i]);return l}function kd(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:yd(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function yd(e){const t={},l=e.props||!1;if("component"in e)t.default=l;else for(const i in e.components)t[i]=typeof l=="object"?l[i]:l;return t}function Kr(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ld(e){return e.reduce((t,l)=>ge(t,l.meta),{})}function qr(e,t){const l={};for(const i in e)l[i]=i in t?t[i]:e[i];return l}function As(e,t){return t.children.some(l=>l===e||As(e,l))}const ws=/#/g,Pd=/&/g,Ad=/\//g,wd=/=/g,Td=/\?/g,Ts=/\+/g,Rd=/%5B/g,Id=/%5D/g,Rs=/%5E/g,Od=/%60/g,Is=/%7B/g,xd=/%7C/g,Os=/%7D/g,Dd=/%20/g;function jn(e){return encodeURI(""+e).replace(xd,"|").replace(Rd,"[").replace(Id,"]")}function Cd(e){return jn(e).replace(Is,"{").replace(Os,"}").replace(Rs,"^")}function fn(e){return jn(e).replace(Ts,"%2B").replace(Dd,"+").replace(ws,"%23").replace(Pd,"%26").replace(Od,"`").replace(Is,"{").replace(Os,"}").replace(Rs,"^")}function Vd(e){return fn(e).replace(wd,"%3D")}function Sd(e){return jn(e).replace(ws,"%23").replace(Td,"%3F")}function Fd(e){return e==null?"":Sd(e).replace(Ad,"%2F")}function bi(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function $d(e){const t={};if(e===""||e==="?")return t;const i=(e[0]==="?"?e.slice(1):e).split("&");for(let n=0;nr&&fn(r)):[i&&fn(i)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+l,r!=null&&(t+="="+r))})}return t}function Nd(e){const t={};for(const l in e){const i=e[l];i!==void 0&&(t[l]=ot(i)?i.map(n=>n==null?null:""+n):i==null?i:""+i)}return t}const Md=Symbol(""),Gr=Symbol(""),Si=Symbol(""),zn=Symbol(""),vn=Symbol("");function kl(){let e=[];function t(i){return e.push(i),()=>{const n=e.indexOf(i);n>-1&&e.splice(n,1)}}function l(){e=[]}return{add:t,list:()=>e.slice(),reset:l}}function Ot(e,t,l,i,n){const r=i&&(i.enterCallbacks[n]=i.enterCallbacks[n]||[]);return()=>new Promise((o,a)=>{const s=h=>{h===!1?a(fl(4,{from:l,to:t})):h instanceof Error?a(h):ud(h)?a(fl(2,{from:t,to:h})):(r&&i.enterCallbacks[n]===r&&typeof h=="function"&&r.push(h),o())},c=e.call(i&&i.instances[n],t,l,s);let d=Promise.resolve(c);e.length<3&&(d=d.then(s)),d.catch(h=>a(h))})}function Gi(e,t,l,i){const n=[];for(const r of e)for(const o in r.components){let a=r.components[o];if(!(t!=="beforeRouteEnter"&&!r.instances[o]))if(Hd(a)){const c=(a.__vccOpts||a)[t];c&&n.push(Ot(c,l,i,r,o))}else{let s=a();n.push(()=>s.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${r.path}"`));const d=qu(c)?c.default:c;r.components[o]=d;const f=(d.__vccOpts||d)[t];return f&&Ot(f,l,i,r,o)()}))}}return n}function Hd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Jr(e){const t=Re(Si),l=Re(zn),i=M(()=>t.resolve(te(e.to))),n=M(()=>{const{matched:s}=i.value,{length:c}=s,d=s[c-1],h=l.matched;if(!d||!h.length)return-1;const f=h.findIndex(hl.bind(null,d));if(f>-1)return f;const _=Yr(s[c-2]);return c>1&&Yr(d)===_&&h[h.length-1].path!==_?h.findIndex(hl.bind(null,s[c-2])):f}),r=M(()=>n.value>-1&&Ud(l.params,i.value.params)),o=M(()=>n.value>-1&&n.value===l.matched.length-1&&ks(l.params,i.value.params));function a(s={}){return zd(s)?t[te(e.replace)?"replace":"push"](te(e.to)).catch(Il):Promise.resolve()}return{route:i,href:M(()=>i.value.href),isActive:r,isExactActive:o,navigate:a}}const Bd=he({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Jr,setup(e,{slots:t}){const l=Hl(Jr(e)),{options:i}=Re(Si),n=M(()=>({[Qr(e.activeClass,i.linkActiveClass,"router-link-active")]:l.isActive,[Qr(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:l.isExactActive}));return()=>{const r=t.default&&t.default(l);return e.custom?r:ue("a",{"aria-current":l.isExactActive?e.ariaCurrentValue:null,href:l.href,onClick:l.navigate,class:n.value},r)}}}),jd=Bd;function zd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ud(e,t){for(const l in t){const i=t[l],n=e[l];if(typeof i=="string"){if(i!==n)return!1}else if(!ot(n)||n.length!==i.length||i.some((r,o)=>r!==n[o]))return!1}return!0}function Yr(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Qr=(e,t,l)=>e??t??l,Kd=he({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:l}){const i=Re(vn),n=M(()=>e.route||i.value),r=Re(Gr,0),o=M(()=>{let c=te(r);const{matched:d}=n.value;let h;for(;(h=d[c])&&!h.components;)c++;return c}),a=M(()=>n.value.matched[o.value]);Wt(Gr,M(()=>o.value+1)),Wt(Md,a),Wt(vn,n);const s=me();return et(()=>[s.value,a.value,e.name],([c,d,h],[f,_,y])=>{d&&(d.instances[h]=c,_&&_!==d&&c&&c===f&&(d.leaveGuards.size||(d.leaveGuards=_.leaveGuards),d.updateGuards.size||(d.updateGuards=_.updateGuards))),c&&d&&(!_||!hl(d,_)||!f)&&(d.enterCallbacks[h]||[]).forEach(L=>L(c))},{flush:"post"}),()=>{const c=n.value,d=e.name,h=a.value,f=h&&h.components[d];if(!f)return Xr(l.default,{Component:f,route:c});const _=h.props[d],y=_?_===!0?c.params:typeof _=="function"?_(c):_:null,A=ue(f,ge({},y,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(h.instances[d]=null)},ref:s}));return Xr(l.default,{Component:A,route:c})||A}}});function Xr(e,t){if(!e)return null;const l=e(t);return l.length===1?l[0]:l}const xs=Kd;function qd(e){const t=Ed(e.routes,e),l=e.parseQuery||$d,i=e.stringifyQuery||Wr,n=e.history,r=kl(),o=kl(),a=kl(),s=In(mt);let c=mt;tl&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=qi.bind(null,w=>""+w),h=qi.bind(null,Fd),f=qi.bind(null,bi);function _(w,z){let $,G;return Ls(w)?($=t.getRecordMatcher(w),G=z):G=w,t.addRoute(G,$)}function y(w){const z=t.getRecordMatcher(w);z&&t.removeRoute(z)}function L(){return t.getRoutes().map(w=>w.record)}function A(w){return!!t.getRecordMatcher(w)}function b(w,z){if(z=ge({},z||s.value),typeof w=="string"){const E=Wi(l,w,z.path),P=t.resolve({path:E.path},z),T=n.createHref(E.fullPath);return ge(E,P,{params:f(P.params),hash:bi(E.hash),redirectedFrom:void 0,href:T})}let $;if("path"in w)$=ge({},w,{path:Wi(l,w.path,z.path).path});else{const E=ge({},w.params);for(const P in E)E[P]==null&&delete E[P];$=ge({},w,{params:h(E)}),z.params=h(z.params)}const G=t.resolve($,z),de=w.hash||"";G.params=d(f(G.params));const v=Ju(i,ge({},w,{hash:Cd(de),path:G.path})),p=n.createHref(v);return ge({fullPath:v,hash:de,query:i===Wr?Nd(w.query):w.query||{}},G,{redirectedFrom:void 0,href:p})}function k(w){return typeof w=="string"?Wi(l,w,s.value.path):ge({},w)}function x(w,z){if(c!==w)return fl(8,{from:z,to:w})}function O(w){return F(w)}function q(w){return O(ge(k(w),{replace:!0}))}function Z(w){const z=w.matched[w.matched.length-1];if(z&&z.redirect){const{redirect:$}=z;let G=typeof $=="function"?$(w):$;return typeof G=="string"&&(G=G.includes("?")||G.includes("#")?G=k(G):{path:G},G.params={}),ge({query:w.query,hash:w.hash,params:"path"in G?{}:w.params},G)}}function F(w,z){const $=c=b(w),G=s.value,de=w.state,v=w.force,p=w.replace===!0,E=Z($);if(E)return F(ge(k(E),{state:typeof E=="object"?ge({},de,E.state):de,force:v,replace:p}),z||$);const P=$;P.redirectedFrom=z;let T;return!v&&Yu(i,G,$)&&(T=fl(16,{to:P,from:G}),Ue(G,G,!0,!1)),(T?Promise.resolve(T):H(P,G)).catch(I=>vt(I)?vt(I,2)?I:Fe(I):re(I,P,G)).then(I=>{if(I){if(vt(I,2))return F(ge({replace:p},k(I.to),{state:typeof I.to=="object"?ge({},de,I.to.state):de,force:v}),z||P)}else I=R(P,G,!0,p,de);return J(P,G,I),I})}function m(w,z){const $=x(w,z);return $?Promise.reject($):Promise.resolve()}function U(w){const z=Pt.values().next().value;return z&&typeof z.runWithContext=="function"?z.runWithContext(w):w()}function H(w,z){let $;const[G,de,v]=Wd(w,z);$=Gi(G.reverse(),"beforeRouteLeave",w,z);for(const E of G)E.leaveGuards.forEach(P=>{$.push(Ot(P,w,z))});const p=m.bind(null,w,z);return $.push(p),Ce($).then(()=>{$=[];for(const E of r.list())$.push(Ot(E,w,z));return $.push(p),Ce($)}).then(()=>{$=Gi(de,"beforeRouteUpdate",w,z);for(const E of de)E.updateGuards.forEach(P=>{$.push(Ot(P,w,z))});return $.push(p),Ce($)}).then(()=>{$=[];for(const E of v)if(E.beforeEnter)if(ot(E.beforeEnter))for(const P of E.beforeEnter)$.push(Ot(P,w,z));else $.push(Ot(E.beforeEnter,w,z));return $.push(p),Ce($)}).then(()=>(w.matched.forEach(E=>E.enterCallbacks={}),$=Gi(v,"beforeRouteEnter",w,z),$.push(p),Ce($))).then(()=>{$=[];for(const E of o.list())$.push(Ot(E,w,z));return $.push(p),Ce($)}).catch(E=>vt(E,8)?E:Promise.reject(E))}function J(w,z,$){a.list().forEach(G=>U(()=>G(w,z,$)))}function R(w,z,$,G,de){const v=x(w,z);if(v)return v;const p=z===mt,E=tl?history.state:{};$&&(G||p?n.replace(w.fullPath,ge({scroll:p&&E&&E.scroll},de)):n.push(w.fullPath,de)),s.value=w,Ue(w,z,$,p),Fe()}let V;function S(){V||(V=n.listen((w,z,$)=>{if(!st.listening)return;const G=b(w),de=Z(G);if(de){F(ge(de,{replace:!0}),G).catch(Il);return}c=G;const v=s.value;tl&&nd(Mr(v.fullPath,$.delta),Vi()),H(G,v).catch(p=>vt(p,12)?p:vt(p,2)?(F(p.to,G).then(E=>{vt(E,20)&&!$.delta&&$.type===Fl.pop&&n.go(-1,!1)}).catch(Il),Promise.reject()):($.delta&&n.go(-$.delta,!1),re(p,G,v))).then(p=>{p=p||R(G,v,!1),p&&($.delta&&!vt(p,8)?n.go(-$.delta,!1):$.type===Fl.pop&&vt(p,20)&&n.go(-1,!1)),J(G,v,p)}).catch(Il)}))}let se=kl(),K=kl(),ne;function re(w,z,$){Fe(w);const G=K.list();return G.length?G.forEach(de=>de(w,z,$)):console.error(w),Promise.reject(w)}function Ne(){return ne&&s.value!==mt?Promise.resolve():new Promise((w,z)=>{se.add([w,z])})}function Fe(w){return ne||(ne=!w,S(),se.list().forEach(([z,$])=>w?$(w):z()),se.reset()),w}function Ue(w,z,$,G){const{scrollBehavior:de}=e;if(!tl||!de)return Promise.resolve();const v=!$&&rd(Mr(w.fullPath,0))||(G||!$)&&history.state&&history.state.scroll||null;return jl().then(()=>de(w,z,v)).then(p=>p&&id(p)).catch(p=>re(p,w,z))}const Me=w=>n.go(w);let Lt;const Pt=new Set,st={currentRoute:s,listening:!0,addRoute:_,removeRoute:y,hasRoute:A,getRoutes:L,resolve:b,options:e,push:O,replace:q,go:Me,back:()=>Me(-1),forward:()=>Me(1),beforeEach:r.add,beforeResolve:o.add,afterEach:a.add,onError:K.add,isReady:Ne,install(w){const z=this;w.component("RouterLink",jd),w.component("RouterView",xs),w.config.globalProperties.$router=z,Object.defineProperty(w.config.globalProperties,"$route",{enumerable:!0,get:()=>te(s)}),tl&&!Lt&&s.value===mt&&(Lt=!0,O(n.location).catch(de=>{}));const $={};for(const de in mt)Object.defineProperty($,de,{get:()=>s.value[de],enumerable:!0});w.provide(Si,z),w.provide(zn,Do($)),w.provide(vn,s);const G=w.unmount;Pt.add(w),w.unmount=function(){Pt.delete(w),Pt.size<1&&(c=mt,V&&V(),V=null,s.value=mt,Lt=!1,ne=!1),G()}}};function Ce(w){return w.reduce((z,$)=>z.then(()=>U($)),Promise.resolve())}return st}function Wd(e,t){const l=[],i=[],n=[],r=Math.max(t.matched.length,e.matched.length);for(let o=0;ohl(c,a))?i.push(a):l.push(a));const s=e.matched[o];s&&(t.matched.find(c=>hl(c,s))||n.push(s))}return[l,i,n]}function Yt(){return Re(Si)}function Qt(){return Re(zn)}const Gd=({headerLinkSelector:e,headerAnchorSelector:t,delay:l,offset:i=5})=>{const n=Yt(),o=Es(()=>{var L,A;const a=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(a-0)f.some(k=>k.hash===b.hash));for(let b=0;b=(((L=k.parentElement)==null?void 0:L.offsetTop)??0)-i,q=!x||a<(((A=x.parentElement)==null?void 0:A.offsetTop)??0)-i;if(!(O&&q))continue;const F=decodeURIComponent(n.currentRoute.value.hash),m=decodeURIComponent(k.hash);if(F===m)return;if(h){for(let U=b+1;U{window.addEventListener("scroll",o)}),Ul(()=>{window.removeEventListener("scroll",o)})},Zr=async(e,t)=>{const{scrollBehavior:l}=e.options;e.options.scrollBehavior=void 0,await e.replace({query:e.currentRoute.value.query,hash:t}).finally(()=>e.options.scrollBehavior=l)},Jd="a.sidebar-item",Yd=".header-anchor",Qd=300,Xd=5,Zd=ft({setup(){Gd({headerLinkSelector:Jd,headerAnchorSelector:Yd,delay:Qd,offset:Xd})}}),eo=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,eh=()=>window.scrollTo({top:0,behavior:"smooth"});const th=he({name:"BackToTop",setup(){const e=me(0),t=M(()=>e.value>300),l=Es(()=>{e.value=eo()},100);ze(()=>{e.value=eo(),window.addEventListener("scroll",()=>l())});const i=ue("div",{class:"back-to-top",onClick:eh});return()=>ue(Kl,{name:"back-to-top"},()=>t.value?i:null)}}),lh=ft({rootComponents:[th]});const ih=ue("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[ue("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),ue("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),nh=he({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=_l(),l=M(()=>e.locales[t.value]??{openInNewWindow:"open in new window"});return()=>ue("span",[ih,ue("span",{class:"external-link-icon-sr-only"},l.value.openInNewWindow)])}}),rh={"/":{openInNewWindow:"open in new window"}},oh=ft({enhance({app:e}){e.component("ExternalLinkIcon",ue(nh,{locales:rh}))}});/*! medium-zoom 1.0.8 | MIT License | https://github.com/francoischalifour/medium-zoom */var Bt=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},i=window.Promise||function(R){function V(){}R(V,V)},n=function(R){var V=R.target;if(V===U){y();return}x.indexOf(V)!==-1&&L({target:V})},r=function(){if(!(q||!m.original)){var R=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(Z-R)>F.scrollOffset&&setTimeout(y,150)}},o=function(R){var V=R.key||R.keyCode;(V==="Escape"||V==="Esc"||V===27)&&y()},a=function(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},V=R;if(R.background&&(U.style.background=R.background),R.container&&R.container instanceof Object&&(V.container=Bt({},F.container,R.container)),R.template){var S=si(R.template)?R.template:document.querySelector(R.template);V.template=S}return F=Bt({},F,V),x.forEach(function(se){se.dispatchEvent(el("medium-zoom:update",{detail:{zoom:H}}))}),H},s=function(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Bt({},F,R))},c=function(){for(var R=arguments.length,V=Array(R),S=0;S0?V.reduce(function(K,ne){return[].concat(K,lo(ne))},[]):x;return se.forEach(function(K){K.classList.remove("medium-zoom-image"),K.dispatchEvent(el("medium-zoom:detach",{detail:{zoom:H}}))}),x=x.filter(function(K){return se.indexOf(K)===-1}),H},h=function(R,V){var S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return x.forEach(function(se){se.addEventListener("medium-zoom:"+R,V,S)}),O.push({type:"medium-zoom:"+R,listener:V,options:S}),H},f=function(R,V){var S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return x.forEach(function(se){se.removeEventListener("medium-zoom:"+R,V,S)}),O=O.filter(function(se){return!(se.type==="medium-zoom:"+R&&se.listener.toString()===V.toString())}),H},_=function(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},V=R.target,S=function(){var K={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},ne=void 0,re=void 0;if(F.container)if(F.container instanceof Object)K=Bt({},K,F.container),ne=K.width-K.left-K.right-F.margin*2,re=K.height-K.top-K.bottom-F.margin*2;else{var Ne=si(F.container)?F.container:document.querySelector(F.container),Fe=Ne.getBoundingClientRect(),Ue=Fe.width,Me=Fe.height,Lt=Fe.left,Pt=Fe.top;K=Bt({},K,{width:Ue,height:Me,left:Lt,top:Pt})}ne=ne||K.width-F.margin*2,re=re||K.height-F.margin*2;var st=m.zoomedHd||m.original,Ce=to(st)?ne:st.naturalWidth||ne,w=to(st)?re:st.naturalHeight||re,z=st.getBoundingClientRect(),$=z.top,G=z.left,de=z.width,v=z.height,p=Math.min(Math.max(de,Ce),ne)/de,E=Math.min(Math.max(v,w),re)/v,P=Math.min(p,E),T=(-G+(ne-de)/2+F.margin+K.left)/P,I=(-$+(re-v)/2+F.margin+K.top)/P,B="scale("+P+") translate3d("+T+"px, "+I+"px, 0)";m.zoomed.style.transform=B,m.zoomedHd&&(m.zoomedHd.style.transform=B)};return new i(function(se){if(V&&x.indexOf(V)===-1){se(H);return}var K=function Ue(){q=!1,m.zoomed.removeEventListener("transitionend",Ue),m.original.dispatchEvent(el("medium-zoom:opened",{detail:{zoom:H}})),se(H)};if(m.zoomed){se(H);return}if(V)m.original=V;else if(x.length>0){var ne=x;m.original=ne[0]}else{se(H);return}if(m.original.dispatchEvent(el("medium-zoom:open",{detail:{zoom:H}})),Z=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,q=!0,m.zoomed=ch(m.original),document.body.appendChild(U),F.template){var re=si(F.template)?F.template:document.querySelector(F.template);m.template=document.createElement("div"),m.template.appendChild(re.content.cloneNode(!0)),document.body.appendChild(m.template)}if(m.original.parentElement&&m.original.parentElement.tagName==="PICTURE"&&m.original.currentSrc&&(m.zoomed.src=m.original.currentSrc),document.body.appendChild(m.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),m.original.classList.add("medium-zoom-image--hidden"),m.zoomed.classList.add("medium-zoom-image--opened"),m.zoomed.addEventListener("click",y),m.zoomed.addEventListener("transitionend",K),m.original.getAttribute("data-zoom-src")){m.zoomedHd=m.zoomed.cloneNode(),m.zoomedHd.removeAttribute("srcset"),m.zoomedHd.removeAttribute("sizes"),m.zoomedHd.removeAttribute("loading"),m.zoomedHd.src=m.zoomed.getAttribute("data-zoom-src"),m.zoomedHd.onerror=function(){clearInterval(Ne),console.warn("Unable to reach the zoom image target "+m.zoomedHd.src),m.zoomedHd=null,S()};var Ne=setInterval(function(){m.zoomedHd.complete&&(clearInterval(Ne),m.zoomedHd.classList.add("medium-zoom-image--opened"),m.zoomedHd.addEventListener("click",y),document.body.appendChild(m.zoomedHd),S())},10)}else if(m.original.hasAttribute("srcset")){m.zoomedHd=m.zoomed.cloneNode(),m.zoomedHd.removeAttribute("sizes"),m.zoomedHd.removeAttribute("loading");var Fe=m.zoomedHd.addEventListener("load",function(){m.zoomedHd.removeEventListener("load",Fe),m.zoomedHd.classList.add("medium-zoom-image--opened"),m.zoomedHd.addEventListener("click",y),document.body.appendChild(m.zoomedHd),S()})}else S()})},y=function(){return new i(function(R){if(q||!m.original){R(H);return}var V=function S(){m.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(m.zoomed),m.zoomedHd&&document.body.removeChild(m.zoomedHd),document.body.removeChild(U),m.zoomed.classList.remove("medium-zoom-image--opened"),m.template&&document.body.removeChild(m.template),q=!1,m.zoomed.removeEventListener("transitionend",S),m.original.dispatchEvent(el("medium-zoom:closed",{detail:{zoom:H}})),m.original=null,m.zoomed=null,m.zoomedHd=null,m.template=null,R(H)};q=!0,document.body.classList.remove("medium-zoom--opened"),m.zoomed.style.transform="",m.zoomedHd&&(m.zoomedHd.style.transform=""),m.template&&(m.template.style.transition="opacity 150ms",m.template.style.opacity=0),m.original.dispatchEvent(el("medium-zoom:close",{detail:{zoom:H}})),m.zoomed.addEventListener("transitionend",V)})},L=function(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},V=R.target;return m.original?y():_({target:V})},A=function(){return F},b=function(){return x},k=function(){return m.original},x=[],O=[],q=!1,Z=0,F=l,m={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?F=t:(t||typeof t=="string")&&c(t),F=Bt({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},F);var U=ah(F.background);document.addEventListener("click",n),document.addEventListener("keyup",o),document.addEventListener("scroll",r),window.addEventListener("resize",y);var H={open:_,close:y,toggle:L,update:a,clone:s,attach:c,detach:d,on:h,off:f,getOptions:A,getImages:b,getZoomedImage:k};return H};function dh(e,t){t===void 0&&(t={});var l=t.insertAt;if(!(!e||typeof document>"u")){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",l==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}var hh=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";dh(hh);const fh=uh,vh=Symbol("mediumZoom");const ph=".theme-default-content > img, .theme-default-content :not(a) > img",mh={},_h=300,gh=ft({enhance({app:e,router:t}){const l=fh(mh);l.refresh=(i=ph)=>{l.detach(),l.attach(i)},e.provide(vh,l),t.afterEach(()=>{setTimeout(()=>l.refresh(),_h)})}});/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const fe={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
    '},status:null,set:e=>{const t=fe.isStarted();e=Ji(e,fe.settings.minimum,1),fe.status=e===1?null:e;const l=fe.render(!t),i=l.querySelector(fe.settings.barSelector),n=fe.settings.speed,r=fe.settings.easing;return l.offsetWidth,bh(o=>{li(i,{transform:"translate3d("+io(e)+"%,0,0)",transition:"all "+n+"ms "+r}),e===1?(li(l,{transition:"none",opacity:"1"}),l.offsetWidth,setTimeout(function(){li(l,{transition:"all "+n+"ms linear",opacity:"0"}),setTimeout(function(){fe.remove(),o()},n)},n)):setTimeout(()=>o(),n)}),fe},isStarted:()=>typeof fe.status=="number",start:()=>{fe.status||fe.set(0);const e=()=>{setTimeout(()=>{fe.status&&(fe.trickle(),e())},fe.settings.trickleSpeed)};return fe.settings.trickle&&e(),fe},done:e=>!e&&!fe.status?fe:fe.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=fe.status;return t?(typeof e!="number"&&(e=(1-t)*Ji(Math.random()*t,.1,.95)),t=Ji(t+e,0,.994),fe.set(t)):fe.start()},trickle:()=>fe.inc(Math.random()*fe.settings.trickleRate),render:e=>{if(fe.isRendered())return document.getElementById("nprogress");no(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=fe.settings.template;const l=t.querySelector(fe.settings.barSelector),i=e?"-100":io(fe.status||0),n=document.querySelector(fe.settings.parent);return li(l,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),n!==document.body&&no(n,"nprogress-custom-parent"),n==null||n.appendChild(t),t},remove:()=>{ro(document.documentElement,"nprogress-busy"),ro(document.querySelector(fe.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&Eh(e)},isRendered:()=>!!document.getElementById("nprogress")},Ji=(e,t,l)=>el?l:e,io=e=>(-1+e)*100,bh=function(){const e=[];function t(){const l=e.shift();l&&l(t)}return function(l){e.push(l),e.length===1&&t()}}(),li=function(){const e=["Webkit","O","Moz","ms"],t={};function l(o){return o.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(a,s){return s.toUpperCase()})}function i(o){const a=document.body.style;if(o in a)return o;let s=e.length;const c=o.charAt(0).toUpperCase()+o.slice(1);let d;for(;s--;)if(d=e[s]+c,d in a)return d;return o}function n(o){return o=l(o),t[o]??(t[o]=i(o))}function r(o,a,s){a=n(a),o.style[a]=s}return function(o,a){for(const s in a){const c=a[s];c!==void 0&&Object.prototype.hasOwnProperty.call(a,s)&&r(o,s,c)}}}(),Ds=(e,t)=>(typeof e=="string"?e:Un(e)).indexOf(" "+t+" ")>=0,no=(e,t)=>{const l=Un(e),i=l+t;Ds(l,t)||(e.className=i.substring(1))},ro=(e,t)=>{const l=Un(e);if(!Ds(e,t))return;const i=l.replace(" "+t+" "," ");e.className=i.substring(1,i.length-1)},Un=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),Eh=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)};const kh=()=>{ze(()=>{const e=Yt(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(l=>{t.has(l.path)||fe.start()}),e.afterEach(l=>{t.add(l.path),fe.done()})})},yh=ft({setup(){kh()}}),Lh=JSON.parse(`{"logo":"/logo2.jpg","navbar":[{"text":"首页","link":"/"},{"text":"目录","link":"/#🍴目录"},{"text":"贡献指南","link":"/CONTRIBUTING.html"},{"text":"相关社群","children":[{"text":"QQ交流群(综合技术交流)","link":"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ympvb3LAPT-Ulu3ezhGqbkJ8zXMKImOX&authKey=z1KdkOdKO3wytN43m9K6On9nBtnDL4pAoD6VQHCipFBb9TasNDKuDHCmOE6TF3uc&noverify=0&group_code=191187164"},{"text":"Telegram交流群(Github Bot推送)","link":"https://t.me/bilibili_API_collect_community"}]}],"sidebar":"auto","repo":"https://github.com/SocialSisterYi/bilibili-API-collect","docsBranch":"master","editLinkText":"在 GitHub 上编辑此页","colorMode":"auto","locales":{"/":{"selectLanguageName":"English"}},"colorModeSwitch":true,"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebarDepth":2,"editLink":true,"lastUpdated":true,"lastUpdatedText":"Last Updated","contributors":true,"contributorsText":"Contributors","notFound":["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],"backToHome":"Take me home","openInNewWindow":"open in new window","toggleColorMode":"toggle color mode","toggleSidebar":"toggle sidebar"}`),Ph=me(Lh),Cs=()=>Ph,Vs=Symbol(""),Ah=()=>{const e=Re(Vs);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},wh=(e,t)=>{const{locales:l,...i}=e;return{...i,...l==null?void 0:l[t]}},Th=ft({enhance({app:e}){const t=Cs(),l=e._context.provides[Nn],i=M(()=>wh(t.value,l.value));e.provide(Vs,i),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return i.value}}})}}),Rh=he({__name:"Badge",props:{type:{type:String,required:!1,default:"tip"},text:{type:String,required:!1,default:""},vertical:{type:String,required:!1,default:void 0}},setup(e){return(t,l)=>(j(),ee("span",{class:qe(["badge",e.type]),style:Ml({verticalAlign:e.vertical})},[ke(t.$slots,"default",{},()=>[ht(De(e.text),1)])],6))}}),Ae=(e,t)=>{const l=e.__vccOpts||e;for(const[i,n]of t)l[i]=n;return l},Ih=Ae(Rh,[["__file","Badge.vue"]]),Oh=he({name:"CodeGroup",slots:Object,setup(e,{slots:t}){const l=me(-1),i=me([]),n=(a=l.value)=>{a{a>0?l.value=a-1:l.value=i.value.length-1,i.value[l.value].focus()},o=(a,s)=>{a.key===" "||a.key==="Enter"?(a.preventDefault(),l.value=s):a.key==="ArrowRight"?(a.preventDefault(),n(s)):a.key==="ArrowLeft"&&(a.preventDefault(),r(s))};return()=>{var s;const a=(((s=t.default)==null?void 0:s.call(t))||[]).filter(c=>c.type.name==="CodeGroupItem").map(c=>(c.props===null&&(c.props={}),c));return a.length===0?null:(l.value<0||l.value>a.length-1?(l.value=a.findIndex(c=>c.props.active===""||c.props.active===!0),l.value===-1&&(l.value=0)):a.forEach((c,d)=>{c.props.active=d===l.value}),ue("div",{class:"code-group"},[ue("div",{class:"code-group__nav"},ue("ul",{class:"code-group__ul"},a.map((c,d)=>{const h=d===l.value;return ue("li",{class:"code-group__li"},ue("button",{ref:f=>{f&&(i.value[d]=f)},class:{"code-group__nav-tab":!0,"code-group__nav-tab-active":h},ariaPressed:h,ariaExpanded:h,onClick:()=>l.value=d,onKeydown:f=>o(f,d)},c.props.title))}))),a]))}}}),xh=["aria-selected"],Dh=he({name:"CodeGroupItem"}),Ch=he({...Dh,props:{title:{type:String,required:!0},active:{type:Boolean,required:!1,default:!1}},setup(e){return(t,l)=>(j(),ee("div",{class:qe(["code-group-item",{"code-group-item__active":e.active}]),"aria-selected":e.active},[ke(t.$slots,"default")],10,xh))}}),Vh=Ae(Ch,[["__file","CodeGroupItem.vue"]]);function oo(e,t){var l;const i=In();return jo(()=>{i.value=e()},{...t,flush:(l=t==null?void 0:t.flush)!=null?l:"sync"}),ml(i)}function Sh(e,t){let l,i,n;const r=me(!0),o=()=>{r.value=!0,n()};et(e,o,{flush:"sync"});const a=typeof t=="function"?t:t.get,s=typeof t=="function"?void 0:t.set,c=za((d,h)=>(i=d,n=h,{get(){return r.value&&(l=a(),r.value=!1),i(),l},set(f){s==null||s(f)}}));return Object.isExtensible(c)&&(c.trigger=o),c}function Kn(e){return ko()?(ha(e),!0):!1}function $t(e){return typeof e=="function"?e():te(e)}const qn=typeof window<"u"&&typeof document<"u",Fh=Object.prototype.toString,$h=e=>Fh.call(e)==="[object Object]",Nh=()=>{};function Mh(e,t){function l(...i){return new Promise((n,r)=>{Promise.resolve(e(()=>t.apply(this,i),{fn:t,thisArg:this,args:i})).then(n).catch(r)})}return l}const Ss=e=>e();function Hh(e=Ss){const t=me(!0);function l(){t.value=!1}function i(){t.value=!0}const n=(...r)=>{t.value&&e(...r)};return{isActive:ml(t),pause:l,resume:i,eventFilter:n}}function Bh(e,t,l={}){const{eventFilter:i=Ss,...n}=l;return et(e,Mh(i,t),n)}function jh(e,t,l={}){const{eventFilter:i,...n}=l,{eventFilter:r,pause:o,resume:a,isActive:s}=Hh(i);return{stop:Bh(e,t,{...n,eventFilter:r}),pause:o,resume:a,isActive:s}}function zh(e,t,l={}){const{immediate:i=!0}=l,n=me(!1);let r=null;function o(){r&&(clearTimeout(r),r=null)}function a(){n.value=!1,o()}function s(...c){o(),n.value=!0,r=setTimeout(()=>{n.value=!1,r=null,e(...c)},$t(t))}return i&&(n.value=!0,qn&&s()),Kn(a),{isPending:ml(n),start:s,stop:a}}function Uh(e=!1,t={}){const{truthyValue:l=!0,falsyValue:i=!1}=t,n=Se(e),r=me(e);function o(a){if(arguments.length)return r.value=a,r.value;{const s=$t(l);return r.value=r.value===s?$t(i):s,r.value}}return n?o:[r,o]}function Kh(e){var t;const l=$t(e);return(t=l==null?void 0:l.$el)!=null?t:l}const Ei=qn?window:void 0,qh=qn?window.navigator:void 0;function ki(...e){let t,l,i,n;if(typeof e[0]=="string"||Array.isArray(e[0])?([l,i,n]=e,t=Ei):[t,l,i,n]=e,!t)return Nh;Array.isArray(l)||(l=[l]),Array.isArray(i)||(i=[i]);const r=[],o=()=>{r.forEach(d=>d()),r.length=0},a=(d,h,f,_)=>(d.addEventListener(h,f,_),()=>d.removeEventListener(h,f,_)),s=et(()=>[Kh(t),$t(n)],([d,h])=>{if(o(),!d)return;const f=$h(h)?{...h}:h;r.push(...l.flatMap(_=>i.map(y=>a(d,_,y,f))))},{immediate:!0,flush:"post"}),c=()=>{s(),o()};return Kn(c),c}function Wh(){const e=me(!1);return Sn()&&ze(()=>{e.value=!0}),e}function Fs(e){const t=Wh();return M(()=>(t.value,!!e()))}function Gh(e,t={}){const{window:l=Ei}=t,i=Fs(()=>l&&"matchMedia"in l&&typeof l.matchMedia=="function");let n;const r=me(!1),o=c=>{r.value=c.matches},a=()=>{n&&("removeEventListener"in n?n.removeEventListener("change",o):n.removeListener(o))},s=jo(()=>{i.value&&(a(),n=l.matchMedia($t(e)),"addEventListener"in n?n.addEventListener("change",o):n.addListener(o),r.value=n.matches)});return Kn(()=>{s(),a(),n=void 0}),r}function Jh(e={}){const{navigator:t=qh,read:l=!1,source:i,copiedDuring:n=1500,legacy:r=!1}=e,o=Fs(()=>t&&"clipboard"in t),a=M(()=>o.value||r),s=me(""),c=me(!1),d=zh(()=>c.value=!1,n);function h(){o.value?t.clipboard.readText().then(L=>{s.value=L}):s.value=y()}a.value&&l&&ki(["copy","cut"],h);async function f(L=$t(i)){a.value&&L!=null&&(o.value?await t.clipboard.writeText(L):_(L),s.value=L,c.value=!0,d.start())}function _(L){const A=document.createElement("textarea");A.value=L??"",A.style.position="absolute",A.style.opacity="0",document.body.appendChild(A),A.select(),document.execCommand("copy"),A.remove()}function y(){var L,A,b;return(b=(A=(L=document==null?void 0:document.getSelection)==null?void 0:L.call(document))==null?void 0:A.toString())!=null?b:""}return{isSupported:a,text:s,copied:c,copy:f}}const ii=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ni="__vueuse_ssr_handlers__",Yh=Qh();function Qh(){return ni in ii||(ii[ni]=ii[ni]||{}),ii[ni]}function Xh(e,t){return Yh[e]||t}function Zh(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ef={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},so="vueuse-storage";function tf(e,t,l,i={}){var n;const{flush:r="pre",deep:o=!0,listenToStorageChanges:a=!0,writeDefaults:s=!0,mergeDefaults:c=!1,shallow:d,window:h=Ei,eventFilter:f,onError:_=m=>{console.error(m)}}=i,y=(d?In:me)(t);if(!l)try{l=Xh("getDefaultStorage",()=>{var m;return(m=Ei)==null?void 0:m.localStorage})()}catch(m){_(m)}if(!l)return y;const L=$t(t),A=Zh(L),b=(n=i.serializer)!=null?n:ef[A],{pause:k,resume:x}=jh(y,()=>O(y.value),{flush:r,deep:o,eventFilter:f});return h&&a&&(ki(h,"storage",F),ki(h,so,Z)),F(),y;function O(m){try{if(m==null)l.removeItem(e);else{const U=b.write(m),H=l.getItem(e);H!==U&&(l.setItem(e,U),h&&h.dispatchEvent(new CustomEvent(so,{detail:{key:e,oldValue:H,newValue:U,storageArea:l}})))}}catch(U){_(U)}}function q(m){const U=m?m.newValue:l.getItem(e);if(U==null)return s&&L!==null&&l.setItem(e,b.write(L)),L;if(!m&&c){const H=b.read(U);return typeof c=="function"?c(H,L):A==="object"&&!Array.isArray(H)?{...L,...H}:H}else return typeof U!="string"?U:b.read(U)}function Z(m){F(m.detail)}function F(m){if(!(m&&m.storageArea!==l)){if(m&&m.key==null){y.value=L;return}if(!(m&&m.key!==e)){k();try{(m==null?void 0:m.newValue)!==b.write(y.value)&&(y.value=q(m))}catch(U){_(U)}finally{m?jl(x):x()}}}}}function lf(e){return Gh("(prefers-color-scheme: dark)",e)}const nf=()=>Cs(),je=()=>Ah(),$s=Symbol(""),Wn=()=>{const e=Re($s);if(!e)throw new Error("useDarkMode() is called without provider.");return e},rf=()=>{const e=je(),t=lf(),l=tf("vuepress-color-scheme",e.value.colorMode),i=M({get(){return e.value.colorModeSwitch?l.value==="auto"?t.value:l.value==="dark":e.value.colorMode==="dark"},set(n){n===t.value?l.value="auto":l.value=n?"dark":"light"}});Wt($s,i),of(i)},of=e=>{const t=(l=e.value)=>{const i=window==null?void 0:window.document.querySelector("html");i==null||i.classList.toggle("dark",l)};ze(()=>{et(e,t,{immediate:!0})}),xi(()=>t())},Ns=(...e)=>{const l=Yt().resolve(...e),i=l.matched[l.matched.length-1];if(!(i!=null&&i.redirect))return l;const{redirect:n}=i,r=oe(n)?n(l):n,o=_e(r)?{path:r}:r;return Ns({hash:l.hash,query:l.query,params:l.params,...o})},Gn=e=>{const t=Ns(encodeURI(e));return{text:t.meta.title||e,link:t.name==="404"?e:t.fullPath}};let Yi=null,yl=null;const sf={wait:()=>Yi,pending:()=>{Yi=new Promise(e=>yl=e)},resolve:()=>{yl==null||yl(),Yi=null,yl=null}},Ms=()=>sf,Hs=Symbol("sidebarItems"),Jn=()=>{const e=Re(Hs);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},af=()=>{const e=je(),t=gt(),l=M(()=>cf(t.value,e.value));Wt(Hs,l)},cf=(e,t)=>{const l=e.sidebar??t.sidebar??"auto",i=e.sidebarDepth??t.sidebarDepth??2;return e.home||l===!1?[]:l==="auto"?df(i):X(l)?Bs(l,i):$n(l)?hf(l,i):[]},uf=(e,t)=>({text:e.title,link:e.link,children:Yn(e.children,t)}),Yn=(e,t)=>t>0?e.map(l=>uf(l,t-1)):[],df=e=>{const t=Ct();return[{text:t.value.title,children:Yn(t.value.headers,e)}]},Bs=(e,t)=>{const l=Qt(),i=Ct(),n=r=>{var a;let o;if(_e(r)?o=Gn(r):o=r,o.children)return{...o,children:o.children.map(s=>n(s))};if(o.link===l.path){const s=((a=i.value.headers[0])==null?void 0:a.level)===1?i.value.headers[0].children:i.value.headers;return{...o,children:Yn(s,t)}}return o};return e.map(r=>n(r))},hf=(e,t)=>{const l=Qt(),i=ds(e,l.path),n=e[i]??[];return Bs(n,t)},ff="719px",vf={mobile:ff};var $l;(function(e){e.MOBILE="mobile"})($l||($l={}));var vo;const pf={[$l.MOBILE]:Number.parseInt((vo=vf.mobile)==null?void 0:vo.replace("px",""),10)},js=(e,t)=>{const l=pf[e];Number.isInteger(l)&&ze(()=>{t(l),window.addEventListener("resize",()=>t(l),!1),window.addEventListener("orientationchange",()=>t(l),!1)})},mf={},_f={class:"theme-default-content"};function gf(e,t){const l=kt("Content");return j(),ee("div",_f,[le(l)])}const bf=Ae(mf,[["render",gf],["__file","HomeContent.vue"]]),Ef={key:0,class:"features"},kf=he({__name:"HomeFeatures",setup(e){const t=gt(),l=M(()=>X(t.value.features)?t.value.features:[]);return(i,n)=>l.value.length?(j(),ee("div",Ef,[(j(!0),ee(ye,null,St(l.value,r=>(j(),ee("div",{key:r.title,class:"feature"},[ce("h2",null,De(r.title),1),ce("p",null,De(r.details),1)]))),128))])):Te("v-if",!0)}}),yf=Ae(kf,[["__file","HomeFeatures.vue"]]),Lf=["innerHTML"],Pf=["textContent"],Af=he({__name:"HomeFooter",setup(e){const t=gt(),l=M(()=>t.value.footer),i=M(()=>t.value.footerHtml);return(n,r)=>l.value?(j(),ee(ye,{key:0},[Te(" eslint-disable-next-line vue/no-v-html "),i.value?(j(),ee("div",{key:0,class:"footer",innerHTML:l.value},null,8,Lf)):(j(),ee("div",{key:1,class:"footer",textContent:De(l.value)},null,8,Pf))],64)):Te("v-if",!0)}}),wf=Ae(Af,[["__file","HomeFooter.vue"]]),Tf=["href","rel","target","aria-label"],Rf=he({inheritAttrs:!1}),If=he({...Rf,__name:"AutoLink",props:{item:{type:Object,required:!0}},setup(e){const t=e,l=Qt(),i=gs(),{item:n}=wi(t),r=M(()=>ql(n.value.link)),o=M(()=>Cu(n.value.link)||Vu(n.value.link)),a=M(()=>{if(!o.value){if(n.value.target)return n.value.target;if(r.value)return"_blank"}}),s=M(()=>a.value==="_blank"),c=M(()=>!r.value&&!o.value&&!s.value),d=M(()=>{if(!o.value){if(n.value.rel)return n.value.rel;if(s.value)return"noopener noreferrer"}}),h=M(()=>n.value.ariaLabel||n.value.text),f=M(()=>{const L=Object.keys(i.value.locales);return L.length?!L.some(A=>A===n.value.link):n.value.link!=="/"}),_=M(()=>f.value?l.path.startsWith(n.value.link):!1),y=M(()=>c.value?n.value.activeMatch?new RegExp(n.value.activeMatch).test(l.path):_.value:!1);return(L,A)=>{const b=kt("RouterLink"),k=kt("AutoLinkExternalIcon");return c.value?(j(),we(b,un({key:0,class:{"router-link-active":y.value},to:te(n).link,"aria-label":h.value},L.$attrs),{default:Ve(()=>[ke(L.$slots,"before"),ht(" "+De(te(n).text)+" ",1),ke(L.$slots,"after")]),_:3},16,["class","to","aria-label"])):(j(),ee("a",un({key:1,class:"external-link",href:te(n).link,rel:d.value,target:a.value,"aria-label":h.value},L.$attrs),[ke(L.$slots,"before"),ht(" "+De(te(n).text)+" ",1),s.value?(j(),we(k,{key:0})):Te("v-if",!0),ke(L.$slots,"after")],16,Tf))}}}),bt=Ae(If,[["__file","AutoLink.vue"]]),Of={class:"hero"},xf={key:0,id:"main-title"},Df={key:1,class:"description"},Cf={key:2,class:"actions"},Vf=he({__name:"HomeHero",setup(e){const t=gt(),l=Mn(),i=Wn(),n=M(()=>i.value&&t.value.heroImageDark!==void 0?t.value.heroImageDark:t.value.heroImage),r=M(()=>t.value.heroAlt||a.value||"hero"),o=M(()=>t.value.heroHeight||280),a=M(()=>t.value.heroText===null?null:t.value.heroText||l.value.title||"Hello"),s=M(()=>t.value.tagline===null?null:t.value.tagline||l.value.description||"Welcome to your VuePress site"),c=M(()=>X(t.value.actions)?t.value.actions.map(({text:h,link:f,type:_="primary"})=>({text:h,link:f,type:_})):[]),d=()=>{if(!n.value)return null;const h=ue("img",{src:Bn(n.value),alt:r.value,height:o.value});return t.value.heroImageDark===void 0?h:ue(Hn,()=>h)};return(h,f)=>(j(),ee("header",Of,[le(d),a.value?(j(),ee("h1",xf,De(a.value),1)):Te("v-if",!0),s.value?(j(),ee("p",Df,De(s.value),1)):Te("v-if",!0),c.value.length?(j(),ee("p",Cf,[(j(!0),ee(ye,null,St(c.value,_=>(j(),we(bt,{key:_.text,class:qe(["action-button",[_.type]]),item:_},null,8,["class","item"]))),128))])):Te("v-if",!0)]))}}),Sf=Ae(Vf,[["__file","HomeHero.vue"]]),Ff={class:"home"},$f=he({__name:"Home",setup(e){return(t,l)=>(j(),ee("main",Ff,[le(Sf),le(yf),le(bf),le(wf)]))}}),Nf=Ae($f,[["__file","Home.vue"]]),Mf=he({__name:"NavbarBrand",setup(e){const t=_l(),l=Mn(),i=je(),n=Wn(),r=M(()=>i.value.home||t.value),o=M(()=>l.value.title),a=M(()=>n.value&&i.value.logoDark!==void 0?i.value.logoDark:i.value.logo),s=()=>{if(!a.value)return null;const c=ue("img",{class:"logo",src:Bn(a.value),alt:o.value});return i.value.logoDark===void 0?c:ue(Hn,()=>c)};return(c,d)=>{const h=kt("RouterLink");return j(),we(h,{to:r.value},{default:Ve(()=>[le(s),o.value?(j(),ee("span",{key:0,class:qe(["site-name",{"can-hide":a.value}])},De(o.value),3)):Te("v-if",!0)]),_:1},8,["to"])}}}),Hf=Ae(Mf,[["__file","NavbarBrand.vue"]]),Bf=he({__name:"DropdownTransition",setup(e){const t=i=>{i.style.height=i.scrollHeight+"px"},l=i=>{i.style.height=""};return(i,n)=>(j(),we(Kl,{name:"dropdown",onEnter:t,onAfterEnter:l,onBeforeLeave:t},{default:Ve(()=>[ke(i.$slots,"default")]),_:3}))}}),zs=Ae(Bf,[["__file","DropdownTransition.vue"]]),jf=["aria-label"],zf={class:"title"},Uf=ce("span",{class:"arrow down"},null,-1),Kf=["aria-label"],qf={class:"title"},Wf={class:"navbar-dropdown"},Gf={class:"navbar-dropdown-subtitle"},Jf={key:1},Yf={class:"navbar-dropdown-subitem-wrapper"},Qf=he({__name:"NavbarDropdown",props:{item:{type:Object,required:!0}},setup(e){const t=e,{item:l}=wi(t),i=M(()=>l.value.ariaLabel||l.value.text),n=me(!1),r=Qt();et(()=>r.path,()=>{n.value=!1});const o=s=>{s.detail===0?n.value=!n.value:n.value=!1},a=(s,c)=>c[c.length-1]===s;return(s,c)=>(j(),ee("div",{class:qe(["navbar-dropdown-wrapper",{open:n.value}])},[ce("button",{class:"navbar-dropdown-title",type:"button","aria-label":i.value,onClick:o},[ce("span",zf,De(te(l).text),1),Uf],8,jf),ce("button",{class:"navbar-dropdown-title-mobile",type:"button","aria-label":i.value,onClick:c[0]||(c[0]=d=>n.value=!n.value)},[ce("span",qf,De(te(l).text),1),ce("span",{class:qe(["arrow",n.value?"down":"right"])},null,2)],8,Kf),le(zs,null,{default:Ve(()=>[fi(ce("ul",Wf,[(j(!0),ee(ye,null,St(te(l).children,d=>(j(),ee("li",{key:d.text,class:"navbar-dropdown-item"},[d.children?(j(),ee(ye,{key:0},[ce("h4",Gf,[d.link?(j(),we(bt,{key:0,item:d,onFocusout:h=>a(d,te(l).children)&&d.children.length===0&&(n.value=!1)},null,8,["item","onFocusout"])):(j(),ee("span",Jf,De(d.text),1))]),ce("ul",Yf,[(j(!0),ee(ye,null,St(d.children,h=>(j(),ee("li",{key:h.link,class:"navbar-dropdown-subitem"},[le(bt,{item:h,onFocusout:f=>a(h,d.children)&&a(d,te(l).children)&&(n.value=!1)},null,8,["item","onFocusout"])]))),128))])],64)):(j(),we(bt,{key:1,item:d,onFocusout:h=>a(d,te(l).children)&&(n.value=!1)},null,8,["item","onFocusout"]))]))),128))],512),[[gi,n.value]])]),_:1})],2))}}),Xf=Ae(Qf,[["__file","NavbarDropdown.vue"]]),ao=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),Zf=(e,t)=>{if(t.hash===e)return!0;const l=ao(t.path),i=ao(e);return l===i},Us=(e,t)=>e.link&&Zf(e.link,t)?!0:e.children?e.children.some(l=>Us(l,t)):!1,Ks=e=>!ql(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,ev={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},tv=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const l=Ks(e);return l!==null?ev[l]:null},lv=({docsRepo:e,docsBranch:t,docsDir:l,filePathRelative:i,editLinkPattern:n})=>{if(!i)return null;const r=tv({docsRepo:e,editLinkPattern:n});return r?r.replace(/:repo/,ql(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,us(`${cs(l)}/${i}`)):null},iv={key:0,class:"navbar-items"},nv=he({__name:"NavbarItems",setup(e){const t=()=>{const d=Yt(),h=_l(),f=gs(),_=Mn(),y=nf(),L=je();return M(()=>{const A=Object.keys(f.value.locales);if(A.length<2)return[];const b=d.currentRoute.value.path,k=d.currentRoute.value.fullPath;return[{text:`${L.value.selectLanguageText}`,ariaLabel:`${L.value.selectLanguageAriaLabel??L.value.selectLanguageText}`,children:A.map(O=>{var H,J;const q=((H=f.value.locales)==null?void 0:H[O])??{},Z=((J=y.value.locales)==null?void 0:J[O])??{},F=`${q.lang}`,m=Z.selectLanguageName??F;let U;if(F===_.value.lang)U=k;else{const R=b.replace(h.value,O);d.getRoutes().some(V=>V.path===R)?U=k.replace(b,R):U=Z.home??O}return{text:m,link:U}})}]})},l=()=>{const d=je(),h=M(()=>d.value.repo),f=M(()=>h.value?Ks(h.value):null),_=M(()=>h.value&&!ql(h.value)?`https://github.com/${h.value}`:h.value),y=M(()=>_.value?d.value.repoLabel?d.value.repoLabel:f.value===null?"Source":f.value:null);return M(()=>!_.value||!y.value?[]:[{text:y.value,link:_.value}])},i=d=>_e(d)?Gn(d):d.children?{...d,children:d.children.map(i)}:d,n=()=>{const d=je();return M(()=>(d.value.navbar||[]).map(i))},r=me(!1),o=n(),a=t(),s=l(),c=M(()=>[...o.value,...a.value,...s.value]);return js($l.MOBILE,d=>{window.innerWidthc.value.length?(j(),ee("nav",iv,[(j(!0),ee(ye,null,St(c.value,f=>(j(),ee("div",{key:f.text,class:"navbar-item"},[f.children?(j(),we(Xf,{key:0,item:f,class:qe(r.value?"mobile":"")},null,8,["item","class"])):(j(),we(bt,{key:1,item:f},null,8,["item"]))]))),128))])):Te("v-if",!0)}}),qs=Ae(nv,[["__file","NavbarItems.vue"]]),rv=["title"],ov={class:"icon",focusable:"false",viewBox:"0 0 32 32"},sv=jc('',9),av=[sv],cv={class:"icon",focusable:"false",viewBox:"0 0 32 32"},uv=ce("path",{d:"M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z",fill:"currentColor"},null,-1),dv=[uv],hv=he({__name:"ToggleColorModeButton",setup(e){const t=je(),l=Wn(),i=()=>{l.value=!l.value};return(n,r)=>(j(),ee("button",{class:"toggle-color-mode-button",title:te(t).toggleColorMode,onClick:i},[fi((j(),ee("svg",ov,av,512)),[[gi,!te(l)]]),fi((j(),ee("svg",cv,dv,512)),[[gi,te(l)]])],8,rv))}}),fv=Ae(hv,[["__file","ToggleColorModeButton.vue"]]),vv=["title"],pv=ce("div",{class:"icon","aria-hidden":"true"},[ce("span"),ce("span"),ce("span")],-1),mv=[pv],_v=he({__name:"ToggleSidebarButton",emits:["toggle"],setup(e){const t=je();return(l,i)=>(j(),ee("div",{class:"toggle-sidebar-button",title:te(t).toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:i[0]||(i[0]=n=>l.$emit("toggle"))},mv,8,vv))}}),gv=Ae(_v,[["__file","ToggleSidebarButton.vue"]]),bv=he({__name:"Navbar",emits:["toggle-sidebar"],setup(e){const t=je(),l=me(null),i=me(null),n=me(0),r=M(()=>n.value?{maxWidth:n.value+"px"}:{});js($l.MOBILE,a=>{var c;const s=o(l.value,"paddingLeft")+o(l.value,"paddingRight");window.innerWidth{const c=kt("NavbarSearch");return j(),ee("header",{ref_key:"navbar",ref:l,class:"navbar"},[le(gv,{onToggle:s[0]||(s[0]=d=>a.$emit("toggle-sidebar"))}),ce("span",{ref_key:"navbarBrand",ref:i},[le(Hf)],512),ce("div",{class:"navbar-items-wrapper",style:Ml(r.value)},[ke(a.$slots,"before"),le(qs,{class:"can-hide"}),ke(a.$slots,"after"),te(t).colorModeSwitch?(j(),we(fv,{key:0})):Te("v-if",!0),le(c)],4)],512)}}}),Ev=Ae(bv,[["__file","Navbar.vue"]]),kv={class:"page-meta"},yv={key:0,class:"meta-item edit-link"},Lv={key:1,class:"meta-item last-updated"},Pv={class:"meta-item-label"},Av={class:"meta-item-info"},wv={key:2,class:"meta-item contributors"},Tv={class:"meta-item-label"},Rv={class:"meta-item-info"},Iv=["title"],Ov=he({__name:"PageMeta",setup(e){const t=()=>{const s=je(),c=Ct(),d=gt();return M(()=>{if(!(d.value.editLink??s.value.editLink??!0))return null;const{repo:f,docsRepo:_=f,docsBranch:y="main",docsDir:L="",editLinkText:A}=s.value;if(!_)return null;const b=lv({docsRepo:_,docsBranch:y,docsDir:L,filePathRelative:c.value.filePathRelative,editLinkPattern:d.value.editLinkPattern??s.value.editLinkPattern});return b?{text:A??"Edit this page",link:b}:null})},l=()=>{const s=je(),c=Ct(),d=gt();return M(()=>{var _,y;return!(d.value.lastUpdated??s.value.lastUpdated??!0)||!((_=c.value.git)!=null&&_.updatedTime)?null:new Date((y=c.value.git)==null?void 0:y.updatedTime).toLocaleString()})},i=()=>{const s=je(),c=Ct(),d=gt();return M(()=>{var f;return d.value.contributors??s.value.contributors??!0?((f=c.value.git)==null?void 0:f.contributors)??null:null})},n=je(),r=t(),o=l(),a=i();return(s,c)=>{const d=kt("ClientOnly");return j(),ee("footer",kv,[te(r)?(j(),ee("div",yv,[le(bt,{class:"meta-item-label",item:te(r)},null,8,["item"])])):Te("v-if",!0),te(o)?(j(),ee("div",Lv,[ce("span",Pv,De(te(n).lastUpdatedText)+": ",1),le(d,null,{default:Ve(()=>[ce("span",Av,De(te(o)),1)]),_:1})])):Te("v-if",!0),te(a)&&te(a).length?(j(),ee("div",wv,[ce("span",Tv,De(te(n).contributorsText)+": ",1),ce("span",Rv,[(j(!0),ee(ye,null,St(te(a),(h,f)=>(j(),ee(ye,{key:f},[ce("span",{class:"contributor",title:`email: ${h.email}`},De(h.name),9,Iv),f!==te(a).length-1?(j(),ee(ye,{key:0},[ht(", ")],64)):Te("v-if",!0)],64))),128))])])):Te("v-if",!0)])}}}),xv=Ae(Ov,[["__file","PageMeta.vue"]]),Dv={key:0,class:"page-nav"},Cv={class:"inner"},Vv={key:0,class:"prev"},Sv={key:1,class:"next"},Fv=he({__name:"PageNav",setup(e){const t=s=>s===!1?null:_e(s)?Gn(s):$n(s)?s:!1,l=(s,c,d)=>{const h=s.findIndex(f=>f.link===c);if(h!==-1){const f=s[h+d];return f!=null&&f.link?f:null}for(const f of s)if(f.children){const _=l(f.children,c,d);if(_)return _}return null},i=gt(),n=Jn(),r=Qt(),o=M(()=>{const s=t(i.value.prev);return s!==!1?s:l(n.value,r.path,-1)}),a=M(()=>{const s=t(i.value.next);return s!==!1?s:l(n.value,r.path,1)});return(s,c)=>o.value||a.value?(j(),ee("nav",Dv,[ce("p",Cv,[o.value?(j(),ee("span",Vv,[le(bt,{item:o.value},null,8,["item"])])):Te("v-if",!0),a.value?(j(),ee("span",Sv,[le(bt,{item:a.value},null,8,["item"])])):Te("v-if",!0)])])):Te("v-if",!0)}}),$v=Ae(Fv,[["__file","PageNav.vue"]]),Nv={class:"page"},Mv={class:"theme-default-content"},Hv=he({__name:"Page",setup(e){return(t,l)=>{const i=kt("Content");return j(),ee("main",Nv,[ke(t.$slots,"top"),ce("div",Mv,[ke(t.$slots,"content-top"),le(i),ke(t.$slots,"content-bottom")]),le(xv),le($v),ke(t.$slots,"bottom")])}}}),Bv=Ae(Hv,[["__file","Page.vue"]]),jv=["onKeydown"],zv={class:"sidebar-item-children"},Uv=he({__name:"SidebarItem",props:{item:{type:Object,required:!0},depth:{type:Number,required:!1,default:0}},setup(e){const t=e,{item:l,depth:i}=wi(t),n=Qt(),r=Yt(),o=M(()=>Us(l.value,n)),a=M(()=>({"sidebar-item":!0,"sidebar-heading":i.value===0,active:o.value,collapsible:l.value.collapsible})),s=M(()=>l.value.collapsible?o.value:!0),[c,d]=Uh(s.value),h=_=>{l.value.collapsible&&(_.preventDefault(),d())},f=r.afterEach(_=>{jl(()=>{c.value=s.value})});return Ul(()=>{f()}),(_,y)=>{var A;const L=kt("SidebarItem",!0);return j(),ee("li",null,[te(l).link?(j(),we(bt,{key:0,class:qe(a.value),item:te(l)},null,8,["class","item"])):(j(),ee("p",{key:1,tabindex:"0",class:qe(a.value),onClick:h,onKeydown:Pu(h,["enter"])},[ht(De(te(l).text)+" ",1),te(l).collapsible?(j(),ee("span",{key:0,class:qe(["arrow",te(c)?"down":"right"])},null,2)):Te("v-if",!0)],42,jv)),(A=te(l).children)!=null&&A.length?(j(),we(zs,{key:2},{default:Ve(()=>[fi(ce("ul",zv,[(j(!0),ee(ye,null,St(te(l).children,b=>(j(),we(L,{key:`${te(i)}${b.text}${b.link}`,item:b,depth:te(i)+1},null,8,["item","depth"]))),128))],512),[[gi,te(c)]])]),_:1})):Te("v-if",!0)])}}}),Kv=Ae(Uv,[["__file","SidebarItem.vue"]]),qv={key:0,class:"sidebar-items"},Wv=he({__name:"SidebarItems",setup(e){const t=Qt(),l=Jn();return ze(()=>{et(()=>t.hash,i=>{const n=document.querySelector(".sidebar");if(!n)return;const r=document.querySelector(`.sidebar a.sidebar-item[href="${t.path}${i}"]`);if(!r)return;const{top:o,height:a}=n.getBoundingClientRect(),{top:s,height:c}=r.getBoundingClientRect();so+a&&r.scrollIntoView(!1)})}),(i,n)=>te(l).length?(j(),ee("ul",qv,[(j(!0),ee(ye,null,St(te(l),r=>(j(),we(Kv,{key:`${r.text}${r.link}`,item:r},null,8,["item"]))),128))])):Te("v-if",!0)}}),Gv=Ae(Wv,[["__file","SidebarItems.vue"]]),Jv={class:"sidebar"},Yv=he({__name:"Sidebar",setup(e){return(t,l)=>(j(),ee("aside",Jv,[le(qs),ke(t.$slots,"top"),le(Gv),ke(t.$slots,"bottom")]))}}),Qv=Ae(Yv,[["__file","Sidebar.vue"]]),Xv=he({__name:"Layout",setup(e){const t=Ct(),l=gt(),i=je(),n=M(()=>l.value.navbar!==!1&&i.value.navbar!==!1),r=Jn(),o=me(!1),a=A=>{o.value=typeof A=="boolean"?A:!o.value},s={x:0,y:0},c=A=>{s.x=A.changedTouches[0].clientX,s.y=A.changedTouches[0].clientY},d=A=>{const b=A.changedTouches[0].clientX-s.x,k=A.changedTouches[0].clientY-s.y;Math.abs(b)>Math.abs(k)&&Math.abs(b)>40&&(b>0&&s.x<=80?a(!0):a(!1))},h=M(()=>[{"no-navbar":!n.value,"no-sidebar":!r.value.length,"sidebar-open":o.value},l.value.pageClass]);let f;ze(()=>{f=Yt().afterEach(()=>{a(!1)})}),xi(()=>{f()});const _=Ms(),y=_.resolve,L=_.pending;return(A,b)=>(j(),ee("div",{class:qe(["theme-container",h.value]),onTouchstart:c,onTouchend:d},[ke(A.$slots,"navbar",{},()=>[n.value?(j(),we(Ev,{key:0,onToggleSidebar:a},{before:Ve(()=>[ke(A.$slots,"navbar-before")]),after:Ve(()=>[ke(A.$slots,"navbar-after")]),_:3})):Te("v-if",!0)]),ce("div",{class:"sidebar-mask",onClick:b[0]||(b[0]=k=>a(!1))}),ke(A.$slots,"sidebar",{},()=>[le(Qv,null,{top:Ve(()=>[ke(A.$slots,"sidebar-top")]),bottom:Ve(()=>[ke(A.$slots,"sidebar-bottom")]),_:3})]),ke(A.$slots,"page",{},()=>[te(l).home?(j(),we(Nf,{key:0})):(j(),we(Kl,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:te(y),onBeforeLeave:te(L)},{default:Ve(()=>[(j(),we(Bv,{key:te(t).path},{top:Ve(()=>[ke(A.$slots,"page-top")]),"content-top":Ve(()=>[ke(A.$slots,"page-content-top")]),"content-bottom":Ve(()=>[ke(A.$slots,"page-content-bottom")]),bottom:Ve(()=>[ke(A.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34))}}),Ws=Ae(Xv,[["__file","Layout.vue"]]),Zv={class:"theme-container"},ep={class:"page"},tp={class:"theme-default-content"},lp=ce("h1",null,"404",-1),ip=he({__name:"NotFound",setup(e){const t=_l(),l=je(),i=l.value.notFound??["Not Found"],n=()=>i[Math.floor(Math.random()*i.length)],r=l.value.home??t.value,o=l.value.backToHome??"Back to home";return(a,s)=>{const c=kt("RouterLink");return j(),ee("div",Zv,[ce("main",ep,[ce("div",tp,[lp,ce("blockquote",null,De(n()),1),le(c,{to:te(r)},{default:Ve(()=>[ht(De(te(o)),1)]),_:1},8,["to"])])])])}}}),np=Ae(ip,[["__file","NotFound.vue"]]);const rp=ft({enhance({app:e,router:t}){e.component("Badge",Ih),e.component("CodeGroup",Oh),e.component("CodeGroupItem",Vh),e.component("AutoLinkExternalIcon",()=>{const i=e.component("ExternalLinkIcon");return i?ue(i):null}),e.component("NavbarSearch",()=>{const i=e.component("Docsearch")||e.component("SearchBox");return i?ue(i):null});const l=t.options.scrollBehavior;t.options.scrollBehavior=async(...i)=>(await Ms().wait(),l(...i))},setup(){rf(),af()},layouts:{Layout:Ws,NotFound:np}});const op={};function sp(){const e=me(!1);return Sn()&&ze(()=>{e.value=!0}),e}function ap(e){return sp(),M(()=>!!e())}const cp=()=>ap(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),up=()=>{const e=cp();return M(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},dp=e=>{const t=_l();return M(()=>e[t.value])},hp=800,fp=2e3,vp={"/":{copy:"复制代码",copied:"已复制",hint:"复制成功"}},pp=!1,mp=['.theme-default-content div[class*="language-"] pre'],co=!1,Qi=new Map,_p=()=>{const{copy:e}=Jh({legacy:!0}),t=dp(vp),l=Ct(),i=up(),n=a=>{if(!a.hasAttribute("copy-code-registered")){const s=document.createElement("button");s.type="button",s.classList.add("copy-code-button"),s.innerHTML='
    ',s.setAttribute("aria-label",t.value.copy),s.setAttribute("data-copied",t.value.copied),a.parentElement&&a.parentElement.insertBefore(s,a),a.setAttribute("copy-code-registered","")}},r=()=>jl().then(()=>new Promise(a=>{setTimeout(()=>{mp.forEach(s=>{document.querySelectorAll(s).forEach(n)}),a()},hp)})),o=(a,s,c)=>{let{innerText:d=""}=s;/language-(shellscript|shell|bash|sh|zsh)/.test(a.classList.toString())&&(d=d.replace(/^ *(\$|>) /gm,"")),e(d).then(()=>{c.classList.add("copied"),clearTimeout(Qi.get(c));const h=setTimeout(()=>{c.classList.remove("copied"),c.blur(),Qi.delete(c)},fp);Qi.set(c,h)})};ze(()=>{(!i.value||co)&&r(),ki("click",a=>{const s=a.target;if(s.matches('div[class*="language-"] > button.copy')){const c=s.parentElement,d=s.nextElementSibling;d&&o(c,d,s)}else if(s.matches('div[class*="language-"] div.copy-icon')){const c=s.parentElement,d=c.parentElement,h=c.nextElementSibling;h&&o(d,h,c)}}),et(()=>l.value.path,()=>{(!i.value||co)&&r()})})};var gp=ft({setup:()=>{_p()}});const bp=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,Ep=(e,t)=>t.some(l=>{if(_e(l))return l===e.key;const{key:i,ctrl:n=!1,shift:r=!1,alt:o=!1}=l;return i===e.key&&n===e.ctrlKey&&r===e.shiftKey&&o===e.altKey}),kp=/[^\x00-\x7F]/,yp=e=>e.split(/\s+/g).map(t=>t.trim()).filter(t=>!!t),uo=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),ho=(e,t)=>{const l=t.join(" "),i=yp(e);if(kp.test(e))return i.some(o=>l.toLowerCase().indexOf(o)>-1);const n=e.endsWith(" ");return new RegExp(i.map((o,a)=>i.length===a+1&&!n?`(?=.*\\b${uo(o)})`:`(?=.*\\b${uo(o)}\\b)`).join("")+".+","gi").test(l)},Lp=({input:e,hotKeys:t})=>{if(t.value.length===0)return;const l=i=>{e.value&&Ep(i,t.value)&&!bp(i.target)&&(i.preventDefault(),e.value.focus())};ze(()=>{document.addEventListener("keydown",l)}),Ul(()=>{document.removeEventListener("keydown",l)})},Pp=[{title:"bilibili-API-collect",headers:[{level:2,title:"总则",slug:"总则",link:"#总则",children:[]},{level:2,title:"Issue与社群讨论",slug:"issue与社群讨论",link:"#issue与社群讨论",children:[]},{level:2,title:"目录与路径结构",slug:"目录与路径结构",link:"#目录与路径结构",children:[{level:3,title:"目录",slug:"目录",link:"#目录",children:[]},{level:3,title:"路径",slug:"路径",link:"#路径",children:[]},{level:3,title:"文件",slug:"文件",link:"#文件",children:[]}]},{level:2,title:"Markdown文档内容格式",slug:"markdown文档内容格式",link:"#markdown文档内容格式",children:[{level:3,title:"头部",slug:"头部",link:"#头部",children:[]},{level:3,title:"接口说明",slug:"接口说明",link:"#接口说明",children:[]},{level:3,title:"枚举值与属性位",slug:"枚举值与属性位",link:"#枚举值与属性位",children:[]}]},{level:2,title:"Proto定义格式",slug:"proto定义格式",link:"#proto定义格式",children:[]},{level:2,title:"文档提交",slug:"文档提交",link:"#文档提交",children:[]}],path:"/CONTRIBUTING.html",pathLocale:"/",extraFields:[]},{title:"",headers:[{level:2,title:"🌱参与贡献",slug:"🌱参与贡献",link:"#🌱参与贡献",children:[]},{level:2,title:"🍴目录",slug:"🍴目录",link:"#🍴目录",children:[]},{level:2,title:"✨鸣谢",slug:"✨鸣谢",link:"#✨鸣谢",children:[]},{level:2,title:"📖相关协议基础",slug:"📖相关协议基础",link:"#📖相关协议基础",children:[]},{level:2,title:"💦交流",slug:"💦交流",link:"#💦交流",children:[]},{level:2,title:"🧋发电",slug:"🧋发电",link:"#🧋发电",children:[]},{level:2,title:"🔗相关项目推荐",slug:"🔗相关项目推荐",link:"#🔗相关项目推荐",children:[{level:3,title:"库及文档",slug:"库及文档",link:"#库及文档",children:[]},{level:3,title:"成品",slug:"成品",link:"#成品",children:[]},{level:3,title:"其他",slug:"其他",link:"#其他",children:[]}]}],path:"/",pathLocale:"/",extraFields:[]},{title:"gRPC 接口定义(protobuf 结构体)",headers:[{level:2,title:"gRPC 主机",slug:"grpc-主机",link:"#grpc-主机",children:[]},{level:2,title:"gRPC 鉴权",slug:"grpc-鉴权",link:"#grpc-鉴权",children:[]},{level:2,title:"gRPC Metadata",slug:"grpc-metadata",link:"#grpc-metadata",children:[]},{level:2,title:"接口请求定义",slug:"接口请求定义",link:"#接口请求定义",children:[]},{level:2,title:"应用示例",slug:"应用示例",link:"#应用示例",children:[{level:3,title:"Golang",slug:"golang",link:"#golang",children:[]}]},{level:2,title:"附录",slug:"附录",link:"#附录",children:[{level:3,title:"x-bili-aurora-eid 生成算法",slug:"x-bili-aurora-eid-生成算法",link:"#x-bili-aurora-eid-生成算法",children:[]},{level:3,title:"x-bili-trace-id 生成算法",slug:"x-bili-trace-id-生成算法",link:"#x-bili-trace-id-生成算法",children:[]}]}],path:"/grpc_api/",pathLocale:"/",extraFields:[]},{title:"APP端开屏图片",headers:[{level:2,title:"获取APP端开屏图片列表",slug:"获取app端开屏图片列表",link:"#获取app端开屏图片列表",children:[]},{level:2,title:"获取APP端开屏幕广告信息",slug:"获取app端开屏幕广告信息",link:"#获取app端开屏幕广告信息",children:[]}],path:"/docs/APP_widget/splash.html",pathLocale:"/",extraFields:[]},{title:"获取最新 APP 版本",headers:[{level:2,title:"版本升级",slug:"版本升级",link:"#版本升级",children:[]}],path:"/docs/APP_widget/ver.html",pathLocale:"/",extraFields:[]},{title:"活动主题信息",headers:[{level:2,title:"主题信息",slug:"主题信息",link:"#主题信息",children:[]}],path:"/docs/activity/info.html",pathLocale:"/",extraFields:[]},{title:"活动列表",headers:[{level:2,title:"获取活动列表",slug:"获取活动列表",link:"#获取活动列表",children:[]}],path:"/docs/activity/list.html",pathLocale:"/",extraFields:[]},{title:"相簿操作",headers:[{level:2,title:"点赞相簿",slug:"点赞相簿",link:"#点赞相簿",children:[]},{level:2,title:"收藏相簿",slug:"收藏相簿",link:"#收藏相簿",children:[]},{level:2,title:"取消收藏相簿",slug:"取消收藏相簿",link:"#取消收藏相簿",children:[]}],path:"/docs/album/action.html",pathLocale:"/",extraFields:[]},{title:"相簿活动列表",headers:[{level:2,title:"获取相簿热门活动列表",slug:"获取相簿热门活动列表",link:"#获取相簿热门活动列表",children:[]}],path:"/docs/album/activity_list.html",pathLocale:"/",extraFields:[]},{title:"相簿基本信息",headers:[{level:2,title:"获取相簿详细信息",slug:"获取相簿详细信息",link:"#获取相簿详细信息",children:[]}],path:"/docs/album/info.html",pathLocale:"/",extraFields:[]},{title:"相簿列表",headers:[{level:2,title:"获取画友首页列表",slug:"获取画友首页列表",link:"#获取画友首页列表",children:[]},{level:2,title:"获取摄影首页列表",slug:"获取摄影首页列表",link:"#获取摄影首页列表",children:[]},{level:2,title:"获取画友列表",slug:"获取画友列表",link:"#获取画友列表",children:[]},{level:2,title:"获取摄影列表",slug:"获取摄影列表",link:"#获取摄影列表",children:[]},{level:2,title:"获取指定用户的相簿列表",slug:"获取指定用户的相簿列表",link:"#获取指定用户的相簿列表",children:[]}],path:"/docs/album/list.html",pathLocale:"/",extraFields:[]},{title:"相簿推荐作者",headers:[{level:2,title:"获取摄影推荐作者",slug:"获取摄影推荐作者",link:"#获取摄影推荐作者",children:[]},{level:2,title:"获取画友推荐作者",slug:"获取画友推荐作者",link:"#获取画友推荐作者",children:[]}],path:"/docs/album/recommend_author.html",pathLocale:"/",extraFields:[]},{title:"专栏投币&点赞&收藏",headers:[{level:2,title:"点赞文章",slug:"点赞文章",link:"#点赞文章",children:[]},{level:2,title:"投币文章",slug:"投币文章",link:"#投币文章",children:[]},{level:2,title:"收藏文章",slug:"收藏文章",link:"#收藏文章",children:[]}],path:"/docs/article/action.html",pathLocale:"/",extraFields:[]},{title:"文集基本信息",headers:[{level:2,title:"获取文集基本信息",slug:"获取文集基本信息",link:"#获取文集基本信息",children:[]}],path:"/docs/article/articles.html",pathLocale:"/",extraFields:[]},{title:"专栏分类",headers:[{level:2,title:"游戏",slug:"游戏",link:"#游戏",children:[]},{level:2,title:"动画",slug:"动画",link:"#动画",children:[]},{level:2,title:"生活",slug:"生活",link:"#生活",children:[]},{level:2,title:"轻小说",slug:"轻小说",link:"#轻小说",children:[]},{level:2,title:"科技",slug:"科技",link:"#科技",children:[]},{level:2,title:"影视",slug:"影视",link:"#影视",children:[]},{level:2,title:"兴趣",slug:"兴趣",link:"#兴趣",children:[]},{level:2,title:"笔记",slug:"笔记",link:"#笔记",children:[]}],path:"/docs/article/category.html",pathLocale:"/",extraFields:[]},{title:"专栏基本信息",headers:[{level:2,title:"获取专栏文章基本信息",slug:"获取专栏文章基本信息",link:"#获取专栏文章基本信息",children:[]}],path:"/docs/article/info.html",pathLocale:"/",extraFields:[]},{title:"获取用户专栏信息",headers:[{level:2,title:"获取用户专栏文章列表",slug:"获取用户专栏文章列表",link:"#获取用户专栏文章列表",children:[]},{level:2,title:"获取用户专栏文集列表",slug:"获取用户专栏文集列表",link:"#获取用户专栏文集列表",children:[]}],path:"/docs/article/list.html",pathLocale:"/",extraFields:[]},{title:"音频投币&收藏",headers:[{level:2,title:"查询音频收藏状态",slug:"查询音频收藏状态",link:"#查询音频收藏状态",children:[]},{level:2,title:"查询音频投币数",slug:"查询音频投币数",link:"#查询音频投币数",children:[]},{level:2,title:"投币音频",slug:"投币音频",link:"#投币音频",children:[]}],path:"/docs/audio/action.html",pathLocale:"/",extraFields:[]},{title:"歌曲基本信息",headers:[{level:2,title:"查询歌曲基本信息",slug:"查询歌曲基本信息",link:"#查询歌曲基本信息",children:[]},{level:2,title:"查询歌曲TAG",slug:"查询歌曲tag",link:"#查询歌曲tag",children:[]},{level:2,title:"查询歌曲创作成员列表",slug:"查询歌曲创作成员列表",link:"#查询歌曲创作成员列表",children:[]},{level:2,title:"获取歌曲歌词",slug:"获取歌曲歌词",link:"#获取歌曲歌词",children:[]}],path:"/docs/audio/info.html",pathLocale:"/",extraFields:[]},{title:"歌单&音频收藏夹详细信息",headers:[{level:2,title:"查询自己创建的歌单",slug:"查询自己创建的歌单",link:"#查询自己创建的歌单",children:[]},{level:2,title:"查询音频收藏夹(默认歌单)信息",slug:"查询音频收藏夹-默认歌单-信息",link:"#查询音频收藏夹-默认歌单-信息",children:[]},{level:2,title:"查询热门歌单",slug:"查询热门歌单",link:"#查询热门歌单",children:[]},{level:2,title:"查询热门榜单",slug:"查询热门榜单",link:"#查询热门榜单",children:[]}],path:"/docs/audio/music_list.html",pathLocale:"/",extraFields:[]},{title:"音频流URL",headers:[{level:2,title:"音质qn参数定义",slug:"音质qn参数定义",link:"#音质qn参数定义",children:[]},{level:2,title:"获取音频流URL(web端)",slug:"获取音频流url-web端",link:"#获取音频流url-web端",children:[]},{level:2,title:"获取音频流URL(可获取付费音频)",slug:"获取音频流url-可获取付费音频",link:"#获取音频流url-可获取付费音频",children:[]},{level:2,title:"音频流的获取",slug:"音频流的获取",link:"#音频流的获取",children:[]}],path:"/docs/audio/musicstream_url.html",pathLocale:"/",extraFields:[]},{title:"音频榜单",headers:[{level:2,title:"获取音频榜单每期列表",slug:"获取音频榜单每期列表",link:"#获取音频榜单每期列表",children:[]},{level:2,title:"查询音频榜单单期信息",slug:"查询音频榜单单期信息",link:"#查询音频榜单单期信息",children:[]},{level:2,title:"获取音频榜单单期内容",slug:"获取音频榜单单期内容",link:"#获取音频榜单单期内容",children:[]},{level:2,title:"订阅或退订榜单",slug:"订阅或退订榜单",link:"#订阅或退订榜单",children:[]}],path:"/docs/audio/rank.html",pathLocale:"/",extraFields:[]},{title:"音频状态数",headers:[{level:2,title:"歌曲状态数",slug:"歌曲状态数",link:"#歌曲状态数",children:[]}],path:"/docs/audio/status_number.html",pathLocale:"/",extraFields:[]},{title:"追番相关",headers:[{level:2,title:"追番",slug:"追番",link:"#追番",children:[]},{level:2,title:"取消追番",slug:"取消追番",link:"#取消追番",children:[]}],path:"/docs/bangumi/follow.html",pathLocale:"/",extraFields:[]},{title:"剧集基本信息",headers:[{level:2,title:"剧集基本信息(mdid方式)",slug:"剧集基本信息-mdid方式",link:"#剧集基本信息-mdid方式",children:[]},{level:2,title:"获取剧集明细(web端)(ssid/epid方式)",slug:"获取剧集明细-web端-ssid-epid方式",link:"#获取剧集明细-web端-ssid-epid方式",children:[]}],path:"/docs/bangumi/info.html",pathLocale:"/",extraFields:[]},{title:"番剧或影视时间线",headers:[{level:2,title:"获取番剧或影视时间线",slug:"获取番剧或影视时间线",link:"#获取番剧或影视时间线",children:[]}],path:"/docs/bangumi/timeline.html",pathLocale:"/",extraFields:[]},{title:"视频流URL",headers:[{level:2,title:"qn视频清晰度标识",slug:"qn视频清晰度标识",link:"#qn视频清晰度标识",children:[]},{level:2,title:"fnver视频流版本标识",slug:"fnver视频流版本标识",link:"#fnver视频流版本标识",children:[]},{level:2,title:"fnval视频流格式标识",slug:"fnval视频流格式标识",link:"#fnval视频流格式标识",children:[]},{level:2,title:"视频编码代码",slug:"视频编码代码",link:"#视频编码代码",children:[]},{level:2,title:"视频伴音音质代码",slug:"视频伴音音质代码",link:"#视频伴音音质代码",children:[]},{level:2,title:"获取番剧视频流URL",slug:"获取番剧视频流url",link:"#获取番剧视频流url",children:[]},{level:2,title:"视频的取流(web端及APP端)",slug:"视频的取流-web端及app端",link:"#视频的取流-web端及app端",children:[]}],path:"/docs/bangumi/videostream_url.html",pathLocale:"/",extraFields:[]},{title:"封禁公示",headers:[{level:2,title:"Enum类型代码",slug:"enum类型代码",link:"#enum类型代码",children:[{level:3,title:"表1:已知的封禁原因类型代码总览",slug:"表1-已知的封禁原因类型代码总览",link:"#表1-已知的封禁原因类型代码总览",children:[]},{level:3,title:"表2:已知的违规类型代码",slug:"表2-已知的违规类型代码",link:"#表2-已知的违规类型代码",children:[]}]},{level:2,title:"获取封禁用户公示列表",slug:"获取封禁用户公示列表",link:"#获取封禁用户公示列表",children:[]},{level:2,title:"封禁处理公示详情",slug:"封禁处理公示详情",link:"#封禁处理公示详情",children:[]}],path:"/docs/blackroom/banlist.html",pathLocale:"/",extraFields:[]},{title:"全站广播",headers:[{level:2,title:"获取广播服务器地址",slug:"获取广播服务器地址",link:"#获取广播服务器地址",children:[]},{level:2,title:"服务器数据包",slug:"服务器数据包",link:"#服务器数据包",children:[{level:3,title:"数据包结构",slug:"数据包结构",link:"#数据包结构",children:[]}]}],path:"/docs/broadcast/",pathLocale:"/",extraFields:[]},{title:"视频实时信息",headers:[{level:2,title:"认证包(上行)",slug:"认证包-上行",link:"#认证包-上行",children:[]},{level:2,title:"认证包回复(下行)",slug:"认证包回复-下行",link:"#认证包回复-下行",children:[]},{level:2,title:"心跳包(上行)",slug:"心跳包-上行",link:"#心跳包-上行",children:[]},{level:2,title:"心跳包回复(实时观看数)(下行)",slug:"心跳包回复-实时观看数-下行",link:"#心跳包回复-实时观看数-下行",children:[]},{level:2,title:"普通包(实时弹幕)(下行)",slug:"普通包-实时弹幕-下行",link:"#普通包-实时弹幕-下行",children:[]}],path:"/docs/broadcast/video_room.html",pathLocale:"/",extraFields:[]},{title:"课程基本信息",headers:[{level:2,title:"获取课程基本信息",slug:"获取课程基本信息",link:"#获取课程基本信息",children:[]},{level:2,title:"获取课程分集列表",slug:"获取课程分集列表",link:"#获取课程分集列表",children:[]}],path:"/docs/cheese/info.html",pathLocale:"/",extraFields:[]},{title:"课程视频流URL",headers:[{level:2,title:"获取课程视频流URL(web端)",slug:"获取课程视频流url-web端",link:"#获取课程视频流url-web端",children:[]}],path:"/docs/cheese/videostream_url.html",pathLocale:"/",extraFields:[]},{title:"通过ip确定地理位置",headers:[{level:2,title:"根据请求IP确定属地",slug:"根据请求ip确定属地",link:"#根据请求ip确定属地",children:[]},{level:2,title:"查询任意 IP 地址的归属地",slug:"查询任意-ip-地址的归属地",link:"#查询任意-ip-地址的归属地",children:[]}],path:"/docs/clientinfo/ip.html",pathLocale:"/",extraFields:[]},{title:"评论区操作",headers:[{level:2,title:"发表评论",slug:"发表评论",link:"#发表评论",children:[]},{level:2,title:"点赞评论",slug:"点赞评论",link:"#点赞评论",children:[]},{level:2,title:"点踩评论",slug:"点踩评论",link:"#点踩评论",children:[]},{level:2,title:"删除评论",slug:"删除评论",link:"#删除评论",children:[]},{level:2,title:"置顶评论",slug:"置顶评论",link:"#置顶评论",children:[]},{level:2,title:"举报评论",slug:"举报评论",link:"#举报评论",children:[]}],path:"/docs/comment/action.html",pathLocale:"/",extraFields:[]},{title:"评论区明细",headers:[{level:2,title:"获取评论区明细_翻页加载",slug:"获取评论区明细-翻页加载",link:"#获取评论区明细-翻页加载",children:[]},{level:2,title:"获取评论区明细_懒加载",slug:"获取评论区明细-懒加载",link:"#获取评论区明细-懒加载",children:[]},{level:2,title:"获取指定评论的回复",slug:"获取指定评论的回复",link:"#获取指定评论的回复",children:[]},{level:2,title:"获取指定评论对话树",slug:"获取指定评论对话树",link:"#获取指定评论对话树",children:[]},{level:2,title:"获取评论区热评",slug:"获取评论区热评",link:"#获取评论区热评",children:[]},{level:2,title:"获取指定评论信息",slug:"获取指定评论信息",link:"#获取指定评论信息",children:[]},{level:2,title:"获取评论区评论总数",slug:"获取评论区评论总数",link:"#获取评论区评论总数",children:[]}],path:"/docs/comment/list.html",pathLocale:"/",extraFields:[]},{title:"评论区",headers:[{level:2,title:"评论区类型代码",slug:"评论区类型代码",link:"#评论区类型代码",children:[]},{level:2,title:"评论条目对象",slug:"评论条目对象",link:"#评论条目对象",children:[]}],path:"/docs/comment/",pathLocale:"/",extraFields:[]},{title:"电磁力相关",headers:[{level:2,title:"获取电磁力等级(web端)",slug:"获取电磁力等级-web端",link:"#获取电磁力等级-web端",children:[]},{level:2,title:"(失效)获取电磁力详细数值(双端)",slug:"失效-获取电磁力详细数值-双端",link:"#失效-获取电磁力详细数值-双端",children:[]},{level:2,title:"获取电磁力数值历史变化(双端)",slug:"获取电磁力数值历史变化-双端",link:"#获取电磁力数值历史变化-双端",children:[]}],path:"/docs/creativecenter/railgun.html",pathLocale:"/",extraFields:[]},{title:"合集管理",headers:[{level:2,title:"获取合集列表",slug:"获取合集列表",link:"#获取合集列表",children:[]},{level:2,title:"创建合集",slug:"创建合集",link:"#创建合集",children:[]},{level:2,title:"添加视频到合集",slug:"添加视频到合集",link:"#添加视频到合集",children:[]},{level:2,title:"编辑合集小节",slug:"编辑合集小节",link:"#编辑合集小节",children:[]},{level:2,title:"编辑合集信息",slug:"编辑合集信息",link:"#编辑合集信息",children:[]},{level:2,title:"删除合集",slug:"删除合集",link:"#删除合集",children:[]}],path:"/docs/creativecenter/season.html",pathLocale:"/",extraFields:[]},{title:"统计与数据",headers:[{level:2,title:"UP主视频状态数据",slug:"up主视频状态数据",link:"#up主视频状态数据",children:[]},{level:2,title:"新版UP主视频数据比较",slug:"新版up主视频数据比较",link:"#新版up主视频数据比较",children:[]},{level:2,title:"UP主专栏状态数据",slug:"up主专栏状态数据",link:"#up主专栏状态数据",children:[]},{level:2,title:"视频数据增量趋势",slug:"视频数据增量趋势",link:"#视频数据增量趋势",children:[]},{level:2,title:"专栏数据增量趋势",slug:"专栏数据增量趋势",link:"#专栏数据增量趋势",children:[]},{level:2,title:"稿件操作来源占比情况",slug:"稿件操作来源占比情况",link:"#稿件操作来源占比情况",children:[]},{level:2,title:"播放来源占比情况(平台及方式)",slug:"播放来源占比情况-平台及方式",link:"#播放来源占比情况-平台及方式",children:[]},{level:2,title:"播放分布情况(粉丝与路人)",slug:"播放分布情况-粉丝与路人",link:"#播放分布情况-粉丝与路人",children:[]}],path:"/docs/creativecenter/statistics_data.html",pathLocale:"/",extraFields:[]},{title:"投稿",headers:[{level:2,title:"上传封面",slug:"上传封面",link:"#上传封面",children:[]},{level:2,title:"预测稿件类型",slug:"预测稿件类型",link:"#预测稿件类型",children:[]},{level:2,title:"预测稿件标签",slug:"预测稿件标签",link:"#预测稿件标签",children:[]},{level:2,title:"投递视频稿件",slug:"投递视频稿件",link:"#投递视频稿件",children:[]},{level:2,title:"上传视频文件",slug:"上传视频文件",link:"#上传视频文件",children:[{level:3,title:"上传流程",slug:"上传流程",link:"#上传流程",children:[]},{level:3,title:"上传接口",slug:"上传接口",link:"#上传接口",children:[]},{level:3,title:"Demo",slug:"demo",link:"#demo",children:[]}]}],path:"/docs/creativecenter/upload.html",pathLocale:"/",extraFields:[]},{title:"视频相关杂项",headers:[{level:2,title:"获取稿件列表",slug:"获取稿件列表",link:"#获取稿件列表",children:[]},{level:2,title:"视频基础信息",slug:"视频基础信息",link:"#视频基础信息",children:[]}],path:"/docs/creativecenter/videos.html",pathLocale:"/",extraFields:[]},{title:"客服消息",headers:[{level:2,title:"心跳",slug:"心跳",link:"#心跳",children:[]},{level:2,title:"上传文件",slug:"上传文件",link:"#上传文件",children:[]}],path:"/docs/customerservice/msg.html",pathLocale:"/",extraFields:[]},{title:"弹幕操作",headers:[{level:2,title:"发送视频弹幕",slug:"发送视频弹幕",link:"#发送视频弹幕",children:[]},{level:2,title:"发送互动弹幕",slug:"发送互动弹幕",link:"#发送互动弹幕",children:[]},{level:2,title:"发送打分弹幕",slug:"发送打分弹幕",link:"#发送打分弹幕",children:[]},{level:2,title:"撤回弹幕",slug:"撤回弹幕",link:"#撤回弹幕",children:[]},{level:2,title:"购买高级弹幕发送权限",slug:"购买高级弹幕发送权限",link:"#购买高级弹幕发送权限",children:[]},{level:2,title:"检测高级弹幕发送权限",slug:"检测高级弹幕发送权限",link:"#检测高级弹幕发送权限",children:[]},{level:2,title:"点赞弹幕",slug:"点赞弹幕",link:"#点赞弹幕",children:[]},{level:2,title:"举报弹幕",slug:"举报弹幕",link:"#举报弹幕",children:[]},{level:2,title:"保护&删除弹幕",slug:"保护-删除弹幕",link:"#保护-删除弹幕",children:[]},{level:2,title:"修改字幕池",slug:"修改字幕池",link:"#修改字幕池",children:[]}],path:"/docs/danmaku/action.html",pathLocale:"/",extraFields:[]},{title:"名词解释",headers:[{level:2,title:"拉取名词解释列表",slug:"拉取名词解释列表",link:"#拉取名词解释列表",children:[]},{level:2,title:"查询名词解释详情",slug:"查询名词解释详情",link:"#查询名词解释详情",children:[]}],path:"/docs/danmaku/buzzword.html",pathLocale:"/",extraFields:[]},{title:"弹幕个人配置修改",headers:[{level:2,title:"修改弹幕个人配置(web端)",slug:"修改弹幕个人配置-web端",link:"#修改弹幕个人配置-web端",children:[]}],path:"/docs/danmaku/config.html",pathLocale:"/",extraFields:[]},{title:"protobuf弹幕",headers:[{level:2,title:"获取实时弹幕",slug:"获取实时弹幕",link:"#获取实时弹幕",children:[]}],path:"/docs/danmaku/danmaku_proto.html",pathLocale:"/",extraFields:[]},{title:"弹幕元数据",headers:[{level:2,title:"获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端)",slug:"获取弹幕个人配置与互动弹幕及bas-代码-弹幕专包-web端",link:"#获取弹幕个人配置与互动弹幕及bas-代码-弹幕专包-web端",children:[]},{level:2,title:"实例",slug:"实例",link:"#实例",children:[{level:3,title:"获取互动弹幕",slug:"获取互动弹幕",link:"#获取互动弹幕",children:[]},{level:3,title:"获取BAS(代码)弹幕专包",slug:"获取bas-代码-弹幕专包",link:"#获取bas-代码-弹幕专包",children:[]}]}],path:"/docs/danmaku/danmaku_view_proto.html",pathLocale:"/",extraFields:[]},{title:"xml弹幕",headers:[{level:2,title:"获取实时弹幕1",slug:"获取实时弹幕1",link:"#获取实时弹幕1",children:[]},{level:2,title:"获取实时弹幕2",slug:"获取实时弹幕2",link:"#获取实时弹幕2",children:[]},{level:2,title:"弹幕格式",slug:"弹幕格式",link:"#弹幕格式",children:[{level:3,title:"xml格式结构",slug:"xml格式结构",link:"#xml格式结构",children:[]},{level:3,title:"属性 p",slug:"属性-p",link:"#属性-p",children:[]},{level:3,title:"web版标准颜色",slug:"web版标准颜色",link:"#web版标准颜色",children:[]}]}],path:"/docs/danmaku/danmaku_xml.html",pathLocale:"/",extraFields:[]},{title:"历史弹幕",headers:[{level:2,title:"查询历史弹幕日期",slug:"查询历史弹幕日期",link:"#查询历史弹幕日期",children:[]},{level:2,title:"获取历史弹幕protobuf接口",slug:"获取历史弹幕protobuf接口",link:"#获取历史弹幕protobuf接口",children:[]},{level:2,title:"获取历史弹幕xml接口",slug:"获取历史弹幕xml接口",link:"#获取历史弹幕xml接口",children:[]}],path:"/docs/danmaku/history.html",pathLocale:"/",extraFields:[]},{title:"弹幕快照",headers:[{level:2,title:"获取弹幕快照",slug:"获取弹幕快照",link:"#获取弹幕快照",children:[]}],path:"/docs/danmaku/snapshot.html",pathLocale:"/",extraFields:[]},{title:"弹幕点赞查询",headers:[{level:2,title:"查询指定dmid的点赞数",slug:"查询指定dmid的点赞数",link:"#查询指定dmid的点赞数",children:[]}],path:"/docs/danmaku/thumbup.html",pathLocale:"/",extraFields:[]},{title:"智能防挡弹幕",headers:[{level:2,title:"获取 webmask 资源地址",slug:"获取-webmask-资源地址",link:"#获取-webmask-资源地址",children:[]},{level:2,title:"webmask 资源",slug:"webmask-资源",link:"#webmask-资源",children:[]},{level:2,title:"webmask 二进制读取",slug:"webmask-二进制读取",link:"#webmask-二进制读取",children:[]}],path:"/docs/danmaku/webmask.html",pathLocale:"/",extraFields:[]},{title:"动态操作",headers:[{level:2,title:"删除动态",slug:"删除动态",link:"#删除动态",children:[]}],path:"/docs/dynamic/action.html",pathLocale:"/",extraFields:[]},{title:"获取动态列表",headers:[{level:2,title:"获取全部动态列表",slug:"获取全部动态列表",link:"#获取全部动态列表",children:[]},{level:2,title:"检测是否有新动态",slug:"检测是否有新动态",link:"#检测是否有新动态",children:[]}],path:"/docs/dynamic/all.html",pathLocale:"/",extraFields:[]},{title:"根据关键字搜索用户 (at别人时的填充列表)",headers:[],path:"/docs/dynamic/atlist.html",pathLocale:"/",extraFields:[]},{title:"动态基本信息",headers:[{level:2,title:"动态转发列表",slug:"动态转发列表",link:"#动态转发列表",children:[]},{level:2,title:"动态点赞列表",slug:"动态点赞列表",link:"#动态点赞列表",children:[]},{level:2,title:"获取草稿列表",slug:"获取草稿列表",link:"#获取草稿列表",children:[]}],path:"/docs/dynamic/basicInfo.html",pathLocale:"/",extraFields:[]},{title:"动态详细信息字段",headers:[{level:2,title:"在转发类动态中(type=1)",slug:"在转发类动态中-type-1",link:"#在转发类动态中-type-1",children:[]},{level:2,title:"在图片动态中(type=2)",slug:"在图片动态中-type-2",link:"#在图片动态中-type-2",children:[]},{level:2,title:"在文字动态中(type=4)",slug:"在文字动态中-type-4",link:"#在文字动态中-type-4",children:[]},{level:2,title:"在视频投稿动态中(type=8)",slug:"在视频投稿动态中-type-8",link:"#在视频投稿动态中-type-8",children:[]},{level:2,title:"在专栏投稿动态中(type=64)",slug:"在专栏投稿动态中-type-64",link:"#在专栏投稿动态中-type-64",children:[]},{level:2,title:"在音频投稿动态中(type=256)",slug:"在音频投稿动态中-type-256",link:"#在音频投稿动态中-type-256",children:[]}],path:"/docs/dynamic/card_info.html",pathLocale:"/",extraFields:[]},{title:"动态信息",headers:[{level:2,title:"获取正在直播的已关注者",slug:"获取正在直播的已关注者",link:"#获取正在直播的已关注者",children:[]},{level:2,title:"获取发布新动态的已关注者",slug:"获取发布新动态的已关注者",link:"#获取发布新动态的已关注者",children:[]}],path:"/docs/dynamic/content.html",pathLocale:"/",extraFields:[]},{title:"获取动态详情",headers:[{level:2,title:"URL参数",slug:"url参数",link:"#url参数",children:[]},{level:2,title:"Json回复",slug:"json回复",link:"#json回复",children:[{level:3,title:"根对象",slug:"根对象",link:"#根对象",children:[]},{level:3,title:"data对象",slug:"data对象",link:"#data对象",children:[]},{level:3,title:"data对象 -> item对象",slug:"data对象-item对象",link:"#data对象-item对象",children:[]}]},{level:2,title:"请求示例",slug:"请求示例",link:"#请求示例",children:[]},{level:2,title:"响应示例",slug:"响应示例",link:"#响应示例",children:[]}],path:"/docs/dynamic/detail.html",pathLocale:"/",extraFields:[]},{title:"动态类型对照",headers:[{level:2,title:"动态类型",slug:"动态类型",link:"#动态类型",children:[]},{level:2,title:"富文本节点类型",slug:"富文本节点类型",link:"#富文本节点类型",children:[]},{level:2,title:"作者类型",slug:"作者类型",link:"#作者类型",children:[]},{level:2,title:"相关内容卡片类型",slug:"相关内容卡片类型",link:"#相关内容卡片类型",children:[]},{level:2,title:"动态主体类型",slug:"动态主体类型",link:"#动态主体类型",children:[]}],path:"/docs/dynamic/dynamic_enum.html",pathLocale:"/",extraFields:[]},{title:"获取特定动态卡片信息",headers:[{level:2,title:"最近更新UP主列表",slug:"最近更新up主列表",link:"#最近更新up主列表",children:[]}],path:"/docs/dynamic/get_dynamic_detail.html",pathLocale:"/",extraFields:[]},{title:"获取导航栏动态",headers:[{level:2,title:"获取导航栏动态列表",slug:"获取导航栏动态列表",link:"#获取导航栏动态列表",children:[]}],path:"/docs/dynamic/nav.html",pathLocale:"/",extraFields:[]},{title:"发布动态",headers:[{level:2,title:"为图片动态上传图片",slug:"为图片动态上传图片",link:"#为图片动态上传图片",children:[]},{level:2,title:"创建投票",slug:"创建投票",link:"#创建投票",children:[]},{level:2,title:"发表纯文本动态",slug:"发表纯文本动态",link:"#发表纯文本动态",children:[]},{level:2,title:"发表复杂动态",slug:"发表复杂动态",link:"#发表复杂动态",children:[]},{level:2,title:"立即发布定时动态",slug:"立即发布定时动态",link:"#立即发布定时动态",children:[]}],path:"/docs/dynamic/publish.html",pathLocale:"/",extraFields:[]},{title:"获取用户空间动态",headers:[{level:2,title:"URL参数",slug:"url参数",link:"#url参数",children:[]},{level:2,title:"Json回复",slug:"json回复",link:"#json回复",children:[]},{level:2,title:"请求示例",slug:"请求示例",link:"#请求示例",children:[]},{level:2,title:"响应示例",slug:"响应示例",link:"#响应示例",children:[]}],path:"/docs/dynamic/space.html",pathLocale:"/",extraFields:[]},{title:"话题下特定动态信息",headers:[{level:2,title:"获取包含置顶及热门的动态列表",slug:"获取包含置顶及热门的动态列表",link:"#获取包含置顶及热门的动态列表",children:[]},{level:2,title:"获取历史动态列表",slug:"获取历史动态列表",link:"#获取历史动态列表",children:[]}],path:"/docs/dynamic/tag_dynamics.html",pathLocale:"/",extraFields:[]},{title:"话题搜索",headers:[{level:2,title:"搜索发布话题",slug:"搜索发布话题",link:"#搜索发布话题",children:[]},{level:2,title:"推荐搜索话题?",slug:"推荐搜索话题",link:"#推荐搜索话题",children:[]}],path:"/docs/dynamic/topic.html",pathLocale:"/",extraFields:[]},{title:"B币方式充电",headers:[{level:2,title:"新版本B币充电",slug:"新版本b币充电",link:"#新版本b币充电",children:[]},{level:2,title:"老版本B币充电",slug:"老版本b币充电",link:"#老版本b币充电",children:[]}],path:"/docs/electric/Bcoin.html",pathLocale:"/",extraFields:[]},{title:"微信&支付宝方式充电",headers:[{level:2,title:"申请充电二维码及扫码秘钥",slug:"申请充电二维码及扫码秘钥",link:"#申请充电二维码及扫码秘钥",children:[]},{level:2,title:"检查扫码支付结果",slug:"检查扫码支付结果",link:"#检查扫码支付结果",children:[]}],path:"/docs/electric/WeChat_Alipay.html",pathLocale:"/",extraFields:[]},{title:"充电列表",headers:[{level:2,title:"获取空间充电公示列表",slug:"获取空间充电公示列表",link:"#获取空间充电公示列表",children:[]},{level:2,title:"获取视频充电鸣谢名单",slug:"获取视频充电鸣谢名单",link:"#获取视频充电鸣谢名单",children:[]},{level:2,title:"查询我收到的充电列表",slug:"查询我收到的充电列表",link:"#查询我收到的充电列表",children:[]},{level:2,title:"查询历史充电数据",slug:"查询历史充电数据",link:"#查询历史充电数据",children:[]}],path:"/docs/electric/charge_list.html",pathLocale:"/",extraFields:[]},{title:"充电留言",headers:[{level:2,title:"发送充电留言",slug:"发送充电留言",link:"#发送充电留言",children:[]},{level:2,title:"查询我收到的充电留言",slug:"查询我收到的充电留言",link:"#查询我收到的充电留言",children:[]},{level:2,title:"查询充电留言详情",slug:"查询充电留言详情",link:"#查询充电留言详情",children:[]},{level:2,title:"回复充电留言",slug:"回复充电留言",link:"#回复充电留言",children:[]}],path:"/docs/electric/charge_msg.html",pathLocale:"/",extraFields:[]},{title:"包月充电",headers:[{level:2,title:"获取包月充电列表",slug:"获取包月充电列表",link:"#获取包月充电列表",children:[]},{level:2,title:"UP主包月充电详情",slug:"up主包月充电详情",link:"#up主包月充电详情",children:[]},{level:2,title:"与UP主的包月充电关系",slug:"与up主的包月充电关系",link:"#与up主的包月充电关系",children:[]},{level:2,title:"包月充电用户排名",slug:"包月充电用户排名",link:"#包月充电用户排名",children:[]}],path:"/docs/electric/monthly.html",pathLocale:"/",extraFields:[]},{title:"表情操作",headers:[{level:2,title:"添加表情包",slug:"添加表情包",link:"#添加表情包",children:[]},{level:2,title:"移除表情包",slug:"移除表情包",link:"#移除表情包",children:[]}],path:"/docs/emoji/action.html",pathLocale:"/",extraFields:[]},{title:"表情列表",headers:[{level:2,title:"获取我的表情列表",slug:"获取我的表情列表",link:"#获取我的表情列表",children:[]},{level:2,title:"获取指定的表情包明细",slug:"获取指定的表情包明细",link:"#获取指定的表情包明细",children:[]},{level:2,title:"获取所有表情包列表",slug:"获取所有表情包列表",link:"#获取所有表情包列表",children:[]},{level:2,title:"附表-表情包对象",slug:"附表-表情包对象",link:"#附表-表情包对象",children:[]}],path:"/docs/emoji/list.html",pathLocale:"/",extraFields:[]},{title:"收藏夹操作",headers:[{level:2,title:"管理收藏夹",slug:"管理收藏夹",link:"#管理收藏夹",children:[{level:3,title:"新建收藏夹",slug:"新建收藏夹",link:"#新建收藏夹",children:[]},{level:3,title:"修改收藏夹",slug:"修改收藏夹",link:"#修改收藏夹",children:[]},{level:3,title:"删除收藏夹",slug:"删除收藏夹",link:"#删除收藏夹",children:[]}]},{level:2,title:"管理收藏内容",slug:"管理收藏内容",link:"#管理收藏内容",children:[{level:3,title:"批量复制内容",slug:"批量复制内容",link:"#批量复制内容",children:[]},{level:3,title:"批量移动内容",slug:"批量移动内容",link:"#批量移动内容",children:[]},{level:3,title:"批量删除内容",slug:"批量删除内容",link:"#批量删除内容",children:[]},{level:3,title:"清空所有失效内容",slug:"清空所有失效内容",link:"#清空所有失效内容",children:[]}]}],path:"/docs/fav/action.html",pathLocale:"/",extraFields:[]},{title:"收藏夹基本信息",headers:[{level:2,title:"获取收藏夹元数据",slug:"获取收藏夹元数据",link:"#获取收藏夹元数据",children:[]},{level:2,title:"获取指定用户创建的所有收藏夹信息",slug:"获取指定用户创建的所有收藏夹信息",link:"#获取指定用户创建的所有收藏夹信息",children:[]},{level:2,title:"查询用户收藏的视频收藏夹",slug:"查询用户收藏的视频收藏夹",link:"#查询用户收藏的视频收藏夹",children:[]},{level:2,title:"批量获取指定收藏id的内容",slug:"批量获取指定收藏id的内容",link:"#批量获取指定收藏id的内容",children:[]}],path:"/docs/fav/info.html",pathLocale:"/",extraFields:[]},{title:"收藏夹内容",headers:[{level:2,title:"获取收藏夹内容明细列表",slug:"获取收藏夹内容明细列表",link:"#获取收藏夹内容明细列表",children:[]},{level:2,title:"获取收藏夹全部内容id",slug:"获取收藏夹全部内容id",link:"#获取收藏夹全部内容id",children:[]}],path:"/docs/fav/list.html",pathLocale:"/",extraFields:[]},{title:"主题色",headers:[{level:2,title:"获取主题色基本信息1",slug:"获取主题色基本信息1",link:"#获取主题色基本信息1",children:[]},{level:2,title:"获取主题色基本信息2",slug:"获取主题色基本信息2",link:"#获取主题色基本信息2",children:[]}],path:"/docs/garb/color.html",pathLocale:"/",extraFields:[]},{title:"装扮/收藏集",headers:[{level:2,title:"装扮/收藏集搜索API",slug:"装扮-收藏集搜索api",link:"#装扮-收藏集搜索api",children:[]},{level:2,title:"收藏集信息API",slug:"收藏集信息api",link:"#收藏集信息api",children:[]}],path:"/docs/garb/lottery.html",pathLocale:"/",extraFields:[]},{title:"APP主题",headers:[{level:2,title:"获取主题及加载动画",slug:"获取主题及加载动画",link:"#获取主题及加载动画",children:[]},{level:2,title:"主题包结构",slug:"主题包结构",link:"#主题包结构",children:[]}],path:"/docs/garb/skin.html",pathLocale:"/",extraFields:[]},{title:"历史记录",headers:[{level:2,title:"获取历史记录列表_web端",slug:"获取历史记录列表-web端",link:"#获取历史记录列表-web端",children:[]},{level:2,title:"获取视频观看历史记录_web端旧版",slug:"获取视频观看历史记录-web端旧版",link:"#获取视频观看历史记录-web端旧版",children:[]},{level:2,title:"删除历史记录",slug:"删除历史记录",link:"#删除历史记录",children:[]},{level:2,title:"清空历史记录",slug:"清空历史记录",link:"#清空历史记录",children:[]},{level:2,title:"停用历史记录",slug:"停用历史记录",link:"#停用历史记录",children:[]},{level:2,title:"查询历史记录停用状态",slug:"查询历史记录停用状态",link:"#查询历史记录停用状态",children:[]}],path:"/docs/history_toview/history.html",pathLocale:"/",extraFields:[]},{title:"稍后再看",headers:[{level:2,title:"视频添加稍后再看",slug:"视频添加稍后再看",link:"#视频添加稍后再看",children:[]},{level:2,title:"添加频道中所有视频到稍后再看",slug:"添加频道中所有视频到稍后再看",link:"#添加频道中所有视频到稍后再看",children:[]},{level:2,title:"获取稍后再看视频列表",slug:"获取稍后再看视频列表",link:"#获取稍后再看视频列表",children:[]},{level:2,title:"删除稍后再看视频",slug:"删除稍后再看视频",link:"#删除稍后再看视频",children:[]},{level:2,title:"清空稍后再看视频列表",slug:"清空稍后再看视频列表",link:"#清空稍后再看视频列表",children:[]}],path:"/docs/history_toview/toview.html",pathLocale:"/",extraFields:[]},{title:"关注UP直播情况",headers:[{level:2,title:"用户关注的所有UP的直播情况",slug:"用户关注的所有up的直播情况",link:"#用户关注的所有up的直播情况",children:[]}],path:"/docs/live/follow_up_live.html",pathLocale:"/",extraFields:[]},{title:"直播间基本信息",headers:[{level:2,title:"获取直播间信息",slug:"获取直播间信息",link:"#获取直播间信息",children:[]},{level:2,title:"获取用户对应的直播间状态",slug:"获取用户对应的直播间状态",link:"#获取用户对应的直播间状态",children:[]},{level:2,title:"获取房间页初始化信息",slug:"获取房间页初始化信息",link:"#获取房间页初始化信息",children:[]},{level:2,title:"获取主播信息",slug:"获取主播信息",link:"#获取主播信息",children:[]},{level:2,title:"获取直播间基本信息",slug:"获取直播间基本信息",link:"#获取直播间基本信息",children:[]},{level:2,title:"批量查询直播间状态",slug:"批量查询直播间状态",link:"#批量查询直播间状态",children:[]},{level:2,title:"获取直播间最近历史弹幕",slug:"获取直播间最近历史弹幕",link:"#获取直播间最近历史弹幕",children:[]},{level:2,title:"清晰度代码",slug:"清晰度代码",link:"#清晰度代码",children:[]},{level:2,title:"获取直播间信息",slug:"获取直播间信息-1",link:"#获取直播间信息-1",children:[]},{level:2,title:"获取直播间主播信息",slug:"获取直播间主播信息",link:"#获取直播间主播信息",children:[]}],path:"/docs/live/info.html",pathLocale:"/",extraFields:[]},{title:"直播间分区",headers:[{level:2,title:"获取全部直播间分区列表",slug:"获取全部直播间分区列表",link:"#获取全部直播间分区列表",children:[]}],path:"/docs/live/live_area.html",pathLocale:"/",extraFields:[]},{title:"直播间视频流",headers:[{level:2,title:"根据真实直播间号获取直播视频流",slug:"根据真实直播间号获取直播视频流",link:"#根据真实直播间号获取直播视频流",children:[]}],path:"/docs/live/live_stream.html",pathLocale:"/",extraFields:[]},{title:"直播间管理",headers:[{level:2,title:"开通直播间",slug:"开通直播间",link:"#开通直播间",children:[]},{level:2,title:"更新直播间标题",slug:"更新直播间标题",link:"#更新直播间标题",children:[]},{level:2,title:"开始直播",slug:"开始直播",link:"#开始直播",children:[]},{level:2,title:"关闭直播",slug:"关闭直播",link:"#关闭直播",children:[]},{level:2,title:"更新直播间公告",slug:"更新直播间公告",link:"#更新直播间公告",children:[]},{level:2,title:"编辑直播间标签",slug:"编辑直播间标签",link:"#编辑直播间标签",children:[]}],path:"/docs/live/manage.html",pathLocale:"/",extraFields:[]},{title:"直播间信息流",headers:[{level:2,title:"获取信息流认证秘钥",slug:"获取信息流认证秘钥",link:"#获取信息流认证秘钥",children:[]},{level:2,title:"数据包格式",slug:"数据包格式",link:"#数据包格式",children:[]},{level:2,title:"数据包",slug:"数据包",link:"#数据包",children:[{level:3,title:"认证包",slug:"认证包",link:"#认证包",children:[]},{level:3,title:"认证包回复",slug:"认证包回复",link:"#认证包回复",children:[]},{level:3,title:"心跳包",slug:"心跳包",link:"#心跳包",children:[]},{level:3,title:"心跳包回复(人气值)",slug:"心跳包回复-人气值",link:"#心跳包回复-人气值",children:[]},{level:3,title:"普通包",slug:"普通包",link:"#普通包",children:[]}]}],path:"/docs/live/message_stream.html",pathLocale:"/",extraFields:[]},{title:"直播间人气红包",headers:[{level:2,title:"获取指定直播间的红包信息",slug:"获取指定直播间的红包信息",link:"#获取指定直播间的红包信息",children:[]}],path:"/docs/live/redpocket.html",pathLocale:"/",extraFields:[]},{title:"直播心跳上报",headers:[{level:2,title:"直播心跳 (Web端)",slug:"直播心跳-web端",link:"#直播心跳-web端",children:[]}],path:"/docs/live/report.html",pathLocale:"/",extraFields:[]},{title:"直播间禁言相关 API",headers:[{level:2,title:"禁言观众",slug:"禁言观众",link:"#禁言观众",children:[]},{level:2,title:"查询直播间禁言列表",slug:"查询直播间禁言列表",link:"#查询直播间禁言列表",children:[]},{level:2,title:"解除禁言",slug:"解除禁言",link:"#解除禁言",children:[]}],path:"/docs/live/silent_user_manage.html",pathLocale:"/",extraFields:[]},{title:"直播间用户实用 API",headers:[{level:2,title:"获取用户持有的粉丝勋章信息",slug:"获取用户持有的粉丝勋章信息",link:"#获取用户持有的粉丝勋章信息",children:[]},{level:2,title:"佩戴勋章",slug:"佩戴勋章",link:"#佩戴勋章",children:[]},{level:2,title:"直播签到",slug:"直播签到",link:"#直播签到",children:[]},{level:2,title:"本月直播签到信息",slug:"本月直播签到信息",link:"#本月直播签到信息",children:[]},{level:2,title:"上月直播签到信息",slug:"上月直播签到信息",link:"#上月直播签到信息",children:[]}],path:"/docs/live/user.html",pathLocale:"/",extraFields:[]},{title:"Web端Cookie刷新",headers:[{level:2,title:"刷新步骤(伪代码)",slug:"刷新步骤-伪代码",link:"#刷新步骤-伪代码",children:[]},{level:2,title:"检查是否需要刷新",slug:"检查是否需要刷新",link:"#检查是否需要刷新",children:[]},{level:2,title:"生成CorrespondPath算法",slug:"生成correspondpath算法",link:"#生成correspondpath算法",children:[{level:3,title:"算法细节",slug:"算法细节",link:"#算法细节",children:[]},{level:3,title:"相关Demo",slug:"相关demo",link:"#相关demo",children:[]},{level:3,title:"Kotlin",slug:"kotlin",link:"#kotlin",children:[]},{level:3,title:"Go",slug:"go",link:"#go",children:[]},{level:3,title:"Java",slug:"java",link:"#java",children:[]}]},{level:2,title:"获取refresh_csrf",slug:"获取refresh-csrf",link:"#获取refresh-csrf",children:[]},{level:2,title:"刷新Cookie",slug:"刷新cookie",link:"#刷新cookie",children:[]},{level:2,title:"确认更新",slug:"确认更新",link:"#确认更新",children:[]}],path:"/docs/login/cookie_refresh.html",pathLocale:"/",extraFields:[]},{title:"退出账号登录",headers:[{level:2,title:"退出登录(web端)",slug:"退出登录-web端",link:"#退出登录-web端",children:[]}],path:"/docs/login/exit.html",pathLocale:"/",extraFields:[]},{title:"登录基本信息",headers:[{level:2,title:"导航栏用户信息",slug:"导航栏用户信息",link:"#导航栏用户信息",children:[]},{level:2,title:"登录用户信息仅部分(已弃用)",slug:"登录用户信息仅部分-已弃用",link:"#登录用户信息仅部分-已弃用",children:[]},{level:2,title:"登录用户信息(APP端)",slug:"登录用户信息-app端",link:"#登录用户信息-app端",children:[]},{level:2,title:"登录用户状态数(双端)",slug:"登录用户状态数-双端",link:"#登录用户状态数-双端",children:[]},{level:2,title:"获取硬币数",slug:"获取硬币数",link:"#获取硬币数",children:[]}],path:"/docs/login/login_info.html",pathLocale:"/",extraFields:[]},{title:"登录记录",headers:[{level:2,title:"查询登录记录",slug:"查询登录记录",link:"#查询登录记录",children:[]},{level:2,title:"最近一周的登录情况",slug:"最近一周的登录情况",link:"#最近一周的登录情况",children:[]}],path:"/docs/login/login_notice.html",pathLocale:"/",extraFields:[]},{title:"个人中心",headers:[{level:2,title:"获取我的信息",slug:"获取我的信息",link:"#获取我的信息",children:[]},{level:2,title:"查询每日奖励状态",slug:"查询每日奖励状态",link:"#查询每日奖励状态",children:[]},{level:2,title:"查询每日投币获得经验数",slug:"查询每日投币获得经验数",link:"#查询每日投币获得经验数",children:[]},{level:2,title:"查询大会员状态",slug:"查询大会员状态",link:"#查询大会员状态",children:[]},{level:2,title:"查询账号安全情况",slug:"查询账号安全情况",link:"#查询账号安全情况",children:[]},{level:2,title:"查询账号实名认证状态",slug:"查询账号实名认证状态",link:"#查询账号实名认证状态",children:[]},{level:2,title:"查询实名认证详细信息",slug:"查询实名认证详细信息",link:"#查询实名认证详细信息",children:[]},{level:2,title:"查询硬币变化情况",slug:"查询硬币变化情况",link:"#查询硬币变化情况",children:[]},{level:2,title:"修改个人签名",slug:"修改个人签名",link:"#修改个人签名",children:[]},{level:2,title:"最近一周的经验记录",slug:"最近一周的经验记录",link:"#最近一周的经验记录",children:[]},{level:2,title:"最近一周的节操记录",slug:"最近一周的节操记录",link:"#最近一周的节操记录",children:[]}],path:"/docs/login/member_center.html",pathLocale:"/",extraFields:[]},{title:"漫画任务操作",headers:[{level:2,title:"分享漫画",slug:"分享漫画",link:"#分享漫画",children:[]}],path:"/docs/manga/Activity.html",pathLocale:"/",extraFields:[]},{title:"签到",headers:[],path:"/docs/manga/ClockIn.html",pathLocale:"/",extraFields:[]},{title:"购买漫画章节",headers:[],path:"/docs/manga/Comic.html",pathLocale:"/",extraFields:[]},{title:"获取当前话全部图片地址",headers:[],path:"/docs/manga/Download.html",pathLocale:"/",extraFields:[]},{title:"漫画赛季",headers:[{level:2,title:"获取赛季信息",slug:"获取赛季信息",link:"#获取赛季信息",children:[]},{level:2,title:"赛季奖励领取",slug:"赛季奖励领取",link:"#赛季奖励领取",children:[]}],path:"/docs/manga/Season.html",pathLocale:"/",extraFields:[]},{title:"漫画用户信息",headers:[{level:2,title:"获取拥有的漫读券列表",slug:"获取拥有的漫读券列表",link:"#获取拥有的漫读券列表",children:[]},{level:2,title:"获取已购漫画",slug:"获取已购漫画",link:"#获取已购漫画",children:[]}],path:"/docs/manga/User.html",pathLocale:"/",extraFields:[]},{title:"data.index",headers:[{level:2,title:"data.index文件解析",slug:"data-index文件解析",link:"#data-index文件解析",children:[{level:3,title:"获取data.index",slug:"获取data-index",link:"#获取data-index",children:[]},{level:3,title:"文件解密算法",slug:"文件解密算法",link:"#文件解密算法",children:[]},{level:3,title:"进行解密操作",slug:"进行解密操作",link:"#进行解密操作",children:[]}]},{level:2,title:"data.index内容",slug:"data-index内容",link:"#data-index内容",children:[]}],path:"/docs/manga/index_file.html",pathLocale:"/",extraFields:[]},{title:"获取轻享卡信息",headers:[],path:"/docs/manga/light_card.html",pathLocale:"/",extraFields:[]},{title:"积分商城",headers:[{level:2,title:"获取当前持有点数",slug:"获取当前持有点数",link:"#获取当前持有点数",children:[]},{level:2,title:"获取兑换奖品列表",slug:"获取兑换奖品列表",link:"#获取兑换奖品列表",children:[]},{level:2,title:"兑换物品",slug:"兑换物品",link:"#兑换物品",children:[]},{level:2,title:"获取兑换历史记录",slug:"获取兑换历史记录",link:"#获取兑换历史记录",children:[]},{level:2,title:"获取玩法说明",slug:"获取玩法说明",link:"#获取玩法说明",children:[]}],path:"/docs/manga/point_shop.html",pathLocale:"/",extraFields:[]},{title:"通知消息",headers:[{level:2,title:"未读消息数",slug:"未读消息数",link:"#未读消息数",children:[]}],path:"/docs/message/msg.html",pathLocale:"/",extraFields:[]},{title:"私信",headers:[{level:2,title:"未读私信数",slug:"未读私信数",link:"#未读私信数",children:[]},{level:2,title:"发送私信(web端)",slug:"发送私信-web端",link:"#发送私信-web端",children:[]},{level:2,title:"私信消息记录",slug:"私信消息记录",link:"#私信消息记录",children:[]}],path:"/docs/message/private_msg.html",pathLocale:"/",extraFields:[]},{title:"b23.tv 短链",headers:[{level:2,title:"简述",slug:"简述",link:"#简述",children:[{level:3,title:"格式",slug:"格式",link:"#格式",children:[]}]},{level:2,title:"生成",slug:"生成",link:"#生成",children:[{level:3,title:"视频短链",slug:"视频短链",link:"#视频短链",children:[]},{level:3,title:"任意短链",slug:"任意短链",link:"#任意短链",children:[]}]}],path:"/docs/misc/b23tv.html",pathLocale:"/",extraFields:[]},{title:"获取 buvid3 / buvid4 / b_nut",headers:[{level:2,title:"接口获取 buvid3 / buvid4",slug:"接口获取-buvid3-buvid4",link:"#接口获取-buvid3-buvid4",children:[]},{level:2,title:"从响应头获取 buvid3 / b_nut",slug:"从响应头获取-buvid3-b-nut",link:"#从响应头获取-buvid3-b-nut",children:[]}],path:"/docs/misc/buvid3_4.html",pathLocale:"/",extraFields:[]},{title:"bvid说明",headers:[{level:2,title:"概述",slug:"概述",link:"#概述",children:[{level:3,title:"格式",slug:"格式",link:"#格式",children:[]},{level:3,title:"实质",slug:"实质",link:"#实质",children:[]},{level:3,title:"avid发号方式的变化",slug:"avid发号方式的变化",link:"#avid发号方式的变化",children:[]}]},{level:2,title:"算法概述",slug:"算法概述",link:"#算法概述",children:[{level:3,title:"av->bv算法",slug:"av-bv算法",link:"#av-bv算法",children:[]},{level:3,title:"bv->av算法",slug:"bv-av算法",link:"#bv-av算法",children:[]}]},{level:2,title:"编程实现",slug:"编程实现",link:"#编程实现",children:[{level:3,title:"JavaScript/TypeScript",slug:"javascript-typescript",link:"#javascript-typescript",children:[]},{level:3,title:"Python",slug:"python",link:"#python",children:[]},{level:3,title:"Rust",slug:"rust",link:"#rust",children:[]},{level:3,title:"Swift",slug:"swift",link:"#swift",children:[]},{level:3,title:"Java",slug:"java",link:"#java",children:[]},{level:3,title:"Golang",slug:"golang",link:"#golang",children:[]},{level:3,title:"C++",slug:"c",link:"#c",children:[]}]},{level:2,title:"老版算法存档",slug:"老版算法存档",link:"#老版算法存档",children:[{level:3,title:"av->bv算法",slug:"av-bv算法-1",link:"#av-bv算法-1",children:[]},{level:3,title:"bv->av算法",slug:"bv-av算法-1",link:"#bv-av算法-1",children:[]},{level:3,title:"编程实现",slug:"编程实现-1",link:"#编程实现-1",children:[]}]}],path:"/docs/misc/bvid_desc.html",pathLocale:"/",extraFields:[]},{title:"设备各类标识算法(APP 端)",headers:[{level:2,title:"设备唯一标识 BUVID",slug:"设备唯一标识-buvid",link:"#设备唯一标识-buvid",children:[{level:3,title:"生成方法",slug:"生成方法",link:"#生成方法",children:[]},{level:3,title:"Demo",slug:"demo",link:"#demo",children:[]}]},{level:2,title:"设备指纹 fp (fp_local, fp_remote)",slug:"设备指纹-fp-fp-local-fp-remote",link:"#设备指纹-fp-fp-local-fp-remote",children:[{level:3,title:"生成方法",slug:"生成方法-1",link:"#生成方法-1",children:[]},{level:3,title:"Demo",slug:"demo-1",link:"#demo-1",children:[]}]},{level:2,title:"附录",slug:"附录",link:"#附录",children:[{level:3,title:"BUVID Prefix",slug:"buvid-prefix",link:"#buvid-prefix",children:[]}]}],path:"/docs/misc/device_identity.html",pathLocale:"/",extraFields:[]},{title:"公共错误码",headers:[{level:2,title:"权限类",slug:"权限类",link:"#权限类",children:[]},{level:2,title:"请求类",slug:"请求类",link:"#请求类",children:[]}],path:"/docs/misc/errcode.html",pathLocale:"/",extraFields:[]},{title:"图片格式化",headers:[{level:2,title:"avg_color格式说明",slug:"avg-color格式说明",link:"#avg-color格式说明",children:[]}],path:"/docs/misc/picture.html",pathLocale:"/",extraFields:[]},{title:"获取当前时间戳",headers:[{level:2,title:"获取当前时间戳",slug:"获取当前时间戳-1",link:"#获取当前时间戳-1",children:[]},{level:2,title:"获取适用于 RTC 的时间戳",slug:"获取适用于-rtc-的时间戳",link:"#获取适用于-rtc-的时间戳",children:[]},{level:2,title:"获取服务器端UTC时间",slug:"获取服务器端utc时间",link:"#获取服务器端utc时间",children:[]}],path:"/docs/misc/time_stamp.html",pathLocale:"/",extraFields:[]},{title:"操作",headers:[{level:2,title:"提交答题",slug:"提交答题",link:"#提交答题",children:[{level:3,title:"提交基础题",slug:"提交基础题",link:"#提交基础题",children:[]},{level:3,title:"提交附加题",slug:"提交附加题",link:"#提交附加题",children:[]},{level:3,title:"提交自选题",slug:"提交自选题",link:"#提交自选题",children:[]}]},{level:2,title:"获取验证码",slug:"获取验证码",link:"#获取验证码",children:[]},{level:2,title:"提交验证码",slug:"提交验证码",link:"#提交验证码",children:[]},{level:2,title:"提交自选题分类",slug:"提交自选题分类",link:"#提交自选题分类",children:[]},{level:2,title:"提前交卷",slug:"提前交卷",link:"#提前交卷",children:[]}],path:"/docs/newbie_exam/action.html",pathLocale:"/",extraFields:[]},{title:"拉取题目",headers:[{level:2,title:"拉取基础题",slug:"拉取基础题",link:"#拉取基础题",children:[]},{level:2,title:"拉取附加题",slug:"拉取附加题",link:"#拉取附加题",children:[]},{level:2,title:"拉取自选题",slug:"拉取自选题",link:"#拉取自选题",children:[]}],path:"/docs/newbie_exam/fetch.html",pathLocale:"/",extraFields:[]},{title:"查询信息",headers:[{level:2,title:"查询答题状态",slug:"查询答题状态",link:"#查询答题状态",children:[]},{level:2,title:"查询自选题分类",slug:"查询自选题分类",link:"#查询自选题分类",children:[]},{level:2,title:"查询答题结果",slug:"查询答题结果",link:"#查询答题结果",children:[]}],path:"/docs/newbie_exam/info.html",pathLocale:"/",extraFields:[]},{title:"笔记操作",headers:[{level:2,title:"保存视频笔记",slug:"保存视频笔记",link:"#保存视频笔记",children:[]},{level:2,title:"删除视频笔记",slug:"删除视频笔记",link:"#删除视频笔记",children:[]}],path:"/docs/note/action.html",pathLocale:"/",extraFields:[]},{title:"笔记详细信息",headers:[{level:2,title:"查询该稿件是否禁止笔记",slug:"查询该稿件是否禁止笔记",link:"#查询该稿件是否禁止笔记",children:[]},{level:2,title:"查询私有笔记内容",slug:"查询私有笔记内容",link:"#查询私有笔记内容",children:[]},{level:2,title:"查询公开笔记内容",slug:"查询公开笔记内容",link:"#查询公开笔记内容",children:[]}],path:"/docs/note/info.html",pathLocale:"/",extraFields:[]},{title:"笔记列表",headers:[{level:2,title:"查询稿件私有笔记",slug:"查询稿件私有笔记",link:"#查询稿件私有笔记",children:[]},{level:2,title:"查询用户私有笔记",slug:"查询用户私有笔记",link:"#查询用户私有笔记",children:[]},{level:2,title:"查询稿件公开笔记",slug:"查询稿件公开笔记",link:"#查询稿件公开笔记",children:[]},{level:2,title:"查询用户公开笔记",slug:"查询用户公开笔记",link:"#查询用户公开笔记",children:[]}],path:"/docs/note/list.html",pathLocale:"/",extraFields:[]},{title:"视频笔记",headers:[{level:2,title:"附表-笔记正文序列格式",slug:"附表-笔记正文序列格式",link:"#附表-笔记正文序列格式",children:[]}],path:"/docs/note/",pathLocale:"/",extraFields:[]},{title:"默认搜索&热搜",headers:[{level:2,title:"获取默认搜索内容(web端)",slug:"获取默认搜索内容-web端",link:"#获取默认搜索内容-web端",children:[]},{level:2,title:"获取热搜列表",slug:"获取热搜列表",link:"#获取热搜列表",children:[]},{level:2,title:"获取热搜列表(web端)",slug:"获取热搜列表-web端",link:"#获取热搜列表-web端",children:[]},{level:2,title:"获取热搜列表(手机端)",slug:"获取热搜列表-手机端",link:"#获取热搜列表-手机端",children:[]}],path:"/docs/search/hot.html",pathLocale:"/",extraFields:[]},{title:"搜索",headers:[{level:2,title:"综合搜索(web端)",slug:"综合搜索-web端",link:"#综合搜索-web端",children:[]},{level:2,title:"分类搜索(web端)",slug:"分类搜索-web端",link:"#分类搜索-web端",children:[]}],path:"/docs/search/search_request.html",pathLocale:"/",extraFields:[]},{title:"搜索响应条目",headers:[{level:2,title:"对象类型1-结果为视频",slug:"对象类型1-结果为视频",link:"#对象类型1-结果为视频",children:[]},{level:2,title:"对象类型2-结果为番剧&影视",slug:"对象类型2-结果为番剧-影视",link:"#对象类型2-结果为番剧-影视",children:[]},{level:2,title:"对象类型3-结果为直播间",slug:"对象类型3-结果为直播间",link:"#对象类型3-结果为直播间",children:[]},{level:2,title:"对象类型4-结果为主播",slug:"对象类型4-结果为主播",link:"#对象类型4-结果为主播",children:[]},{level:2,title:"对象类型5-结果为专栏",slug:"对象类型5-结果为专栏",link:"#对象类型5-结果为专栏",children:[]},{level:2,title:"对象类型6-结果为话题",slug:"对象类型6-结果为话题",link:"#对象类型6-结果为话题",children:[]},{level:2,title:"对象类型7-结果为用户",slug:"对象类型7-结果为用户",link:"#对象类型7-结果为用户",children:[]},{level:2,title:"对象类型8-结果为相簿",slug:"对象类型8-结果为相簿",link:"#对象类型8-结果为相簿",children:[]}],path:"/docs/search/search_response.html",pathLocale:"/",extraFields:[]},{title:"搜索建议",headers:[{level:2,title:"获取搜索建议关键词(web端)",slug:"获取搜索建议关键词-web端",link:"#获取搜索建议关键词-web端",children:[]}],path:"/docs/search/suggest.html",pathLocale:"/",extraFields:[]},{title:"青少年模式",headers:[{level:2,title:"开启/关闭",slug:"开启-关闭",link:"#开启-关闭",children:[]}],path:"/docs/teenager/teenager_mode.html",pathLocale:"/",extraFields:[]},{title:"检查昵称是否可注册",headers:[{level:2,title:"检查昵称",slug:"检查昵称",link:"#检查昵称",children:[]}],path:"/docs/user/check_nickname.html",pathLocale:"/",extraFields:[]},{title:"加入老粉计划",headers:[],path:"/docs/user/contract.html",pathLocale:"/",extraFields:[]},{title:"用户基本信息",headers:[{level:2,title:"用户空间详细信息",slug:"用户空间详细信息",link:"#用户空间详细信息",children:[]},{level:2,title:"用户名片信息",slug:"用户名片信息",link:"#用户名片信息",children:[]},{level:2,title:"登录用户空间详细信息",slug:"登录用户空间详细信息",link:"#登录用户空间详细信息",children:[]},{level:2,title:"多用户详细信息",slug:"多用户详细信息",link:"#多用户详细信息",children:[]},{level:2,title:"多用户详细信息2",slug:"多用户详细信息2",link:"#多用户详细信息2",children:[]}],path:"/docs/user/info.html",pathLocale:"/",extraFields:[]},{title:"所有粉丝勋章",headers:[{level:2,title:"指定用户的所有粉丝勋章信息",slug:"指定用户的所有粉丝勋章信息",link:"#指定用户的所有粉丝勋章信息",children:[]}],path:"/docs/user/medals.html",pathLocale:"/",extraFields:[]},{title:"用户认证类型一览",headers:[],path:"/docs/user/official_role.html",pathLocale:"/",extraFields:[]},{title:"用户注册",headers:[{level:2,title:"人机验证",slug:"人机验证",link:"#人机验证",children:[]},{level:2,title:"发送短信验证码",slug:"发送短信验证码",link:"#发送短信验证码",children:[]},{level:2,title:"提交注册请求",slug:"提交注册请求",link:"#提交注册请求",children:[]}],path:"/docs/user/register.html",pathLocale:"/",extraFields:[]},{title:"用户关系相关",headers:[{level:2,title:"查询关系列表",slug:"查询关系列表",link:"#查询关系列表",children:[{level:3,title:"关系列表对象",slug:"关系列表对象",link:"#关系列表对象",children:[]},{level:3,title:"查询用户粉丝明细",slug:"查询用户粉丝明细",link:"#查询用户粉丝明细",children:[]},{level:3,title:"查询用户关注明细",slug:"查询用户关注明细",link:"#查询用户关注明细",children:[]},{level:3,title:"查询用户关注明细2",slug:"查询用户关注明细2",link:"#查询用户关注明细2",children:[]},{level:3,title:"查询用户关注明细3",slug:"查询用户关注明细3",link:"#查询用户关注明细3",children:[]},{level:3,title:"搜索关注明细",slug:"搜索关注明细",link:"#搜索关注明细",children:[]},{level:3,title:"查询共同关注明细",slug:"查询共同关注明细",link:"#查询共同关注明细",children:[]},{level:3,title:"查询悄悄关注明细",slug:"查询悄悄关注明细",link:"#查询悄悄关注明细",children:[]},{level:3,title:"查询互相关注明细",slug:"查询互相关注明细",link:"#查询互相关注明细",children:[]},{level:3,title:"查询黑名单明细",slug:"查询黑名单明细",link:"#查询黑名单明细",children:[]}]},{level:2,title:"操作关系",slug:"操作关系",link:"#操作关系",children:[{level:3,title:"操作用户关系",slug:"操作用户关系",link:"#操作用户关系",children:[]},{level:3,title:"批量操作用户关系",slug:"批量操作用户关系",link:"#批量操作用户关系",children:[]}]},{level:2,title:"查询关系属性",slug:"查询关系属性",link:"#查询关系属性",children:[{level:3,title:"关系属性对象",slug:"关系属性对象",link:"#关系属性对象",children:[]},{level:3,title:"查询用户与自己关系(仅关注)",slug:"查询用户与自己关系-仅关注",link:"#查询用户与自己关系-仅关注",children:[]},{level:3,title:"查询用户与自己关系(互相关系)",slug:"查询用户与自己关系-互相关系",link:"#查询用户与自己关系-互相关系",children:[]},{level:3,title:"批量查询用户与自己关系",slug:"批量查询用户与自己关系",link:"#批量查询用户与自己关系",children:[]}]},{level:2,title:"关注分组相关",slug:"关注分组相关",link:"#关注分组相关",children:[{level:3,title:"查询关注分组列表",slug:"查询关注分组列表",link:"#查询关注分组列表",children:[]},{level:3,title:"查询关注分组明细",slug:"查询关注分组明细",link:"#查询关注分组明细",children:[]},{level:3,title:"查询目标用户所在的分组",slug:"查询目标用户所在的分组",link:"#查询目标用户所在的分组",children:[]},{level:3,title:"查询所有特别关注 mid",slug:"查询所有特别关注-mid",link:"#查询所有特别关注-mid",children:[]},{level:3,title:"创建分组",slug:"创建分组",link:"#创建分组",children:[]},{level:3,title:"重命名分组",slug:"重命名分组",link:"#重命名分组",children:[]},{level:3,title:"删除分组",slug:"删除分组",link:"#删除分组",children:[]},{level:3,title:"修改分组成员",slug:"修改分组成员",link:"#修改分组成员",children:[]},{level:3,title:"复制关注到分组",slug:"复制关注到分组",link:"#复制关注到分组",children:[]},{level:3,title:"移动关注到分组",slug:"移动关注到分组",link:"#移动关注到分组",children:[]}]}],path:"/docs/user/relation.html",pathLocale:"/",extraFields:[]},{title:"用户空间相关",headers:[{level:2,title:"主页",slug:"主页",link:"#主页",children:[{level:3,title:"置顶视频",slug:"置顶视频",link:"#置顶视频",children:[]},{level:3,title:"代表作视频",slug:"代表作视频",link:"#代表作视频",children:[]},{level:3,title:"个人TAG",slug:"个人tag",link:"#个人tag",children:[]},{level:3,title:"空间公告",slug:"空间公告",link:"#空间公告",children:[]},{level:3,title:"主页板块布局与权限",slug:"主页板块布局与权限",link:"#主页板块布局与权限",children:[]},{level:3,title:"设置空间头图 (Web端)",slug:"设置空间头图-web端",link:"#设置空间头图-web端",children:[]},{level:3,title:"查询用户最近访问内容",slug:"查询用户最近访问内容",link:"#查询用户最近访问内容",children:[]}]},{level:2,title:"投稿",slug:"投稿",link:"#投稿",children:[{level:3,title:"查询用户投稿视频明细",slug:"查询用户投稿视频明细",link:"#查询用户投稿视频明细",children:[]},{level:3,title:"查询用户投稿相簿预览",slug:"查询用户投稿相簿预览",link:"#查询用户投稿相簿预览",children:[]},{level:3,title:"查询用户投稿相簿明细",slug:"查询用户投稿相簿明细",link:"#查询用户投稿相簿明细",children:[]}]},{level:2,title:"频道",slug:"频道",link:"#频道",children:[{level:3,title:"查询用户频道列表",slug:"查询用户频道列表",link:"#查询用户频道列表",children:[]},{level:3,title:"查询用户频道中的视频",slug:"查询用户频道中的视频",link:"#查询用户频道中的视频",children:[]},{level:3,title:"创建频道",slug:"创建频道",link:"#创建频道",children:[]},{level:3,title:"修改频道",slug:"修改频道",link:"#修改频道",children:[]},{level:3,title:"删除频道",slug:"删除频道",link:"#删除频道",children:[]},{level:3,title:"频道添加视频",slug:"频道添加视频",link:"#频道添加视频",children:[]},{level:3,title:"频道删除视频",slug:"频道删除视频",link:"#频道删除视频",children:[]},{level:3,title:"调整频道视频排序",slug:"调整频道视频排序",link:"#调整频道视频排序",children:[]},{level:3,title:"检查频道中有无失效视频",slug:"检查频道中有无失效视频",link:"#检查频道中有无失效视频",children:[]}]},{level:2,title:"课程",slug:"课程",link:"#课程",children:[{level:3,title:"查询用户发布的课程列表",slug:"查询用户发布的课程列表",link:"#查询用户发布的课程列表",children:[]}]},{level:2,title:"订阅",slug:"订阅",link:"#订阅",children:[{level:3,title:"查询用户追番预览列表",slug:"查询用户追番预览列表",link:"#查询用户追番预览列表",children:[]},{level:3,title:"查询用户追番(追剧)明细",slug:"查询用户追番-追剧-明细",link:"#查询用户追番-追剧-明细",children:[]},{level:3,title:"查询用户关注的TAG(话题)",slug:"查询用户关注的tag-话题",link:"#查询用户关注的tag-话题",children:[]}]}],path:"/docs/user/space.html",pathLocale:"/",extraFields:[]},{title:"用户状态数",headers:[{level:2,title:"关系状态数",slug:"关系状态数",link:"#关系状态数",children:[]},{level:2,title:"UP主状态数",slug:"up主状态数",link:"#up主状态数",children:[]},{level:2,title:"用户导航栏状态数",slug:"用户导航栏状态数",link:"#用户导航栏状态数",children:[]},{level:2,title:"相簿投稿数",slug:"相簿投稿数",link:"#相簿投稿数",children:[]}],path:"/docs/user/status_number.html",pathLocale:"/",extraFields:[]},{title:"稿件观众操作",headers:[{level:2,title:"点赞",slug:"点赞",link:"#点赞",children:[{level:3,title:"点赞视频(web端)",slug:"点赞视频-web端",link:"#点赞视频-web端",children:[]},{level:3,title:"点赞视频(APP端)",slug:"点赞视频-app端",link:"#点赞视频-app端",children:[]},{level:3,title:"判断视频近期是否被点赞(双端)",slug:"判断视频近期是否被点赞-双端",link:"#判断视频近期是否被点赞-双端",children:[]}]},{level:2,title:"点踩",slug:"点踩",link:"#点踩",children:[{level:3,title:"点踩视频(App端)",slug:"点踩视频-app端",link:"#点踩视频-app端",children:[]}]},{level:2,title:"投币",slug:"投币",link:"#投币",children:[{level:3,title:"投币视频(web端)",slug:"投币视频-web端",link:"#投币视频-web端",children:[]},{level:3,title:"投币视频(APP端)",slug:"投币视频-app端",link:"#投币视频-app端",children:[]},{level:3,title:"判断视频是否被投币(双端)",slug:"判断视频是否被投币-双端",link:"#判断视频是否被投币-双端",children:[]}]},{level:2,title:"收藏",slug:"收藏",link:"#收藏",children:[{level:3,title:"收藏视频(双端)",slug:"收藏视频-双端",link:"#收藏视频-双端",children:[]},{level:3,title:"收藏视频(Web端)",slug:"收藏视频-web端",link:"#收藏视频-web端",children:[]},{level:3,title:"判断视频是否被收藏(双端)",slug:"判断视频是否被收藏-双端",link:"#判断视频是否被收藏-双端",children:[]}]},{level:2,title:"一键三连",slug:"一键三连",link:"#一键三连",children:[{level:3,title:"一键三连视频(web端)",slug:"一键三连视频-web端",link:"#一键三连视频-web端",children:[]},{level:3,title:"一键三连视频(APP端)",slug:"一键三连视频-app端",link:"#一键三连视频-app端",children:[]}]},{level:2,title:"分享",slug:"分享",link:"#分享",children:[{level:3,title:"分享视频 (Web端)",slug:"分享视频-web端",link:"#分享视频-web端",children:[]}]}],path:"/docs/video/action.html",pathLocale:"/",extraFields:[]},{title:"稿件投诉",headers:[{level:2,title:"附件上传",slug:"附件上传",link:"#附件上传",children:[]},{level:2,title:"获取投诉类型",slug:"获取投诉类型",link:"#获取投诉类型",children:[]},{level:2,title:"投诉稿件",slug:"投诉稿件",link:"#投诉稿件",children:[]}],path:"/docs/video/appeal.html",pathLocale:"/",extraFields:[]},{title:"视频属性数据说明",headers:[{level:2,title:"attribute字段值(稿件属性位)",slug:"attribute字段值-稿件属性位",link:"#attribute字段值-稿件属性位",children:[]},{level:2,title:"state字段值(稿件状态)",slug:"state字段值-稿件状态",link:"#state字段值-稿件状态",children:[]}],path:"/docs/video/attribute_data.html",pathLocale:"/",extraFields:[]},{title:"合集和视频列表信息",headers:[{level:2,title:"获取视频合集信息",slug:"获取视频合集信息",link:"#获取视频合集信息",children:[]},{level:2,title:"只获取系列视频",slug:"只获取系列视频",link:"#只获取系列视频",children:[]},{level:2,title:"获取系列和合集视频",slug:"获取系列和合集视频",link:"#获取系列和合集视频",children:[]},{level:2,title:"查询指定系列",slug:"查询指定系列",link:"#查询指定系列",children:[]},{level:2,title:"获取指定系列视频",slug:"获取指定系列视频",link:"#获取指定系列视频",children:[]},{level:2,title:"根据关键词查找视频",slug:"根据关键词查找视频",link:"#根据关键词查找视频",children:[]},{level:2,title:"创建视频列表",slug:"创建视频列表",link:"#创建视频列表",children:[]},{level:2,title:"删除视频列表",slug:"删除视频列表",link:"#删除视频列表",children:[]},{level:2,title:"删除视频列表中的稿件",slug:"删除视频列表中的稿件",link:"#删除视频列表中的稿件",children:[]},{level:2,title:"添加稿件至视频列表",slug:"添加稿件至视频列表",link:"#添加稿件至视频列表",children:[]},{level:2,title:"编辑视频列表信息",slug:"编辑视频列表信息",link:"#编辑视频列表信息",children:[]}],path:"/docs/video/collection.html",pathLocale:"/",extraFields:[]},{title:"视频基本信息",headers:[{level:2,title:"获取视频详细信息(web端)",slug:"获取视频详细信息-web端",link:"#获取视频详细信息-web端",children:[]},{level:2,title:"获取视频超详细信息(web端)",slug:"获取视频超详细信息-web端",link:"#获取视频超详细信息-web端",children:[]},{level:2,title:"获取视频简介",slug:"获取视频简介",link:"#获取视频简介",children:[]},{level:2,title:"查询视频分P列表 (avid/bvid转cid)",slug:"查询视频分p列表-avid-bvid转cid",link:"#查询视频分p列表-avid-bvid转cid",children:[]}],path:"/docs/video/info.html",pathLocale:"/",extraFields:[]},{title:"互动视频信息",headers:[{level:2,title:"获取互动视频模块详细信息",slug:"获取互动视频模块详细信息",link:"#获取互动视频模块详细信息",children:[]}],path:"/docs/video/interact_video.html",pathLocale:"/",extraFields:[]},{title:"视频在线人数",headers:[{level:2,title:"获取视频在线人数_web端",slug:"获取视频在线人数-web端",link:"#获取视频在线人数-web端",children:[]},{level:2,title:"获取视频在线人数_APP端",slug:"获取视频在线人数-app端",link:"#获取视频在线人数-app端",children:[]}],path:"/docs/video/online.html",pathLocale:"/",extraFields:[]},{title:"高能进度条",headers:[{level:2,title:"获取弹幕趋势顶点列表",slug:"获取弹幕趋势顶点列表",link:"#获取弹幕趋势顶点列表",children:[]}],path:"/docs/video/pbp.html",pathLocale:"/",extraFields:[]},{title:"播放器",headers:[{level:2,title:"web 播放器信息",slug:"web-播放器信息",link:"#web-播放器信息",children:[]},{level:2,title:"播放反馈",slug:"播放反馈",link:"#播放反馈",children:[]}],path:"/docs/video/player.html",pathLocale:"/",extraFields:[]},{title:"视频推荐",headers:[{level:2,title:"获取单视频推荐列表(web端)",slug:"获取单视频推荐列表-web端",link:"#获取单视频推荐列表-web端",children:[]},{level:2,title:"获取首页视频推荐列表(web端)",slug:"获取首页视频推荐列表-web端",link:"#获取首页视频推荐列表-web端",children:[]},{level:2,title:"获取短视频模式视频列表",slug:"获取短视频模式视频列表",link:"#获取短视频模式视频列表",children:[]}],path:"/docs/video/recommend.html",pathLocale:"/",extraFields:[]},{title:"视频观看数据上报",headers:[{level:2,title:"上报观看进度(双端)",slug:"上报观看进度-双端",link:"#上报观看进度-双端",children:[]},{level:2,title:"上报视频播放心跳(web端)",slug:"上报视频播放心跳-web端",link:"#上报视频播放心跳-web端",children:[]},{level:2,title:"开始观看视频 (web端)",slug:"开始观看视频-web端",link:"#开始观看视频-web端",children:[]}],path:"/docs/video/report.html",pathLocale:"/",extraFields:[]},{title:"视频快照",headers:[{level:2,title:"获取视频快照(web端)",slug:"获取视频快照-web端",link:"#获取视频快照-web端",children:[]},{level:2,title:"获取视频快照(APP端)",slug:"获取视频快照-app端",link:"#获取视频快照-app端",children:[]},{level:2,title:"获取视频快照(web端)(用于封面预览)",slug:"获取视频快照-web端-用于封面预览",link:"#获取视频快照-web端-用于封面预览",children:[]},{level:2,title:"图片拼版",slug:"图片拼版",link:"#图片拼版",children:[]},{level:2,title:"bin格式截取时间表",slug:"bin格式截取时间表",link:"#bin格式截取时间表",children:[]}],path:"/docs/video/snapshot.html",pathLocale:"/",extraFields:[]},{title:"视频状态数",headers:[{level:2,title:"视频状态数(仅avid)",slug:"视频状态数-仅avid",link:"#视频状态数-仅avid",children:[]},{level:2,title:"视频状态数(bvid/avid)",slug:"视频状态数-bvid-avid",link:"#视频状态数-bvid-avid",children:[]}],path:"/docs/video/status_number.html",pathLocale:"/",extraFields:[]},{title:"视频AI总结",headers:[{level:2,title:"获取AI总结内容",slug:"获取ai总结内容",link:"#获取ai总结内容",children:[]},{level:2,title:"点赞&点踩摘要",slug:"点赞-点踩摘要",link:"#点赞-点踩摘要",children:[]}],path:"/docs/video/summary.html",pathLocale:"/",extraFields:[]},{title:"视频TAG",headers:[{level:2,title:"获取视频TAG信息",slug:"获取视频tag信息",link:"#获取视频tag信息",children:[]},{level:2,title:"点赞&取消点赞视频TAG",slug:"点赞-取消点赞视频tag",link:"#点赞-取消点赞视频tag",children:[]},{level:2,title:"点踩&取消点踩视频TAG",slug:"点踩-取消点踩视频tag",link:"#点踩-取消点踩视频tag",children:[]}],path:"/docs/video/tags.html",pathLocale:"/",extraFields:[]},{title:"视频分区一览",headers:[{level:2,title:"动画",slug:"动画",link:"#动画",children:[]},{level:2,title:"番剧",slug:"番剧",link:"#番剧",children:[]},{level:2,title:"国创",slug:"国创",link:"#国创",children:[]},{level:2,title:"音乐",slug:"音乐",link:"#音乐",children:[]},{level:2,title:"舞蹈",slug:"舞蹈",link:"#舞蹈",children:[]},{level:2,title:"游戏",slug:"游戏",link:"#游戏",children:[]},{level:2,title:"知识",slug:"知识",link:"#知识",children:[]},{level:2,title:"科技",slug:"科技",link:"#科技",children:[]},{level:2,title:"运动",slug:"运动",link:"#运动",children:[]},{level:2,title:"汽车",slug:"汽车",link:"#汽车",children:[]},{level:2,title:"生活",slug:"生活",link:"#生活",children:[]},{level:2,title:"美食",slug:"美食",link:"#美食",children:[]},{level:2,title:"动物圈",slug:"动物圈",link:"#动物圈",children:[]},{level:2,title:"鬼畜",slug:"鬼畜",link:"#鬼畜",children:[]},{level:2,title:"时尚",slug:"时尚",link:"#时尚",children:[]},{level:2,title:"资讯",slug:"资讯",link:"#资讯",children:[]},{level:2,title:"广告",slug:"广告",link:"#广告",children:[]},{level:2,title:"娱乐",slug:"娱乐",link:"#娱乐",children:[]},{level:2,title:"影视",slug:"影视",link:"#影视",children:[]},{level:2,title:"纪录片",slug:"纪录片",link:"#纪录片",children:[]},{level:2,title:"电影",slug:"电影",link:"#电影",children:[]},{level:2,title:"电视剧",slug:"电视剧",link:"#电视剧",children:[]}],path:"/docs/video/video_zone.html",pathLocale:"/",extraFields:[]},{title:"视频流URL",headers:[{level:2,title:"qn视频清晰度标识",slug:"qn视频清晰度标识",link:"#qn视频清晰度标识",children:[]},{level:2,title:"fnver视频流版本标识",slug:"fnver视频流版本标识",link:"#fnver视频流版本标识",children:[]},{level:2,title:"fnval视频流格式标识",slug:"fnval视频流格式标识",link:"#fnval视频流格式标识",children:[]},{level:2,title:"视频编码代码",slug:"视频编码代码",link:"#视频编码代码",children:[]},{level:2,title:"视频伴音音质代码",slug:"视频伴音音质代码",link:"#视频伴音音质代码",children:[]},{level:2,title:"获取视频流地址_web端",slug:"获取视频流地址-web端",link:"#获取视频流地址-web端",children:[{level:3,title:"FLV/MP4格式",slug:"flv-mp4格式",link:"#flv-mp4格式",children:[]},{level:3,title:"DASH格式",slug:"dash格式",link:"#dash格式",children:[]}]},{level:2,title:"视频取流说明",slug:"视频取流说明",link:"#视频取流说明",children:[]}],path:"/docs/video/videostream_url.html",pathLocale:"/",extraFields:[]},{title:"分区最新视频",headers:[{level:2,title:"获取分区最新视频列表",slug:"获取分区最新视频列表",link:"#获取分区最新视频列表",children:[{level:3,title:"获取分区标签近期互动列表",slug:"获取分区标签近期互动列表",link:"#获取分区标签近期互动列表",children:[]},{level:3,title:"获取分区近期投稿列表",slug:"获取分区近期投稿列表",link:"#获取分区近期投稿列表",children:[]},{level:3,title:"获取分区近期投稿列表 (带排序)",slug:"获取分区近期投稿列表-带排序",link:"#获取分区近期投稿列表-带排序",children:[]}]}],path:"/docs/video_ranking/dynamic.html",pathLocale:"/",extraFields:[]},{title:"热门视频",headers:[{level:2,title:"获取当前热门视频列表",slug:"获取当前热门视频列表",link:"#获取当前热门视频列表",children:[]},{level:2,title:"每周必看全部列表",slug:"每周必看全部列表",link:"#每周必看全部列表",children:[]},{level:2,title:"每周必看选期详细信息",slug:"每周必看选期详细信息",link:"#每周必看选期详细信息",children:[]}],path:"/docs/video_ranking/popular.html",pathLocale:"/",extraFields:[]},{title:"入站必刷视频",headers:[{level:2,title:"获取入站必刷视频",slug:"获取入站必刷视频",link:"#获取入站必刷视频",children:[]}],path:"/docs/video_ranking/precious_videos.html",pathLocale:"/",extraFields:[]},{title:"视频排行榜",headers:[{level:2,title:"获取分区视频排行榜列表",slug:"获取分区视频排行榜列表",link:"#获取分区视频排行榜列表",children:[]}],path:"/docs/video_ranking/ranking.html",pathLocale:"/",extraFields:[]},{title:"大会员操作",headers:[{level:2,title:"兑换卡券",slug:"兑换卡券",link:"#兑换卡券",children:[]},{level:2,title:"大会员每日经验",slug:"大会员每日经验",link:"#大会员每日经验",children:[]}],path:"/docs/vip/action.html",pathLocale:"/",extraFields:[]},{title:"大会员中心",headers:[{level:2,title:"大会员中心信息",slug:"大会员中心信息",link:"#大会员中心信息",children:[]},{level:2,title:"大积分",slug:"大积分",link:"#大积分",children:[{level:3,title:"大积分商品类型",slug:"大积分商品类型",link:"#大积分商品类型",children:[]},{level:3,title:"大积分任务列表",slug:"大积分任务列表",link:"#大积分任务列表",children:[]},{level:3,title:"大积分中心信息",slug:"大积分中心信息",link:"#大积分中心信息",children:[]},{level:3,title:"大积分改变记录",slug:"大积分改变记录",link:"#大积分改变记录",children:[]}]}],path:"/docs/vip/center.html",pathLocale:"/",extraFields:[]},{title:"大会员签到",headers:[{level:2,title:"大积分签到",slug:"大积分签到",link:"#大积分签到",children:[]}],path:"/docs/vip/clockin.html",pathLocale:"/",extraFields:[]},{title:"大会员信息",headers:[{level:2,title:"卡券状态查询",slug:"卡券状态查询",link:"#卡券状态查询",children:[]}],path:"/docs/vip/info.html",pathLocale:"/",extraFields:[]},{title:"基本信息",headers:[{level:2,title:"获取用户钱包",slug:"获取用户钱包",link:"#获取用户钱包",children:[]}],path:"/docs/wallet/info.html",pathLocale:"/",extraFields:[]},{title:"404页漫画收集",headers:[{level:2,title:"视频稿件错误提示图",slug:"视频稿件错误提示图",link:"#视频稿件错误提示图",children:[]},{level:2,title:"static类型",slug:"static类型",link:"#static类型",children:[]},{level:2,title:"dynamic类型",slug:"dynamic类型",link:"#dynamic类型",children:[]}],path:"/docs/web_widget/404_manga.html",pathLocale:"/",extraFields:[]},{title:"首页横幅头图",headers:[{level:2,title:"获取方法",slug:"获取方法",link:"#获取方法",children:[]},{level:2,title:"获取首页头图",slug:"获取首页头图",link:"#获取首页头图",children:[]},{level:2,title:"图层组合处理",slug:"图层组合处理",link:"#图层组合处理",children:[]}],path:"/docs/web_widget/header.html",pathLocale:"/",extraFields:[]},{title:"分区当日投稿数",headers:[{level:2,title:"获取分区当日投稿稿件数",slug:"获取分区当日投稿稿件数",link:"#获取分区当日投稿稿件数",children:[]}],path:"/docs/web_widget/zone_upload.html",pathLocale:"/",extraFields:[]},{title:"仲裁操作",headers:[{level:2,title:"申请加入风纪委员会",slug:"申请加入风纪委员会",link:"#申请加入风纪委员会",children:[]},{level:2,title:"拉取新案件",slug:"拉取新案件",link:"#拉取新案件",children:[]},{level:2,title:"进行仲裁投票",slug:"进行仲裁投票",link:"#进行仲裁投票",children:[]}],path:"/docs/blackroom/jury/action.html",pathLocale:"/",extraFields:[]},{title:"风纪委员会用户基本信息",headers:[{level:2,title:"基本数据",slug:"基本数据",link:"#基本数据",children:[]},{level:2,title:"基本数据(旧API)",slug:"基本数据-旧api",link:"#基本数据-旧api",children:[]},{level:2,title:"统计信息",slug:"统计信息",link:"#统计信息",children:[]},{level:2,title:"统计信息(旧API)",slug:"统计信息-旧api",link:"#统计信息-旧api",children:[]},{level:2,title:"检查申请风纪委员会资格",slug:"检查申请风纪委员会资格",link:"#检查申请风纪委员会资格",children:[]}],path:"/docs/blackroom/jury/base_info.html",pathLocale:"/",extraFields:[]},{title:"众裁信息",headers:[{level:2,title:"Enum类型代码",slug:"enum类型代码",link:"#enum类型代码",children:[{level:3,title:"投票类型码总览",slug:"投票类型码总览",link:"#投票类型码总览",children:[]},{level:3,title:"投票选项码总览",slug:"投票选项码总览",link:"#投票选项码总览",children:[]}]},{level:2,title:"获取单个案件信息",slug:"获取单个案件信息",link:"#获取单个案件信息",children:[]},{level:2,title:"查询案件众裁信息",slug:"查询案件众裁信息",link:"#查询案件众裁信息",children:[]},{level:2,title:"查询我的众裁记录",slug:"查询我的众裁记录",link:"#查询我的众裁记录",children:[]},{level:2,title:"查询案件众裁信息(旧 api)",slug:"查询案件众裁信息-旧-api",link:"#查询案件众裁信息-旧-api",children:[]},{level:2,title:"获取众议观点",slug:"获取众议观点",link:"#获取众议观点",children:[]}],path:"/docs/blackroom/jury/judgement_info.html",pathLocale:"/",extraFields:[]},{title:"二维码登录",headers:[{level:2,title:"扫码登录流程(伪代码)",slug:"扫码登录流程-伪代码",link:"#扫码登录流程-伪代码",children:[]},{level:2,title:"web端扫码登录",slug:"web端扫码登录",link:"#web端扫码登录",children:[{level:3,title:"申请二维码(web端)",slug:"申请二维码-web端",link:"#申请二维码-web端",children:[]},{level:3,title:"扫码登录(web端)",slug:"扫码登录-web端",link:"#扫码登录-web端",children:[]}]},{level:2,title:"web端扫码登录-旧版",slug:"web端扫码登录-旧版",link:"#web端扫码登录-旧版",children:[{level:3,title:"申请二维码(web端-旧版)",slug:"申请二维码-web端-旧版",link:"#申请二维码-web端-旧版",children:[]},{level:3,title:"扫码登录(web端-旧版)",slug:"扫码登录-web端-旧版",link:"#扫码登录-web端-旧版",children:[]}]},{level:2,title:"TV端扫码登录",slug:"tv端扫码登录",link:"#tv端扫码登录",children:[{level:3,title:"申请二维码(TV端)",slug:"申请二维码-tv端",link:"#申请二维码-tv端",children:[]},{level:3,title:"扫码登录(TV端)",slug:"扫码登录-tv端",link:"#扫码登录-tv端",children:[]},{level:3,title:"appkey 可用列表",slug:"appkey-可用列表",link:"#appkey-可用列表",children:[]}]}],path:"/docs/login/login_action/QR.html",pathLocale:"/",extraFields:[]},{title:"短信登录",headers:[{level:2,title:"获取国际冠字码_web端",slug:"获取国际冠字码-web端",link:"#获取国际冠字码-web端",children:[]},{level:2,title:"发送短信验证码_app端",slug:"发送短信验证码-app端",link:"#发送短信验证码-app端",children:[]},{level:2,title:"发送短信验证码_web端",slug:"发送短信验证码-web端",link:"#发送短信验证码-web端",children:[]},{level:2,title:"使用短信验证码登录_app端",slug:"使用短信验证码登录-app端",link:"#使用短信验证码登录-app端",children:[]},{level:2,title:"使用短信验证码登录_web端",slug:"使用短信验证码登录-web端",link:"#使用短信验证码登录-web端",children:[]}],path:"/docs/login/login_action/SMS.html",pathLocale:"/",extraFields:[]},{title:"密码登录",headers:[{level:2,title:"密码登录流程(伪代码)",slug:"密码登录流程-伪代码",link:"#密码登录流程-伪代码",children:[]},{level:2,title:"web端密码登录",slug:"web端密码登录",link:"#web端密码登录",children:[{level:3,title:"获取公钥&盐(web端)",slug:"获取公钥-盐-web端",link:"#获取公钥-盐-web端",children:[]},{level:3,title:"登录操作(web端)",slug:"登录操作-web端",link:"#登录操作-web端",children:[]}]},{level:2,title:"web端密码登录-旧版",slug:"web端密码登录-旧版",link:"#web端密码登录-旧版",children:[{level:3,title:"获取公钥&盐(web端-旧版)",slug:"获取公钥-盐-web端-旧版",link:"#获取公钥-盐-web端-旧版",children:[]},{level:3,title:"登录操作(web端-旧版)",slug:"登录操作-web端-旧版",link:"#登录操作-web端-旧版",children:[]}]},{level:2,title:"APP端密码登录",slug:"app端密码登录",link:"#app端密码登录",children:[{level:3,title:"获取公钥&盐(APP端)",slug:"获取公钥-盐-app端",link:"#获取公钥-盐-app端",children:[]},{level:3,title:"登录操作(APP端)",slug:"登录操作-app端",link:"#登录操作-app端",children:[]}]},{level:2,title:"登录密码的加密实例",slug:"登录密码的加密实例",link:"#登录密码的加密实例",children:[]},{level:2,title:"手机号验证",slug:"手机号验证",link:"#手机号验证",children:[{level:3,title:"简述",slug:"简述",link:"#简述",children:[]},{level:3,title:"获取 captcha",slug:"获取-captcha",link:"#获取-captcha",children:[]},{level:3,title:"发送验证码",slug:"发送验证码",link:"#发送验证码",children:[]},{level:3,title:"验证手机验证码",slug:"验证手机验证码",link:"#验证手机验证码",children:[]},{level:3,title:"交换 Cookie",slug:"交换-cookie",link:"#交换-cookie",children:[]}]}],path:"/docs/login/login_action/password.html",pathLocale:"/",extraFields:[]},{title:"登录操作",headers:[{level:2,title:"扫码登录",slug:"扫码登录",link:"#扫码登录",children:[]},{level:2,title:"验证登录",slug:"验证登录",link:"#验证登录",children:[{level:3,title:"申请captcha验证码",slug:"申请captcha验证码",link:"#申请captcha验证码",children:[]},{level:3,title:"申请captcha验证码 (旧版)",slug:"申请captcha验证码-旧版",link:"#申请captcha验证码-旧版",children:[]},{level:3,title:"进行验证",slug:"进行验证",link:"#进行验证",children:[]},{level:3,title:"继续登录",slug:"继续登录",link:"#继续登录",children:[]}]}],path:"/docs/login/login_action/",pathLocale:"/",extraFields:[]},{title:"APP API 签名与鉴权",headers:[{level:2,title:"APP API 签名特性",slug:"app-api-签名特性",link:"#app-api-签名特性",children:[]},{level:2,title:"APP API 签名算法",slug:"app-api-签名算法",link:"#app-api-签名算法",children:[]},{level:2,title:"Demo",slug:"demo",link:"#demo",children:[{level:3,title:"Python",slug:"python",link:"#python",children:[]},{level:3,title:"Java",slug:"java",link:"#java",children:[]},{level:3,title:"TypeScript/JavaScript",slug:"typescript-javascript",link:"#typescript-javascript",children:[]},{level:3,title:"Swift",slug:"swift",link:"#swift",children:[]},{level:3,title:"CplusPlus",slug:"cplusplus",link:"#cplusplus",children:[]}]}],path:"/docs/misc/sign/APP.html",pathLocale:"/",extraFields:[]},{title:"APPKey",headers:[],path:"/docs/misc/sign/APPKey.html",pathLocale:"/",extraFields:[]},{title:"BiliTicket",headers:[{level:2,title:"简述",slug:"简述",link:"#简述",children:[]},{level:2,title:"算法",slug:"算法",link:"#算法",children:[]},{level:2,title:"接口",slug:"接口",link:"#接口",children:[]},{level:2,title:"Demo",slug:"demo",link:"#demo",children:[{level:3,title:"Python",slug:"python",link:"#python",children:[]},{level:3,title:"Java",slug:"java",link:"#java",children:[]},{level:3,title:"JavaScript (Node.js)",slug:"javascript-node-js",link:"#javascript-node-js",children:[]}]}],path:"/docs/misc/sign/bili_ticket.html",pathLocale:"/",extraFields:[]},{title:"v_voucher 验证",headers:[{level:2,title:"简述",slug:"简述",link:"#简述",children:[]},{level:2,title:"操作流程",slug:"操作流程",link:"#操作流程",children:[]},{level:2,title:"接口列表",slug:"接口列表",link:"#接口列表",children:[{level:3,title:"从 v_voucher 申请 captcha",slug:"从-v-voucher-申请-captcha",link:"#从-v-voucher-申请-captcha",children:[]}]},{level:2,title:"从验证结果获取 grisk_id",slug:"从验证结果获取-grisk-id",link:"#从验证结果获取-grisk-id",children:[]}],path:"/docs/misc/sign/v_voucher.html",pathLocale:"/",extraFields:[]},{title:"WBI 签名",headers:[{level:2,title:"WBI 签名算法",slug:"wbi-签名算法",link:"#wbi-签名算法",children:[]},{level:2,title:"Demo",slug:"demo",link:"#demo",children:[{level:3,title:"Python",slug:"python",link:"#python",children:[]},{level:3,title:"JavaScript",slug:"javascript",link:"#javascript",children:[]},{level:3,title:"Golang",slug:"golang",link:"#golang",children:[]},{level:3,title:"CSharp",slug:"csharp",link:"#csharp",children:[]},{level:3,title:"Java",slug:"java",link:"#java",children:[]},{level:3,title:"Kotlin",slug:"kotlin",link:"#kotlin",children:[]},{level:3,title:"PHP",slug:"php",link:"#php",children:[]},{level:3,title:"Rust",slug:"rust",link:"#rust",children:[]},{level:3,title:"Swift",slug:"swift",link:"#swift",children:[]},{level:3,title:"CPlusPlus",slug:"cplusplus",link:"#cplusplus",children:[]}]}],path:"/docs/misc/sign/wbi.html",pathLocale:"/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}],Ap=me(Pp),wp=()=>Ap,Tp=({searchIndex:e,routeLocale:t,query:l,maxSuggestions:i})=>{const n=M(()=>e.value.filter(r=>r.pathLocale===t.value));return M(()=>{const r=l.value.trim().toLowerCase();if(!r)return[];const o=[],a=(s,c)=>{ho(r,[c.title])&&o.push({link:`${s.path}#${c.slug}`,title:s.title,header:c.title});for(const d of c.children){if(o.length>=i.value)return;a(s,d)}};for(const s of n.value){if(o.length>=i.value)break;if(ho(r,[s.title,...s.extraFields])){o.push({link:s.path,title:s.title});continue}for(const c of s.headers){if(o.length>=i.value)break;a(s,c)}}return o})},Rp=e=>{const t=me(0);return{focusIndex:t,focusNext:()=>{t.value{t.value>0?t.value-=1:t.value=e.value.length-1}}},Ip=he({name:"SearchBox",props:{locales:{type:Object,required:!1,default:()=>({})},hotKeys:{type:Array,required:!1,default:()=>[]},maxSuggestions:{type:Number,required:!1,default:5}},setup(e){const{locales:t,hotKeys:l,maxSuggestions:i}=wi(e),n=Yt(),r=_l(),o=wp(),a=me(null),s=me(!1),c=me(""),d=M(()=>t.value[r.value]??{}),h=Tp({searchIndex:o,routeLocale:r,query:c,maxSuggestions:i}),{focusIndex:f,focusNext:_,focusPrev:y}=Rp(h);Lp({input:a,hotKeys:l});const L=M(()=>s.value&&!!h.value.length),A=()=>{L.value&&y()},b=()=>{L.value&&_()},k=x=>{if(!L.value)return;const O=h.value[x];O&&n.push(O.link).then(()=>{c.value="",f.value=0})};return()=>ue("form",{class:"search-box",role:"search"},[ue("input",{ref:a,type:"search",placeholder:d.value.placeholder,autocomplete:"off",spellcheck:!1,value:c.value,onFocus:()=>s.value=!0,onBlur:()=>s.value=!1,onInput:x=>c.value=x.target.value,onKeydown:x=>{switch(x.key){case"ArrowUp":{A();break}case"ArrowDown":{b();break}case"Enter":{x.preventDefault(),k(f.value);break}}}}),L.value&&ue("ul",{class:"suggestions",onMouseleave:()=>f.value=-1},h.value.map(({link:x,title:O,header:q},Z)=>ue("li",{class:["suggestion",{focus:f.value===Z}],onMouseenter:()=>f.value=Z,onMousedown:()=>k(Z)},ue("a",{href:x,onClick:F=>F.preventDefault()},[ue("span",{class:"page-title"},O),q&&ue("span",{class:"page-header"},`> ${q}`)]))))])}});const Op={},xp=["s","/"],Dp=5,Cp=ft({enhance({app:e}){e.component("SearchBox",t=>ue(Ip,{locales:Op,hotKeys:xp,maxSuggestions:Dp,...t}))}}),Vp=ce("footer",{style:{"text-align":"center"}},[ht(" Copyright © 2020-2024 "),ce("a",{href:"https://github.com/SocialSisterYi/"},"SocialSisterYi"),ht(" | "),ce("a",{href:"https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE"},"CC-BY-NC-4.0 Licensed")],-1),Sp={__name:"Layout",setup(e){return(t,l)=>(j(),we(Ws,null,{"page-bottom":Ve(()=>[Vp]),_:1}))}},Fp=Ae(Sp,[["__file","Layout.vue"]]),$p=ft({layouts:{Layout:Fp}}),ri=[Zd,lh,oh,gh,yh,Th,rp,op,gp,Cp,$p],Np=[["v-73005554","/CONTRIBUTING.html",{title:"bilibili-API-collect"},[":md"]],["v-8daa1a0e","/",{title:""},["/README.md"]],["v-8955a406","/grpc_api/",{title:"gRPC 接口定义(protobuf 结构体)"},["/grpc_api/readme.md"]],["v-17b5f640","/docs/APP_widget/splash.html",{title:"APP端开屏图片"},[":md"]],["v-5a599330","/docs/APP_widget/ver.html",{title:"获取最新 APP 版本"},[":md"]],["v-511a71b4","/docs/activity/info.html",{title:"活动主题信息"},[":md"]],["v-45137136","/docs/activity/list.html",{title:"活动列表"},[":md"]],["v-2ed1dfb0","/docs/album/action.html",{title:"相簿操作"},[":md"]],["v-15f43666","/docs/album/activity_list.html",{title:"相簿活动列表"},[":md"]],["v-5938a1f0","/docs/album/info.html",{title:"相簿基本信息"},[":md"]],["v-724d6800","/docs/album/list.html",{title:"相簿列表"},[":md"]],["v-cdc386a0","/docs/album/recommend_author.html",{title:"相簿推荐作者"},[":md"]],["v-4e28f222","/docs/article/action.html",{title:"专栏投币&点赞&收藏"},[":md"]],["v-68f62c48","/docs/article/articles.html",{title:"文集基本信息"},[":md"]],["v-34add227","/docs/article/category.html",{title:"专栏分类"},[":md"]],["v-180bc312","/docs/article/info.html",{title:"专栏基本信息"},[":md"]],["v-619ac887","/docs/article/list.html",{title:"获取用户专栏信息"},[":md"]],["v-5de169e2","/docs/audio/action.html",{title:"音频投币&收藏"},[":md"]],["v-16ff2ad2","/docs/audio/info.html",{title:"歌曲基本信息"},[":md"]],["v-54373be6","/docs/audio/music_list.html",{title:"歌单&音频收藏夹详细信息"},[":md"]],["v-3b0c2e90","/docs/audio/musicstream_url.html",{title:"音频流URL"},[":md"]],["v-f650fc4e","/docs/audio/rank.html",{title:"音频榜单"},[":md"]],["v-7e3f2e37","/docs/audio/status_number.html",{title:"音频状态数"},[":md"]],["v-403a6f12","/docs/bangumi/follow.html",{title:"追番相关"},[":md"]],["v-e8e1d54c","/docs/bangumi/info.html",{title:"剧集基本信息"},[":md"]],["v-08a8cbb2","/docs/bangumi/timeline.html",{title:"番剧或影视时间线"},[":md"]],["v-172498ff","/docs/bangumi/videostream_url.html",{title:"视频流URL"},[":md"]],["v-6f936bc8","/docs/blackroom/banlist.html",{title:"封禁公示"},[":md"]],["v-394457c9","/docs/broadcast/",{title:"全站广播"},["/docs/broadcast/readme.md"]],["v-7b9cff31","/docs/broadcast/video_room.html",{title:"视频实时信息"},[":md"]],["v-0e0e11ae","/docs/cheese/info.html",{title:"课程基本信息"},[":md"]],["v-1efa602b","/docs/cheese/videostream_url.html",{title:"课程视频流URL"},[":md"]],["v-cd0c7f92","/docs/clientinfo/ip.html",{title:"通过ip确定地理位置"},[":md"]],["v-2d665a50","/docs/comment/action.html",{title:"评论区操作"},[":md"]],["v-167ffab0","/docs/comment/list.html",{title:"评论区明细"},[":md"]],["v-3bb3d8ab","/docs/comment/",{title:"评论区"},["/docs/comment/readme.md"]],["v-3228cc8a","/docs/creativecenter/railgun.html",{title:"电磁力相关"},[":md"]],["v-00885146","/docs/creativecenter/season.html",{title:"合集管理"},[":md"]],["v-22785fe3","/docs/creativecenter/statistics_data.html",{title:"统计与数据"},["/docs/creativecenter/statistics&data.html","/docs/creativecenter/statistics&data.md"]],["v-733df0e8","/docs/creativecenter/upload.html",{title:"投稿"},[":md"]],["v-b13d7c1e","/docs/creativecenter/videos.html",{title:"视频相关杂项"},[":md"]],["v-116820eb","/docs/customerservice/msg.html",{title:"客服消息"},[":md"]],["v-2922b588","/docs/danmaku/action.html",{title:"弹幕操作"},[":md"]],["v-b1f572fe","/docs/danmaku/buzzword.html",{title:"名词解释"},[":md"]],["v-68701008","/docs/danmaku/config.html",{title:"弹幕个人配置修改"},[":md"]],["v-bf935f48","/docs/danmaku/danmaku_proto.html",{title:"protobuf弹幕"},[":md"]],["v-0c967c40","/docs/danmaku/danmaku_view_proto.html",{title:"弹幕元数据"},[":md"]],["v-6300ee4d","/docs/danmaku/danmaku_xml.html",{title:"xml弹幕"},[":md"]],["v-6970bc40","/docs/danmaku/history.html",{title:"历史弹幕"},[":md"]],["v-f1eb9d0c","/docs/danmaku/snapshot.html",{title:"弹幕快照"},[":md"]],["v-547b7003","/docs/danmaku/thumbup.html",{title:"弹幕点赞查询"},[":md"]],["v-9d8df7d8","/docs/danmaku/webmask.html",{title:"智能防挡弹幕"},[":md"]],["v-9d5f1690","/docs/dynamic/action.html",{title:"动态操作"},[":md"]],["v-3c9c4ba3","/docs/dynamic/all.html",{title:"获取动态列表"},[":md"]],["v-25e3807d","/docs/dynamic/atlist.html",{title:"根据关键字搜索用户 (at别人时的填充列表)"},[":md"]],["v-3fe3c830","/docs/dynamic/basicInfo.html",{title:"动态基本信息"},[":md"]],["v-edaa43f2","/docs/dynamic/card_info.html",{title:"动态详细信息字段"},[":md"]],["v-e4fa8b6a","/docs/dynamic/content.html",{title:"动态信息"},[":md"]],["v-4e8e1906","/docs/dynamic/detail.html",{title:"获取动态详情"},[":md"]],["v-fbe42de6","/docs/dynamic/dynamic_enum.html",{title:"动态类型对照"},[":md"]],["v-5eaf8994","/docs/dynamic/get_dynamic_detail.html",{title:"获取特定动态卡片信息"},[":md"]],["v-4e377d61","/docs/dynamic/nav.html",{title:"获取导航栏动态"},[":md"]],["v-264d8116","/docs/dynamic/publish.html",{title:"发布动态"},[":md"]],["v-78f5e49e","/docs/dynamic/space.html",{title:"获取用户空间动态"},[":md"]],["v-fc18a416","/docs/dynamic/tag_dynamics.html",{title:"话题下特定动态信息"},[":md"]],["v-29283a15","/docs/dynamic/topic.html",{title:"话题搜索"},[":md"]],["v-76365d86","/docs/electric/Bcoin.html",{title:"B币方式充电"},[":md"]],["v-3661cea6","/docs/electric/WeChat_Alipay.html",{title:"微信&支付宝方式充电"},["/docs/electric/WeChat&Alipay.html","/docs/electric/WeChat&Alipay.md"]],["v-22b1d447","/docs/electric/charge_list.html",{title:"充电列表"},[":md"]],["v-fa6791a8","/docs/electric/charge_msg.html",{title:"充电留言"},[":md"]],["v-48cd1983","/docs/electric/monthly.html",{title:"包月充电"},[":md"]],["v-2e61077f","/docs/emoji/action.html",{title:"表情操作"},[":md"]],["v-f6d1a5d2","/docs/emoji/list.html",{title:"表情列表"},[":md"]],["v-7877dfd8","/docs/fav/action.html",{title:"收藏夹操作"},[":md"]],["v-253cacdc","/docs/fav/info.html",{title:"收藏夹基本信息"},[":md"]],["v-da455228","/docs/fav/list.html",{title:"收藏夹内容"},[":md"]],["v-306d26a0","/docs/garb/color.html",{title:"主题色"},[":md"]],["v-767cd3fa","/docs/garb/lottery.html",{title:"装扮/收藏集"},[":md"]],["v-a09b7e1c","/docs/garb/skin.html",{title:"APP主题"},[":md"]],["v-9de02064","/docs/history_toview/history.html",{title:"历史记录"},["/docs/history&toview/history.html","/docs/history&toview/history.md"]],["v-ad0ed5e0","/docs/history_toview/toview.html",{title:"稍后再看"},["/docs/history&toview/toview.html","/docs/history&toview/toview.md"]],["v-60c67fef","/docs/live/follow_up_live.html",{title:"关注UP直播情况"},[":md"]],["v-3a8d6a43","/docs/live/info.html",{title:"直播间基本信息"},[":md"]],["v-7dfe7a81","/docs/live/live_area.html",{title:"直播间分区"},[":md"]],["v-0e792a2e","/docs/live/live_stream.html",{title:"直播间视频流"},[":md"]],["v-6acf15ec","/docs/live/manage.html",{title:"直播间管理"},[":md"]],["v-1c439f0e","/docs/live/message_stream.html",{title:"直播间信息流"},[":md"]],["v-be421d0c","/docs/live/redpocket.html",{title:"直播间人气红包"},[":md"]],["v-5ac2e77d","/docs/live/report.html",{title:"直播心跳上报"},[":md"]],["v-5773b3bc","/docs/live/silent_user_manage.html",{title:"直播间禁言相关 API"},[":md"]],["v-0560cd46","/docs/live/user.html",{title:"直播间用户实用 API"},[":md"]],["v-16551798","/docs/login/cookie_refresh.html",{title:"Web端Cookie刷新"},[":md"]],["v-215493fa","/docs/login/exit.html",{title:"退出账号登录"},[":md"]],["v-3001c1d4","/docs/login/login_info.html",{title:"登录基本信息"},[":md"]],["v-ab0078ac","/docs/login/login_notice.html",{title:"登录记录"},[":md"]],["v-586ee8e0","/docs/login/member_center.html",{title:"个人中心"},[":md"]],["v-52b13614","/docs/manga/Activity.html",{title:"漫画任务操作"},[":md"]],["v-37a976bc","/docs/manga/ClockIn.html",{title:"签到"},[":md"]],["v-14f31e98","/docs/manga/Comic.html",{title:"购买漫画章节"},[":md"]],["v-db4c378a","/docs/manga/Download.html",{title:"获取当前话全部图片地址"},[":md"]],["v-7f153540","/docs/manga/Season.html",{title:"漫画赛季"},[":md"]],["v-36175050","/docs/manga/User.html",{title:"漫画用户信息"},[":md"]],["v-2212ab8c","/docs/manga/index_file.html",{title:"data.index"},[":md"]],["v-6219086a","/docs/manga/light_card.html",{title:"获取轻享卡信息"},[":md"]],["v-9dc00f84","/docs/manga/point_shop.html",{title:"积分商城"},[":md"]],["v-02292a0a","/docs/message/msg.html",{title:"通知消息"},[":md"]],["v-0d924737","/docs/message/private_msg.html",{title:"私信"},[":md"]],["v-13677488","/docs/misc/b23tv.html",{title:"b23.tv 短链"},[":md"]],["v-802f7e32","/docs/misc/buvid3_4.html",{title:"获取 buvid3 / buvid4 / b_nut"},[":md"]],["v-45f9d6c0","/docs/misc/bvid_desc.html",{title:"bvid说明"},[":md"]],["v-4b4ba74c","/docs/misc/device_identity.html",{title:"设备各类标识算法(APP 端)"},[":md"]],["v-728812ef","/docs/misc/errcode.html",{title:"公共错误码"},[":md"]],["v-673bee43","/docs/misc/picture.html",{title:"图片格式化"},[":md"]],["v-450b7300","/docs/misc/time_stamp.html",{title:"获取当前时间戳"},[":md"]],["v-0bd4bcd9","/docs/newbie_exam/action.html",{title:"操作"},[":md"]],["v-ee5e21ae","/docs/newbie_exam/fetch.html",{title:"拉取题目"},[":md"]],["v-e6a8723e","/docs/newbie_exam/info.html",{title:"查询信息"},[":md"]],["v-3b30947e","/docs/note/action.html",{title:"笔记操作"},[":md"]],["v-f4104c6e","/docs/note/info.html",{title:"笔记详细信息"},[":md"]],["v-18cef84e","/docs/note/list.html",{title:"笔记列表"},[":md"]],["v-672ca53c","/docs/note/",{title:"视频笔记"},["/docs/note/readme.md"]],["v-2d7e1c50","/docs/search/hot.html",{title:"默认搜索&热搜"},[":md"]],["v-4940b435","/docs/search/search_request.html",{title:"搜索"},[":md"]],["v-2c341a0d","/docs/search/search_response.html",{title:"搜索响应条目"},[":md"]],["v-ba17e9fe","/docs/search/suggest.html",{title:"搜索建议"},[":md"]],["v-02b431cb","/docs/teenager/teenager_mode.html",{title:"青少年模式"},[":md"]],["v-337be22a","/docs/user/check_nickname.html",{title:"检查昵称是否可注册"},[":md"]],["v-cf4c8e04","/docs/user/contract.html",{title:"加入老粉计划"},[":md"]],["v-ed6e4b3c","/docs/user/info.html",{title:"用户基本信息"},[":md"]],["v-1f4b69b4","/docs/user/medals.html",{title:"所有粉丝勋章"},[":md"]],["v-b5df8b90","/docs/user/official_role.html",{title:"用户认证类型一览"},[":md"]],["v-640b6e0d","/docs/user/register.html",{title:"用户注册"},[":md"]],["v-5c0c5b58","/docs/user/relation.html",{title:"用户关系相关"},[":md"]],["v-2bacf0fc","/docs/user/space.html",{title:"用户空间相关"},[":md"]],["v-58c052cc","/docs/user/status_number.html",{title:"用户状态数"},[":md"]],["v-54b0f434","/docs/video/action.html",{title:"稿件观众操作"},[":md"]],["v-3857570a","/docs/video/appeal.html",{title:"稿件投诉"},[":md"]],["v-0eaafc5d","/docs/video/attribute_data.html",{title:"视频属性数据说明"},[":md"]],["v-738a744c","/docs/video/collection.html",{title:"合集和视频列表信息"},[":md"]],["v-c357ce08","/docs/video/info.html",{title:"视频基本信息"},[":md"]],["v-7e6a01b8","/docs/video/interact_video.html",{title:"互动视频信息"},[":md"]],["v-11f54637","/docs/video/online.html",{title:"视频在线人数"},[":md"]],["v-0919deac","/docs/video/pbp.html",{title:"高能进度条"},[":md"]],["v-17800a69","/docs/video/player.html",{title:"播放器"},[":md"]],["v-66cc282c","/docs/video/recommend.html",{title:"视频推荐"},[":md"]],["v-30ce6814","/docs/video/report.html",{title:"视频观看数据上报"},[":md"]],["v-08037526","/docs/video/snapshot.html",{title:"视频快照"},[":md"]],["v-7da8e172","/docs/video/status_number.html",{title:"视频状态数"},[":md"]],["v-edc6a97c","/docs/video/summary.html",{title:"视频AI总结"},[":md"]],["v-1ae1971e","/docs/video/tags.html",{title:"视频TAG"},[":md"]],["v-63d42d8c","/docs/video/video_zone.html",{title:"视频分区一览"},[":md"]],["v-0acb47c6","/docs/video/videostream_url.html",{title:"视频流URL"},[":md"]],["v-6423be9c","/docs/video_ranking/dynamic.html",{title:"分区最新视频"},[":md"]],["v-3c77c350","/docs/video_ranking/popular.html",{title:"热门视频"},[":md"]],["v-7d2bb9de","/docs/video_ranking/precious_videos.html",{title:"入站必刷视频"},[":md"]],["v-7eae971b","/docs/video_ranking/ranking.html",{title:"视频排行榜"},[":md"]],["v-4d524bd4","/docs/vip/action.html",{title:"大会员操作"},[":md"]],["v-42caf152","/docs/vip/center.html",{title:"大会员中心"},[":md"]],["v-1fe3cbb3","/docs/vip/clockin.html",{title:"大会员签到"},[":md"]],["v-64c3e144","/docs/vip/info.html",{title:"大会员信息"},[":md"]],["v-38c89e50","/docs/wallet/info.html",{title:"基本信息"},[":md"]],["v-6252a41e","/docs/web_widget/404_manga.html",{title:"404页漫画收集"},[":md"]],["v-2bee0cb2","/docs/web_widget/header.html",{title:"首页横幅头图"},[":md"]],["v-33a4ed0a","/docs/web_widget/zone_upload.html",{title:"分区当日投稿数"},[":md"]],["v-00bd94f6","/docs/blackroom/jury/action.html",{title:"仲裁操作"},[":md"]],["v-2ffe7b8a","/docs/blackroom/jury/base_info.html",{title:"风纪委员会用户基本信息"},[":md"]],["v-ba4e3898","/docs/blackroom/jury/judgement_info.html",{title:"众裁信息"},[":md"]],["v-d18ced94","/docs/login/login_action/QR.html",{title:"二维码登录"},[":md"]],["v-53277122","/docs/login/login_action/SMS.html",{title:"短信登录"},[":md"]],["v-5424b67c","/docs/login/login_action/password.html",{title:"密码登录"},[":md"]],["v-feb0d03c","/docs/login/login_action/",{title:"登录操作"},["/docs/login/login_action/readme.md"]],["v-58c05ce2","/docs/misc/sign/APP.html",{title:"APP API 签名与鉴权"},[":md"]],["v-4458a551","/docs/misc/sign/APPKey.html",{title:"APPKey"},[":md"]],["v-618ff0fc","/docs/misc/sign/bili_ticket.html",{title:"BiliTicket"},[":md"]],["v-79d95c04","/docs/misc/sign/v_voucher.html",{title:"v_voucher 验证"},[":md"]],["v-25192605","/docs/misc/sign/wbi.html",{title:"WBI 签名"},[":md"]],["v-3706649a","/404.html",{title:""},[]]];var fo=he({name:"Vuepress",setup(){const e=Hu();return()=>ue(e.value)}}),Mp=()=>Np.reduce((e,[t,l,i,n])=>(e.push({name:t,path:l,component:fo,meta:i},{path:l.endsWith("/")?l+"index.html":l.substring(0,l.length-5),redirect:l},...n.map(r=>({path:r===":md"?l.substring(0,l.length-5)+".md":r,redirect:l}))),e),[{name:"404",path:"/:catchAll(.*)",component:fo}]),Hp=cd,Bp=()=>{const e=qd({history:Hp(cs("/bilibili-API-collect/")),routes:Mp(),scrollBehavior:(t,l,i)=>i||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,l)=>{var i;(t.path!==l.path||l===mt)&&([t.meta._data]=await Promise.all([pt.resolvePageData(t.name),(i=hs[t.name])==null?void 0:i.__asyncLoader()]))}),e},jp=e=>{e.component("ClientOnly",Hn),e.component("Content",Ku)},zp=(e,t,l)=>{const i=oo(()=>t.currentRoute.value.path),n=oo(()=>pt.resolveRouteLocale(ll.value.locales,i.value)),r=Sh(i,()=>t.currentRoute.value.meta._data),o=M(()=>pt.resolveLayouts(l)),a=M(()=>pt.resolveSiteLocaleData(ll.value,n.value)),s=M(()=>pt.resolvePageFrontmatter(r.value)),c=M(()=>pt.resolvePageHeadTitle(r.value,a.value)),d=M(()=>pt.resolvePageHead(c.value,s.value,a.value)),h=M(()=>pt.resolvePageLang(r.value,a.value)),f=M(()=>pt.resolvePageLayout(r.value,o.value));return e.provide(Su,o),e.provide(fs,r),e.provide(vs,s),e.provide(Nu,c),e.provide(ps,d),e.provide(ms,h),e.provide(_s,f),e.provide(Nn,n),e.provide(bs,a),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>s.value},$head:{get:()=>d.value},$headTitle:{get:()=>c.value},$lang:{get:()=>h.value},$page:{get:()=>r.value},$routeLocale:{get:()=>n.value},$site:{get:()=>ll.value},$siteLocale:{get:()=>a.value},$withBase:{get:()=>Bn}}),{layouts:o,pageData:r,pageFrontmatter:s,pageHead:d,pageHeadTitle:c,pageLang:h,pageLayout:f,routeLocale:n,siteData:ll,siteLocaleData:a}},Up=()=>{const e=$u(),t=Mu(),l=me([]),i=()=>{e.value.forEach(r=>{const o=Kp(r);o&&l.value.push(o)})},n=()=>{document.documentElement.lang=t.value,l.value.forEach(r=>{r.parentNode===document.head&&document.head.removeChild(r)}),l.value.splice(0,l.value.length),e.value.forEach(r=>{const o=qp(r);o!==null&&(document.head.appendChild(o),l.value.push(o))})};Wt(ju,n),ze(()=>{i(),n(),et(()=>e.value,n)})},Kp=([e,t,l=""])=>{const i=Object.entries(t).map(([a,s])=>_e(s)?`[${a}=${JSON.stringify(s)}]`:s===!0?`[${a}]`:"").join(""),n=`head > ${e}${i}`;return Array.from(document.querySelectorAll(n)).find(a=>a.innerText===l)||null},qp=([e,t,l])=>{if(!_e(e))return null;const i=document.createElement(e);return $n(t)&&Object.entries(t).forEach(([n,r])=>{_e(r)?i.setAttribute(n,r):r===!0&&i.setAttribute(n,"")}),_e(l)&&i.appendChild(document.createTextNode(l)),i},Wp=Tu,Gp=async()=>{var l;const e=Wp({name:"VuepressApp",setup(){var i;Up();for(const n of ri)(i=n.setup)==null||i.call(n);return()=>[ue(xs),...ri.flatMap(({rootComponents:n=[]})=>n.map(r=>ue(r)))]}}),t=Bp();jp(e),zp(e,t,ri);for(const i of ri)await((l=i.enhance)==null?void 0:l.call(i,{app:e,router:t,siteData:ll}));return e.use(t),{app:e,router:t}};Gp().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Ae as _,ce as a,ht as b,ee as c,Gp as createVueApp,le as d,jc as e,Yp as f,Te as g,j as o,Jp as p,kt as r,Ve as w}; diff --git a/assets/appeal.html-165e521c.js b/assets/appeal.html-165e521c.js new file mode 100644 index 0000000000..d65b09e3e9 --- /dev/null +++ b/assets/appeal.html-165e521c.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-3857570a","path":"/docs/video/appeal.html","title":"稿件投诉","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"附件上传","slug":"附件上传","link":"#附件上传","children":[]},{"level":2,"title":"获取投诉类型","slug":"获取投诉类型","link":"#获取投诉类型","children":[]},{"level":2,"title":"投诉稿件","slug":"投诉稿件","link":"#投诉稿件","children":[]}],"git":{},"filePathRelative":"docs/video/appeal.md"}');export{e as data}; diff --git a/assets/appeal.html-d4790fd7.js b/assets/appeal.html-d4790fd7.js new file mode 100644 index 0000000000..5529ceeaf4 --- /dev/null +++ b/assets/appeal.html-d4790fd7.js @@ -0,0 +1,316 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    稿件投诉

    附件上传

    附件上传与视频封面上传共用一个api。

    获取投诉类型

    https://api.bilibili.com/x/web-interface/archive/appeal/tags

    请求类型:GET

    json回复:

    参数名类型内容备注
    codenum成功为0
    messagestr成功为0
    ttlnum1
    dataarray

    data数组:

    类型内容备注
    0obj类型条目 1
    nobj类型条目 (n+1)按照指定的顺序排列
    ……obj…………

    data数组中的对象

    类型内容备注
    tidnum类型tid
    businessnum意义不明
    weightnum权重
    roundnum意义不明
    statenum意义不明
    namestr类型名称
    remarkstr类型备注
    ctimestr意义不明
    mtimestr意义不明
    controls拥有时:array
    没有时:null
    详细信息填写提示

    controls数组中的对象:

    类型内容备注
    tidnum同上
    bidnum意义不明
    namestr提示名称
    titlestr提示标题
    componentstr需要填入的类型
    placeholderstr文本框占位符
    requirednum是否为必填

    示例:

    curl --location --request GET 'https://api.bilibili.com/x/web-interface/archive/appeal/tags'
    +
    查看响应示例
    {
    +    "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": "2023-09-21T18:40:20+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 8,
    +            "business": 1,
    +            "weight": 40,
    +            "round": 2,
    +            "state": 1,
    +            "name": "与站内其他视频撞车",
    +            "remark": "为帮助审核人员更快处理, 请描述撞车信息",
    +            "ctime": "2018-08-13T15:41:20+08:00",
    +            "mtime": "2023-03-06T16:36:02+08:00",
    +            "controls": [
    +                {
    +                    "tid": 8,
    +                    "bid": 1,
    +                    "name": "撞车对象",
    +                    "title": "撞车对象",
    +                    "component": "input",
    +                    "placeholder": "BVID",
    +                    "required": 1
    +                }
    +            ]
    +        },
    +        {
    +            "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": "2023-09-20T16:23:39+08:00",
    +            "controls": [
    +                {
    +                    "tid": 52,
    +                    "bid": 1,
    +                    "name": "出处",
    +                    "title": "原创视频出处",
    +                    "component": "link",
    +                    "placeholder": "请填写链接",
    +                    "required": 1
    +                }
    +            ]
    +        },
    +        {
    +            "tid": 10018,
    +            "business": 1,
    +            "weight": 36,
    +            "round": 2,
    +            "state": 1,
    +            "name": "违规推广",
    +            "remark": "",
    +            "ctime": "2023-09-21T17:56:21+08:00",
    +            "mtime": "2023-09-22T14:36:41+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10019,
    +            "business": 1,
    +            "weight": 34,
    +            "round": 2,
    +            "state": 1,
    +            "name": "其他不规范行为",
    +            "remark": "",
    +            "ctime": "2023-09-21T18:05:33+08:00",
    +            "mtime": "2023-09-22T14:37:03+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10020,
    +            "business": 1,
    +            "weight": 89,
    +            "round": 2,
    +            "state": 1,
    +            "name": "危险行为",
    +            "remark": "",
    +            "ctime": "2023-09-21T18:05:51+08:00",
    +            "mtime": "2023-09-22T14:38:08+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10022,
    +            "business": 1,
    +            "weight": 1,
    +            "round": 2,
    +            "state": 1,
    +            "name": "其他",
    +            "remark": "",
    +            "ctime": "2023-09-21T19:07:01+08:00",
    +            "mtime": "2023-09-22T14:38:59+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10023,
    +            "business": 1,
    +            "weight": 59,
    +            "round": 2,
    +            "state": 1,
    +            "name": "企业商誉侵权",
    +            "remark": "",
    +            "ctime": "2023-12-01T14:06:58+08:00",
    +            "mtime": "2023-12-01T15:33:26+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10024,
    +            "business": 1,
    +            "weight": 58,
    +            "round": 2,
    +            "state": 1,
    +            "name": "侵权申诉",
    +            "remark": "",
    +            "ctime": "2023-12-01T14:07:18+08:00",
    +            "mtime": "2023-12-01T15:33:37+08:00",
    +            "controls": null
    +        },
    +        {
    +            "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": "2023-09-21T19:07:10+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": 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
    +        },
    +        {
    +            "tid": 10014,
    +            "business": 1,
    +            "weight": 8,
    +            "round": 1,
    +            "state": 1,
    +            "name": "涉政谣言",
    +            "remark": "为帮助审核人员更快处理,请补充谣言内容出现位置",
    +            "ctime": "2022-09-15T17:23:44+08:00",
    +            "mtime": "2022-09-16T09:56:07+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10015,
    +            "business": 1,
    +            "weight": 7,
    +            "round": 1,
    +            "state": 1,
    +            "name": "涉社会事件谣言",
    +            "remark": "为帮助审核人员更快处理,请补充谣言内容出现位置",
    +            "ctime": "2022-09-15T17:25:56+08:00",
    +            "mtime": "2022-09-16T09:56:07+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10017,
    +            "business": 1,
    +            "weight": 5,
    +            "round": 1,
    +            "state": 1,
    +            "name": "虚假不实信息",
    +            "remark": "为帮助审核人员更快处理,请补充不实内容出现位置",
    +            "ctime": "2022-09-15T17:28:16+08:00",
    +            "mtime": "2022-09-16T09:56:08+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10021,
    +            "business": 1,
    +            "weight": 88,
    +            "round": 1,
    +            "state": 1,
    +            "name": "观感不适",
    +            "remark": "",
    +            "ctime": "2023-09-21T18:06:15+08:00",
    +            "mtime": "2023-09-21T18:06:15+08:00",
    +            "controls": null
    +        }
    +    ]
    +}
    +

    投诉稿件

    https://api.bilibili.com/x/web-interface/appeal/v2/submit 请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数:

    参数名类型内容必要性备注
    csrfstrcsrf token(位于cookie bili_jct)必要位于request body
    aidnum稿件aid必要位于request body
    tidnum投诉理由tid必要位于request body
    descstr投诉理由详细描述必要位于request body
    attachstr附件(多个附件用逗号隔开非必要位于request body
    buidstr风控代码必要位于request header
    Buidstr风控代码必要位于request cookies

    上下两个buid值必须相同,可随机

    json回复:

    参数名类型内容备注
    codenum返回码成功为0
    messagestr成功为0
    ttl1

    **示例:举报av号为61080066的视频,理由为人身攻击,描述为“xxxxx”,并附带了一个图片附件

    curl --location --request POST 'https://api.bilibili.com/x/web-interface/appeal/v2/submit' \\
    +--form 'csrf="xxxx"'\\
    +--form 'aid="61080066"' \\
    +--form 'tid="7"' \\
    +--form 'desc="xxxxx"' \\
    +--form 'attach="https://archive.biliimg.com/bfs/archive/xxxxx.png"'
    +
    查看响应示例
    {
    +	"code":0,
    +	"message":"0",
    +	"ttl":1
    +}
    +
    `,28),e=[o];function u(l,r){return n(),a("div",null,e)}const i=s(p,[["render",u],["__file","appeal.html.vue"]]);export{i as default}; diff --git a/assets/articles.html-619e0082.js b/assets/articles.html-619e0082.js new file mode 100644 index 0000000000..5f0e967f19 --- /dev/null +++ b/assets/articles.html-619e0082.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-68f62c48","path":"/docs/article/articles.html","title":"文集基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取文集基本信息","slug":"获取文集基本信息","link":"#获取文集基本信息","children":[]}],"git":{},"filePathRelative":"docs/article/articles.md"}');export{t as data}; diff --git a/assets/articles.html-b3d5b82c.js b/assets/articles.html-b3d5b82c.js new file mode 100644 index 0000000000..41a85f92bb --- /dev/null +++ b/assets/articles.html-b3d5b82c.js @@ -0,0 +1,194 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    文集基本信息

    获取文集基本信息

    https://api.bilibili.com/x/article/list/web/articles

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    idnum文集rlid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj文集概览
    articlesarray文集内的文章列表
    authorobj文集作者信息
    lastobj-作用尚不明确
    结构与data.articles[]中相似
    attentionbool是否关注文集作者false:未关注
    true:已关注
    需要登录(Cookie)
    未登录为false

    data中的list对象:

    字段类型内容备注
    idnum文集rlid
    midnum文集作者mid
    namestr文集名称
    image_urlstr文集封面图片url
    update_timenum文集更新时间时间戳
    ctimenum文集创建时间时间戳
    publish_timenum文集发布时间时间戳
    summarystr文集简介
    wordsnum文集字数
    readnum文集阅读量
    articles_countnum文集内文章数量
    statenum1或3作用尚不明确
    reasonstr作用尚不明确
    apply_timestr作用尚不明确
    check_timestr作用尚不明确

    data中的articles数组:

    类型内容备注
    0obj文集中第1篇文章
    nobj文集中第(n+1)篇文章

    data中的articles数组中的对象:

    字段类型内容备注
    idnum专栏cvid
    titlestr文章标题
    statenum0作用尚不明确
    publish_timenum发布时间秒时间戳
    wordsnum文章字数
    image_urlsarray文章封面
    categoryobj文章标签
    categoriesarray文章标签列表
    summarystr文章摘要
    statsobj文章状态数信息
    like_statenum是否点赞0:未点赞
    1:已点赞
    需要登录(Cookie)
    未登录为0

    articles数组中的对象中的stats

    字段类型内容备注
    viewnum阅读数
    favoritenum收藏数
    likenum点赞数
    dislikenum点踩数
    replynum评论数
    sharenum分享数
    coinnum投币数
    dynamicnum动态转发数

    articles数组中的对象中的author

    字段类型内容备注
    midnum作者mid
    namestr作者昵称
    facestr作者头像url
    official_verifyobj作者认证信息
    nameplateobj作者勋章
    vipobj作者大会员状态

    示例:

    查询文集rl207146的基本信息

    curl -G 'https://api.bilibili.com/x/article/list/web/articles' \\
    +--data-urlencode 'id=207146' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,26),e=[o];function r(l,c){return s(),a("div",null,e)}const i=n(p,[["render",r],["__file","articles.html.vue"]]);export{i as default}; diff --git a/assets/atlist.html-81f8cc20.js b/assets/atlist.html-81f8cc20.js new file mode 100644 index 0000000000..90b09d1403 --- /dev/null +++ b/assets/atlist.html-81f8cc20.js @@ -0,0 +1,158 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    根据关键字搜索用户 (at别人时的填充列表)

    注意关键字不一定顺序匹配,如最后示例

    https://api.bilibili.com/x/polymer/web-dynamic/v1/mention/search

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    keywordstr搜索关键字非必要若无此项,则返回所有关注用户的信息

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息成功时为 0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    groupsarray用户分组根据是否关注该用户来分组,未找到用户时为空数组

    groups数组:

    类型内容备注
    0obj分组1
    nobj分组(n+1)
    ……obj…………

    groups数组中的对象:

    字段类型内容备注
    group_namestr分组名称我的关注其他
    group_typenum分组类型2:我的关注
    4:其他
    itemsarray搜索到的用户信息按照认证状态与粉丝数排序

    items数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    facestr用户头像url
    fansnum用户粉丝数
    namestr用户昵称
    official_verify_typenum用户认证状态-1:无
    0:个人认证
    1:机构认证
    uidstr用户mid

    示例:

    搜索关键字为社会易的用户

    curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/mention/search' \\
    +--data-urlencode 'keyword=社会易' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "groups": [
    +      {
    +        "group_name": "我的关注",
    +        "group_type": 2,
    +        "items": [
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "fans": 3613,
    +            "name": "社会易姐QwQ",
    +            "official_verify_type": -1,
    +            "uid": "293793435"
    +          }
    +        ]
    +      },
    +      {
    +        "group_name": "其他",
    +        "group_type": 4,
    +        "items": [
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/dbc456bdec5e7a4806c9d0311d95ebcc6be674cf.jpg",
    +            "fans": 23464,
    +            "name": "社会易老师",
    +            "official_verify_type": -1,
    +            "uid": "484031754"
    +          },
    +          {
    +            "face": "https://i1.hdslb.com/bfs/face/5497859a550a017d0a51c640d232c539c2f48991.jpg",
    +            "fans": 11,
    +            "name": "栄禧貿易株式会社",
    +            "official_verify_type": -1,
    +            "uid": "4991467"
    +          },
    +          {
    +            "face": "https://i2.hdslb.com/bfs/face/311cecf9298158b8a5f47ed3e641328ab5c0cfcd.jpg",
    +            "fans": 10,
    +            "name": "社会李易儒",
    +            "official_verify_type": -1,
    +            "uid": "442101413"
    +          },
    +          {
    +            "face": "https://i2.hdslb.com/bfs/face/2dad05e4748b5e91e1ec5d3c5d4f0904a5bcdaf0.jpg",
    +            "fans": 8,
    +            "name": "日本国立貿易株式会社",
    +            "official_verify_type": -1,
    +            "uid": "3546589855484501"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
    +            "fans": 6,
    +            "name": "社会小伙肖子易",
    +            "official_verify_type": -1,
    +            "uid": "250129011"
    +          },
    +          {
    +            "face": "https://i2.hdslb.com/bfs/face/1ebb0d4aa8e2c4b532f82983503ec38b62a1820f.jpg",
    +            "fans": 4,
    +            "name": "社会主义接班人小易",
    +            "official_verify_type": -1,
    +            "uid": "486568790"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/dccb52f3c15ba1bb99aac3c86e9825842cc95295.jpg",
    +            "fans": 2,
    +            "name": "社会你易易",
    +            "official_verify_type": -1,
    +            "uid": "497214639"
    +          },
    +          {
    +            "face": "https://i1.hdslb.com/bfs/face/1902cc0b07ab4a5de6110f5adb2691cbf7051f2b.jpg",
    +            "fans": 1,
    +            "name": "社会打工不容易",
    +            "official_verify_type": -1,
    +            "uid": "3546742186314202"
    +          },
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/19ee1b5975969a47ba085cd1f628d86a479b9950.jpg",
    +            "fans": 0,
    +            "name": "社会交易",
    +            "official_verify_type": -1,
    +            "uid": "3493291412687622"
    +          },
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/de6afbda484e114b7cedeb621c3cbbaef7800988.jpg",
    +            "fans": 0,
    +            "name": "不谦易会社恐",
    +            "official_verify_type": -1,
    +            "uid": "1602175830"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 8,
    +            "name": "社会易总",
    +            "official_verify_type": -1,
    +            "uid": "155817540"
    +          },
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会存在与社会易逝",
    +            "official_verify_type": -1,
    +            "uid": "3546578331634371"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易姐QAQ",
    +            "official_verify_type": -1,
    +            "uid": "1983403996"
    +          },
    +          {
    +            "face": "http://i1.hdslb.com/bfs/face/510cde8f4e3eb27aa50177d619a4200bb501797b.jpg",
    +            "fans": 0,
    +            "name": "社会易大佬人狠话不多",
    +            "official_verify_type": -1,
    +            "uid": "408471763"
    +          },
    +          {
    +            "face": "http://i1.hdslb.com/bfs/face/7324adb53362527a1bf5f20141a6ae4307011ea7.jpg",
    +            "fans": 0,
    +            "name": "社会易轩",
    +            "official_verify_type": -1,
    +            "uid": "384672256"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易哥",
    +            "official_verify_type": -1,
    +            "uid": "284984452"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易姐",
    +            "official_verify_type": -1,
    +            "uid": "249112673"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易大佬",
    +            "official_verify_type": -1,
    +            "uid": "167967213"
    +          }
    +        ]
    +      }
    +    ]
    +  }
    +}
    +
    `,24),e=[o];function c(u,l){return n(),a("div",null,e)}const i=s(p,[["render",c],["__file","atlist.html.vue"]]);export{i as default}; diff --git a/assets/atlist.html-fa32d23a.js b/assets/atlist.html-fa32d23a.js new file mode 100644 index 0000000000..7a7fc8bb65 --- /dev/null +++ b/assets/atlist.html-fa32d23a.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-25e3807d","path":"/docs/dynamic/atlist.html","title":"根据关键字搜索用户 (at别人时的填充列表)","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/dynamic/atlist.md"}');export{t as data}; diff --git a/assets/attribute_data.html-0fdac87d.js b/assets/attribute_data.html-0fdac87d.js new file mode 100644 index 0000000000..6ea877fcdc --- /dev/null +++ b/assets/attribute_data.html-0fdac87d.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-0eaafc5d","path":"/docs/video/attribute_data.html","title":"视频属性数据说明","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"attribute字段值(稿件属性位)","slug":"attribute字段值-稿件属性位","link":"#attribute字段值-稿件属性位","children":[]},{"level":2,"title":"state字段值(稿件状态)","slug":"state字段值-稿件状态","link":"#state字段值-稿件状态","children":[]}],"git":{},"filePathRelative":"docs/video/attribute_data.md"}');export{t as data}; diff --git a/assets/attribute_data.html-5dc2207b.js b/assets/attribute_data.html-5dc2207b.js new file mode 100644 index 0000000000..0504dc5a13 --- /dev/null +++ b/assets/attribute_data.html-5dc2207b.js @@ -0,0 +1 @@ +import{_ as t,o as d,c as r,e}from"./app-3168cb19.js";const a={},h=e('

    视频属性数据说明

    PS:以下部分内容来源不明,且部分值前端不可见,有待验证

    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站访问https://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定时发布
    -50仅UP主可见
    -100用户删除
    ',7),i=[h];function o(c,s){return d(),r("div",null,i)}const b=t(a,[["render",o],["__file","attribute_data.html.vue"]]);export{b as default}; diff --git a/assets/b23tv.html-c7be515d.js b/assets/b23tv.html-c7be515d.js new file mode 100644 index 0000000000..dde83b80e2 --- /dev/null +++ b/assets/b23tv.html-c7be515d.js @@ -0,0 +1,27 @@ +import{_ as s,r as o,o as r,c as i,a as d,b as t,d as n,g as p,e as a}from"./app-3168cb19.js";const c={},l=a('

    b23.tv 短链

    简述

    b23.tv 是由 Bilibili 提供的短链服务, 主要用于站内长链接缩短便于分享, 目前仅在手机客户端生成

    格式

    目前已知的 b23.tv 短链格式有以下 3 种

    • 任意短链, 路径由7位数字或大小写英文字母组成, 为防止滥用似乎有时效限制, 如 https://b23.tv/pigt3PQ

    • 视频短链(AV号), 路径由字符串 av 尾随 视频 aid 组成, 如 https://b23.tv/av80433022

    • 视频短链(BV号), 路径由字符串 BV 尾随 视频 bvid 组成, 如 https://b23.tv/BV1GJ411x7h7

    生成

    视频短链

    1. 直接手动拼接字符串即可

    2. 参见任意短链

    任意短链

    https://api.bilibili.com/x/share/click
    https://api.biliapi.net/x/share/click

    请求方式: POST

    认证方式: 仅APP, 但实际上形同虚设

    ',13),u={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/979",target:"_blank",rel:"noopener noreferrer"},h={href:"https://github.com/Nemo2011/bilibili-api/pull/720",target:"_blank",rel:"noopener noreferrer"},b=a("

    正文参数(application/x-www-form-urlencoded):

    必要:

    参数名类型内容必要性备注
    buvidstr设备 BUVID必要实际任意非空字符串即可
    buildnum客户端版本号必要大于 5520400 的任意有效整数, 如 7710300
    platformstr客户端平台必要实际任意非空字符串即可
    share_channelstr分享方式?必要COPY
    share_modenum分享模式?必要任意有效正整数, 常见 1, 3, 4
    share_idstr分享 ID必要见下方对照表
    oidnum对象 ID必要见下方对照表

    不必要:

    参数名类型内容必要性备注
    object_extra_fieldsobj额外字段?非必要{"jumpfrom_id":30104} {"epid":"409808","cid":"1398781253"} {"season_type":"1","season_id":"39481","epid":"425006","dubbing_support":false,"background_audio":false,"role_audio_list":false}
    panel_typenum面板类型?非必要1
    share_titlestr分享标题?非必要分享标题
    share_contentstr分享内容?非必要分享内容, 当 oid 存在时无意义(可是 oid 不可能不存在啊)
    share_originstr分享来源?非必要vinfo_share dynamic vertical-three-point-panel vinfo_player
    share_patternnum分享模式?非必要0
    share_session_idstr分享会话 ID?非必要各部分用 - 分隔的小写的一串 UUID
    tsnumUNIX 秒级时间戳非必要

    对照表:

    类型分享 ID (share_id)对象 ID (oid)
    视频main.ugc-video-detail.0.0.pv视频 aid
    ",7),v=a(`

    JSON回复:

    根对象:

    字段名类型内容备注
    codenum0恒为 0
    messagestr0恒为 0
    ttlnum1恒为 1
    dataobj信息本体

    data 对象:

    字段名类型内容备注
    contentstr短链内容若失败则不存在
    countnum0恒为 0

    示例:

    av80433022 生成 b23.tv 短链

    curl -X POST "http://api.biliapi.net/x/share/click" \\
    +--data-urlencode "platform=unix" \\
    +--data-urlencode "share_channel=COPY" \\
    +--data-urlencode "share_id=main.ugc-video-detail.0.0.pv" \\
    +--data-urlencode "share_mode=4" \\
    +--data-urlencode "oid=80433022" \\
    +--data-urlencode "buvid=qwq" \\
    +--data-urlencode "build=6114514"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "content": "【【官方 MV】Never Gonna Give You Up - Rick Astley-哔哩哔哩】 https://b23.tv/5x4wy5f",
    +    "count": 0
    +  }
    +}
    +
    `,9);function m(q,k){const e=o("ExternalLinkIcon");return r(),i("div",null,[l,d("p",null,[t("注: 该接口参数对照表基本失效, 基本无实用价值, 已被注释, 参见 "),d("a",u,[t("#979"),n(e)]),t(),d("a",h,[t("Nemo2011/bilibili-api#720"),n(e)])]),b,p(` 此处被注释是因为以下值均失效 +| 动态 | dt.dt-detail.0.0.pv | 动态 id | +| 专栏 | read.column-detail.roof.8.click | 文章 cvid | +| 文集 | read.column-readlist.share.0.click | 文集 rlid | +| 直播 | live.live-room-detail.0.0.pv | 直播 room_id | +| 用户 | main.space-total.more.0.click | 用户 mid | +| 课程 | pugv.pugv-video-detail.0.0.pv | 课程 id? | +| 番剧 | main.space-bangumi.0.0 | 番剧 id? | +| 链接 | public.webview.0.0.pv | ? | +`),v])}const g=s(c,[["render",m],["__file","b23tv.html.vue"]]);export{g as default}; diff --git a/assets/b23tv.html-d6b87429.js b/assets/b23tv.html-d6b87429.js new file mode 100644 index 0000000000..bd30b0dbee --- /dev/null +++ b/assets/b23tv.html-d6b87429.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-13677488","path":"/docs/misc/b23tv.html","title":"b23.tv 短链","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"简述","slug":"简述","link":"#简述","children":[{"level":3,"title":"格式","slug":"格式","link":"#格式","children":[]}]},{"level":2,"title":"生成","slug":"生成","link":"#生成","children":[{"level":3,"title":"视频短链","slug":"视频短链","link":"#视频短链","children":[]},{"level":3,"title":"任意短链","slug":"任意短链","link":"#任意短链","children":[]}]}],"git":{},"filePathRelative":"docs/misc/b23tv.md"}');export{l as data}; diff --git a/assets/back-to-top-8efcbe56.svg b/assets/back-to-top-8efcbe56.svg new file mode 100644 index 0000000000..83236781a9 --- /dev/null +++ b/assets/back-to-top-8efcbe56.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/banlist.html-66dae847.js b/assets/banlist.html-66dae847.js new file mode 100644 index 0000000000..99433094f9 --- /dev/null +++ b/assets/banlist.html-66dae847.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-6f936bc8","path":"/docs/blackroom/banlist.html","title":"封禁公示","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"Enum类型代码","slug":"enum类型代码","link":"#enum类型代码","children":[{"level":3,"title":"表1:已知的封禁原因类型代码总览","slug":"表1-已知的封禁原因类型代码总览","link":"#表1-已知的封禁原因类型代码总览","children":[]},{"level":3,"title":"表2:已知的违规类型代码","slug":"表2-已知的违规类型代码","link":"#表2-已知的违规类型代码","children":[]}]},{"level":2,"title":"获取封禁用户公示列表","slug":"获取封禁用户公示列表","link":"#获取封禁用户公示列表","children":[]},{"level":2,"title":"封禁处理公示详情","slug":"封禁处理公示详情","link":"#封禁处理公示详情","children":[]}],"git":{},"filePathRelative":"docs/blackroom/banlist.md"}');export{l as data}; diff --git a/assets/banlist.html-94e6eb17.js b/assets/banlist.html-94e6eb17.js new file mode 100644 index 0000000000..0c9e61273a --- /dev/null +++ b/assets/banlist.html-94e6eb17.js @@ -0,0 +1,99 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},o=a(`

    封禁公示

    Enum类型代码

    表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参数:

    参数名类型内容必要性备注
    btypenum来源筛选非必要空:全部类型
    0:系统封禁
    1:风纪仲裁(仲裁系统升级后此类型已不再更新)
    otypenum类型筛选非必要表2
    默认为0:全部类型
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataarray公示列表

    data数组:

    类型内容备注
    0object封禁公示1
    nobject封禁公示(n+1)
    ……object…………

    data数组中的对象:

    字段类型内容备注
    idnum封禁公示id
    unamestr对象用户名
    facestr对象用户头像url
    uidnum对象用户mid
    originTitlestr来源标题
    blockedRemarkstr
    originUrlstr来源url
    originContentModifystr裁决正文
    originTypenum来源类型表2
    originTypeNamestr来源名
    punishTitlestr公示标题
    punishTimenum处罚时间时间戳
    punishTypenum处理手段类型2:封禁
    3:永久封禁
    punishTypeNamestr处理手段名
    moralNumnum0节操值被封禁用户节操值均为0
    blockedDaysnum封禁天数永封为0
    publishStatusnum1作用尚不明确
    blockedTypenum处理来源0:系统封禁
    1:风纪仲裁
    blockedForevernum是否永封0:非永封
    1:永封
    reasonTypenum封禁原因类型表1
    reasonTypeNamestr封禁原因类型名称
    operatorNamestr作用尚不明确
    caseIdnum仲裁信息id系统封禁时固定为0
    ctimenum创建时间时间戳
    commentSumnum该条目评论数

    示例:

    查询所有类型,所有来源的第1页的封禁公示列表

    curl -G 'https://api.bilibili.com/x/credit/blocked/list' \\
    +--data-urlencode 'btype=' \\
    +--data-urlencode 'otype=0' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +	"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": "<p>案情:</p><p>1、大量刷屏/引战</p><p>我看新闻了,竹鼠全部被ZF无害化处理了,看的爽死我了,亏死你们,啊哈哈哈(x10)</p><p>【BV16g4y187he,2020-4-21 10:46:23~10:46:47】</p><p>2、大量人身攻击</p><p>N * * L</p><p>Deine Mu**er ist tot. (x10)</p><p>【BV1rk4y1R7id,2020-4-21 20:31:08~20:32:23】</p><p>3、引战</p><p>每次看他厨房乱七八糟的,可能有数不清的小强,你们还看美食看的有味也是奇PA</p><p>【BV1Kg4y1z7mA,2020-4-22&nbsp; 00:52:37】<br/></p><p>批注:</p><p>满地狼藉招摇过,人皆愤懑怒拳握。</p><p>余恶不堪漏夜扫,正气于心涤龌龊。</p><p><br/></p><p>(发现违规引战、人身攻击、刷屏评论,请按照相应分类进行举报。若发现反复进行上述行为,可联系工作人员反馈相关违规账号信息,我们会予以排查。)</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p><p><br/></p>",
    +		"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": "<p>具体违规情况说明:</p><ol class=\\" list-paddingleft-2\\" style=\\"list-style-type: decimal;\\"><li><p>经查实确认,该账号<span style=\\"text-decoration: underline;\\">从未申请</span>亦<span style=\\"text-decoration: underline;\\">从未担任</span>过风纪委员职务。</p></li><li><p>发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。</p></li><li><p>谎称曾经封禁了某个up主,事实上风纪委员<span style=\\"text-decoration: underline;\\">无法封禁up主投稿</span>,且该up也从未被封禁。</p></li><li><p>威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。</p></li><li><p>故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。</p></li><li><p>误导他人“此评论区和弹幕无需保持礼仪”。</p></li></ol><p>批注:</p><p>如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p>",
    +		"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参数:

    参数名类型内容必要性备注
    idnum封禁公示id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    idnum封禁公示id
    unamestr对象用户名
    facestr对象用户头像url
    uidnum对象用户mid
    originTitlestr来源标题
    blockedRemarkstr
    originUrlstr来源url
    originContentModifystr裁决正文
    originTypenum来源类型表2
    originTypeNamestr来源名
    punishTitlestr公示标题
    punishTimenum处罚时间时间戳
    punishTypenum处理手段类型2:封禁
    3:永久封禁
    punishTypeNamestr处理手段名
    moralNumnum0节操值被封禁用户节操值均为0
    blockedDaysnum封禁天数永封为0
    publishStatusnum1作用尚不明确
    blockedTypenum处理来源0:系统封禁
    1:风纪仲裁
    blockedForevernum是否永封0:非永封
    1:永封
    reasonTypenum封禁原因类型表1
    reasonTypeNamestr封禁原因类型名称
    operatorNamestr作用尚不明确
    caseIdnum仲裁信息id系统封禁时固定为0
    ctimenum创建时间时间戳
    commentSumnum该条目评论数

    示例:

    查询公示id为1091621的公示详情

    curl -G 'https://api.bilibili.com/x/credit/blocked/info' \\
    +--data-urlencode 'id=1091621'
    +
    查看响应示例:
    {
    +	"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": "<p>具体违规情况说明:</p><ol class=\\" list-paddingleft-2\\" style=\\"list-style-type: decimal;\\"><li><p>经查实确认,该账号<span style=\\"text-decoration: underline;\\">从未申请</span>亦<span style=\\"text-decoration: underline;\\">从未担任</span>过风纪委员职务。</p></li><li><p>发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。</p></li><li><p>谎称曾经封禁了某个up主,事实上风纪委员<span style=\\"text-decoration: underline;\\">无法封禁up主投稿</span>,且该up也从未被封禁。</p></li><li><p>威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。</p></li><li><p>故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。</p></li><li><p>误导他人“此评论区和弹幕无需保持礼仪”。</p></li></ol><p>批注:</p><p>如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p>",
    +		"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
    +	}
    +}
    +
    `,37),e=[o];function d(r,l){return n(),s("div",null,e)}const u=t(p,[["render",d],["__file","banlist.html.vue"]]);export{u as default}; diff --git a/assets/base_info.html-7d06d12f.js b/assets/base_info.html-7d06d12f.js new file mode 100644 index 0000000000..7f3a809bf8 --- /dev/null +++ b/assets/base_info.html-7d06d12f.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-2ffe7b8a","path":"/docs/blackroom/jury/base_info.html","title":"风纪委员会用户基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"基本数据","slug":"基本数据","link":"#基本数据","children":[]},{"level":2,"title":"基本数据(旧API)","slug":"基本数据-旧api","link":"#基本数据-旧api","children":[]},{"level":2,"title":"统计信息","slug":"统计信息","link":"#统计信息","children":[]},{"level":2,"title":"统计信息(旧API)","slug":"统计信息-旧api","link":"#统计信息-旧api","children":[]},{"level":2,"title":"检查申请风纪委员会资格","slug":"检查申请风纪委员会资格","link":"#检查申请风纪委员会资格","children":[]}],"git":{},"filePathRelative":"docs/blackroom/jury/base_info.md"}');export{l as data}; diff --git a/assets/base_info.html-c57cadd4.js b/assets/base_info.html-c57cadd4.js new file mode 100644 index 0000000000..41c0d8540a --- /dev/null +++ b/assets/base_info.html-c57cadd4.js @@ -0,0 +1,70 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const d={},e=a(`

    风纪委员会用户基本信息

    基本数据

    https://api.bilibili.com/x/credit/v2/jury/jury

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url 参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr信息默认为 0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    allow_applybooltrue尚不明确(用户从未担任风纪委员时也为 true)
    apply_statusnum任期审核状态-1 资格失效,且未申请
    0 刚申请连任时
    5 申请后,等待审核
    3 申请连任成功,status 为 1
    case_totalnum总众裁数
    err_msgstr尚不明确
    facestr用户头像 url
    statusnum当前资格状态0 未曾拥有资格
    1 任期内
    2 资格失效
    term_endnum任期结束时间时间戳(秒级),无任期时为 0
    unamestr用户昵称

    基本数据(旧API)

    部分字段信息停留在 2021 年 10 月。

    查看折叠内容:

    https://api.bilibili.com/x/credit/jury/jury

    根数据与新 API 一致,data 对象:

    字段类型内容备注
    caseTotalnum总众裁数
    facestr用户头像 url
    restDaysnum当前资格剩余天数自 2021 年 10 月起,固定为 0
    rightRadionum当前裁决正确率百分比裁决数小于 3 时固定为 50
    statusnum当前状态1:具有资格
    2:资格失效
    unamestr用户昵称

    统计信息

    新API(2021年10月任期之后)

    https://api.bilibili.com/x/credit/v2/jury/kpi

    方式:GET

    认证方式:Cookie

    备注:该api只收录2021年10月开始,风纪委员改版之后的数据,且每次只返回一次任期的数据。

    url参数:

    参数名类型内容必要性备注
    term_idnum任期 id可不传此参数或将值留空或设为0未传参或留空时,返回最近一次已结束的任期的数据

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    25018:不能进行此操作(还没有成为新风纪委员,或传入了不属于你的term_id
    messagestr信息默认为 0
    ttlnum1
    dataobject数据本体

    data 对象:

    类型内容备注
    midnum用户 UID
    unamestr留空
    facestr留空
    term_idnum任期 ID未传入term_id时,返回的是最近一次已结束的任期的id
    term_startnum任期开始时间时间戳,精确到秒
    term_endnum任期结束时间时间戳,精确到秒
    case_totalnum任内总投票数
    active_daysnum活跃天数
    like_numnum发表观点,被点赞数
    accuracy_ratenum投中率所选观点与大多数风纪委员一致,记为一次“投中”
    passnum任期是否合格0 不合格
    1 合格
    statusnum当前资格状态0 未曾拥有资格
    1 任期内
    2 资格失效
    apply_statusnum当前资格申请状态-1 资格失效,且未申请
    0 刚申请连任时
    5 申请后,等待审核
    3 申请连任成功,status 为 1
    prev_term_idnum上一任期的任期 ID新版风纪委员启用后的第一个任期,此项的值为 0
    next_term_idnum下一任期的任期 ID若当前任期尚未结束,此项的值为 0
    rewardsobject任期奖励pendantcoin两个子项
    rewards.pendantnum头像挂件礼包 ID合格后一般为 1,不合格为 0
    rewards.coinnum硬币礼包 ID合格后一般为 3,不合格为 0
    查看响应示例:

    注:本示例未传入term_id,返回的是最近一次已结束任期的统计结果

    {
    +    "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)

    查看折叠内容:

    https://api.bilibili.com/x/credit/jury/kpi

    方式:GET

    认证方式:Cookie(SESSDATA)或APP

    备注:该api只统计到2021年9月任期,风纪委员改版之前。风纪委员改版之后的数据未收录

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr信息默认为0
    ttlnum1
    dataarray数据本体

    data数组:

    类型内容备注
    0obj第1个月统计
    nobj第(n+1)个月统计
    ……obj…………

    data 数组中的对象:

    字段类型内容备注
    idnum0
    midnum用户id
    numbernum风纪委员编号
    daynum数据生成时间(也是任期结束时间)时间戳,精确到秒
    ratenum任期完成度1=A;2=S;3=S+;4=S++
    ranknum尚不明确
    rankpernum尚不明确
    rankTotalnum尚不明确
    pointnum32767
    activeDaysnum活跃天数
    voteTotalnum投票总数
    voteRadionum投中率
    blockedTotalnum尚不明确
    termStartnum任期开始时间时间戳,精确到秒
    termEndnum任期结束时间(数据生成时间一致)时间戳,精确到秒
    opinion_likesnum观点获赞

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/jury/kpi' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/kpi' \\
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    blockedbool是否被封禁true:是
    false:否
    下同
    certbool是否实名认证
    levelbool等级是否>=4新版无该字段
    rulebool是否90天内无违规

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/v2/jury/requirement' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/v2/jury/requirement' \\
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "blocked": false,
    +        "cert": true,
    +        "rule": true
    +    }
    +}
    +
    `,51),p=[e];function o(r,l){return s(),n("div",null,p)}const u=t(d,[["render",o],["__file","base_info.html.vue"]]);export{u as default}; diff --git a/assets/basicInfo.html-66f99d8f.js b/assets/basicInfo.html-66f99d8f.js new file mode 100644 index 0000000000..ccb3f49c01 --- /dev/null +++ b/assets/basicInfo.html-66f99d8f.js @@ -0,0 +1,1439 @@ +import{_ as o,r as e,o as u,c,a as n,b as s,d as t,w as p,e as l}from"./app-3168cb19.js";const r={},i=l(`

    动态基本信息

    动态转发列表

    https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/repost_detail

    请求方式:GET

    ==Attention: 转发列表总计超过550部分继续获取可能被限制。==

    url参数:

    参数名类型内容必要性备注
    dynamic_idid动态id必要
    offset--非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    has_morebool是否还有下一页每页最多20条
    totalint总计包含不超过20条
    gtnum0作用尚不明确

    data中的items对象:

    由于参数过多,这里不一一列举,请自行参阅其他文件理解。

    示例:

    获取哔哩哔哩弹幕网的动态id为669016644742283288动态

    curl -G 'https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/repost_detail' \\
    +--data-urlencode 'dynamic_id=669016644742283288'
    +
    查看响应示例
    {
    +    "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_idint64动态id必须
    pnint64页码非必须
    psint64每页数量非必须该值不得大于20

    json回复: 根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型用途备注
    item_likeslist点赞信息列表主体
    has_morebool是否还有下一页每页最多20条
    total_countint总计点赞数
    gtnum0作用尚不明确

    data中的item_likes对象:

    由于参数过多,这里不一一列举,请自行参阅其他文件理解。

    示例:

    获取哔哩哔哩弹幕网的动态id为669016644742283288动态

    curl -G 'https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/spec_item_likes' \\
    +--data-urlencode 'dynamic_id=669016644742283288'
    +
    查看响应示例
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息正常为"0"
    ttlnum1

    data对象:

    字段类型内容备注
    draftsarray草稿列表

    drafts列表的每一项:

    `,44),k=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),q=n("tr",null,[n("td",null,"draft_id"),n("td",null,"str"),n("td",null,"草稿id"),n("td")],-1),d=n("tr",null,[n("td",null,"publish_time"),n("td",null,"num"),n("td",null,"定时发送的秒级时间戳"),n("td")],-1),v=n("td",null,"type",-1),b=n("td",null,"num",-1),m=n("td",null,"动态类型",-1),y=n("tr",null,[n("td",null,"uid"),n("td",null,"num"),n("td",null,"自己的mid"),n("td")],-1),_=n("td",null,"user_profile",-1),g=n("td",null,"obj",-1),f=n("td",null,"自己的用户信息",-1),h=n("td",null,"request",-1),x=n("td",null,"str",-1),F=n("td",null,"动态内容",-1);function j(w,T){const a=e("RouterLink");return u(),c("div",null,[i,n("table",null,[k,n("tbody",null,[q,d,n("tr",null,[v,b,m,n("td",null,[s("请参考"),t(a,{to:"/docs/dynamic/get_dynamic_detail.html"},{default:p(()=>[s("获取特定动态卡片信息")]),_:1})])]),y,n("tr",null,[_,g,f,n("td",null,[s("请参考"),t(a,{to:"/docs/user/info.html"},{default:p(()=>[s("用户基本信息")]),_:1})])]),n("tr",null,[h,x,F,n("td",null,[s("该项为json转成str,内容请参考"),t(a,{to:"/docs/dynamic/publish.html#%E5%8F%91%E8%A1%A8%E7%BA%AF%E6%96%87%E6%9C%AC%E5%8A%A8%E6%80%81"},{default:p(()=>[s("发表纯文本动态")]),_:1})])])])])])}const B=o(r,[["render",j],["__file","basicInfo.html.vue"]]);export{B as default}; diff --git a/assets/basicInfo.html-a98cd743.js b/assets/basicInfo.html-a98cd743.js new file mode 100644 index 0000000000..b1f0edeaad --- /dev/null +++ b/assets/basicInfo.html-a98cd743.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-3fe3c830","path":"/docs/dynamic/basicInfo.html","title":"动态基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"动态转发列表","slug":"动态转发列表","link":"#动态转发列表","children":[]},{"level":2,"title":"动态点赞列表","slug":"动态点赞列表","link":"#动态点赞列表","children":[]},{"level":2,"title":"获取草稿列表","slug":"获取草稿列表","link":"#获取草稿列表","children":[]}],"git":{},"filePathRelative":"docs/dynamic/basicInfo.md"}');export{e as data}; diff --git a/assets/battery-100-5a4d9900.js b/assets/battery-100-5a4d9900.js new file mode 100644 index 0000000000..af4da6994d --- /dev/null +++ b/assets/battery-100-5a4d9900.js @@ -0,0 +1 @@ +const t="/bilibili-API-collect/assets/battery-100-bb809c09.png";export{t as _}; diff --git a/assets/battery-100-bb809c09.png b/assets/battery-100-bb809c09.png new file mode 100644 index 0000000000000000000000000000000000000000..4336d56f4877ebd73124f1615dacb14d9a63ebde GIT binary patch literal 6261 zcmV-*7>ehKP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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
    {
    +  "alg": "HS256",
    +  "kid": "s03",
    +  "typ": "JWT"
    +}
    +

    算法

    1. 获取 UNIX 秒级时间戳存入变量如 timestamp
    2. 计算变量 hexsign 值,使用 hmac_sha256 算法,密钥为 XgwSnGZ1p,消息为字符串 "ts" 与变量 timestamp 值拼接
    3. 构造请求参数,key_idec02hexsign 为变量 hexsign 值,context[ts] 为变量 timestamp 值,csrf 为 cookie 中的 bili_jct 值也可为空
    4. 发送 POST 请求,获取 data 字段中的 ticket 字段的值即为所求

    接口

    https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket

    请求方式: POST

    URL参数:

    参数名类型内容必要性备注
    key_idstrec02必要
    hexsignstrhmac_sha256 算法计算的 hexsign必要
    context[ts]numUNIX 秒级时间戳必要
    csrfstrcookie 中的 bili_jct非必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    400: 参数错误
    messagestr返回消息OK: 成功
    dataobj数据本体
    ttlnum1

    data 对象:

    `,12),_=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),q=n("tr",null,[n("td",null,"ticket"),n("td",null,"str"),n("td",null,"bili_ticket"),n("td")],-1),S=n("tr",null,[n("td",null,"created_at"),n("td",null,"num"),n("td",null,"创建时间"),n("td",null,"UNIX 秒级时间戳")],-1),x=n("tr",null,[n("td",null,"ttl"),n("td",null,"num"),n("td",null,"有效时长"),n("td",null,"259200 秒 (3 天)")],-1),j=n("tr",null,[n("td",null,"context"),n("td",null,"obj"),n("td",null,"空"),n("td")],-1),T=n("td",null,"nav",-1),I=n("td",null,"obj",-1),A=n("td",null,"wbi_img 相关",-1),M=n("p",null,[n("code",null,"nav"),s(" 对象:")],-1),C=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),H=n("td",null,"img",-1),B=n("td",null,"str",-1),R=n("td",null,"img_key 值",-1),G=n("td",null,"sub",-1),U=n("td",null,"str",-1),N=n("td",null,"sub_key 值",-1),O=c(`

    示例:

    查看响应示例:
    {
    +  "code": 0,
    +  "message": "OK",
    +  "data": {
    +    "ticket": "eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjM2OTMwODAsImlhdCI6MTcyMzQzMzgyMCwicGx0IjotMX0.efOwv7i4m0ykABrXEDHGAechU2AByMcP_-3EYpQrNKs",
    +    "created_at": 1723433820,
    +    "ttl": 259200,
    +    "context": {},
    +    "nav": {
    +      "img": "https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png",
    +      "sub": "https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png"
    +    }
    +  },
    +  "ttl": 1
    +}
    +

    Demo

    此处提供 Python, Java, JavaScript (Node.js) 的示例代码

    Python

    需要 requests 依赖

    import hmac
    +import hashlib
    +import requests
    +import time
    +
    +def hmac_sha256(key, message):
    +    """
    +    使用HMAC-SHA256算法对给定的消息进行加密
    +    :param key: 密钥
    +    :param message: 要加密的消息
    +    :return: 加密后的哈希值
    +    """
    +    # 将密钥和消息转换为字节串
    +    key = key.encode('utf-8')
    +    message = message.encode('utf-8')
    +
    +    # 创建HMAC对象,使用SHA256哈希算法
    +    hmac_obj = hmac.new(key, message, hashlib.sha256)
    +
    +    # 计算哈希值
    +    hash_value = hmac_obj.digest()
    +
    +    # 将哈希值转换为十六进制字符串
    +    hash_hex = hash_value.hex()
    +
    +    return hash_hex
    +
    +
    +if __name__ == '__main__':
    +    o = hmac_sha256("XgwSnGZ1p",f"ts{int(time.time())}")
    +    url = "https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket"
    +    params = {
    +        "key_id":"ec02",
    +        "hexsign":o,
    +        "context[ts]":f"{int(time.time())}",
    +        "csrf": ''
    +    }
    +
    +    headers = {
    +            'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"
    +        }
    +    resp = requests.post(url, params=params,headers=headers).json()
    +    print(resp)
    +

    Java

    无需第三方依赖

    import java.io.ByteArrayOutputStream;
    +import java.io.InputStream;
    +import java.net.HttpURLConnection;
    +import java.net.URI;
    +import java.nio.charset.StandardCharsets;
    +
    +import javax.crypto.Mac;
    +import javax.crypto.spec.SecretKeySpec;
    +
    +public class BiliTicketDemo {
    +
    +    /**
    +     * Convert a byte array to a hex string.
    +     * 
    +     * @param bytes The byte array to convert.
    +     * @return The hex string representation of the given byte array.
    +     */
    +    public static String bytesToHex(byte[] bytes) {
    +        StringBuilder sb = new StringBuilder();
    +        for (byte b : bytes) {
    +            String hex = Integer.toHexString(0xff & b);
    +            if (hex.length() == 1) {
    +                sb.append('0');
    +            }
    +            sb.append(hex);
    +        }
    +        return sb.toString();
    +    }
    +
    +    /**
    +     * Generate a HMAC-SHA256 hash of the given message string using the given key
    +     * string.
    +     * 
    +     * @param key     The key string to use for the HMAC-SHA256 hash.
    +     * @param message The message string to hash.
    +     * @throws Exception If an error occurs during the HMAC-SHA256 hash generation.
    +     * @return The HMAC-SHA256 hash of the given message string using the given key
    +     *         string.
    +     */
    +    public static String hmacSha256(String key, String message) throws Exception {
    +        Mac mac = Mac.getInstance("HmacSHA256");
    +        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
    +        mac.init(secretKeySpec);
    +        byte[] hash = mac.doFinal(message.getBytes(StandardCharsets.UTF_8));
    +        return bytesToHex(hash);
    +    }
    +
    +    /**
    +     * Get a Bilibili web ticket for the given CSRF token.
    +     * 
    +     * @param csrf The CSRF token to use for the web ticket, can be {@code null} or
    +     *             empty.
    +     * @return The Bilibili web ticket raw response for the given CSRF token.
    +     * @throws Exception If an error occurs during the web ticket generation.
    +     * @see https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/misc/sign/bili_ticket.md
    +     */
    +    public static String getBiliTicket(String csrf) throws Exception {
    +        // params
    +        long ts = System.currentTimeMillis() / 1000;
    +        String hexSign = hmacSha256("XgwSnGZ1p", "ts" + ts);
    +        StringBuilder url = new StringBuilder(
    +                "https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket");
    +        url.append('?');
    +        url.append("key_id=ec02").append('&');
    +        url.append("hexsign=").append(hexSign).append('&');
    +        url.append("context[ts]=").append(ts).append('&');
    +        url.append("csrf=").append(csrf == null ? "" : csrf);
    +        // request
    +        HttpURLConnection conn = (HttpURLConnection) new URI(url.toString()).toURL().openConnection();
    +        conn.setRequestMethod("POST");
    +        conn.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0");
    +        InputStream in = conn.getInputStream();
    +        ByteArrayOutputStream out = new ByteArrayOutputStream();
    +        int b;
    +        while ((b = in.read()) != -1) {
    +            out.write(b);
    +        }
    +        return new String(out.toByteArray(), StandardCharsets.UTF_8);
    +    }
    +
    +    /**
    +     * Main method to test the BiliTicketDemo class.
    +     * 
    +     * @param args The command line arguments (not used).
    +     */
    +    public static void main(String[] args) {
    +        try {
    +            System.out.println(getBiliTicket("")); // use empty CSRF here
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +
    +}
    +

    JavaScript (Node.js)

    const crypto = require('crypto');
    +
    +/**
    + * Generate HMAC-SHA256 signature
    + * @param {string} key     The key string to use for the HMAC-SHA256 hash
    + * @param {string} message The message string to hash
    + * @returns {string} The HMAC-SHA256 signature as a hex string
    + */
    +function hmacSha256(key, message) {
    +    const hmac = crypto.createHmac('sha256', key);
    +    hmac.update(message);
    +    return hmac.digest('hex');
    +}
    +
    +/**
    + * Get Bilibili web ticket
    + * @param {string} csrf    CSRF token, can be empty or null
    + * @returns {Promise<any>} Promise of the ticket response in JSON format
    + */
    +async function getBiliTicket(csrf) {
    +    const ts = Math.floor(Date.now() / 1000);
    +    const hexSign = hmacSha256('XgwSnGZ1p', \`ts\${ts}\`);
    +    const url = 'https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket';
    +    const params = new URLSearchParams({
    +        key_id: 'ec02',
    +        hexsign: hexSign,
    +        'context[ts]': ts,
    +        csrf: csrf || ''
    +    });
    +    try {
    +        const response = await fetch(\`\${url}?\${params.toString()}\`, {
    +            method: 'POST',
    +            headers: {
    +                'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
    +            }
    +        });
    +        if (!response.ok) {
    +            throw new Error(\`HTTP error! status: \${response.status}\`);
    +        }
    +        const data = await response.json();
    +        return data;
    +    } catch (e) {
    +        throw error;
    +    }
    +}
    +
    +(async () => {
    +    try {
    +        const ticketResponse = await getBiliTicket(''); // use empty CSRF here
    +        console.log(ticketResponse);
    +    } catch (e) {
    +        console.error('Failed to get BiliTicket:', error);
    +    }
    +})();
    +
    `,12);function J(P,E){const t=o("ExternalLinkIcon"),p=o("RouterLink");return l(),u("div",null,[k,d,m,n("p",null,[s("由 "),n("a",v,[s("@aynuarance"),a(t)]),s(" 于 "),n("a",b,[s("#903"),a(t)]),s(" 提供的思路,根据时间戳使用 "),h,s(" 算法计算 "),g,s("。")]),n("p",null,[s("是 "),n("a",y,[s("JWT 令牌"),a(t)]),s(",有效时长为 259260 秒,即 3 天。 例如 "),w]),f,n("table",null,[_,n("tbody",null,[q,S,x,j,n("tr",null,[T,I,A,n("td",null,[s("参见 "),a(p,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])])])]),M,n("table",null,[C,n("tbody",null,[n("tr",null,[H,B,R,n("td",null,[s("参见 "),a(p,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])]),n("tr",null,[G,U,N,n("td",null,[s("参见 "),a(p,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])])])]),O])}const F=i(r,[["render",J],["__file","bili_ticket.html.vue"]]);export{F as default}; diff --git a/assets/buvid3_4.html-38eb5f56.js b/assets/buvid3_4.html-38eb5f56.js new file mode 100644 index 0000000000..e439866bde --- /dev/null +++ b/assets/buvid3_4.html-38eb5f56.js @@ -0,0 +1,24 @@ +import{_ as a,o as n,c as s,e}from"./app-3168cb19.js";const t={},d=e(`

    获取 buvid3 / buvid4 / b_nut

    接口获取 buvid3 / buvid4

    https://api.bilibili.com/x/frontend/finger/spi

    请求方式: GET

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr信息ok: 成功
    dataobj数据本体

    data对象:

    字段类型内容备注
    b_3strbuvid3需手动存放至 cookie 中
    b_4strbuvid4同上

    示例:

    注: 建议自行生成, 不要复制本处示例的 buvid3 / buvid4.

    curl -G 'https://api.bilibili.com/x/frontend/finger/spi'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "b_3": "D9656DA8-9BEF-F464-5B72-C4849AFD336379044infoc",
    +    "b_4": "F6E0FD4B-520C-1902-4F7B-E461D8D1F5AB79044-024072309-666onEZSnlHVPjoRp4kDYg=="
    +  },
    +  "message": "ok"
    +}
    +

    从响应头获取 buvid3 / b_nut

    使用 GETHEAD 方法请求 https://www.bilibili.com/, 且请求头中 User-Agent 字段不包含 curl python awa 等敏感子字符串, 且相同 User-Agent 字段不得短时多次请求. 在响应头中的 Set-Cookie 字段中, 即可找到 buvid3b_nut.

    若不带任何 Cookie 请求, 则 b_nut 为响应生成时刻的 UNIX 秒级时间戳. 若请求 Cookie 仅带有 buvid3, 则 b_nut100. 若请求 Cookie 仅带有 b_nut, 则与不带任何 Cookie 的响应相同. 若请求 Cookie 仅带有 buvid3b_nut, 则响应无 Set-Cookie 字段. 若请求 Cookie 带有其他字段, 无影响.

    示例:

    curl -I "https://www.bilibili.com/" -A "awa"
    +
    查看响应示例:
    HTTP/2 200 
    +date: Fri, 26 Jul 2024 06:38:43 GMT
    +content-type: text/html; charset=utf-8
    +support: nantianmen
    +set-cookie: buvid3=805E4894-96A2-0684-6F00-C6EA1FFB911023315infoc; path=/; expires=Sat, 26 Jul 2025 06:38:43 GMT; domain=.bilibili.com
    +set-cookie: b_nut=1721975923; path=/; expires=Sat, 26 Jul 2025 06:38:43 GMT; domain=.bilibili.com
    +vary: Origin,Accept-Encoding
    +idc: shjd
    +expires: Fri, 26 Jul 2024 06:38:42 GMT
    +cache-control: no-cache
    +x-cache-webcdn: MISS from blzone01
    +x-cache-time: 0
    +x-save-date: Fri, 26 Jul 2024 06:38:43 GMT
    +
    `,19),o=[d];function p(c,i){return n(),s("div",null,o)}const r=a(t,[["render",p],["__file","buvid3_4.html.vue"]]);export{r as default}; diff --git a/assets/buvid3_4.html-f3f7f1a7.js b/assets/buvid3_4.html-f3f7f1a7.js new file mode 100644 index 0000000000..56934ed657 --- /dev/null +++ b/assets/buvid3_4.html-f3f7f1a7.js @@ -0,0 +1 @@ +const i=JSON.parse('{"key":"v-802f7e32","path":"/docs/misc/buvid3_4.html","title":"获取 buvid3 / buvid4 / b_nut","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"接口获取 buvid3 / buvid4","slug":"接口获取-buvid3-buvid4","link":"#接口获取-buvid3-buvid4","children":[]},{"level":2,"title":"从响应头获取 buvid3 / b_nut","slug":"从响应头获取-buvid3-b-nut","link":"#从响应头获取-buvid3-b-nut","children":[]}],"git":{},"filePathRelative":"docs/misc/buvid3_4.md"}');export{i as data}; diff --git a/assets/buzzword.html-364eeafa.js b/assets/buzzword.html-364eeafa.js new file mode 100644 index 0000000000..a3aa04228d --- /dev/null +++ b/assets/buzzword.html-364eeafa.js @@ -0,0 +1,221 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},o=a(`

    名词解释

    该功能用于解释和科普 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_idnum名词类型必要如:4代表“哔哩哔哩热词图鉴”
    5代表“语言类”
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    typeobj类型信息
    buzzwordsarray词语列表
    pageobj页面信息

    data中的type对象:

    字段类型内容备注
    idnum类型 id
    namestr类型名称
    name_pinyinobj拼音信息见副表

    data中的buzzwords数组:

    类型内容备注
    0obj名词条目 1
    nobj名词条目(n+1)
    ……obj…………

    buzzwords数组中的对象:

    字段类型内容备注
    idnum名词 id用于查询名词解释详情
    namestr名词
    name_pinyinobj拼音信息见副表
    picturestr名词图片 url

    data中的page对象:

    字段类型内容备注
    numnum当前页码
    sizenum每页项数
    totalnum总计项数
    cntnum(?)

    副表:拼音name_pinyin对象:

    字段类型内容备注
    对应单个汉字 1str拼音字串
    对应单个汉字 nstr拼音字串
    ……str…………

    示例:

    拉取对应哔哩哔哩热词图鉴的名词列表,以20项为一页拉取第1页

    curl -G 'https://api.bilibili.com/x/v2/dm/buzzword/list' \\
    +--data-urlencode 'type_id=4' \\
    +--data-urlencode 'ps=10' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    idnum名词id必要如:1代表“kksk”
    2代表“打脸”

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:不存在该名词
    messagestr错误信息默认为0
    ttlnum1
    data有数据时:obj
    无数据时:null
    数据本体

    data对象:

    字段类型内容备注
    idnum名词id
    namestr名词
    descriptionstr名词解释
    picturestr名词图片 url
    typesarray父分类列表该名词可能隶属多个父分类
    related_wordsarray近义词/相关词
    uppers有数据:array
    无数据:null
    相关 UP 列表该名词(梗)出处
    related_ugc有数据:array
    无数据:null
    相关 ucg 视频列表该名词(梗)出处
    related_ogv有数据:array
    无数据:null
    相关 pgc 视频列表该名词(梗)出处
    guidesobj推荐创作信息
    related_buzzwordsarray推荐名词列表
    topicobj关联话题信息
    show_dynamicbool是否展示话题动态聚合true展示
    false不展示

    data中的types数组:

    类型内容备注
    0obj父分类 1
    nobj父分类(n+1)
    ……obj…………

    types数组中的对象:

    字段类型内容备注
    idnum类型 id
    namestr类型名称
    name_pinyinnull
    levelnum权重?

    data中的related_words数组:

    类型内容备注
    0str近义词/相关词1
    nstr近义词/相关词(n+1)
    ……str…………

    data中的uppers数组:

    类型内容备注
    0obj相关 UP 1
    nobj相关 UP(n+1)
    ……obj…………

    uppers数组中的对象:

    字段类型内容备注
    idnumUP 主 mid
    recommendstr
    namestrUP 主昵称
    facestrUP 主头像 url
    officialobjUP 主认证信息
    followedbool是否关注需要登录(Cookie 或 APP)
    true已关注
    false未关注
    fans_countnum粉丝数

    data中的related_ugc数组:

    类型内容备注
    0obj相关 ucg 视频 1
    nobj相关 ucg 视频(n+1)
    ……obj…………

    related_ugc数组中的对象:

    字段类型内容备注
    aidnum稿件 avid
    cidnum视频 cid
    namestr视频标题
    linkstr
    playnum播放数
    danmakunum弹幕数
    durationnum视频时长单位为秒
    coverstr视频封面 url

    data中的related_ogv数组:

    类型内容备注
    0obj相关 pgc 视频 1
    nobj相关 pgc 视频(n+1)
    ……obj…………

    related_ogv数组中的对象:

    字段类型内容备注
    season_idnum剧集 ssid
    namestr剧集标题
    playnum播放数
    followednum追剧/番数
    is_followedbool是否追剧/番true已追剧/番
    false未追剧/番
    new_epstr最新一集信息
    coverstr剧集封面 url
    episodesnull
    follow_infoobj

    data中的guides对象:

    字段类型内容备注
    descriptionstr创作推介文案
    contribute_tagsarray创作跳转按钮信息

    guides中的contribute_tags数组:

    类型内容备注
    0obj创作跳转按钮 1
    nobj创作跳转按钮(n+1)
    ……obj…………

    contribute_tags数组中的对象:

    字段类型内容备注
    titlestr按钮文案
    linkstr跳转 uri跳转至必剪或客户端创作入口

    data中的related_buzzwords数组:

    类型内容备注
    0obj推荐名词 1
    nobj推荐名词(n+1)
    ……obj…………

    related_buzzwords数组中的对象:

    字段类型内容备注
    idnum名词 id用于查询名词解释详情
    namestr名词
    name_pinyinnull
    picturestr

    data中的topic对象:

    字段类型内容备注
    topic_idnum关联话题id
    topic_namestr关联话题名称

    示例:

    查询名词kksk的详情

    curl -G 'https://api.bilibili.com/x/v2/dm/buzzword/detail' \\
    +--data-urlencode 'id=1'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,72),e=[o];function d(r,c){return n(),s("div",null,e)}const u=t(p,[["render",d],["__file","buzzword.html.vue"]]);export{u as default}; diff --git a/assets/buzzword.html-a8e3d82e.js b/assets/buzzword.html-a8e3d82e.js new file mode 100644 index 0000000000..f53cb06734 --- /dev/null +++ b/assets/buzzword.html-a8e3d82e.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-b1f572fe","path":"/docs/danmaku/buzzword.html","title":"名词解释","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"拉取名词解释列表","slug":"拉取名词解释列表","link":"#拉取名词解释列表","children":[]},{"level":2,"title":"查询名词解释详情","slug":"查询名词解释详情","link":"#查询名词解释详情","children":[]}],"git":{},"filePathRelative":"docs/danmaku/buzzword.md"}');export{e as data}; diff --git a/assets/bvid_desc.html-a8fdbbd8.js b/assets/bvid_desc.html-a8fdbbd8.js new file mode 100644 index 0000000000..b87a2eb9d9 --- /dev/null +++ b/assets/bvid_desc.html-a8fdbbd8.js @@ -0,0 +1,623 @@ +import{_ as u,r as o,o as i,c as k,a as n,b as s,d as a,w as e,e as p}from"./app-3168cb19.js";const r={},d=n("h1",{id:"bvid说明",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#bvid说明","aria-hidden":"true"},"#"),s(" bvid说明")],-1),v=n("p",null,[s("2020-03-23 B站推出了全新的稿件视频id"),n("code",null,"bvid"),s("来接替之前的"),n("code",null,"avid"),s(",其意义与之相同")],-1),b=n("p",null,"详见:",-1),m={href:"https://www.bilibili.com/read/cv5167957",target:"_blank",rel:"noopener noreferrer"},y={href:"https://www.bilibili.com/blackboard/activity-BV-PC.html",target:"_blank",rel:"noopener noreferrer"},w=p('

    概述

    格式

    “bvid”恒为长度为 12 的字符串,前 3 个固定为“BV1”,后 9 个为 base58 计算结果(不包含数字 0 和大写字母 IO 以及小写字母 l

    实质

    “bvid"为“avid”的base58编码,可通过算法进行相互转化

    avid发号方式的变化

    ',6),g={href:"https://www.bilibili.com/video/av2",target:"_blank",rel:"noopener noreferrer"},f={href:"https://www.bilibili.com/video/av99999999",target:"_blank",rel:"noopener noreferrer"},h=n("p",null,[n("s",null,"暗示B站东方要完?泪目")],-1),x=n("h2",{id:"算法概述",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#算法概述","aria-hidden":"true"},"#"),s(" 算法概述")],-1),A={href:"https://www.zhihu.com/question/381784377/answer/1099438784",target:"_blank",rel:"noopener noreferrer"},_={href:"https://www.bilibili.com/video/BV1N741127Tj",target:"_blank",rel:"noopener noreferrer"},B={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/740",target:"_blank",rel:"noopener noreferrer"},q=n("s",null,"来自 B 站某个 JS 文件?",-1),E=p('

    av->bv算法

    说明

    1. 目前的 BV 格式为 BV1XXXXXXXXX,以 BV1 开头,后面包含 9 位有效数据。
    2. AV 最大值为 2⁵¹。

    算法

    • 定义一个包含初始值为 ['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'] 的长度为 12 的数组bytes,用于存储转换后的字符。
      • 定义变量 bv_idx 并初始化为数组 bytes 的最后一个索引。
      • 将输入的 aid 与 avid 最大值(2⁵¹)进行按位或运算,其结果与常量 XOR_CODE(23442827791579)进行异或运算,得到变量 tmp
      • tmp 大于0时,循环执行以下操作直到小于0:
        • tmp 除以 58(码表的长度) 的余数作为索引,从 FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf 码表中取出对应的字符,并将其赋值给 bytes[bv_idx]
        • tmp 与 58 求模赋值给 tmp
        • bv_idx 减1。
      • bytes 数组中索引为 3 和 9 的元素进行交换。
      • bytes 数组中索引为 4 和 7 的元素进行交换。
      • bytes 数组转换为字符串,并返回结果。

    bv->av算法

    是 #av->bv算法 的逆向

    • bvid 中索引为 3 和 9 的字符进行交换。
    • bvid 中索引为 4 和 7 的字符进行交换。
    • 删除 bvid 前3个字符(固定为 BV1)。
    • 定义变量 tmp 并初始化为 0。
    • 遍历 bvid 的每个字符,执行以下操作:
      • 获取当前字符在 FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf 码表中的索引,并将其赋值给变量 idx
      • tmp 乘以常量 58,并加上 idx,最后赋值给 tmp
    • tmp 与常量 2⁵¹ - 1 进行按位与运算,其结果与常量 XOR_CODE(23442827791579) 进行异或运算,得到最终结果。

    编程实现

    JavaScript/TypeScript

    ',10),D=n("div",{class:"language-javascript line-numbers-mode","data-ext":"js"},[n("pre",{class:"language-javascript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"XOR_CODE"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"23442827791579n"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MASK_CODE"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"2251799813685247n"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MAX_AID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"1n"),s(),n("span",{class:"token operator"},"<<"),s(),n("span",{class:"token number"},"51n"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BASE"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"58n"),n("span",{class:"token punctuation"},";"),s(` + +`),n("span",{class:"token keyword"},"const"),s(" data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},"'FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf'"),n("span",{class:"token punctuation"},";"),s(` + +`),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"av2bv"),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},"aid"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" bytes "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),n("span",{class:"token string"},"'B'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'V'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'1'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"let"),s(" bvIndex "),n("span",{class:"token operator"},"="),s(" bytes"),n("span",{class:"token punctuation"},"."),s("length "),n("span",{class:"token operator"},"-"),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"let"),s(" tmp "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token constant"},"MAX_AID"),s(),n("span",{class:"token operator"},"|"),s(),n("span",{class:"token function"},"BigInt"),n("span",{class:"token punctuation"},"("),s("aid"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"^"),s(),n("span",{class:"token constant"},"XOR_CODE"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"while"),s(),n("span",{class:"token punctuation"},"("),s("tmp "),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + bytes`),n("span",{class:"token punctuation"},"["),s("bvIndex"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(" data"),n("span",{class:"token punctuation"},"["),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),s("tmp "),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token function"},"BigInt"),n("span",{class:"token punctuation"},"("),n("span",{class:"token constant"},"BASE"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + tmp `),n("span",{class:"token operator"},"="),s(" tmp "),n("span",{class:"token operator"},"/"),s(),n("span",{class:"token constant"},"BASE"),n("span",{class:"token punctuation"},";"),s(` + bvIndex `),n("span",{class:"token operator"},"-="),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"}"),s(` + `),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"return"),s(" bytes"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"join"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"''"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"bv2av"),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},"bvid"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" bvidArr "),n("span",{class:"token operator"},"="),s(" Array"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"from"),n("span",{class:"token punctuation"},"("),s("bvid"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + bvidArr`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"splice"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" tmp "),n("span",{class:"token operator"},"="),s(" bvidArr"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"reduce"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},[s("pre"),n("span",{class:"token punctuation"},","),s(" bvidChar")]),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(" pre "),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token constant"},"BASE"),s(),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token function"},"BigInt"),n("span",{class:"token punctuation"},"("),s("data"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"indexOf"),n("span",{class:"token punctuation"},"("),s("bvidChar"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"0n"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),s("tmp "),n("span",{class:"token operator"},"&"),s(),n("span",{class:"token constant"},"MASK_CODE"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"^"),s(),n("span",{class:"token constant"},"XOR_CODE"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +console`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),n("span",{class:"token function"},"av2bv"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"111298867365120"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +console`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),n("span",{class:"token function"},"bv2av"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'BV1L9Uoa9EUx'"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),S=n("div",{class:"language-typescript line-numbers-mode","data-ext":"ts"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"XOR_CODE"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"23442827791579n"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MASK_CODE"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"2251799813685247n"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MAX_AID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"1n"),s(),n("span",{class:"token operator"},"<<"),s(),n("span",{class:"token number"},"51n"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BASE"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token number"},"58n"),n("span",{class:"token punctuation"},";"),s(` + +`),n("span",{class:"token keyword"},"const"),s(" data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},"'FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf'"),n("span",{class:"token punctuation"},";"),s(` + +`),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"av2bv"),n("span",{class:"token punctuation"},"("),s("aid"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"number"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" bytes "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),n("span",{class:"token string"},"'B'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'V'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'1'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"'0'"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"let"),s(" bvIndex "),n("span",{class:"token operator"},"="),s(" bytes"),n("span",{class:"token punctuation"},"."),s("length "),n("span",{class:"token operator"},"-"),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"let"),s(" tmp "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token constant"},"MAX_AID"),s(),n("span",{class:"token operator"},"|"),s(),n("span",{class:"token function"},"BigInt"),n("span",{class:"token punctuation"},"("),s("aid"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"^"),s(),n("span",{class:"token constant"},"XOR_CODE"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"while"),s(),n("span",{class:"token punctuation"},"("),s("tmp "),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + bytes`),n("span",{class:"token punctuation"},"["),s("bvIndex"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(" data"),n("span",{class:"token punctuation"},"["),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),s("tmp "),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token function"},"BigInt"),n("span",{class:"token punctuation"},"("),n("span",{class:"token constant"},"BASE"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + tmp `),n("span",{class:"token operator"},"="),s(" tmp "),n("span",{class:"token operator"},"/"),s(),n("span",{class:"token constant"},"BASE"),n("span",{class:"token punctuation"},";"),s(` + bvIndex `),n("span",{class:"token operator"},"-="),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"}"),s(` + `),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bytes"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"return"),s(" bytes"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"join"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"''"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token template-string"},[n("span",{class:"token template-punctuation string"},"`"),n("span",{class:"token string"},"BV1"),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token builtin"},"string"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token template-punctuation string"},"`")]),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"bv2av"),n("span",{class:"token punctuation"},"("),s("bvid"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token template-string"},[n("span",{class:"token template-punctuation string"},"`"),n("span",{class:"token string"},"BV1"),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token builtin"},"string"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token template-punctuation string"},"`")]),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" bvidArr "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token builtin"},"Array"),n("span",{class:"token punctuation"},"."),n("span",{class:"token generic-function"},[n("span",{class:"token function"},"from"),n("span",{class:"token generic class-name"},[n("span",{class:"token operator"},"<"),n("span",{class:"token builtin"},"string"),n("span",{class:"token operator"},">")])]),n("span",{class:"token punctuation"},"("),s("bvid"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s("bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(" bvidArr"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},";"),s(` + bvidArr`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"splice"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" tmp "),n("span",{class:"token operator"},"="),s(" bvidArr"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"reduce"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),s("pre"),n("span",{class:"token punctuation"},","),s(" bvidChar"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(" pre "),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token constant"},"BASE"),s(),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token function"},"BigInt"),n("span",{class:"token punctuation"},"("),s("data"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"indexOf"),n("span",{class:"token punctuation"},"("),s("bvidChar"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"0n"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),s("tmp "),n("span",{class:"token operator"},"&"),s(),n("span",{class:"token constant"},"MASK_CODE"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"^"),s(),n("span",{class:"token constant"},"XOR_CODE"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),n("span",{class:"token function"},"av2bv"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"111298867365120"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),n("span",{class:"token function"},"bv2av"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'BV1L9Uoa9EUx'"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),O=n("h3",{id:"python",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#python","aria-hidden":"true"},"#"),s(" Python")],-1),C={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/847#issuecomment-1807020675",target:"_blank",rel:"noopener noreferrer"},V=p(`
    XOR_CODE = 23442827791579
    +MASK_CODE = 2251799813685247
    +MAX_AID = 1 << 51
    +ALPHABET = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf"
    +ENCODE_MAP = 8, 7, 0, 5, 1, 3, 2, 4, 6
    +DECODE_MAP = tuple(reversed(ENCODE_MAP))
    +
    +BASE = len(ALPHABET)
    +PREFIX = "BV1"
    +PREFIX_LEN = len(PREFIX)
    +CODE_LEN = len(ENCODE_MAP)
    +
    +def av2bv(aid: int) -> str:
    +    bvid = [""] * 9
    +    tmp = (MAX_AID | aid) ^ XOR_CODE
    +    for i in range(CODE_LEN):
    +        bvid[ENCODE_MAP[i]] = ALPHABET[tmp % BASE]
    +        tmp //= BASE
    +    return PREFIX + "".join(bvid)
    +
    +def bv2av(bvid: str) -> int:
    +    assert bvid[:3] == PREFIX
    +
    +    bvid = bvid[3:]
    +    tmp = 0
    +    for i in range(CODE_LEN):
    +        idx = ALPHABET.index(bvid[DECODE_MAP[i]])
    +        tmp = tmp * BASE + idx
    +    return (tmp & MASK_CODE) ^ XOR_CODE
    +
    +assert av2bv(111298867365120) == "BV1L9Uoa9EUx"
    +assert bv2av("BV1L9Uoa9EUx") == 111298867365120
    +

    Rust

    `,2),R={href:"https://github.com/Colerar/abv/blob/main/src/lib.rs",target:"_blank",rel:"noopener noreferrer"},I=p(`

    Swift

    fileprivate let XOR_CODE: UInt64 = 23442827791579
    +fileprivate let MASK_CODE: UInt64 = 2251799813685247
    +fileprivate let MAX_AID: UInt64 = 1 << 51
    +
    +fileprivate let data: [UInt8] = [70, 99, 119, 65, 80, 78, 75, 84, 77, 117, 103, 51, 71, 86, 53, 76, 106, 55, 69, 74, 110, 72, 112, 87, 115, 120, 52, 116, 98, 56, 104, 97, 89, 101, 118, 105, 113, 66, 122, 54, 114, 107, 67, 121, 49, 50, 109, 85, 83, 68, 81, 88, 57, 82, 100, 111, 90, 102]
    +
    +fileprivate let BASE: UInt64 = 58
    +fileprivate let BV_LEN: Int = 12
    +fileprivate let PREFIX: String = "BV1"
    +
    +func av2bv(avid: UInt64) -> String {
    +    var bytes: [UInt8] = [66, 86, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48]
    +    var bvIdx = BV_LEN - 1
    +    var tmp = (MAX_AID | avid) ^ XOR_CODE
    +
    +    while tmp != 0 {
    +        bytes[bvIdx] = data[Int(tmp % BASE)]
    +        tmp /= BASE
    +        bvIdx -= 1
    +    }
    +
    +    bytes.swapAt(3, 9)
    +    bytes.swapAt(4, 7)
    +
    +    return String(decoding: bytes, as: UTF8.self)
    +}
    +
    +func bv2av(bvid: String) -> UInt64 {
    +    let fixedBvid: String
    +    if bvid.hasPrefix("BV") {
    +        fixedBvid = bvid
    +    } else {
    +        fixedBvid = "BV" + bvid
    +    }
    +    var bvidArray = Array(fixedBvid.utf8)
    +
    +    bvidArray.swapAt(3, 9)
    +    bvidArray.swapAt(4, 7)
    +
    +    let trimmedBvid = String(decoding: bvidArray[3...], as: UTF8.self)
    +
    +    var tmp: UInt64 = 0
    +
    +    for char in trimmedBvid {
    +        if let idx = data.firstIndex(of: char.utf8.first!) {
    +            tmp = tmp * BASE + UInt64(idx)
    +        }
    +    }
    +
    +    return (tmp & MASK_CODE) ^ XOR_CODE
    +}
    +
    +print(av2bv(avid: 111298867365120))
    +print(bv2av(bvid: "BV1L9Uoa9EUx"))
    +

    Java

    import java.math.BigInteger;
    +
    +/**
    + * @author cctyl
    + */
    +public class AVBVConverter {
    +
    +    private static final BigInteger XOR_CODE = BigInteger.valueOf(23442827791579L);
    +    private static final BigInteger MASK_CODE = BigInteger.valueOf(2251799813685247L);
    +    private static final BigInteger MAX_AID = BigInteger.ONE.shiftLeft(51);
    +    private static final int BASE = 58;
    +
    +    private static final String DATA = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf";
    +
    +    public static String av2bv(long aidParam) {
    +        BigInteger aid = BigInteger.valueOf(aidParam);
    +        char[] bytes = {'B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'};
    +        int bvIndex = bytes.length - 1;
    +        BigInteger tmp = MAX_AID.or(aid).xor(XOR_CODE);
    +        while (tmp.compareTo(BigInteger.ZERO) > 0) {
    +            bytes[bvIndex] = DATA.charAt(tmp.mod(BigInteger.valueOf(BASE)).intValue());
    +            tmp = tmp.divide(BigInteger.valueOf(BASE));
    +            bvIndex--;
    +        }
    +        swap(bytes, 3, 9);
    +        swap(bytes, 4, 7);
    +        return new String(bytes);
    +    }
    +
    +    public static long bv2av(String bvid) {
    +        char[] bvidArr = bvid.toCharArray();
    +        swap(bvidArr, 3, 9);
    +        swap(bvidArr, 4, 7);
    +        String adjustedBvid = new String(bvidArr, 3, bvidArr.length - 3);
    +        BigInteger tmp = BigInteger.ZERO;
    +        for (char c : adjustedBvid.toCharArray()) {
    +            tmp = tmp.multiply(BigInteger.valueOf(BASE)).add(BigInteger.valueOf(DATA.indexOf(c)));
    +        }
    +        BigInteger xor = tmp.and(MASK_CODE).xor(XOR_CODE);
    +        return xor.longValue();
    +    }
    +
    +
    +    private static void swap(char[] array, int i, int j) {
    +        char temp = array[i];
    +        array[i] = array[j];
    +        array[j] = temp;
    +    }
    +
    +    public static void main(String[] args) {
    +
    +        final int aid1 = 643755790;
    +        final String bv1 = "BV1bY4y1j7RA";
    +
    +        final int aid2 = 305988942;
    +        final String bv2 = "BV1aP411K7it";
    +
    +        //av ==> bv
    +        assert av2bv(aid1).equals(bv1);
    +        assert av2bv(aid2).equals(bv2);
    +
    +        //bv ==>av
    +        assert bv2av(bv1) == aid1;
    +        assert bv2av(bv2) == aid2;
    +    }
    +}
    +

    Golang

    package main
    +
    +import (
    +	"fmt"
    +	"strings"
    +)
    +
    +var (
    +	XOR_CODE = int64(23442827791579)
    +	MAX_CODE = int64(2251799813685247)
    +	CHARTS   = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf"
    +	PAUL_NUM = int64(58)
    +)
    +
    +func swapString(s string, x, y int) string {
    +	chars := []rune(s)
    +	chars[x], chars[y] = chars[y], chars[x]
    +	return string(chars)
    +}
    +
    +func Bvid2Avid(bvid string) (avid int64) {
    +	s := swapString(swapString(bvid, 3, 9), 4, 7)
    +	bv1 := string([]rune(s)[3:])
    +	temp := int64(0)
    +	for _, c := range bv1 {
    +		idx := strings.IndexRune(CHARTS, c)
    +		temp = temp*PAUL_NUM + int64(idx)
    +	}
    +	avid = (temp & MAX_CODE) ^ XOR_CODE
    +	return
    +}
    +
    +func Avid2Bvid(avid int64) (bvid string) {
    +	arr := [12]string{"B", "V", "1"}
    +	bvIdx := len(arr) - 1
    +	temp := (avid | (MAX_CODE + 1)) ^ XOR_CODE
    +	for temp > 0 {
    +		idx := temp % PAUL_NUM
    +		arr[bvIdx] = string(CHARTS[idx])
    +		temp /= PAUL_NUM
    +		bvIdx--
    +	}
    +	raw := strings.Join(arr[:], "")
    +	bvid = swapString(swapString(raw, 3, 9), 4, 7)
    +	return
    +}
    +
    +func main() {
    +	avid := int64(1054803170)
    +	bvid := "BV1mH4y1u7UA"
    +	resAvid := Bvid2Avid(bvid)
    +	resBvid := Avid2Bvid(avid)
    +
    +	fmt.Printf("convert bvid to avid: %v\\tvalue:%v\\n", avid == resAvid, resAvid)
    +	fmt.Printf("convert avid to bvid: %v\\tvalue:%v\\n", bvid == resBvid, resBvid)
    +
    +}
    +
    +

    C++

    #include <algorithm>
    +#include <cassert>
    +#include <print>
    +#include <string>
    +
    +constexpr int64_t XOR_CODE          = 0x1552356C4CDB;
    +constexpr int64_t MAX_AID           = 0x8000000000000;
    +constexpr int64_t MASK_CODE         = MAX_AID - 1;
    +constexpr int64_t BASE              = 58;
    +constexpr char    Table[BASE + 1]   = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf";
    +constexpr char    ReverseTable[128] = {
    +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x2c, 0x2d, 0x0b, 0x1a, 0x0e, 0x27, 0x11, 0x1d, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x03, 0x25, 0x2a, 0x31, 0x12, 0x00, 0x0c, 0x15, 0x00, 0x13, 0x06, 0x0f, 0x08, 0x05, 0x00,
    +    0x04, 0x32, 0x35, 0x30, 0x07, 0x2f, 0x0d, 0x17, 0x33, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x1f, 0x1c, 0x01, 0x36, 0x21, 0x39, 0x0a, 0x1e, 0x23, 0x10, 0x29, 0x00, 0x2e, 0x14, 0x37,
    +    0x16, 0x24, 0x28, 0x18, 0x1b, 0x09, 0x22, 0x02, 0x19, 0x2b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00
    +};
    +
    +std::string Av2bv(const int64_t Avid) {
    +    assert(Avid > 0 && "Avid must be greater than 0");
    +    std::string bv = "BV1";
    +    bv.resize(12, '\\0');
    +
    +    int64_t tmp = (Avid | MAX_AID) ^ XOR_CODE;
    +    for (size_t i = bv.size() - 1; tmp > 0 && i > 2; --i) {
    +        bv[i] = Table[tmp % BASE];
    +        tmp /= BASE;
    +    }
    +    std::ranges::swap(bv.at(3), bv.at(9));
    +    std::ranges::swap(bv.at(4), bv.at(7));
    +    return bv;
    +}
    +
    +int64_t Bv2av(const std::string &Bvid) {
    +    assert(Bvid.starts_with("BV1") && "Bvid must start with 'BV1'");
    +
    +    auto Bvid_ = Bvid;
    +    std::ranges::swap(Bvid_.at(3), Bvid_.at(9));
    +    std::ranges::swap(Bvid_.at(4), Bvid_.at(7));
    +
    +    int64_t tmp = 0;
    +    for (int i = 3; i < Bvid_.size(); ++i) {
    +        tmp = ReverseTable[Bvid_.at(i)] + BASE * tmp;
    +    }
    +    return (tmp & MASK_CODE) ^ XOR_CODE;
    +}
    +
    +int main() {
    +    assert(Av2bv(1004871019) == "BV16x4y1H7M1");
    +    assert(Bv2av("BV16x4y1H7M1") == 1004871019);
    +}
    +

    老版算法存档

    以下算法已失效,编解码函数值域有限,不推荐使用,在此仅作为存档

    `,10),X=n("summary",null,"查看折叠内容:",-1),M={href:"https://www.bilibili.com/video/BV1N741127Tj",target:"_blank",rel:"noopener noreferrer"},T=p(`

    av->bv算法

    注:本算法及示例程序仅能编解码avid < 29460791296,且暂无法验证avid >= 29460791296的正确性 再注:本人不清楚新算法能否编解码avid >= 29460791296

    1. a = (avid ⊕ 177451812) + 100618342136696320
    2. 以 i 为循环变量循环 6 次 b[i] = (a / 58 ^ i) % 58
    3. 将 b[i] 中各个数字转换为以下码表中的字符

    码表:

    fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF

    1. 初始化字符串 b[i]=

    2. 按照以下字符顺序编码表编码并填充至 b[i]

    字符顺序编码表:

    0 -> 9

    1 -> 8

    2 -> 1

    3 -> 6

    4 -> 2

    5 -> 4

    6 -> 0

    7 -> 7

    8 -> 3

    9 -> 5

    bv->av算法

    为以上算法的逆运算

    编程实现

    使用 Python C TypeScript Java Kotlin Golang Rust 等语言作为示例,欢迎社区提交更多例程

    注: 新算法只提供了 PythonRust 版本

    Python

    XOR = 177451812
    +ADD = 100618342136696320
    +TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
    +MAP = 9, 8, 1, 6, 2, 4, 0, 7, 3, 5
    +
    +
    +def av2bv(av: int) -> str:
    +    av = (av ^ XOR) + ADD
    +    bv = [""] * 10
    +    for i in range(10):
    +        bv[MAP[i]] = TABLE[(av // 58**i) % 58]
    +    return "".join(bv)
    +
    +
    +def bv2av(bv: int) -> int:
    +    av = [""] * 10
    +    s = 0
    +    for i in range(10):
    +        s += TABLE.find(bv[MAP[i]]) * 58**i
    +    av = (s - ADD) ^ XOR
    +
    +    return av
    +
    +
    +def main():
    +    while 1:
    +        mode = input("1. AV to BV\\n2. BV to AV\\n3. Exit\\n你的选择:")
    +        if mode == "1":
    +            print(f"BV号是:BV {av2bv(int(input('AV号是:')))}")
    +        elif mode == "2":
    +            print(f"AV号是:AV {bv2av(input('BV号是:'))}")
    +        elif mode == "3":
    +            break
    +        else:
    +            print("输入错误请重新输入")
    +
    +
    +if __name__ == "__main__":
    +    main()
    +

    C

    #include <stdio.h>
    +#include <stdlib.h>
    +#include <math.h>
    +#include <string.h>
    +
    +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

    `,20),L={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/417#issuecomment-1186475063",target:"_blank",rel:"noopener noreferrer"},P=p(`
    export default class BvCode {
    +  private TABEL = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'; // 码表
    +  private TR: Record<string, number> = {}; // 反查码表
    +  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

    /**
    + * 算法来自: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<Character, Integer> 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

    /**
    + * 此程序非完全原创,改编自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<String, Int>()
    +    private val mp2 = HashMap<Int, String>()
    +
    +    //现在,定义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

    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
    +

    Rust

    crate: https://github.com/stackinspector/bvid

    // Copyright (c) 2023 stackinspector. MIT license.
    +
    +const XORN: u64 = 177451812;
    +const ADDN: u64 = 100618342136696320;
    +const TABLE: [u8; 58] = *b"fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
    +const MAP: [usize; 10] = [9, 8, 1, 6, 2, 4, 0, 7, 3, 5];
    +const REV_TABLE: [u8; 74] = [
    +    13, 12, 46, 31, 43, 18, 40, 28,  5,  0,  0,  0,  0,  0,  0,  0, 54, 20, 15, 8,
    +    39, 57, 45, 36,  0, 38, 51, 42, 49, 52,  0, 53,  7,  4,  9, 50, 10, 44, 34, 6,
    +    25,  1,  0,  0,  0,  0,  0,  0, 26, 29, 56,  3, 24,  0, 47, 27, 22, 41, 16, 0,
    +    11, 37,  2, 35, 21, 17, 33, 30, 48, 23, 55, 32, 14, 19,
    +];
    +const POW58: [u64; 10] = [
    +    1, 58, 3364, 195112, 11316496, 656356768, 38068692544,
    +    2207984167552, 128063081718016, 7427658739644928,
    +];
    +
    +fn av2bv(avid: u64) -> [u8; 10] {
    +    let a = (avid ^ XORN) + ADDN;
    +    let mut bvid = [0; 10];
    +    for i in 0..10 {
    +        bvid[MAP[i]] = TABLE[(a / POW58[i]) as usize % 58];
    +    }
    +    bvid
    +}
    +
    +fn bv2av(bvid: [u8; 10]) -> u64 {
    +    let mut a = 0;
    +    for i in 0..10 {
    +        a += REV_TABLE[bvid[MAP[i]] as usize - 49] as u64 * POW58[i];
    +    }
    +    (a - ADDN) ^ XORN
    +}
    +
    +// assert_eq!(*b"17x411w7KC", av2bv(170001));
    +// assert_eq!(170001, bv2av(*b"17x411w7KC"));
    +
    `,14);function U(j,N){const t=o("ExternalLinkIcon"),c=o("CodeGroupItem"),l=o("CodeGroup");return i(),k("div",null,[d,v,b,n("ol",null,[n("li",null,[n("a",m,[s("【升级公告】AV号全面升级至BV号(专栏)"),a(t)])]),n("li",null,[n("a",y,[s("【升级公告】AV号全面升级至BV号"),a(t)])])]),w,n("p",null,[s("从 2009-09-09 09:09:09 "),n("a",g,[s("av2"),a(t)]),s(" 的发布到 2020-03-28 19:45:02 "),n("a",f,[s("av99999999"),a(t)]),s(" 的发布B站结束了以投稿时间为顺序的avid发放,改为随机发放avid")]),h,x,n("p",null,[n("s",null,[s("算法以及程序主要参考"),n("a",A,[s("知乎@mcfx的回答"),a(t)])]),n("s",null,[s("实际上该算法并不完整,新的算法参考自"),n("a",_,[s("【揭秘】av号转bv号的过程"),a(t)])]),s(" 实际上上面的算法依然不完整,新的算法参考自 "),n("a",B,[s("SocialSisterYi#740"),a(t)]),q]),E,a(l,null,{default:e(()=>[a(c,{title:"JavaScript"},{default:e(()=>[D]),_:1}),a(c,{title:"TypeScript"},{default:e(()=>[S]),_:1})]),_:1}),O,n("p",null,[s("来自:"),n("a",C,[s("#847"),a(t)])]),V,n("p",null,[s("参考 "),n("a",R,[s("https://github.com/Colerar/abv/blob/main/src/lib.rs"),a(t)])]),I,n("details",null,[X,n("p",null,[s("算法参考自"),n("a",M,[s("【揭秘】av号转bv号的过程"),a(t)])]),T,n("p",null,[s("感谢"),n("a",L,[s("#417"),a(t)]),s("提供")]),P])])}const H=u(r,[["render",U],["__file","bvid_desc.html.vue"]]);export{H as default}; diff --git a/assets/bvid_desc.html-b2719796.js b/assets/bvid_desc.html-b2719796.js new file mode 100644 index 0000000000..329e499fe1 --- /dev/null +++ b/assets/bvid_desc.html-b2719796.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-45f9d6c0","path":"/docs/misc/bvid_desc.html","title":"bvid说明","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"概述","slug":"概述","link":"#概述","children":[{"level":3,"title":"格式","slug":"格式","link":"#格式","children":[]},{"level":3,"title":"实质","slug":"实质","link":"#实质","children":[]},{"level":3,"title":"avid发号方式的变化","slug":"avid发号方式的变化","link":"#avid发号方式的变化","children":[]}]},{"level":2,"title":"算法概述","slug":"算法概述","link":"#算法概述","children":[{"level":3,"title":"av->bv算法","slug":"av-bv算法","link":"#av-bv算法","children":[]},{"level":3,"title":"bv->av算法","slug":"bv-av算法","link":"#bv-av算法","children":[]}]},{"level":2,"title":"编程实现","slug":"编程实现","link":"#编程实现","children":[{"level":3,"title":"JavaScript/TypeScript","slug":"javascript-typescript","link":"#javascript-typescript","children":[]},{"level":3,"title":"Python","slug":"python","link":"#python","children":[]},{"level":3,"title":"Rust","slug":"rust","link":"#rust","children":[]},{"level":3,"title":"Swift","slug":"swift","link":"#swift","children":[]},{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Golang","slug":"golang","link":"#golang","children":[]},{"level":3,"title":"C++","slug":"c","link":"#c","children":[]}]},{"level":2,"title":"老版算法存档","slug":"老版算法存档","link":"#老版算法存档","children":[{"level":3,"title":"av->bv算法","slug":"av-bv算法-1","link":"#av-bv算法-1","children":[]},{"level":3,"title":"bv->av算法","slug":"bv-av算法-1","link":"#bv-av算法-1","children":[]},{"level":3,"title":"编程实现","slug":"编程实现-1","link":"#编程实现-1","children":[]}]}],"git":{},"filePathRelative":"docs/misc/bvid_desc.md"}');export{l as data}; diff --git a/assets/car-c766485c.svg b/assets/car-c766485c.svg new file mode 100644 index 0000000000..6d30f0a31e --- /dev/null +++ b/assets/car-c766485c.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/card_info.html-078fd045.js b/assets/card_info.html-078fd045.js new file mode 100644 index 0000000000..3bcac5e510 --- /dev/null +++ b/assets/card_info.html-078fd045.js @@ -0,0 +1,316 @@ +import{_ as p,r as o,o as e,c as u,a as n,b as s,d as l,e as a}from"./app-3168cb19.js";const r={},c=a(`

    动态详细信息字段

    不同动态内容卡片的具体信息。包含在获取特定动态卡片信息,话题下特定动态信息等API的Json回复中。

    以card字段的形式出现,内容为一个可被解析为Json对象的字符串。

    不同类型的动态内容拥有不同的字段。


    在转发类动态中(type=1)

    需注意账号转发视频投稿,其他用户的动态以及分享收藏夹等均为转发类内容,并不属于type=4300的收藏类动态等。

    在type=1的转发类动态中,解析出的对象包含以下内容:

    字段类型内容备注
    userobj转发者用户信息包含用户名,用户id和头像
    itemobj转发相关信息content字段为转发附言
    originstr被转发动态信息即本文档所描述的动态详细信息字段。
    动态类型为item对象的orig_type字段
    origin_extend_jsonstr被转发动态补充信息
    origin_userobj被转发用户信息
    activity_infosobj被转发动态参与的活动
    查看字段内容示例:
    {
    +  "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的图片动态中,解析出的对象包含以下内容:

    字段类型内容备注
    itemobj图片动态内容description字段为文字内容
    pictures字段图片
    userobj发布者用户信息包含用户名,用户id和头像
    查看字段内容示例:
    {
    +  "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的文字动态中,解析出的对象包含以下内容:

    字段类型内容备注
    itemobj文字动态内容description字段为文字内容
    userobj发布者用户信息包含用户名,用户id和头像
    查看字段内容示例:
    {
    +  "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的视频投稿动态中,解析出的对象包含以下内容:

    `,20),i=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),d=n("tr",null,[n("td",null,"aid"),n("td",null,"num"),n("td",null,"视频avid"),n("td")],-1),k=n("td",null,"attribute",-1),q=n("td",null,"num",-1),v=n("td",null,[n("code",null,"0")],-1),m={href:"https://shakaianee.top/archives/9/",target:"_blank",rel:"noopener noreferrer"},b=n("tr",null,[n("td",null,"cid"),n("td",null,"num"),n("td",null,"视频cid"),n("td")],-1),y=n("tr",null,[n("td",null,"copyright"),n("td",null,"num"),n("td",null,"原创信息"),n("td",null,"1为原创,2为转载")],-1),h=n("tr",null,[n("td",null,"desc"),n("td",null,"str"),n("td",null,"视频简介"),n("td")],-1),_=n("tr",null,[n("td",null,"dimension"),n("td",null,"obj"),n("td",null,"视频1p分辨率"),n("td")],-1),g=n("tr",null,[n("td",null,"duration"),n("td",null,"num"),n("td",null,"视频时长"),n("td",null,"单位秒")],-1),f=n("tr",null,[n("td",null,"dynamic"),n("td",null,"str"),n("td",null,"动态文字内容"),n("td")],-1),j=n("tr",null,[n("td",null,"first_frame"),n("td",null,"str"),n("td",null,"视频第一帧图片"),n("td",null,"图片链接")],-1),w=n("tr",null,[n("td",null,"jump_url"),n("td",null,"str"),n("td",null,"视频跳转链接"),n("td")],-1),x=n("tr",null,[n("td",null,"mission_id"),n("td",null,"num"),n("td",null,"稿件参与的活动id"),n("td")],-1),B=n("tr",null,[n("td",null,"owner"),n("td",null,"obj"),n("td",null,"动态作者信息"),n("td",null,"即up主")],-1),E=n("tr",null,[n("td",null,"pic"),n("td",null,"str"),n("td",null,"视频封面"),n("td")],-1),A=n("tr",null,[n("td",null,"player_info"),n("td",null,"?"),n("td",null,"可能是播放器信息"),n("td")],-1),V=n("tr",null,[n("td",null,"pubdate"),n("td",null,"num"),n("td",null,"发布时间"),n("td",null,"时间戳")],-1),C=n("tr",null,[n("td",null,"rights"),n("td",null,"obj"),n("td",null,"联合投稿,是否付费等信息"),n("td",null,[s("可能用来代替原"),n("code",null,"attribute"),s("字段")])],-1),F=n("tr",null,[n("td",null,"stat"),n("td",null,"obj"),n("td",null,"视频数据"),n("td",null,"点赞投币等")],-1),I=n("tr",null,[n("td",null,"state"),n("td",null,"num"),n("td",null,"视频状态"),n("td",null,[s("详情见"),n("strong",null,"属性数据文档")])],-1),N=n("tr",null,[n("td",null,"tid"),n("td",null,"num"),n("td",null,"视频分区编号"),n("td")],-1),z=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"视频标题"),n("td")],-1),D=n("tr",null,[n("td",null,"tname"),n("td",null,"str"),n("td",null,"视频分区名称"),n("td")],-1),L=n("tr",null,[n("td",null,"video"),n("td",null,"num"),n("td",null,"视频数"),n("td")],-1),T=a(`
    查看字段内容示例:
    {
    +  "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的专栏投稿动态中,解析出的对象包含以下内容:

    字段类型内容备注
    idnum专栏的id,即cv号
    categoryobj分类号和分类名称
    categoriesobj分类信息
    titlestr专栏标题
    summarystr专栏简介
    banner_urlstr头图链接
    template_idnum模板信息
    statenum专栏状态
    authorobj作者信息包含了头像挂件和勋章等
    reprintnum可能是转载
    image_urlsobj图片链接
    publish_timenum发布时间时间戳,应该指专栏
    ctimenum发布时间时间戳,应该指动态
    statsobj专栏数据,点赞之类有点踩字段,但并未实装此功能
    wordsnum字数
    origin_image_urlsobj源图片地址
    list?可能为文集
    is_likebool是否点赞
    mediaobj番剧电影相关内容影评的分数,是否有剧透等
    apply_time??
    check_time??
    originalnum是否原创
    act_idnum?
    dispute?可能为是否争议内容
    authenMark??
    cover_avidnum相关视频id例如笔记专栏的原视频
    top_video_info??
    typenum可能是专栏类别
    查看字段内容示例:
    {
    +  "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的音频投稿动态中,解析出的对象包含以下内容:

    字段类型内容备注
    idnum投稿编号即au号
    upIdnum音乐人id与用户uid不同
    titlestr音频标题
    upperstr上传者名称
    coverstr封面图链接
    authorstr作者名称
    ctimenum上传时间时间戳的后面加了三个0
    playCntnum播放量
    introstr音频介绍
    schemastr跳转链接似乎并不只是url
    typeInfostr分区信息
    upperAvatarstr上传者的头像链接
    查看字段内容示例:
    {
    +  "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"
    +}
    +
    `,9);function H(K,S){const t=o("ExternalLinkIcon");return e(),u("div",null,[c,n("table",null,[i,n("tbody",null,[d,n("tr",null,[k,q,v,n("td",null,[n("a",m,[s("可能已弃用"),l(t)])])]),b,y,h,_,g,f,j,w,x,B,E,A,V,C,F,I,N,z,D,L])]),T])}const R=p(r,[["render",H],["__file","card_info.html.vue"]]);export{R as default}; diff --git a/assets/card_info.html-d39c91de.js b/assets/card_info.html-d39c91de.js new file mode 100644 index 0000000000..36fae77d5d --- /dev/null +++ b/assets/card_info.html-d39c91de.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-edaa43f2","path":"/docs/dynamic/card_info.html","title":"动态详细信息字段","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"在转发类动态中(type=1)","slug":"在转发类动态中-type-1","link":"#在转发类动态中-type-1","children":[]},{"level":2,"title":"在图片动态中(type=2)","slug":"在图片动态中-type-2","link":"#在图片动态中-type-2","children":[]},{"level":2,"title":"在文字动态中(type=4)","slug":"在文字动态中-type-4","link":"#在文字动态中-type-4","children":[]},{"level":2,"title":"在视频投稿动态中(type=8)","slug":"在视频投稿动态中-type-8","link":"#在视频投稿动态中-type-8","children":[]},{"level":2,"title":"在专栏投稿动态中(type=64)","slug":"在专栏投稿动态中-type-64","link":"#在专栏投稿动态中-type-64","children":[]},{"level":2,"title":"在音频投稿动态中(type=256)","slug":"在音频投稿动态中-type-256","link":"#在音频投稿动态中-type-256","children":[]}],"git":{},"filePathRelative":"docs/dynamic/card_info.md"}');export{e as data}; diff --git a/assets/category.html-c2e3b38d.js b/assets/category.html-c2e3b38d.js new file mode 100644 index 0000000000..3adea5c275 --- /dev/null +++ b/assets/category.html-c2e3b38d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-34add227","path":"/docs/article/category.html","title":"专栏分类","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"游戏","slug":"游戏","link":"#游戏","children":[]},{"level":2,"title":"动画","slug":"动画","link":"#动画","children":[]},{"level":2,"title":"生活","slug":"生活","link":"#生活","children":[]},{"level":2,"title":"轻小说","slug":"轻小说","link":"#轻小说","children":[]},{"level":2,"title":"科技","slug":"科技","link":"#科技","children":[]},{"level":2,"title":"影视","slug":"影视","link":"#影视","children":[]},{"level":2,"title":"兴趣","slug":"兴趣","link":"#兴趣","children":[]},{"level":2,"title":"笔记","slug":"笔记","link":"#笔记","children":[]}],"git":{},"filePathRelative":"docs/article/category.md"}');export{l as data}; diff --git a/assets/category.html-edc6a497.js b/assets/category.html-edc6a497.js new file mode 100644 index 0000000000..960202a4ba --- /dev/null +++ b/assets/category.html-edc6a497.js @@ -0,0 +1 @@ +import{_ as t,o as d,c as r,e as a}from"./app-3168cb19.js";const e={},h=a('

    专栏分类

    游戏

    idparent_idname
    10游戏
    61单机游戏
    71电子竞技
    81手机游戏
    91网络游戏
    101桌游棋牌

    动画

    idparent_idname
    20动画
    42动漫杂谈
    52动漫资讯
    312动画技术

    生活

    idparent_idname
    30生活
    133美食
    143时尚
    153日常
    213萌宠
    223运动

    轻小说

    idparent_idname
    160轻小说
    1816原创连载
    1916同人连载
    2016小说杂谈
    3216短篇小说

    科技

    idparent_idname
    170科技
    2517人文历史
    2617数码
    2717汽车
    3317自然
    3417学习

    影视

    idparent_idname
    280影视
    1228电影
    3528电视剧
    3628纪录片
    3728综艺

    兴趣

    idparent_idname
    290兴趣
    1129模型手办
    2329绘画
    2429手工
    3829摄影
    3929音乐舞蹈

    笔记

    idparent_idname
    410笔记
    4241全部笔记
    ',17),i=[h];function n(o,b){return d(),r("div",null,i)}const l=t(e,[["render",n],["__file","category.html.vue"]]);export{l as default}; diff --git a/assets/center.html-64584776.js b/assets/center.html-64584776.js new file mode 100644 index 0000000000..84604fdef6 --- /dev/null +++ b/assets/center.html-64584776.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-42caf152","path":"/docs/vip/center.html","title":"大会员中心","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"大会员中心信息","slug":"大会员中心信息","link":"#大会员中心信息","children":[]},{"level":2,"title":"大积分","slug":"大积分","link":"#大积分","children":[{"level":3,"title":"大积分商品类型","slug":"大积分商品类型","link":"#大积分商品类型","children":[]},{"level":3,"title":"大积分任务列表","slug":"大积分任务列表","link":"#大积分任务列表","children":[]},{"level":3,"title":"大积分中心信息","slug":"大积分中心信息","link":"#大积分中心信息","children":[]},{"level":3,"title":"大积分改变记录","slug":"大积分改变记录","link":"#大积分改变记录","children":[]}]}],"git":{},"filePathRelative":"docs/vip/center.md"}');export{l as data}; diff --git a/assets/center.html-82cb2ccc.js b/assets/center.html-82cb2ccc.js new file mode 100644 index 0000000000..9f20a6cb43 --- /dev/null +++ b/assets/center.html-82cb2ccc.js @@ -0,0 +1,1353 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    大会员中心

    大会员中心信息

    https://api.bilibili.com/x/vip/web/vip_center/combine

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    platformstr平台表示非必要web端:web
    安卓APP:android
    mobi_appstrAPP 名称非必要安卓APP:android
    buildnum构建 id非必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    userobj用户信息
    walletobj钱包信息
    union_vipweb 端:null
    APP 端:array
    联合会员信息列表
    other_open_infoweb 端:null
    APP 端:array
    其他开通方式信息列表
    privilegesarray会员特权信息列表
    bannersarraybanner 卡片列表web 端为空
    welfareobj福利信息
    recommend_pendantsobj推荐头像框信息
    recommend_cardsobj推荐装扮信息
    sortarray
    in_reviewbool
    big_pointobj大积分信息详细 API 参考大积分中心信息
    hot_listobj热门榜单类型信息

    data中的user对象:

    字段名类型内容备注
    accountobj账号基本信息
    vipobj账号会员信息
    tvobj电视会员信息
    background_image_smallstr
    background_image_bigstr
    panel_titlestr用户昵称
    avatar_pendantobj用户头像框信息
    vip_overdue_explainstr大会员提示文案有效期 / 到期
    tv_overdue_explainstr电视大会员提示文案有效期 / 到期
    account_exception_textstr
    is_auto_renewbool是否自动续费true:是
    false:否
    is_tv_auto_renewbool是否自动续费电视大会员true:是
    false:否
    surplus_secondsnum大会员到期剩余时间单位为秒
    vip_keep_timenum持续开通大会员时间单位为秒
    renewobj(?)
    noticeobj(?)

    user中的account对象:

    字段名类型内容备注
    midnum用户 mid
    namestr昵称
    sexstr性别男 / 女 / 保密
    facestr头像 url
    signstr签名
    ranknum等级
    birthdaynum生日秒时间戳
    is_fake_accountnum(?)
    is_deletednum是否注销0:正常
    1:注销
    in_reg_auditnum是否注册审核0:正常
    1:审核
    is_senior_membernum是否转正0:未转正
    1:正式会员

    user中的vip对象:

    字段类型内容备注
    midnum用户 mid
    vip_typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    vip_statusnum会员状态0:无
    1:有
    vip_due_datenum会员过期时间毫秒时间戳
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum(?)
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    is_new_userbool(?)
    tip_materialnull(?)

    vip中的label对象:

    字段类型内容备注
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签文本颜色
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr
    img_label_uri_hantstr
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    user中的tv对象:

    字段类型内容备注
    typenum电视大会员类型0:无
    1:月大会员
    2:年度及以上大会员
    vip_pay_typenum电视大支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    statusnum电视大会员状态0:无
    1:有
    due_datenum电视大会员过期时间毫秒时间戳

    user中的avatar_pendant对象:

    字段类型内容备注
    imagestr头像框 url
    image_enhancestr头像框 url动态图
    image_enhance_framestr动态头像框帧波普版 url

    user中的renew对象:

    字段类型内容备注
    textstr(?)
    linkstr(?)

    user中的notice对象:

    字段类型内容备注
    textstr(?)
    tv_textstr(?)
    typenum(?)
    can_closebool(?)
    surplus_secondsnum(?)
    tv_surplus_secondsnum(?)

    data中的wallet对象:

    字段类型内容备注
    couponnum当前 B 币券
    pointnum(?)
    privilege_receivedbool(?)

    data中的union_vip数组:

    类型内容备注
    0obj联合会员项 1仅 APP 端存在该信息
    nobj联合会员项 (n+1)
    ……obj…………

    union_vip数组中的对象:

    字段类型内容备注
    image_2xstr联合会员图片小 url
    image_3xstr联合会员图片大 url
    titlestr联合会员名称
    linkstr联合会员开通页 url
    sortnum排列顺序

    data中的other_open_info数组:

    类型内容备注
    0obj其他开通方式项 1仅 APP 端存在该信息
    nobj其他开通方式项 (n+1)
    ……obj…………

    other_open_info数组中的对象:

    字段类型内容备注
    titlestr其他开通方式名称
    urlstr其他开通方式开通页 url
    icon_urlstr其他开通方式图标 url
    descstr提示文案
    sortnum排列顺序

    data中的privileges数组:

    类型内容备注
    0obj特权父类 1
    nobj特权父类 (n+1)
    ……obj…………

    other_open_info数组中的对象:

    字段类型内容备注
    idnum特权父类 id
    namestr类型名称
    child_privilegesarray特权子类列表

    other_open_info数组中的对象中的child_privileges数组:

    类型内容备注
    0obj特权子类 1
    nobj特权子类 (n+1)
    ……obj…………

    child_privileges数组中的对象:

    字段类型内容备注
    first_idnum特权父类 id
    report_idstr上报 id该特权的代号?
    namestr特权名称
    descstr特权简介文案
    explainstr特权介绍正文
    icon_urlstr特权图标 url
    icon_gray_urlstr特权图标灰色主题 url某些项目无此字段
    background_image_urlstr背景图片 url
    linkstr特权介绍页 url
    image_urlstr特权示例图 url
    typenum类型?目前为0
    hot_typenum是否热门特权0:普通特权
    1:热门特权
    new_typenum是否新特权0:普通特权
    1:新特权
    idnum特权子类 id

    data中的banners数组:

    类型内容备注
    0objbanner 项目 1仅 APP 端存在该信息
    nobjbanner 项目 (n+1)
    ……obj…………

    banners数组中的对象:

    字段类型内容备注
    idnumbanner 卡片 id
    indexnumbanner 卡片排序
    imagestrbanner 卡片图片 url
    titlestrbanner 卡片标题
    uristrbanner 卡片跳转页 url
    track_paramsobj上报参数

    data中的welfare对象:

    字段类型内容备注
    countnum福利数
    listarray福利项目列表

    welfare中的list数组:

    类型内容备注
    0obj福利项目 1
    nobj福利项目 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum福利 id
    namestr福利名称
    homepage_uristr福利图片 url
    backdrop_uristr福利图片 banner url
    tidnum(?)目前为0
    ranknum排列顺序
    receive_uristr福利跳转页 url

    data中的recommend_pendants对象:

    字段类型内容备注
    jump_urlstr头像框商城页面跳转 url
    listarray推荐头像框列表

    recommend_pendants中的list数组:

    类型内容备注
    0obj推荐头像框 1
    nobj推荐头像框 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum头像框 id
    namestr头像框名称
    imagestr头像框图片 url
    jump_urlstr头像框页面 url

    data中的recommend_cards对象:

    字段类型内容备注
    jump_urlstr推荐个性装扮商城页面跳转 url
    listarray推荐个性装扮列表

    recommend_cards中的list数组:

    类型内容备注
    0obj推荐个性装扮 1
    nobj推荐个性装扮 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum个性装扮 id
    namestr个性装扮名称
    imagestr个性装扮图标 url
    jump_urlstr个性装扮页面 url

    data中的sort数组:

    类型内容备注
    0obj扩展 row 排序 1
    nobj扩展 row 排序 (n+1)
    ……obj…………

    sort数组中的对象:

    字段类型内容备注
    keystr扩展 row 字段名
    sortnum排列顺序

    data中的big_point对象:

    字段类型内容备注
    point_infoobj点数信息
    sign_infoobj签到信息
    sku_infoobj大积分商品预览
    tipsbool
    point_switch_offobj

    big_point中的point_info对象:

    字段类型内容备注
    pointnum当前拥有大积分数量
    expire_pointnum失效积分?目前为0
    expire_timenum失效时间?目前为0
    expire_daysnum失效天数?目前为0

    big_point中的sign_info对象:

    字段类型内容备注
    sign_remindbool(?)
    benefitnum签到收益单位为积分
    bonus_benefitnum(?)
    normal_remindbool(?)
    muggle_taskbool(?)

    big_point中的sku_info对象:

    字段类型内容备注
    skusarray套了个娃

    sku_info中的skus数组:

    类型内容备注
    0obj大积分商品 1对象定义同大积分中心信息,故略
    nobj大积分商品 (n+1)目前仅有 3 项
    完成商品列表请求大积分中心信息接口获得
    ……obj…………

    big_point中的hot_list对象:

    字段类型内容备注
    tapsarray套了个娃

    hot_list中的taps数组:

    类型内容备注
    0obj热门类型 1
    nobj热门类型 (n+1)
    ……obj…………

    taps数组中的对象:

    字段类型内容备注
    oidstr分类数据类似 JSON
    rank_idnum分类 id
    rank_titlestr分类名称

    示例:

    curl -G 'https://api.bilibili.com/x/vip/web/vip_center/combine' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "user": {
    +            "account": {
    +                "mid": 293793435,
    +                "name": "社会易姐QwQ",
    +                "sex": "男",
    +                "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +                "sign": "BAC项目负责人 | 带砖技术宅 | MC 编程 电子 | 车万人\\u0026术术人 | 粉丝群1136462265 博客shakaianee.top",
    +                "rank": 10000,
    +                "birthday": 1015257600,
    +                "is_fake_account": 0,
    +                "is_deleted": 0,
    +                "in_reg_audit": 0,
    +                "is_senior_member": 1
    +            },
    +            "vip": {
    +                "mid": 293793435,
    +                "vip_type": 2,
    +                "vip_status": 1,
    +                "vip_due_date": 1675785600000,
    +                "vip_pay_type": 0,
    +                "theme_type": 0,
    +                "label": {
    +                    "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,
    +                "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png",
    +                "nickname_color": "#FB7299",
    +                "is_new_user": false,
    +                "tip_material": null
    +            },
    +            "tv": {
    +                "type": 1,
    +                "vip_pay_type": 0,
    +                "status": 0,
    +                "due_date": 1640793600000
    +            },
    +            "background_image_small": "",
    +            "background_image_big": "",
    +            "panel_title": "社会易姐QwQ",
    +            "panel_sub_title": "",
    +            "avatar_pendant": {
    +                "image": "http://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
    +                "image_enhance": "http://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
    +                "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png"
    +            },
    +            "vip_overdue_explain": "年度大会员有效期 2023/02/08",
    +            "tv_overdue_explain": "超级大会员已于 2021-12-30 过期",
    +            "account_exception_text": "",
    +            "is_auto_renew": false,
    +            "is_tv_auto_renew": false,
    +            "surplus_seconds": 8287677,
    +            "vip_keep_time": 1562046702,
    +            "renew": {
    +                "text": "",
    +                "link": ""
    +            },
    +            "notice": {
    +                "text": "",
    +                "tv_text": "",
    +                "type": 0,
    +                "can_close": false,
    +                "surplus_seconds": 0,
    +                "tv_surplus_seconds": 0
    +            }
    +        },
    +        "wallet": {
    +            "coupon": 5,
    +            "point": 0,
    +            "privilege_received": false
    +        },
    +        "union_vip": null,
    +        "other_open_info": null,
    +        "privileges": [
    +            {
    +                "id": 1,
    +                "name": "内容特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 1,
    +                        "report_id": "freewatch",
    +                        "name": "免费看",
    +                        "desc": "会员用户免费看",
    +                        "explain": "需要付费才能观看的影视内容,大会员可以免费观看(播放页面提示“大会员半价”的除外,部分视频仅限在中国大陆观看)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/cca929463895f8d2a5d65d41e0f69a608b711539.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/b8ea804c872fb2b096715f52b87deb0e6cdfd476.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=free",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/22c3735f9db313b7be35d87c1b5dd6da81cea48e.jpg",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 1
    +                    },
    +                    {
    +                        "first_id": 1,
    +                        "report_id": "firstwatch",
    +                        "name": "抢先看",
    +                        "desc": "会员用户可以快人一步抢先观看",
    +                        "explain": "连载内容中需要付费抢先看的内容,大会员可以直接观看,不限次数。(部分视频仅限在中国大陆观看)",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/2dac1a2c649407dc8ce5f899f244d3aed557c458.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/20b40771e4bf180a606ddc021dfdfe6a7e56b713.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=early",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/21c0f30302944b694a12f12cbf4ee02733e1e580.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 2
    +                    },
    +                    {
    +                        "first_id": 1,
    +                        "report_id": "halfprice",
    +                        "name": "半价点播",
    +                        "desc": "付费内容半价即享",
    +                        "explain": "部分付费点播内容,大会员可享受半价购买。购买成功后,48小时内不限次数观看该影片(部分内容仅限在中国大陆观看)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/f42c20d25e10700a2bc5e7257abb7fec91634822.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/3a613880463e01c8f9496f3b571e198a111191e5.png",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/07f8b89c6d044723ece8a42f558d1e84041ff991.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 55
    +                    }
    +                ]
    +            },
    +            {
    +                "id": 4,
    +                "name": "装扮特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "card",
    +                        "name": "动态卡片装扮",
    +                        "desc": "动态卡片装扮",
    +                        "explain": "大会员可以免费使用大会员专属动态卡片装扮,用于装扮自己的动态卡片,彰显不一样的自己!\\r\\n有效期内随意装扮,有效期结束后动态卡片装扮自动卸下~(当前仅限客户端)",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/fb9169586bb73dda319d6379440284361f46ff18.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/8775308a302014e3bfbfa0dfc69faa2e8faeaa3a.png",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/21880645864fbdace3d4d0b52eb895551ecd536d.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 46
    +                    },
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "pendant",
    +                        "name": "专属挂件",
    +                        "desc": "专属挂件免费换",
    +                        "explain": "大会员可免费领取专属挂件,用于装扮自己的头像,展示在评论区、个人空间等等位置。有钱也买不到哦!\\r\\n有效期内可以随便领,有效期结束后挂件自动卸下~",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/4198eee83d94539be16f60daac277bce5f8f01dc.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/ae16ed0dcf8246a28e45403243bc65eea0e7b4c7.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=pendant",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/1e6799197b0749c263dd8a28067c0e2b6327cab5.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 23
    +                    },
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "emoticon",
    +                        "name": "评论表情",
    +                        "desc": "评论有表情",
    +                        "explain": "会员可在评论中发送图片表情,表情多多,表情包常常更新哦。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/2080c73b6fa52351111b2830bc50a2a417b55216.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/f882182fcbca520194d9047ca4903dc2c1e42372.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=emoji",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/bbb74fa3264ef9cc0ae1de15e4989b9473a0d6d3.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 22
    +                    },
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "spacepicture",
    +                        "name": "空间自主头图",
    +                        "desc": "空间自主头图",
    +                        "explain": "大会员可上传个性化图片来装扮个人空间头图,让自己的空间独具魅力。\\r\\nweb端进入个人空间后,点击头图右上角更换头图时,可以上传自定义头图。\\r\\n手机客户端进入个人空间后,即可通过点击头图上的“小衣服”按钮更换头图。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/a8144d3bbfeeaf43f3eff6741f4a7f5fcecec31c.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/0ebb039d9fefd37e094f0f181d7cfac9efd019be.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/6c32fe89bb56096fc963ed35118092744cb463b6.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=cover",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/f0b521b39a941f0f7198fbe7884aa41af0817ffe.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 24
    +                    }
    +                ]
    +            },
    +            {
    +                "id": 2,
    +                "name": "身份特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "nickname",
    +                        "name": "粉色昵称",
    +                        "desc": "尊享闪亮粉色昵称",
    +                        "explain": "年度大会员的昵称将以粉色高亮显示。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/f50ed845a94ac63adaa28f47716965269f9a9bdc.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/b67288e008a9fdfec0b13a27a527bb8db701c0d4.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/fa946f3c4011c28fe780d0cdd4da279fb996903f.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=pink",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/b609d85d3e30450586653b245ac9772740ec184c.png",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 18
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "comic",
    +                        "name": "漫读券",
    +                        "desc": "每月赠送漫画阅读券",
    +                        "explain": "开通时长大于等于31天的大会员,会员有效期内,在哔哩哔哩APP“我的”-“卡券包”,及哔哩哔哩漫画APP“我的”-“卡券包”-“大会员特权”,每31天可领取5张漫读券;开通时长大于等于31天的年度大会员,会员有效期内,每31天可领取10张漫读券(可在“哔哩哔哩漫画app”中用于观看付费漫画);\\r\\n该特权自开通起每31天可领取一次,当期内未领取则视为作废;\\r\\n漫读券使用有效期至领取后30天,具体有效期及适用范围详见券面说明;\\r\\n领取的漫读券可在哔哩哔哩APP“我的”-“卡券包”,及哔哩哔哩漫画APP“我的”-“卡券包”中查看;该大会员特权需将漫画APP升级至3.9版本及以上领取和使用;\\r\\n该特权有效期至2022年12月31日。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/eeabde9fc3b0891558af31c65e23913894324c6f.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/ba0c9df7c41d6c23c3c2470b5dbbbd5cf4d3d9c2.png",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/8a0d392d0d509c4bdff76aa98ccc007cd22b65a9.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 47
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "giftbag",
    +                        "name": "游戏礼包",
    +                        "desc": "游戏福利礼包",
    +                        "explain": "年度大会员可以在游戏礼包中心领取不同游戏的多款超值礼包,礼包数量和内容常常更新。\\r\\n\\r\\n具体使用方法请参照各个礼包的使用详情。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/77cbead3c0361dc9bb5638a901b89edec5820d0c.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/c1c810d0ad13b325da6f3dbde1adb5f351adc55c.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/013b5c7b3ba45c7a0f4b7a4967cf55aca3c92e40.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=game",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/80a5e1a19192ae65f2c267f1a672c3aaeb582447.png",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 21
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "vipmall",
    +                        "name": "会员购",
    +                        "desc": "会员购优惠券",
    +                        "explain": "开通时长大于等于31天的大会员,在会员有效期内,每31天可领取1张会员购10元包邮券;开通时长大于等于31天的年度大会员,在会员有效期内,每31天可领取1张会员购10元包邮券、1张会员购满50-10元优惠券。当月开通或升级的年度大会员,也可以立即领取;\\r\\n优惠券及包邮券有效期至领取后15天,具体有效期及使用范围详见优惠券说明;\\r\\n年度大会员可前往App“分区--会员购--右上角“优惠券”查看优惠券及包邮券,并前往App“分区--会员购”,在提交订单时选择优惠券及包邮券进行使用;该大会员特权需将哔哩哔哩APP升级至6.65版本及以上领取和使用。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/37108d523b939e3c4071d4fdd104b50003a1f627.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/972283284cfb7f3b3063b1b391aeeb4cbed3249d.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/21d79540e10618ee9bbaf8874ae711442d10edf0.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=hobby",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/9af168f768312da3c31df23c056f33b3dcaefe8a.jpg",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 20
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "bcoupon",
    +                        "name": "B币券",
    +                        "desc": "每月赠送B币",
    +                        "explain": "开通大会员时长大于等于31天的年度大会员,在会员有效期内,每31天可领取1张5B币券。当月开通或升级的年度大会员,也可以立即领取;\\r\\n有效期至领取后30天,到期未使用的B币券将自动过期。\\r\\nB币券可用于承包番剧、给up主充电、兑换电池,兑换漫画赛季积分等。\\r\\n赠送的B币券在使用时不再赠送会员积分。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/90e1cad7ccaa4c7d29728bdb68bb1af833b2b46b.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/c3dcef2bfea737a1342dacea1027a3b299d3cf71.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/20de7f4e81775c4cec1a9653131e5b10c8c8f41d.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=bcoin",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/11b77dd4ac7aabe42616031a7fe4b2a17f9e632d.png",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 19
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "update",
    +                        "name": "身份升级",
    +                        "desc": "连续购买享受更高级权益",
    +                        "explain": "购买大会员连续累计时长超过366天,即可免费升级为年度大会员身份,升级后可立即享受粉色昵称、游戏礼包、B币券等年度大会员专享权益。\\r\\n注意:中断续费的话,年度大会员身份会收回哦~",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/ea7ea61dab30edcd7bc53d2ebf159c167dda6286.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/75e8a25686e7556877be4074f002c426afe8d4a6.jpg",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 56
    +                    }
    +                ]
    +            },
    +            {
    +                "id": 3,
    +                "name": "视听特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "clearwatch",
    +                        "name": "超清看",
    +                        "desc": "会员用户超清晰观看",
    +                        "explain": "大会员可专享高帧率、高码率画质(最高可达超清4k),觉醒超凡视觉体验。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/1870c718e3cd2a5625934d401838e67d738d4fcc.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/21d79540e10618ee9bbaf8874ae711442d10edf0.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=clear",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/fbe4cf2288571d7b0a509c7014d5182789ffdd74.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 3
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "边下边播",
    +                        "desc": "追番看剧拒绝卡顿",
    +                        "explain": "大会员下载剧集时,已下载部分可以播放,不用等下载完成即可观看(仅限手机端使用)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/5248289d4c313678edeb68436c5411d1b6f9df7f.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/e3ae66f7c72056e95d252a33ebceac70d32a27cc.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 53
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "并行下载",
    +                        "desc": "3集一起下才够快",
    +                        "explain": "大会员下载视频时,至多可支持2-3个视频同时缓存(仅限手机端使用)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/8198d4638f3322b485787f9af909955e54696de9.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/188e6a0905a3729905a3a053ffa7dad324705ca6.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 54
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "专属缓存",
    +                        "desc": "随时随地想看就看",
    +                        "explain": "海量番剧、国创、电影大片,大会员独享专属缓存特权。(仅限手机端使用,部分内容受版权或地区限制无法缓存)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/35cf4f902ecd836db0e841cc642d1c099adb2046.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/6cf08314a94aeb5579e956aa40a2f37ab68baa2d.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 51
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "hdr",
    +                        "name": "真彩HDR",
    +                        "desc": "更真实的视觉体验",
    +                        "explain": "哔哩哔哩提供基于HDR10技术的“真彩HDR”观影模式。HDR能够呈现更多的动态范围,细致优化画面中的明暗对比及色彩显示,更好的反映出真实环境中的视觉效果。使您可以享受到色彩细腻鲜艳,明暗层次丰富的高品质观影体验。\\r\\n注意事项: \\r\\n移动端请更新APP至6.9及以上版本;安卓机型需7及以上系统,iOS机型需13及以上系统,PC端仅部分浏览器支持。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/dd6acf7bb89686e6a15fe7d7762aa6215fb856f1.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/240c332b35355cfbfd982aa7b3bc8e48b31672f0.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 57
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "dolby",
    +                        "name": "杜比全景声",
    +                        "desc": "更优质的听觉盛宴",
    +                        "explain": "大会员专享杜比音效(立体声、环绕声)以及杜比全景声,采用全新的音效技术,为你带来身临其中的听觉盛宴。(该权益仅可在移动端上部分内容支持使用)",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/d6915ef153c812f57b50fe4583f8eb6879f3c265.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/08377c70a185359242cf5c83f1cd5ed5c8b3c057.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 59
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "预约缓存",
    +                        "desc": "后台运行即更即存",
    +                        "explain": "连载内容尚未播出的剧集可提前预约缓存,新剧集上线后,第一时间在wifi环境下自动缓存下载到本地,省时省力追番更轻松(仅限手机端使用)。\\r\\n使用说明:\\r\\n1.此权益需要将哔哩哔哩APP设置后台自动运行状态;\\r\\n2.具体以可预约下载剧集的播出安排为准。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/6d36c5603faf4a1ac4cea6c6ff719e70c05f8c3c.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/8e01e169551909bcaae6ed8b40759c4e1bae95cf.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 52
    +                    }
    +                ]
    +            }
    +        ],
    +        "banners": [],
    +        "welfare": {
    +            "count": 3,
    +            "list": [
    +                {
    +                    "id": 80,
    +                    "name": "联通首月1分钱2022.11",
    +                    "homepage_uri": "https://i2.hdslb.com/bfs/vip/eacd5f4242034908e46575ee256f013dce6c3d69.png",
    +                    "backdrop_uri": "https://i2.hdslb.com/bfs/vip/522325bcf86b20fe13d92e0e1cc2872af27abff7.png",
    +                    "tid": 0,
    +                    "rank": 2,
    +                    "receive_uri": "https://operation.mige.tv/a/#/23791f7f84db"
    +                },
    +                {
    +                    "id": 77,
    +                    "name": "移动随心看2022.11",
    +                    "homepage_uri": "https://i0.hdslb.com/bfs/vip/4dcc85686972f6b9b61468992c2bc03a7e648dbc.png",
    +                    "backdrop_uri": "https://i0.hdslb.com/bfs/vip/00a0db85f8f43023893e8e9d0dd90f38493624ea.png",
    +                    "tid": 0,
    +                    "rank": 3,
    +                    "receive_uri": "https://dev.coc.10086.cn/coc/web/coc2020/package2/?pageId=1541343250813415424\\u0026channelId=P00000000451"
    +                },
    +                {
    +                    "id": 79,
    +                    "name": "联通2233卡2022.11",
    +                    "homepage_uri": "https://i2.hdslb.com/bfs/vip/ff8e69b13ac5a560d7ceab7ef07aa9c807880ac4.jpg",
    +                    "backdrop_uri": "https://i2.hdslb.com/bfs/vip/a45bfa461444e231df14bea94ce6d2b738426387.jpg",
    +                    "tid": 0,
    +                    "rank": 8,
    +                    "receive_uri": "https://b23.tv/ifiFs6e"
    +                }
    +            ]
    +        },
    +        "recommend_pendants": {
    +            "list": [
    +                {
    +                    "id": 1758,
    +                    "name": "至尊戒",
    +                    "image": "http://i0.hdslb.com/bfs/garb/item/025d07fa04d38236bc2258be2faf2867e2c48fe1.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/pendant/1758?navhide=1"
    +                },
    +                {
    +                    "id": 1759,
    +                    "name": "精灵王",
    +                    "image": "http://i0.hdslb.com/bfs/garb/item/2db4ebcb23656f3a6f68bd3306805cc24a9e1144.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/pendant/1759?navhide=1"
    +                },
    +                {
    +                    "id": 1293,
    +                    "name": "碧蓝航线",
    +                    "image": "http://i0.hdslb.com/bfs/face/2508daec59b2aaada2784f26f9c1c28069f28e43.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/pendant/1293?navhide=1"
    +                }
    +            ],
    +            "jump_url": "https://www.bilibili.com/h5/mall/pendant/home?navhide=1\\u0026tab_id=22"
    +        },
    +        "recommend_cards": {
    +            "list": [
    +                {
    +                    "id": 18,
    +                    "name": "阿维",
    +                    "image": "http://i0.hdslb.com/bfs/vip/ffa3e8c1cf92eb0c01db61abe5741419e9302a70.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/feed/18?navhide=1"
    +                },
    +                {
    +                    "id": 27,
    +                    "name": "尤里乌斯",
    +                    "image": "http://i0.hdslb.com/bfs/vip/0f733cdfd9cbe4746fb6bc76bcb1a720efdecfc6.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/feed/27?navhide=1"
    +                }
    +            ],
    +            "jump_url": "https://www.bilibili.com/h5/mall/card/detail?navhide=1\\u0026tab_id=5"
    +        },
    +        "sort": [
    +            {
    +                "key": "union_vip",
    +                "sort": 1
    +            },
    +            {
    +                "key": "other_open_info",
    +                "sort": 2
    +            }
    +        ],
    +        "in_review": false,
    +        "big_point": {
    +            "point_info": {
    +                "point": 210,
    +                "expire_point": 0,
    +                "expire_time": 0,
    +                "expire_days": 0
    +            },
    +            "sign_info": {
    +                "sign_remind": false,
    +                "benefit": 5,
    +                "bonus_benefit": 0,
    +                "normal_remind": true,
    +                "muggle_task": true
    +            },
    +            "sku_info": {
    +                "skus": [
    +                    {
    +                        "base": {
    +                            "token": "610208400319545734",
    +                            "title": "大会员1天卡",
    +                            "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png",
    +                            "rotation_pictures": [
    +                                "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png"
    +                            ],
    +                            "price": {
    +                                "origin": 240,
    +                                "promotion": {
    +                                    "price": 120,
    +                                    "type": 1,
    +                                    "discount": 5,
    +                                    "label": "5折"
    +                                }
    +                            },
    +                            "inventory": {
    +                                "available_num": 1000000,
    +                                "used_num": 707448,
    +                                "surplus_num": 292552
    +                            },
    +                            "user_type": 2,
    +                            "exchange_limit_type": 3,
    +                            "exchange_limit_num": 3,
    +                            "start_time": 1658224800,
    +                            "end_time": 1672502399,
    +                            "state": 2
    +                        }
    +                    },
    +                    {
    +                        "base": {
    +                            "token": "650284831896337625",
    +                            "title": "克鲁苏手办-会员购7.2折券",
    +                            "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20221009/b88c479976ac33162f658d12959a2111/wRI6e4GWZ4.jpg",
    +                            "rotation_pictures": [
    +                                "https://i0.hdslb.com/bfs/activity-plat/static/20221009/b88c479976ac33162f658d12959a2111/wRI6e4GWZ4.jpg"
    +                            ],
    +                            "price": {
    +                                "origin": 500,
    +                                "promotion": {
    +                                    "price": 10,
    +                                    "type": 2,
    +                                    "discount": 0,
    +                                    "label": "秒杀"
    +                                }
    +                            },
    +                            "inventory": {
    +                                "available_num": 9734,
    +                                "used_num": 4795,
    +                                "surplus_num": 4939
    +                            },
    +                            "user_type": 2,
    +                            "exchange_limit_type": 4,
    +                            "exchange_limit_num": 1,
    +                            "start_time": 1664193600,
    +                            "end_time": 1672502399,
    +                            "state": 2
    +                        }
    +                    },
    +                    {
    +                        "base": {
    +                            "token": "652569526596107481",
    +                            "title": "个性装扮8折券",
    +                            "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg",
    +                            "rotation_pictures": [
    +                                "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg"
    +                            ],
    +                            "price": {
    +                                "origin": 500,
    +                                "promotion": {
    +                                    "price": 10,
    +                                    "type": 2,
    +                                    "discount": 0,
    +                                    "label": "秒杀"
    +                                }
    +                            },
    +                            "inventory": {
    +                                "available_num": 50000,
    +                                "used_num": 14065,
    +                                "surplus_num": 35935
    +                            },
    +                            "user_type": 2,
    +                            "exchange_limit_type": 2,
    +                            "exchange_limit_num": 10,
    +                            "start_time": 1664522420,
    +                            "end_time": 1672502399,
    +                            "state": 2
    +                        }
    +                    }
    +                ]
    +            },
    +            "point_switch_off": false,
    +            "tips": [
    +                {
    +                    "content": "今天的任务还没有做完哦"
    +                }
    +            ]
    +        },
    +        "hot_list": {
    +            "taps": [
    +                {
    +                    "oid": "{season_type:1}",
    +                    "rank_id": 118,
    +                    "rank_title": "番剧"
    +                },
    +                {
    +                    "oid": "{season_type:2,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 174,
    +                    "rank_title": "电影"
    +                },
    +                {
    +                    "oid": "{season_type:4}",
    +                    "rank_id": 119,
    +                    "rank_title": "国创"
    +                },
    +                {
    +                    "oid": "{season_type:5,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 176,
    +                    "rank_title": "电视剧"
    +                },
    +                {
    +                    "oid": "{season_type:3,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 175,
    +                    "rank_title": "纪录片"
    +                },
    +                {
    +                    "oid": "{season_type:7,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 177,
    +                    "rank_title": "综艺"
    +                }
    +            ]
    +        }
    +    }
    +}
    +

    大积分

    大积分商品类型

    id类型
    1大会员
    2会员购
    3生活服务
    4漫画
    5装扮

    大积分任务列表

    id类型
    bonus大会员福利大积分
    privilege浏览大会员权益页面
    animatetab浏览追番频道页10秒
    filmtab浏览影视频道页10秒
    vipmallview浏览会员购页面10秒
    ogvwatch观看任意正片内容
    tvodbuy购买单点付费影片
    vipmallbuy购买指定会员购商品

    大积分中心信息

    https://api.biliapi.com/x/vip_point/homepage/combine

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    vip_infoobj大会员信息
    contentstr
    point_infoobj点数信息
    taskobj任务信息任务列表
    bannerarraybanner 卡片列表
    goods_categoryarray商品类型列表
    goods_skusarray商品明细列表包含所有类型的商品
    current_tsnum本次请求时间秒时间戳

    data中的vip_info对象:

    字段名类型内容备注
    typenum大会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum大会员状态0:无
    1:有
    due_datenum大会员过期时间毫秒时间戳
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    start_timenum首次大会员开通时间秒时间戳
    paid_typenum0
    midnum当前用户 mid
    rolenum大会员类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    tv_vip_statusnum电视大会员状态0:无
    1:有
    tv_vip_pay_typenum电视大会员支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    tv_due_datenum电视大会员过期时间秒时间戳

    data中的point_info对象:

    字段名类型内容备注
    pointnum当前拥有大积分数量
    expire_pointnum失效积分?目前为0
    expire_timenum失效时间?目前为0
    expire_daysnum失效天数?目前为0

    data中的task对象:

    字段名类型内容备注
    task_itemarray当前页面显示的任务
    task_countnum任务总数
    signedboolfalse
    scorenum5

    task中的 task_item数组:

    类型内容备注
    0obj任务 1
    nobj任务 (n+1)
    ……obj…………

    task_item数组中的对象:

    字段名类型内容备注
    task_codestr任务 id详见大积分任务列表
    statenum任务状态0:未领取
    1:未完成
    3:已完成/已领取
    titlestr任务名称
    iconstr任务图标 url
    subtitlestr任务副标题
    explainstr任务详情说明
    linkstr任务跳转 urlweb方式:目标页面url
    APP方式:APP内uri
    vip_limitnum是否为大会员专享任务0:否
    1:是
    complete_timesnum已完成次数
    max_timesnum最大完成次数
    recall_numnum重试次数?目前为0

    data中的 banner数组:

    类型内容备注
    0objbanner 项目 1
    nobjbanner 项目 (n+1)
    ……obj…………

    banner数组中的对象:

    字段名类型内容备注
    linkstr跳转 url
    image_urlstrbanner 卡片 url

    data中的 goods_category数组:

    类型内容备注
    0obj商品类型 1
    nobj商品类型 (n+1)
    ……obj…………

    goods_category数组中的对象:

    字段名类型内容备注
    idnum商品类型 id具体类型见大积分商品类型
    namestr商品类型名称
    statenum状态目前为2

    data中的 goods_skus数组:

    类型内容备注
    0obj大积分商品 1
    nobj大积分商品 (n+1)
    ……obj…………

    goods_skus数组中的对象:

    字段名类型内容备注
    baseobj套了个娃

    goods_skus数组中的对象中的base对象:

    字段名类型内容备注
    tokenstr商品 token用于购买 & 明细页面
    titlestr商品名称
    picturestr商品图片 url
    rotation_picturesarray商品图片组
    priceobj价格信息
    inventoryobj库存信息
    user_typenum2
    exchange_limit_typenum2 3 4
    exchange_limit_numnum限购数量
    start_timenum起售时间秒时间戳
    end_timenum止售时间秒时间戳
    statenum状态?2

    base中的rotation_pictures数组:

    类型内容备注
    0str商品图片 url目前只有1项
    同上层对象的商品图片 url字段

    base中的price对象:

    字段名类型内容备注
    originnum商品原价单位为积分
    promotion有折扣:obj
    无折扣:null
    折扣信息

    price中的promotion对象:

    字段名类型内容备注
    pricenum折后价格单位为积分
    typenum折扣类型1:普通折扣
    2:秒杀
    discountnum折扣力度
    labelstr标签文案普通折扣:显示为 eg:5折
    秒杀:显示为 eg:秒杀

    base中的inventory对象:

    字段名类型内容备注
    available_numnum库存总量
    used_numnum已售数量
    surplus_numnum剩余数量

    示例:

    web 方式:

    curl 'https://api.bilibili.com/x/vip_point/homepage/combine' \\
    +	-b 'SESSDATA=xxx'
    +

    APP 方式:

    curl -G 'https://api.bilibili.com/x/vip_point/homepage/combine' \\
    +	---data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "vip_info": {
    +      "type": 2,
    +      "status": 1,
    +      "due_date": 1678723200000,
    +      "vip_pay_type": 0,
    +      "start_time": 1475986259,
    +      "paid_type": 0,
    +      "mid": 10086,
    +      "role": 3,
    +      "tv_vip_status": 0,
    +      "tv_vip_pay_type": 0,
    +      "tv_due_date": 0
    +    },
    +    "content": "",
    +    "point_info": {
    +      "point": 355,
    +      "expire_point": 0,
    +      "expire_time": 0,
    +      "expire_days": 0
    +    },
    +    "task": {
    +      "task_item": [
    +        {
    +          "task_code": "animatetab",
    +          "state": 1,
    +          "title": "浏览追番频道页10秒",
    +          "icon": "https://i0.hdslb.com/bfs/activity-plat/static/20220607/b66bfe4ccfd6bed05bdb54008ff5c7aa/uOwc1tuJwm.png",
    +          "subtitle": "<span class=\\"active\\">+10大积分</span>",
    +          "explain": "从本任务入口跳转至追番频道页,并连续浏览页面达10秒可得10大积分,每天可完成1次。如浏览过程中离开追番频道页则中断计时,任务判定失败,需重新从本任务入口再次跳转。",
    +          "link": "bilibili://home?bottom_tab_name=首页&tab_name=追番&tab_id=bangumi&vip_task_countdown=10000",
    +          "vip_limit": 1,
    +          "complete_times": 0,
    +          "max_times": 1,
    +          "recall_num": 0
    +        },
    +        {
    +          "task_code": "filmtab",
    +          "state": 1,
    +          "title": "浏览影视频道页10秒",
    +          "icon": "https://i0.hdslb.com/bfs/activity-plat/static/20220607/b66bfe4ccfd6bed05bdb54008ff5c7aa/bWPJRBuMh3.png",
    +          "subtitle": "<span class=\\"active\\">+10大积分</span>",
    +          "explain": "从本任务入口跳转至影视频道页,并连续浏览页面达10秒可得10大积分,每天可完成1次。如浏览过程中离开影视频道页则中断计时,任务判定失败,需重新从本任务入口再次跳转。",
    +          "link": "bilibili://home?bottom_tab_name=首页&tab_name=影视&tab_id=film&vip_task_countdown=10000",
    +          "vip_limit": 1,
    +          "complete_times": 0,
    +          "max_times": 1,
    +          "recall_num": 0
    +        }
    +      ],
    +      "task_count": 8,
    +      "signed": false,
    +      "score": 5
    +    },
    +    "banner": [
    +      {
    +        "link": "https://www.bilibili.com/blackboard/activity-0sjbGf3IJt.html?msource=jifen_banner",
    +        "image_url": "https://i0.hdslb.com/bfs/activity-plat/static/20220819/b88c479976ac33162f658d12959a2111/KS1XfLBuk7.png"
    +      }
    +    ],
    +    "goods_category": [
    +      {
    +        "id": 1,
    +        "name": "大会员",
    +        "state": 2
    +      },
    +      {
    +        "id": 2,
    +        "name": "会员购",
    +        "state": 2
    +      },
    +      {
    +        "id": 5,
    +        "name": "装扮",
    +        "state": 2
    +      },
    +      {
    +        "id": 4,
    +        "name": "漫画",
    +        "state": 2
    +      },
    +      {
    +        "id": 3,
    +        "name": "生活服务",
    +        "state": 2
    +      }
    +    ],
    +    "goods_skus": [
    +      {
    +        "base": {
    +          "token": "610208400319545734",
    +          "title": "大会员1天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png"
    +          ],
    +          "price": {
    +            "origin": 240,
    +            "promotion": {
    +              "price": 120,
    +              "type": 1,
    +              "discount": 5,
    +              "label": "5折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 1000000,
    +            "used_num": 552427,
    +            "surplus_num": 447573
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 3,
    +          "start_time": 1658224800,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "650284831896337625",
    +          "title": "克鲁苏手办-会员购7.2折券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/W8QR1HfVP2.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/W8QR1HfVP2.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 6459,
    +            "used_num": 1662,
    +            "surplus_num": 4797
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 4,
    +          "exchange_limit_num": 1,
    +          "start_time": 1664193600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "652569526596107481",
    +          "title": "个性装扮8折券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 50000,
    +            "used_num": 4486,
    +            "surplus_num": 45514
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 10,
    +          "start_time": 1664522420,
    +          "end_time": 1667145599,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "652569526663216345",
    +          "title": "大会员6周年3天试用装扮",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/0AgpMilH81.jpeg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/0AgpMilH81.jpeg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/umgPkNfHVr.jpeg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/2q5F0uSp7j.jpeg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/CHAvcqXip3.jpeg"
    +          ],
    +          "price": {
    +            "origin": 200,
    +            "promotion": {
    +              "price": 140,
    +              "type": 1,
    +              "discount": 7,
    +              "label": "7折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 5000,
    +            "used_num": 1553,
    +            "surplus_num": 3447
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 3,
    +          "start_time": 1664522420,
    +          "end_time": 1667145599,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "617703254146515334",
    +          "title": "元龙-哔哩哔哩漫画专属限免卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220801/b88c479976ac33162f658d12959a2111/ZvgHCqUX8z.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/IYmEC7WhRg.png"
    +          ],
    +          "price": {
    +            "origin": 120,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 2500,
    +            "used_num": 676,
    +            "surplus_num": 1824
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 5,
    +          "start_time": 1659337200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "593959019090116167",
    +          "title": "网易严选Pro纯享会员季卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/MmiTOh3B0r.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/MmiTOh3B0r.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 110000,
    +            "used_num": 36254,
    +            "surplus_num": 73746
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655802000,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "610739183048294790",
    +          "title": "大会员3天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/sxDsdSnSPc.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/sxDsdSnSPc.png"
    +          ],
    +          "price": {
    +            "origin": 720,
    +            "promotion": {
    +              "price": 360,
    +              "type": 1,
    +              "discount": 5,
    +              "label": "5折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 250000,
    +            "used_num": 75968,
    +            "surplus_num": 174032
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1658246400,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "639706098068193670",
    +          "title": "会员购8魔晶券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/yPGHN7xESw.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/yPGHN7xESw.png"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 300,
    +              "type": 1,
    +              "discount": 6,
    +              "label": "6折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 28224,
    +            "used_num": 8274,
    +            "surplus_num": 19950
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 4,
    +          "exchange_limit_num": 1,
    +          "start_time": 1662616800,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "617703254280733062",
    +          "title": "入间同学入魔了!-哔哩哔哩漫画专属限免卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220801/b88c479976ac33162f658d12959a2111/OT3LOXSnJN.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/c6RPOSe9Mn.png"
    +          ],
    +          "price": {
    +            "origin": 120,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 2500,
    +            "used_num": 820,
    +            "surplus_num": 1680
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 5,
    +          "start_time": 1659337200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "643171124875723142",
    +          "title": "会员购 5 元无门槛优惠券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/aFmXluGivH.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/aFmXluGivH.png"
    +          ],
    +          "price": {
    +            "origin": 1200,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 5097,
    +            "used_num": 102,
    +            "surplus_num": 4995
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1663135200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "643171125009940870",
    +          "title": "会员购10元运费券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/Tgki97iGuT.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/Tgki97iGuT.png"
    +          ],
    +          "price": {
    +            "origin": 2400,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1347,
    +            "used_num": 104,
    +            "surplus_num": 1243
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1663135200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "589270953100440487",
    +          "title": "大会员周卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/0veyfxh8pw.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/0veyfxh8pw.png"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": {
    +              "price": 1440,
    +              "type": 1,
    +              "discount": 5,
    +              "label": "5折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 25000,
    +            "used_num": 23303,
    +            "surplus_num": 1697
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655049600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "617703254012297606",
    +          "title": "凡人修仙传-哔哩哔哩漫画专属限免卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220801/b88c479976ac33162f658d12959a2111/6ggYDOHmaI.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/Dgw0KcexF4.png"
    +          ],
    +          "price": {
    +            "origin": 120,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 2500,
    +            "used_num": 525,
    +            "surplus_num": 1975
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 5,
    +          "start_time": 1659337200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "615454955335156102",
    +          "title": "0元辣翅-麦当劳券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nRJUBwY08K.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nRJUBwY08K.jpg"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1000,
    +            "used_num": 13,
    +            "surplus_num": 987
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1659006000,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "634599326722654598",
    +          "title": "会员购6.7折优惠券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220830/b88c479976ac33162f658d12959a2111/UsBxJtHwuE.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220830/b88c479976ac33162f658d12959a2111/UsBxJtHwuE.png"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 200000,
    +            "used_num": 30051,
    +            "surplus_num": 169949
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 10,
    +          "start_time": 1661857200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "589270952362242983",
    +          "title": "QQ音乐豪华绿钻7天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/5ffuc5gpsE.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/5ffuc5gpsE.jpg"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1267,
    +            "used_num": 17,
    +            "surplus_num": 1250
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655049600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "640378711354474886",
    +          "title": "BEMOE 咒术回战 角色立绘徽章 官方首发版",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/hgziHzH19f.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/hgziHzH19f.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/NHOJmvbEAI.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/mcBJhmyd1q.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/9BpHMBjUnV.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/ZoJSeBHQ49.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/NtVKcx2rlk.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/DIElnpB6oa.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/UCjfV1tJZy.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/RoXnjbx7pv.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/ENZ9CWhZPs.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/Q5XFivyjX7.png"
    +          ],
    +          "price": {
    +            "origin": 6000,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 8,
    +            "used_num": 2,
    +            "surplus_num": 6
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1662703200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "640378708804338054",
    +          "title": "世嘉 VOCALOID 初音未来 ∞礼服Ver. 景品手办 再版 独家首发",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/MKe5xDCKOy.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/WIzEBSkANE.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/R0PT8fvVsu.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/bfaauwzc0F.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/9UDyJkhjaA.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/ZFkov947WL.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/MKe5xDCKOy.jpg"
    +          ],
    +          "price": {
    +            "origin": 26160,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1,
    +            "used_num": 0,
    +            "surplus_num": 1
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1662703200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "650284831695011033",
    +          "title": "初音手办-会员购7.2折券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/KAeQDqSGMy.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/KAeQDqSGMy.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 7387,
    +            "used_num": 2431,
    +            "surplus_num": 4956
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 4,
    +          "exchange_limit_num": 1,
    +          "start_time": 1664193600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "589270952563569575",
    +          "title": "QQ超级会员7天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nTB809PW5i.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nTB809PW5i.png"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1279,
    +            "used_num": 29,
    +            "surplus_num": 1250
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655049600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      }
    +    ],
    +    "current_ts": 1665149272
    +  }
    +}
    +

    大积分改变记录

    https://api.bilibili.com/x/vip_point/list

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    url 参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    change_typenum改变类型非必要默认 0
    0:所有类型
    1:获取记录
    2:消耗记录
    pnnum分页页数非必要默认 1
    psnum分页大小非必要默认 20

    json 回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    totalnum总记录数
    big_point_listarray积分记录数组不存在时为 null,而不是空数组

    data.big_point_list 数组中的对象:

    字段名类型内容备注
    pointnum改变的积分数消耗为负数
    change_timenum改变时间戳
    remarkstr批注,积分改变的原因
    order_nostr编号
    image_urlstr商品图片消耗时存在,获取时为空

    示例:

    web 方式:

    curl 'https://api.bilibili.com/x/vip_point/list?ps=1&pn=1' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "total": 1,
    +    "big_point_list": [
    +      {
    +        "point": 40,
    +        "change_time": 1669782576,
    +        "remark": "观看任意正片内容",
    +        "order_no": "t-s-c-5228025310",
    +        "image_url": ""
    +      }
    +    ]
    +  }
    +}
    +
    `,162),e=[o];function c(l,r){return s(),a("div",null,e)}const i=n(p,[["render",c],["__file","center.html.vue"]]);export{i as default}; diff --git a/assets/channel-923e6c49.svg b/assets/channel-923e6c49.svg new file mode 100644 index 0000000000..308e4df03a --- /dev/null +++ b/assets/channel-923e6c49.svg @@ -0,0 +1,6 @@ + + + diff --git a/assets/charge_list.html-0163a41d.js b/assets/charge_list.html-0163a41d.js new file mode 100644 index 0000000000..66c1e9811e --- /dev/null +++ b/assets/charge_list.html-0163a41d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-22b1d447","path":"/docs/electric/charge_list.html","title":"充电列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取空间充电公示列表","slug":"获取空间充电公示列表","link":"#获取空间充电公示列表","children":[]},{"level":2,"title":"获取视频充电鸣谢名单","slug":"获取视频充电鸣谢名单","link":"#获取视频充电鸣谢名单","children":[]},{"level":2,"title":"查询我收到的充电列表","slug":"查询我收到的充电列表","link":"#查询我收到的充电列表","children":[]},{"level":2,"title":"查询历史充电数据","slug":"查询历史充电数据","link":"#查询历史充电数据","children":[]}],"git":{},"filePathRelative":"docs/electric/charge_list.md"}');export{l as data}; diff --git a/assets/charge_list.html-dc5bb8bb.js b/assets/charge_list.html-dc5bb8bb.js new file mode 100644 index 0000000000..ac70cf712e --- /dev/null +++ b/assets/charge_list.html-dc5bb8bb.js @@ -0,0 +1,202 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    充电列表

    获取空间充电公示列表

    https://api.bilibili.com/x/ugcpay-rank/elec/month/up

    请求方式:GET

    本接口需要在请求标头中提供有效的浏览器 UA,如 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    88214:up主未开通充电
    messagestr错误信息
    ttlnum0
    dataobj数据本体

    data对象:

    字段类型内容备注
    countnum本月充电人数
    listarray本月充电用户列表
    total_countnum总计充电次数
    totalnum总计充电次数total_count
    special_daynum0作用尚不明确

    data中的list数组:

    类型内容备注
    0obj充电用户1
    nobj充电用户(n+1)按照充电排名排列
    ……obj…………
    29obj充电用户30最后一项

    data中的list数组中的对象:

    字段类型内容备注
    unamestr充电用户昵称
    avatarstr充电用户头像url
    midnum充电对象mid
    pay_midnum充电用户mid
    ranknum充电用户排名取决于充电的多少
    trend_typenum0作用尚不明确
    vip_infoobj充电用户会员信息
    messagestr充电留言无为空
    msg_hiddennum0作用尚不明确

    list数组中的对象中的vip_info对象:

    字段类型内容备注
    vipDueMsecnum大会员过期时间(?)恒为0
    vipStatusnum大会员状态0:无
    1:有
    vipTypenum大会员类型0:无
    1:月会员
    2:年会员及以上

    示例:

    查询用户mid=53456的充电公示列表

    curl -G 'https://api.bilibili.com/x/ugcpay-rank/elec/month/up' \\
    +-A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36' \\
    +--data-urlencode 'up_mid=53456'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "",
    +    "ttl": 0,
    +    "data": {
    +        "count": 397,
    +        "list": [
    +            {
    +                "uname": "Mars韩笑",
    +                "avatar": "https://i1.hdslb.com/bfs/face/a46599fa41cac672eda677e334f0be93cca02f1f.jpg",
    +                "mid": 53456,
    +                "pay_mid": 5683462,
    +                "rank": 1,
    +                "trend_type": 0,
    +                "vip_info": {
    +                    "vipDueMsec": 0,
    +                    "vipStatus": 1,
    +                    "vipType": 2
    +                },
    +                "message": "你真棒,你是奇迹!(Warma真的是太棒了!",
    +                "message_hidden": 0
    +            },
    +            {
    +                "uname": "愚星-",
    +                "avatar": "https://i1.hdslb.com/bfs/face/7e4a8b150567a20a1b075aa3894dd3674a1e6ebe.jpg",
    +                "mid": 53456,
    +                "pay_mid": 382630072,
    +                "rank": 2,
    +                "trend_type": 0,
    +                "vip_info": {
    +                    "vipDueMsec": 0,
    +                    "vipStatus": 1,
    +                    "vipType": 1
    +                },
    +                "message": "感谢您给我带来的快乐!我的人生遇见你是我的荣幸!!",
    +                "message_hidden": 0
    +            },
    +            {
    +                "uname": "なか酱",
    +                "avatar": "https://i0.hdslb.com/bfs/face/d4b74091d7f1c336399625dc062ddc93d676bcdc.jpg",
    +                "mid": 53456,
    +                "pay_mid": 446080731,
    +                "rank": 3,
    +                "trend_type": 0,
    +                "vip_info": {
    +                    "vipDueMsec": 0,
    +                    "vipStatus": 1,
    +                    "vipType": 2
    +                },
    +                "message": "",
    +                "message_hidden": 0
    +            }
    +        ],
    +        "total_count": 27291,
    +        "total": 27291,
    +        "special_day": 0
    +    }
    +}
    +

    获取视频充电鸣谢名单

    https://api.bilibili.com/x/web-interface/elec/show

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    aidnum目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr目标稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    62001:不需要展示充电信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    show_infoobj展示选项
    av_countnum目标视频充电人数
    countnum本月充电人数
    total_countnum总计充电人数
    special_daynum0作用尚不明确
    display_numnum0作用尚不明确
    listarray本月充电用户列表

    data中的show_info对象:

    字段类型内容备注
    showbool是否展示视频充电鸣谢名单false:不展示
    true:展示
    statenum0

    data中的list数组:

    类型内容备注
    0obj充电用户1
    nobj充电用户(n+1)按照充电排名排列
    ……obj…………
    29obj充电用户30最后一项

    data中的list数组中的对象:

    字段类型内容备注
    midnum充电对象mid
    pay_midnum充电用户mid
    ranknum充电用户排名取决于充电的多少
    unamestr充电用户昵称
    avatarstr充电用户头像url
    messagestr充电留言无为空
    msg_deletednum0作用尚不明确
    vip_infoobj充电用户会员信息
    trend_typenum0作用尚不明确

    data中的list数组中的vip_info对象:

    字段类型内容备注
    vipTypenum大会员类型0:无
    1:月会员
    2:年会员
    vipDueMsecnum0作用尚不明确
    vipStatusnum大会员状态0:无
    1:有

    示例:

    获取视频av967773538/BV1up4y1y77i,用户mid=53456的视频充电鸣谢名单

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \\
    +--data-urlencode 'mid=53456' \\
    +--data-urlencode 'aid=967773538'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \\
    +--data-urlencode 'mid=53456' \\
    +--data-urlencode 'bvid=BV1up4y1y77i'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    currentPagenum页数必要
    pageSizenum分页大小必要取值范围[1,50]
    customerIdnum(?)必要目前为固定值:10026
    beginTimestr开始日期非必要yyyy-MM-dd
    endTimestr结束日期非必要yyyy-MM-dd

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    800501007:user not login
    800501008:内部错误
    800501011:请求参数有误
    errnonum
    msgstr
    showMsgstr
    successbool
    dataobj信息本体

    data对象:

    字段类型内容备注
    pageobj分页信息
    resultarray充电信息本体
    configarray(?)

    page对象:

    字段类型内容备注
    currentPagenum当前页数
    pageSizenum当前分页大小
    totalCountnum记录总数
    totalPagenum总页数

    config数组中的对象:

    字段类型内容备注
    midnull总是为null
    namenull总是为null
    avatarnull总是为null
    originalThirdCoinnull总是为null
    brokeragenull总是为null
    remarknull总是为null
    ctimenull总是为null

    result数组中的对象:

    字段类型内容备注
    midnum充电人mid
    namestr充电人昵称
    avatarstr充电人头像
    originalThirdCoinnum原始B币数
    brokeragenum实际收到的贝壳数
    remarkstr充电渠道Web/安卓/iOS
    ctimestr充电时间yyyy-MM-dd HH:mm:ss

    示例:

    curl -G 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord' \\
    +--data-urlencode 'currentPage=1' \\
    +--data-urlencode 'pageSize=2' \\
    +--data-urlencode 'customerId=10026' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    pnnum页数非必要
    psnum分页大小非必要取值范围[1,20]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray充电信息本体
    pagerobj分页信息

    list数组中的对象:

    字段类型内容备注
    aidnum0
    bvidstr
    elec_numnum充电电池数
    titlestr
    unamestr
    avatarstr
    ctimestr充电时间yyyy-MM-dd HH:mm:ss

    pager对象:

    字段类型内容备注
    currentnum当前页数
    sizenum当前分页大小
    totalnum记录总数

    示例:

    curl -G 'https://member.bilibili.com/x/h5/elec/rank/recent' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +
    `,85),o=[e];function d(r,l){return n(),s("div",null,o)}const u=t(p,[["render",d],["__file","charge_list.html.vue"]]);export{u as default}; diff --git a/assets/charge_msg.html-1b0e26da.js b/assets/charge_msg.html-1b0e26da.js new file mode 100644 index 0000000000..7a6d6641ba --- /dev/null +++ b/assets/charge_msg.html-1b0e26da.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-fa6791a8","path":"/docs/electric/charge_msg.html","title":"充电留言","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"发送充电留言","slug":"发送充电留言","link":"#发送充电留言","children":[]},{"level":2,"title":"查询我收到的充电留言","slug":"查询我收到的充电留言","link":"#查询我收到的充电留言","children":[]},{"level":2,"title":"查询充电留言详情","slug":"查询充电留言详情","link":"#查询充电留言详情","children":[]},{"level":2,"title":"回复充电留言","slug":"回复充电留言","link":"#回复充电留言","children":[]}],"git":{},"filePathRelative":"docs/electric/charge_msg.md"}');export{e as data}; diff --git a/assets/charge_msg.html-b2cb8103.js b/assets/charge_msg.html-b2cb8103.js new file mode 100644 index 0000000000..346c437986 --- /dev/null +++ b/assets/charge_msg.html-b2cb8103.js @@ -0,0 +1,82 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    充电留言

    发送充电留言

    https://api.bilibili.com/x/ugcpay/trade/elec/message

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    order_idstr留言token必要
    messagestr留言内容必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    88203:不能重复留言
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为留言token为BPRG5CEC3VUPOOANA540的充电操作,添加了内容为支持一下大佬的留言

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    查询我收到的充电留言

    https://member.bilibili.com/x/web/elec/remark/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    beginstr起始日期默认2016-01-01
    endstr结束日期默认2050-01-01
    pnstr页数
    psstr分页大小取值范围[1,12]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    msgstr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pageobj分页信息
    listarray信息本体

    page对象:

    字段类型内容备注
    currentnum当前页数
    sizenum当前分页大小
    totalnum记录总数

    list数组中的对象:

    字段类型内容备注
    aidnum
    bvidstr
    idnum留言记录id
    midnum
    reply_midnum0
    elec_numnum0
    statenumUP是否已经回复这条留言0:未回复
    1:已回复
    msgstr留言信息
    anamestr
    unamestr
    avatorstr
    reply_namestr
    reply_avatorstr
    reply_msgstr
    ctimenum留言时间毫秒级时间戳
    reply_timenum0

    示例:

    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;'
    +
    查看响应示例:
    {
    +  "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

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    idnum留言id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum
    bvidstr
    idnum留言id
    midnum留言者uid(充电用户)
    reply_midnumUP主uid
    elec_numnum0
    statenumUP是否已经回复这条留言0:未回复
    1:已回复
    msgstr留言内容
    anamestr
    unamestr留言者用户名
    avatorstr留言者头像
    reply_namestrUP主用户名
    reply_avatorstrUP主头像
    reply_msgstr回复内容
    ctimenum留言时间毫秒级时间戳
    reply_timenum回复时间毫秒级时间戳

    示例:

    curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/detail?id=6507563' \\
    +-H 'cookie: SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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 ):

    参数名类型内容必要性备注
    csrfstrcsrf必要
    idnum留言id必要
    msgstr回复信息

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误20004:充电服务异常
    messagestr错误信息
    ttlnum1

    示例:

    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 ̄)'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": 1
    +}
    +
    `,57),p=[d];function o(r,l){return s(),n("div",null,p)}const i=t(e,[["render",o],["__file","charge_msg.html.vue"]]);export{i as default}; diff --git a/assets/check_nickname.html-cdaa209d.js b/assets/check_nickname.html-cdaa209d.js new file mode 100644 index 0000000000..1ed2f0b298 --- /dev/null +++ b/assets/check_nickname.html-cdaa209d.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-337be22a","path":"/docs/user/check_nickname.html","title":"检查昵称是否可注册","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"检查昵称","slug":"检查昵称","link":"#检查昵称","children":[]}],"git":{},"filePathRelative":"docs/user/check_nickname.md"}');export{e as data}; diff --git a/assets/check_nickname.html-dccbb7ba.js b/assets/check_nickname.html-dccbb7ba.js new file mode 100644 index 0000000000..070e82c101 --- /dev/null +++ b/assets/check_nickname.html-dccbb7ba.js @@ -0,0 +1,31 @@ +import{_ as s,o as n,c as a,e}from"./app-3168cb19.js";const t={},i=e(`

    检查昵称是否可注册

    检查昵称

    https://passport.bilibili.com/web/generic/check/nickname

    请求方式:GET

    也可用于判断指定昵称的用户是否存在

    url参数:

    参数名类型内容必要性备注
    nickNamestr目标昵称必要最长为16字符

    json回复:

    根对象:

    字段类型内容备注
    codenum状态码-400:请求错误
    -500:服务器端异常
    详细说明见下一表格
    messagestr错误详情若昵称可用,则不返回message

    code状态码:

    含义
    0昵称未被注册
    2001该昵称已被他人使用
    40002昵称包含敏感信息
    40004昵称不可包含除-和_以外的特殊字符
    40005昵称过长(超过16字符)
    40006昵称过短(少于2字符)
    40014昵称已存在

    示例:

    查询昵称 xijinping 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \\
    +--data-urlencode 'nickName=xijinping'
    +
    查看响应示例:
    {
    +    "code":40002,
    +    "message":"昵称包含敏感信息"
    +}
    +

    查询昵称 // 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \\
    +--data-urlencode 'nickName=//'
    +
    查看响应示例:
    {
    +    "code": 40004,
    +    "message": "昵称不可包含除-和_以外的特殊字符"
    +}
    +

    查询昵称 test0000000000000 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \\
    +--data-urlencode 'nickName=test0000000000000 '
    +
    查看响应示例:
    {
    +    "code": 40005,
    +    "message": "昵称过长"
    +}
    +

    查询昵称 0 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \\
    +--data-urlencode 'nickName=0'
    +
    查看响应示例:
    {
    +    "code": 40006,
    +    "message": "昵称过短"
    +}
    +

    查询昵称 test 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \\
    +--data-urlencode 'nickName=test'
    +
    查看响应示例:
    {
    +	"code":40014,
    +	"message":"昵称已存在"
    +}
    +
    `,28),d=[i];function o(c,p){return n(),a("div",null,d)}const l=s(t,[["render",o],["__file","check_nickname.html.vue"]]);export{l as default}; diff --git a/assets/cinephile-c8d74b94.svg b/assets/cinephile-c8d74b94.svg new file mode 100644 index 0000000000..cad39f4b32 --- /dev/null +++ b/assets/cinephile-c8d74b94.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/assets/class-c9216c98.svg b/assets/class-c9216c98.svg new file mode 100644 index 0000000000..51797d1d1e --- /dev/null +++ b/assets/class-c9216c98.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/assets/clockin.html-573e0083.js b/assets/clockin.html-573e0083.js new file mode 100644 index 0000000000..6039e5bcc6 --- /dev/null +++ b/assets/clockin.html-573e0083.js @@ -0,0 +1,11 @@ +import{_ as s,o as t,c as a,e}from"./app-3168cb19.js";const n={},i=e(`

    大会员签到

    大积分签到

    https://api.bilibili.com/pgc/activity/score/task/sign

    请求方式:POST

    认证方式:Cookie (SESSDATA) / access_key

    Cookie 鉴权方式下需要满足以下条件:

    • Referer*.bilibili.com域名下
    • SESSDATA 需要进行 url 编码,即 , 替换为 %2C

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    csrfstrCSRF Token (位于cookie)非必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    -401:非法访问
    -403:访问权限不足
    messagestr错误信息

    示例:

    web 方式:

    curl 'https://api.bilibili.com/pgc/activity/score/task/sign' \\
    +    --data-urlencode 'csrf=xxx' \\
    +	-b 'SESSDATA=xxx' \\
    +	--referer 'https://www.bilibili.com'
    +

    APP 方式:

    curl 'https://api.bilibili.com/pgc/activity/score/task/sign' \\
    +	--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "success"
    +}
    +
    `,18),d=[i];function c(o,r){return t(),a("div",null,d)}const p=s(n,[["render",c],["__file","clockin.html.vue"]]);export{p as default}; diff --git a/assets/clockin.html-a8dcfb3a.js b/assets/clockin.html-a8dcfb3a.js new file mode 100644 index 0000000000..f655c03599 --- /dev/null +++ b/assets/clockin.html-a8dcfb3a.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-1fe3cbb3","path":"/docs/vip/clockin.html","title":"大会员签到","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"大积分签到","slug":"大积分签到","link":"#大积分签到","children":[]}],"git":{},"filePathRelative":"docs/vip/clockin.md"}');export{e as data}; diff --git a/assets/coin-56bd2c69.svg b/assets/coin-56bd2c69.svg new file mode 100644 index 0000000000..d58a86ebf4 --- /dev/null +++ b/assets/coin-56bd2c69.svg @@ -0,0 +1,7 @@ + + + diff --git a/assets/collect-398d30e8.svg b/assets/collect-398d30e8.svg new file mode 100644 index 0000000000..b382480659 --- /dev/null +++ b/assets/collect-398d30e8.svg @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/assets/collection.html-1faca104.js b/assets/collection.html-1faca104.js new file mode 100644 index 0000000000..8bb8fa1c2a --- /dev/null +++ b/assets/collection.html-1faca104.js @@ -0,0 +1,1326 @@ +import{_ as l,r as p,o as u,c,a as n,b as s,d as a,w as e,e as o}from"./app-3168cb19.js";const r={},d=n("h1",{id:"合集和视频列表信息",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#合集和视频列表信息","aria-hidden":"true"},"#"),s(" 合集和视频列表信息")],-1),v=n("p",null,[s("请注意区分 "),n("strong",null,"合集(seasons_archives)"),s(" 和 "),n("strong",null,"视频列表(seasons_series)")],-1),k=n("p",null,"列表即系列(series)或频道(channel), 图标为平面叠放的矩形且中央有播放按钮标识(.icon-ic_channel1), 在个人空间直接操作",-1),q={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/945",target:"_blank",rel:"noopener noreferrer"},b=n("h2",{id:"获取视频合集信息",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#获取视频合集信息","aria-hidden":"true"},"#"),s(" 获取视频合集信息")],-1),m=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/polymer/web-space/seasons_archives_list (需验证referer)"),n("p",null,"https://api.bilibili.com/x/polymer/space/seasons_archives_list (旧接口, 不推荐使用, 无鉴权验证)")],-1),y=n("p",null,[n("em",null,"请求方式:GET")],-1),h=n("p",null,[n("strong",null,"url参数:")],-1),g=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),_=n("tr",null,[n("td",null,"mid"),n("td",null,"num"),n("td",null,"用户 mid"),n("td",null,"必要"),n("td",null,"创建者的 mid,但也可以是任意的非负整数")],-1),f=n("tr",null,[n("td",null,"season_id"),n("td",null,"num"),n("td",null,"视频合集 ID"),n("td",null,"必要"),n("td")],-1),x=n("tr",null,[n("td",null,"sort_reverse"),n("td",null,"bool"),n("td",null,"排序方式"),n("td",null,"可选"),n("td",null,[s("true: 升序排序"),n("br"),s("false: 默认排序")])],-1),E=n("tr",null,[n("td",null,"page_num"),n("td",null,"num"),n("td",null,"页码索引"),n("td",null,"可选"),n("td",null,"默认为 1")],-1),j=n("tr",null,[n("td",null,"page_size"),n("td",null,"num"),n("td",null,"单页内容数量"),n("td",null,"可选"),n("td",null,"默认为 30")],-1),A=n("tr",null,[n("td",null,"gaia_vtoken"),n("td",null,"str"),n("td",null,"风控验证?"),n("td",null,"可选"),n("td",null,"若被风控则必要(如User-Agent不正常)")],-1),w=n("tr",null,[n("td",null,"web_location"),n("td",null,"str"),n("td",null,"页面位置?"),n("td",null,"可选"),n("td",null,"333.999")],-1),B=n("td",null,"w_rid",-1),S=n("td",null,"str",-1),V=n("td",null,"WBI 签名",-1),D=n("td",null,"可选",-1),I=n("td",null,"wts",-1),J=n("td",null,"num",-1),K=n("td",null,"UNIX 秒级时间戳",-1),T=n("td",null,"可选",-1),U=o(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidsarray稿件 avid 列表对应下方数组中内容 aid
    archivesarray合集中的视频
    metaobj合集元数据
    pageobj分页信息

    data中的archives数组:

    类型内容备注
    0obj合集内容
    nobj(n+1)P内容
    ……obj…………

    archives数组中的对象:

    字段类型内容备注
    aidnum稿件 avid
    bvidstr稿件 bvid
    ctimenum创建时间Unix 时间戳
    durationnum视频时长单位为秒
    enable_vtboolfalse旧接口无
    interactive_videobool是否是互动视频
    picstr封面 URL
    playback_positionnum会随着播放时间增长,播放完成后为 -1 。单位为 %
    pubdatenum发布日期Unix 时间戳
    statobj稿件信息
    statenum0
    titlestr稿件标题
    ugc_paynumUGC 付费?0: 否
    vt_displaystr旧接口无

    archives中的stat对象:

    字段类型内容备注
    viewnum稿件播放量
    vtnum0

    data中的meta对象:

    字段类型内容备注
    categorynum0
    coverstr合集封面 URL
    descriptionstr合集描述
    midnumUP 主 ID
    namestr合集标题
    ptimenum发布时间Unix 时间戳
    season_idnum合集 ID
    totalnum合集内视频数量

    data中的page对象:

    字段类型内容备注
    page_numnum分页页码
    page_sizenum单页个数
    totalnum合集内视频数量

    示例:

    获取 mid=37737161season_id=1227671 视频合集信息,默认排序,第 1 页,每页 30 个视频

    curl -G "https://api.bilibili.com/x/polymer/space/seasons_archives_list" \\
    +--data-urlencode "mid=37737161" \\
    +--data-urlencode "sort_reverse=false" \\
    +--data-urlencode "season_id=1227671" \\
    +--data-urlencode "page_num=1" \\
    +--data-urlencode "page_size=30"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "aids": [
    +      311606079,
    +      400546145
    +    ],
    +    "archives": [
    +      {
    +        "aid": 311606079,
    +        "bvid": "BV1XN411K7g9",
    +        "ctime": 1679651747,
    +        "duration": 261,
    +        "interactive_video": false,
    +        "pic": "http://i2.hdslb.com/bfs/archive/234e6bd061176dba9e148f4373c52fa7cd2d801f.jpg",
    +        "pubdate": 1679651747,
    +        "stat": {
    +          "view": 12145
    +        },
    +        "state": 0,
    +        "title": "某些IT社区平台乱象,文章千篇一律,毫不注重版权,文章互相抄袭成潮流,希望能够好好管管!",
    +        "ugc_pay": 0
    +      },
    +      {
    +        "aid": 400546145,
    +        "bvid": "BV1qo4y1L73P",
    +        "ctime": 1682777426,
    +        "duration": 335,
    +        "interactive_video": false,
    +        "pic": "http://i2.hdslb.com/bfs/archive/a6b6fb0330bbf6c500720a024e5a9ade24d888c3.jpg",
    +        "pubdate": 1682777425,
    +        "stat": {
    +          "view": 52743
    +        },
    +        "state": 0,
    +        "title": "某些搜索引擎得到的结果,官方网站反而排在一些诈骗广告后面,诱导用户下载大量捆绑垃圾软件",
    +        "ugc_pay": 0
    +      }
    +    ],
    +    "meta": {
    +      "category": 0,
    +      "cover": "https://archive.biliimg.com/bfs/archive/5e1c1f77c3065ec31eec43d7e35f7a061602e4d6.jpg",
    +      "description": "白马首席讲师吐槽系列视频",
    +      "mid": 37737161,
    +      "name": "水浅王八多,真假白马说",
    +      "ptime": 1682777425,
    +      "season_id": 1227671,
    +      "total": 2
    +    },
    +    "page": {
    +      "page_num": 1,
    +      "page_size": 30,
    +      "total": 2
    +    }
    +  }
    +}
    +

    只获取系列视频

    https://api.bilibili.com/x/polymer/web-space/home/seasons_series

    请求方式: GET

    URL参数:

    `,23),L=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),C=n("tr",null,[n("td",null,"mid"),n("td",null,"num"),n("td",null,"用户 mid"),n("td",null,"必要"),n("td")],-1),F=n("tr",null,[n("td",null,"page_num"),n("td",null,"num"),n("td",null,"页码索引"),n("td",null,"必要"),n("td")],-1),N=n("tr",null,[n("td",null,"page_size"),n("td",null,"num"),n("td",null,"单页内容数量"),n("td",null,"必要"),n("td")],-1),R=n("tr",null,[n("td",null,"gaia_vtoken"),n("td",null,"str"),n("td",null,"风控验证?"),n("td",null,"可选"),n("td",null,"若被风控则必要(如User-Agent不正常)")],-1),P=n("td",null,"w_rid",-1),O=n("td",null,"str",-1),G=n("td",null,"WBI 签名",-1),z=n("td",null,"不必要",-1),W=n("td",null,"wts",-1),X=n("td",null,"num",-1),M=n("td",null,"UNIX 秒级时间戳",-1),Y=n("td",null,"不必要",-1),H=o(`

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -352: 请求被风控
    -400: 请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    items_listsobj内容列表套了个娃

    data中的items_lists对象:

    字段类型内容备注
    pageobj分页信息
    seasons_listarray
    series_listarray系列列表

    items_lists中的page对象:

    字段类型内容备注
    page_numnum分页页码
    page_sizenum单页个数
    totalnum总页数

    items_lists中的series_list数组:

    类型内容备注
    0obj第1个系列内容
    1obj第2个系列内容
    ……obj…………
    nobj第(n+1)个系列内容

    series_list数组中的对象:

    字段类型内容备注
    archivesarray系列视频列表
    metaobj系列元数据
    recent_aidsarray系列视频 aid 列表内容类型为num

    series_list中的archives数组:

    获取视频合集信息中的archives数组

    series_list中的meta对象:

    字段类型内容备注
    categorynum1
    coverstr系列封面 URL
    creatorstrauto
    ctimenum创建时间Unix 时间戳
    descriptionstr系列描述
    keywordsarray系列关键词列表内容类型为str
    last_update_tsnum最近更新时间Unix 时间戳
    midnumUP 主 ID
    mtimenum修改时间Unix 时间戳
    namestr系列标题
    raw_keywordsstr原始系列关键词
    series_idnum系列 ID
    statenum2
    totalnum系列视频数量

    示例:

    curl -G "https://api.bilibili.com/x/polymer/web-space/home/seasons_series" \\
    +--data-urlencode "mid=37737161" \\
    +--data-urlencode "page_num=1" \\
    +--data-urlencode "page_size=10"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "items_lists": {
    +      "page": {
    +        "page_num": 1,
    +        "page_size": 10,
    +        "total": 1
    +      },
    +      "seasons_list": [],
    +      "series_list": [
    +        {
    +          "archives": [
    +            {
    +              "aid": 284063097,
    +              "bvid": "BV1Fc411x7xF",
    +              "ctime": 1705925782,
    +              "duration": 8885,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/5aa1bb0a121d89969e9bd2634bc7ae23272bf850.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1705925781,
    +              "stat": {
    +                "view": 14683,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Gradle 教程 已完结 (基于Kotlin DSL讲解) 4K蓝光画质 超强的脚本式项目依赖和构建工具",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 367948632,
    +              "bvid": "BV1P94y1c7tV",
    +              "ctime": 1703844221,
    +              "duration": 52036,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/499aeb41a0428e05523b766e367540b04f7c3ae2.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1703844220,
    +              "stat": {
    +                "view": 82997,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Kotlin 教程 已完结 (IDEA 2024 最新版) 4K蓝光画质+杜比音效 零基础入门一套搞定 入门到入土经典版",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 836303388,
    +              "bvid": "BV1Hg4y1m7Ca",
    +              "ctime": 1705401362,
    +              "duration": 5873,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/a20b09d1cc1a81f6a9c5ed8ea322656e406be725.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1705401362,
    +              "stat": {
    +                "view": 8417,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Kotlin 扩展篇 已完结 (IDEA 2024 最新版) 4K蓝光画质 与Java语言混合编程",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/5aa1bb0a121d89969e9bd2634bc7ae23272bf850.jpg",
    +            "creator": "auto",
    +            "ctime": 1705401630,
    +            "description": "包含Kotlin语言学习的完整流程,正在不断完善中哦~",
    +            "keywords": [
    +              "Kotlin"
    +            ],
    +            "last_update_ts": 1705925782,
    +            "mid": 37737161,
    +            "mtime": 1705925782,
    +            "name": "Kotlin开心路线",
    +            "raw_keywords": "Kotlin",
    +            "series_id": 3908327,
    +            "state": 2,
    +            "total": 3
    +          },
    +          "recent_aids": [
    +            284063097,
    +            367948632,
    +            836303388
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 848832470,
    +              "bvid": "BV1CL4y1i7qR",
    +              "ctime": 1635258883,
    +              "duration": 106474,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/45dddea811257f78ddd6f1e70197d95d7d6b5187.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1635258883,
    +              "stat": {
    +                "view": 438645,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaWeb 教程 已完结(IDEA 2021版本)4K蓝光画质 入土到起立",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 566880413,
    +              "bvid": "BV1Kv4y1x7is",
    +              "ctime": 1676544280,
    +              "duration": 25149,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/cc59de5afebc66447ba93ad9ea0ba73a9b09c117.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1676544280,
    +              "stat": {
    +                "view": 87171,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring 核心教程 已完结(IDEA 2023最新版)4K蓝光画质 基于Spring6的全新重制版本 起立到起飞",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 615286308,
    +              "bvid": "BV1Lh4y1M7kx",
    +              "ctime": 1688117457,
    +              "duration": 10373,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/5f860de4bc0fab30651ae93396f9c572be8380b2.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1688117457,
    +              "stat": {
    +                "view": 41428,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring MVC 教程 已完结(IDEA 2023最新版)4K蓝光画质 基于Spring6的全新重制版本 起立到起飞",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 403104913,
    +              "bvid": "BV1fV411M7aS",
    +              "ctime": 1688560394,
    +              "duration": 17611,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/c4557a16aa3519183d6ae0114e1c64107bb23703.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1688560394,
    +              "stat": {
    +                "view": 59298,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring Security 教程 已完结(IDEA 2023最新版)4K蓝光画质 基于Spring6的全新重制版本 起立到起飞",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 828666773,
    +              "bvid": "BV1xu4y1m7UP",
    +              "ctime": 1689767299,
    +              "duration": 29696,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/06cf686d4d3f7ce6731975ef59938d759283318e.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1689767299,
    +              "stat": {
    +                "view": 108078,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring Boot 教程 已完结(IDEA 2023最新版)4K蓝光画质 基于SpringBoot 3 的全新重制版本 起飞到删库跑路",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 852857221,
    +              "bvid": "BV1AL4y1j7RY",
    +              "ctime": 1648811079,
    +              "duration": 55544,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/629755f79c13c96c9b6d91da80257a352b29dd86.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1648811079,
    +              "stat": {
    +                "view": 168251,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "SpringCloud 教程 已完结(IDEA 2022.1最新版)4K蓝光画质 微服务开发",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/45dddea811257f78ddd6f1e70197d95d7d6b5187.jpg",
    +            "creator": "auto",
    +            "ctime": 1669273103,
    +            "description": "已排序完成,共4个系列,请至少完成Java SE篇视频之后再开始JavaEE路线哦~ 整个路线大致为:JavaWeb基础篇、SSM成长篇、SpringBoot成熟篇、SpringCloud进阶篇",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1696249622,
    +            "mid": 37737161,
    +            "mtime": 1696249622,
    +            "name": "JavaEE通关路线",
    +            "raw_keywords": "",
    +            "series_id": 2800548,
    +            "state": 2,
    +            "total": 9
    +          },
    +          "recent_aids": [
    +            848832470,
    +            566880413,
    +            615286308,
    +            403104913,
    +            828666773,
    +            852857221
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 445283537,
    +              "bvid": "BV14j411S76G",
    +              "ctime": 1687946670,
    +              "duration": 7008,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/208bb09ecf97fbbd73e45b3839715276ffbbe8f4.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1687946670,
    +              "stat": {
    +                "view": 9483,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Apache Maven 依赖管理 极速上手 已完结(2021 版本)4K蓝光画质+杜比音效 从导入到冲突",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 813084463,
    +              "bvid": "BV1r34y1p7j9",
    +              "ctime": 1656909478,
    +              "duration": 17457,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/798135f31dc9e03121458f32825dc81d8e403887.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1656909478,
    +              "stat": {
    +                "view": 46179,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Docker 容器技术 已完结(2022 最新版)4K蓝光画质+杜比音效 从内卷到开摆",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 432905025,
    +              "bvid": "BV1a3411f7nh",
    +              "ctime": 1669296029,
    +              "duration": 10393,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/d14c0fad064a224de7afb7edd147f8b335324c53.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669296029,
    +              "stat": {
    +                "view": 37040,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Linux 操作系统 光速入门 已完结(2021 版本)4K蓝光画质+杜比音效 从讨厌到喜欢",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 390385576,
    +              "bvid": "BV19d4y147Df",
    +              "ctime": 1669272992,
    +              "duration": 23389,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/8ba763e1a1e14c47c1c178ecf21240896d3fbb5e.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669272992,
    +              "stat": {
    +                "view": 32189,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "MySQL 数据库技术 已完结(2021版本)4K蓝光画质+杜比音效 从内卷到开摆",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 647924810,
    +              "bvid": "BV1ce4y1W7YB",
    +              "ctime": 1669275447,
    +              "duration": 8492,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/f5bcc92a4e181cb12a8b80499cea255f43f2d97b.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669275447,
    +              "stat": {
    +                "view": 20004,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Git 版本控制 快速上手 已完结(2021版本)4K蓝光画质+杜比音效 从开摆到放弃",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 347934006,
    +              "bvid": "BV1vR4y1o7Z2",
    +              "ctime": 1669295228,
    +              "duration": 10631,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/f95d39b0bc1a2bdad07461a8f4b1ea48c174902c.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669295228,
    +              "stat": {
    +                "view": 25860,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Redis 缓存技术 已完结(2021版本)4K蓝光画质+杜比音效 从内卷到开摆",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i1.hdslb.com/bfs/archive/208bb09ecf97fbbd73e45b3839715276ffbbe8f4.jpg",
    +            "creator": "auto",
    +            "ctime": 1669273164,
    +            "description": "包含主线中讲解的中间件归档视频与当下必学的火热技术。",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1688123428,
    +            "mid": 37737161,
    +            "mtime": 1688123428,
    +            "name": "必学技术与中间件",
    +            "raw_keywords": "",
    +            "series_id": 2800550,
    +            "state": 2,
    +            "total": 7
    +          },
    +          "recent_aids": [
    +            445283537,
    +            813084463,
    +            432905025,
    +            390385576,
    +            647924810,
    +            347934006
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 900707014,
    +              "bvid": "BV1YP4y1o75f",
    +              "ctime": 1663494406,
    +              "duration": 103542,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/291dd3b60b67a8f74567a81999612bd50b4e8017.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1663494406,
    +              "stat": {
    +                "view": 312144,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaSE 教程 已完结 (IDEA 2022 最新版) 4K蓝光画质+杜比音效 零基础入门一套搞定 入门到入土",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 604837097,
    +              "bvid": "BV1G84y1v7Vj",
    +              "ctime": 1667815711,
    +              "duration": 19395,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/4a4522194a1d0c8ae684976b26fb2fe43ce28f39.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1667815711,
    +              "stat": {
    +                "view": 74496,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaSE AWT/Swing 图形化编程 (IDEA 2022 最新版) 4K蓝光画质+杜比音效 快速上手桌面程序 用IDEA写IDEA",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 766688029,
    +              "bvid": "BV1Er4y1r7as",
    +              "ctime": 1645157763,
    +              "duration": 21585,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/ced6a8c8548f0f921f306ea3589f9d470adc0446.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1645157763,
    +              "stat": {
    +                "view": 133409,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java JVM 虚拟机 已完结(IDEA 2021版本)4K蓝光画质 全程劝退",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 936955310,
    +              "bvid": "BV1JT4y1S7K8",
    +              "ctime": 1646391131,
    +              "duration": 31736,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/9347ef3cdb6cf0e5bca29ce32e211b488e90ab7b.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1646391131,
    +              "stat": {
    +                "view": 74731,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java JUC 并发编程 已完结(IDEA 2021版本)4K蓝光画质 玩转多线程",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 768437265,
    +              "bvid": "BV1ar4y1J7mC",
    +              "ctime": 1650881312,
    +              "duration": 26314,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/7f97549147c09a386d9402b121cc6206c36e4079.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1650881312,
    +              "stat": {
    +                "view": 67900,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java NIO Netty网络编程 已完结(IDEA 2022.1最新版)4K蓝光画质 网络I/O进阶编程",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 684547077,
    +              "bvid": "BV1tU4y1y7Fg",
    +              "ctime": 1653900327,
    +              "duration": 10243,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/dc0cc9464c6fc274c1f23f682a01dab5a358217b.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1653900327,
    +              "stat": {
    +                "view": 47693,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaSE 9-17 新特性 已完结(IDEA 2022.1最新版)4K蓝光画质 Java9/10/11/12/13/14/15/16/17讲解",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/291dd3b60b67a8f74567a81999612bd50b4e8017.jpg",
    +            "creator": "auto",
    +            "ctime": 1648810702,
    +            "description": "已排序完成,共3个系列,完成JavaSE篇之后,就可以开启JavaEE路线了",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1667816253,
    +            "mid": 37737161,
    +            "mtime": 1667816253,
    +            "name": "JavaSE基础路线",
    +            "raw_keywords": "",
    +            "series_id": 2158988,
    +            "state": 2,
    +            "total": 6
    +          },
    +          "recent_aids": [
    +            900707014,
    +            604837097,
    +            766688029,
    +            936955310,
    +            768437265,
    +            684547077
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 770027221,
    +              "bvid": "BV1Cr4y137os",
    +              "ctime": 1655371329,
    +              "duration": 48185,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/5d9bd135f068e623e50c7341244635f6cc96c3ea.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1655371329,
    +              "stat": {
    +                "view": 275378,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "C语言程序设计 已完结(CLion 2022 最新版)4K蓝光画质+杜比音效 梦开始的地方",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 941207928,
    +              "bvid": "BV13W4y127Ey",
    +              "ctime": 1658474799,
    +              "duration": 69081,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/0bf055a0961c0f9bbb7f869b47c3e3d7df21f55c.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1658474798,
    +              "stat": {
    +                "view": 220072,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "数据结构与算法 已完结(CLion 2022 最新版)4K蓝光画质+杜比音效 全程高能",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 426681358,
    +              "bvid": "BV1u3411P7Na",
    +              "ctime": 1653033628,
    +              "duration": 12346,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/4174e2976f750d5410d6cef374c3035190717cac.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1653033628,
    +              "stat": {
    +                "view": 71911,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java 设计模式 已完结(IDEA 2022.1最新版)4K蓝光画质+杜比音效",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/5d9bd135f068e623e50c7341244635f6cc96c3ea.jpg",
    +            "creator": "auto",
    +            "ctime": 1653296733,
    +            "description": "Java设计模式系列视频,提升你的代码编写规范。",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1658735292,
    +            "mid": 37737161,
    +            "mtime": 1658735292,
    +            "name": "高等院校计算机必修课",
    +            "raw_keywords": "",
    +            "series_id": 2318088,
    +            "state": 2,
    +            "total": 3
    +          },
    +          "recent_aids": [
    +            770027221,
    +            941207928,
    +            426681358
    +          ]
    +        }
    +      ]
    +    }
    +  }
    +}
    +

    获取系列和合集视频

    https://api.bilibili.com/x/polymer/web-space/seasons_series_list

    请求方式: GET

    鉴权方式: 请求头 User-Agent 为正常浏览器, 若仍被风控则请求头再带上 Referer 为 .bilibili.com 下任意页

    URL参数:

    `,25),Q=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),Z=n("tr",null,[n("td",null,"mid"),n("td",null,"num"),n("td",null,"用户 mid"),n("td",null,"必要"),n("td")],-1),$=n("tr",null,[n("td",null,"page_num"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"必要"),n("td",null,"默认为 1")],-1),nn=n("tr",null,[n("td",null,"page_size"),n("td",null,"num"),n("td",null,"每页数量"),n("td",null,"必要"),n("td",null,"默认为 20")],-1),sn=n("td",null,"w_rid",-1),an=n("td",null,"str",-1),tn=n("td",null,"WBI 签名",-1),en=n("td",null,"可选",-1),on=n("td",null,"wts",-1),pn=n("td",null,"num",-1),ln=n("td",null,"UNIX 秒级时间戳",-1),un=n("td",null,"可选",-1),cn=n("tr",null,[n("td",null,"web_location"),n("td",null,"str"),n("td",null,"页面位置?"),n("td",null,"可选"),n("td",null,"333.999")],-1),rn=o(`

    JSON回复:

    只获取系列视频 基本一致, 但 .data.items_lists.seasons_list 数组不为空, 且该数组中的元素结构与 .data.items_lists.series_list 相同, 略

    示例:

    获取 mid=37737161 的系列视频列表,每页 5 条,页码为 1

    curl -G "https://api.bilibili.com/x/polymer/web-space/seasons_series_list" \\
    +--data-urlencode "mid=37737161" \\
    +--data-urlencode "page_num=1" \\
    +--data-urlencode "page_size=5" \\
    +--data-urlencode "w_rid=xxx" \\
    +--data-urlencode "wts=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "items_lists": {
    +      "page": {
    +        "page_num": 1,
    +        "page_size": 5,
    +        "total": 9
    +      },
    +      "seasons_list": [
    +        {
    +          "archives": [
    +            {
    +              "aid": 343807541,
    +              "bvid": "BV1t94y1D79E",
    +              "ctime": 1658907465,
    +              "duration": 2164,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/0af0faa77a1921db4cf86c115db70aa2594983f0.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1658907465,
    +              "stat": {
    +                "view": 43096,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java学习路线两条龙版,让你不再迷茫!包含各个知识点梳理,常用技术栈介绍等。",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 429032764,
    +              "bvid": "BV11G411h7NB",
    +              "ctime": 1659499261,
    +              "duration": 197,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/5235a0ab2738e288b08654aa8e0cd3a509a7ef96.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1659499200,
    +              "stat": {
    +                "view": 22700,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "好书推荐《On Java》都什么年代了,还在看传统Java书籍?",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            // ...
    +          ],
    +          "meta": {
    +            "category": 0,
    +            "cover": "https://archive.biliimg.com/bfs/archive/27733cf13514d990c880154b937cd8633f583aa4.jpg",
    +            "description": "除教程视频外其他的视频,均在此。",
    +            "mid": 37737161,
    +            "name": "合集·拾枝杂谈",
    +            "ptime": 1694682652,
    +            "season_id": 587216,
    +            "total": 10
    +          },
    +          "recent_aids": [
    +            343807541,
    +            429032764,
    +            857089796,
    +            560181990,
    +            774119786,
    +            859397126
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 311606079,
    +              "bvid": "BV1XN411K7g9",
    +              "ctime": 1679651747,
    +              "duration": 261,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/234e6bd061176dba9e148f4373c52fa7cd2d801f.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1679651747,
    +              "stat": {
    +                "view": 12150,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "某些IT社区平台乱象,文章千篇一律,毫不注重版权,文章互相抄袭成潮流,希望能够好好管管!",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 400546145,
    +              "bvid": "BV1qo4y1L73P",
    +              "ctime": 1682777426,
    +              "duration": 335,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/a6b6fb0330bbf6c500720a024e5a9ade24d888c3.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1682777425,
    +              "stat": {
    +                "view": 52744,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "某些搜索引擎得到的结果,官方网站反而排在一些诈骗广告后面,诱导用户下载大量捆绑垃圾软件",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 0,
    +            "cover": "https://archive.biliimg.com/bfs/archive/5e1c1f77c3065ec31eec43d7e35f7a061602e4d6.jpg",
    +            "description": "白马首席讲师吐槽系列视频",
    +            "mid": 37737161,
    +            "name": "合集·水浅王八多,真假白马说",
    +            "ptime": 1682777425,
    +            "season_id": 1227671,
    +            "total": 2
    +          },
    +          "recent_aids": [
    +            311606079,
    +            400546145
    +          ]
    +        },
    +        // ...
    +      ],
    +      "series_list": [
    +        // 与前接口基本相同
    +      ]
    +    }
    +  }
    +}
    +

    查询指定系列

    https://api.bilibili.com/x/series/series

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    series_idnum系列ID必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    metaobj系列信息
    recent_aidsarray系列 aid 列表内容类型为 num

    data中的meta对象:

    只获取系列视频中的meta对象

    示例:

    curl -G 'https://api.bilibili.com/x/series/series' \\
    +--data-urlencode 'series_id=2158988'
    +
    查看响应示例
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "meta": {
    +      "series_id": 2158988,
    +      "mid": 37737161,
    +      "name": "JavaSE基础路线",
    +      "description": "已排序完成,共3个系列,完成JavaSE篇之后,就可以开启JavaEE路线了",
    +      "keywords": [
    +        ""
    +      ],
    +      "creator": "auto",
    +      "state": 2,
    +      "last_update_ts": 1667816253,
    +      "total": 6,
    +      "ctime": 1648810702,
    +      "mtime": 1667816253,
    +      "raw_keywords": "",
    +      "category": 1
    +    },
    +    "recent_aids": [
    +      900707014,
    +      604837097,
    +      766688029,
    +      936955310,
    +      768437265,
    +      684547077
    +    ]
    +  }
    +}
    +

    获取指定系列视频

    https://api.bilibili.com/x/series/archives

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    midnum用户 mid必要
    series_idnum系列ID必要
    only_normalbool作用尚不明确可选默认为 true
    sortstr排序方式可选desc: 默认排序
    asc: 升序排序
    pnnum页码可选默认为 1
    psnum每页数量可选默认为 20
    current_midnum当前用户 mid可选用于 playback_position 播放进度

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidsarray视频 aid 列表内容类型为 num
    pageobj页码信息
    archivesarray视频信息列表

    data中的page对象:

    字段类型内容备注
    numnum当前页码
    sizenum每页数量
    totalnum视频总数

    data中的archives数组:

    基本同获取视频合集信息中的archives数组

    示例:

    获取 mid=39665558series_id=534501 系列视频列表,每页 16 条,页码为 1,默认排序, 当前用户 mid 为 1070915568

    curl -G "https://api.bilibili.com/x/series/archives" \\
    +--data-urlencode "mid=39665558" \\
    +--data-urlencode "series_id=534501" \\
    +--data-urlencode "only_normal=true" \\
    +--data-urlencode "sort=desc" \\
    +--data-urlencode "pn=1" \\
    +--data-urlencode "ps=16" \\
    +--data-urlencode "current_mid=1070915568"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "aids": [
    +      695029098,
    +      724599872,
    +      594794875,
    +      41565264,
    +      541053051,
    +      499696652,
    +      673071936,
    +      462891077,
    +      973903762,
    +      61692380,
    +      336713491,
    +      372661682,
    +      550840795,
    +      51839931,
    +      718592873,
    +      87838863
    +    ],
    +    "page": {
    +      "num": 1,
    +      "size": 16,
    +      "total": 25
    +    },
    +    "archives": [
    +      {
    +        "aid": 695029098,
    +        "title": "Python控制Minecraft教程(下):自动建造",
    +        "pubdate": 1677321251,
    +        "ctime": 1677321251,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/187c0ba21b9ceba908a8760e83d49f466316824b.jpg",
    +        "duration": 275,
    +        "stat": {
    +          "view": 26555
    +        },
    +        "bvid": "BV1k24y1J78X",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 724599872,
    +        "title": "『教程』一看就懂!Github基础教程",
    +        "pubdate": 1646740815,
    +        "ctime": 1646740824,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/1401ebe64e88deddf2b44ad6a740ff8872c2fda6.jpg",
    +        "duration": 296,
    +        "stat": {
    +          "view": 2412054
    +        },
    +        "bvid": "BV1hS4y1S7wL",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 594794875,
    +        "title": "『教程』手把手教你流畅访问Github",
    +        "pubdate": 1647345613,
    +        "ctime": 1647336725,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/71cc640a84087cc99399449c00b93212fe78ee6f.jpg",
    +        "duration": 236,
    +        "stat": {
    +          "view": 910491
    +        },
    +        "bvid": "BV1Aq4y1q7hr",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 41565264,
    +        "title": "《Python负基础到入门教程》专为\\"非计算机专业和编程困难户\\"制作(全13集 配音字幕重制版)",
    +        "pubdate": 1548316071,
    +        "ctime": 1548316072,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/5f4f6acfc00723c84f726d35add94b1d4b4ee482.jpg",
    +        "duration": 6395,
    +        "stat": {
    +          "view": 261286
    +        },
    +        "bvid": "BV1et411b76c",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 541053051,
    +        "title": "『教程』文字频频乱码 这背后是显卡的扭曲还是规则的沦丧?",
    +        "pubdate": 1592996906,
    +        "ctime": 1592996907,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/8a3c3e3d01a91776763d34bba79add698869c82d.jpg",
    +        "duration": 381,
    +        "stat": {
    +          "view": 1184937
    +        },
    +        "bvid": "BV1ai4y1x7Uz",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 499696652,
    +        "title": "『教程』VsCode五分钟上手教程 无一句废话",
    +        "pubdate": 1601207369,
    +        "ctime": 1601207369,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/cb78c07a090ed456bdcc217b0417670867772a29.jpg",
    +        "duration": 329,
    +        "stat": {
    +          "view": 417610
    +        },
    +        "bvid": "BV1bK411P767",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 673071936,
    +        "title": "『教程』补码怎么来的?",
    +        "pubdate": 1620994814,
    +        "ctime": 1620986531,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/12c02599321a0b1386b29ddc4653ff7df9bd54b4.jpg",
    +        "duration": 445,
    +        "stat": {
    +          "view": 247578
    +        },
    +        "bvid": "BV16U4y1t7LD",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 462891077,
    +        "title": "『教程』回调函数是个啥?",
    +        "pubdate": 1631274885,
    +        "ctime": 1631274885,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/df294350462558601f65b743ca25e2fdc01de628.jpg",
    +        "duration": 452,
    +        "stat": {
    +          "view": 213895
    +        },
    +        "bvid": "BV1vL411t78b",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 98
    +      },
    +      {
    +        "aid": 973903762,
    +        "title": "『教程』堆栈是个啥?",
    +        "pubdate": 1625227205,
    +        "ctime": 1625227209,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/bf7956b6311ec0787fd52d1293bb4287d16b7e65.jpg",
    +        "duration": 370,
    +        "stat": {
    +          "view": 535174
    +        },
    +        "bvid": "BV1P44y1q7uL",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 99
    +      },
    +      {
    +        "aid": 61692380,
    +        "title": "『教程』什么是递归?",
    +        "pubdate": 1564660818,
    +        "ctime": 1564637347,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/4af853671204b9bc631fada1934a3e86145a7d19.jpg",
    +        "duration": 658,
    +        "stat": {
    +          "view": 487397
    +        },
    +        "bvid": "BV194411f71o",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 79
    +      },
    +      {
    +        "aid": 336713491,
    +        "title": "『教程』几分钟听懂迭代器",
    +        "pubdate": 1636713476,
    +        "ctime": 1636713476,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/6e255cce7c0303ab0211acd0f9d1ec5980ff03f7.jpg",
    +        "duration": 453,
    +        "stat": {
    +          "view": 110688
    +        },
    +        "bvid": "BV18R4y1t7Hg",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 97
    +      },
    +      {
    +        "aid": 372661682,
    +        "title": "『教程』桌面精灵是怎样实现的?",
    +        "pubdate": 1604916264,
    +        "ctime": 1604916264,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/aaa8bb7b6fced63dd4792e28c1f78ba903fcc4cc.jpg",
    +        "duration": 326,
    +        "stat": {
    +          "view": 168775
    +        },
    +        "bvid": "BV1aZ4y1V7aa",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 550840795,
    +        "title": "『教程』什么是钩子技术?",
    +        "pubdate": 1642744335,
    +        "ctime": 1642744335,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/380b1ff9726c673411cf916b03268c7fb16aff68.jpg",
    +        "duration": 240,
    +        "stat": {
    +          "view": 237568
    +        },
    +        "bvid": "BV1Cq4y1c7kK",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 51839931,
    +        "title": "『教程』学编程前必知的8个电脑操作",
    +        "pubdate": 1557313623,
    +        "ctime": 1557313623,
    +        "state": 0,
    +        "pic": "http://i2.hdslb.com/bfs/archive/b54535ee3ff27006912d8013f2ea1667b2a50f80.jpg",
    +        "duration": 641,
    +        "stat": {
    +          "view": 139385
    +        },
    +        "bvid": "BV1t4411v78E",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 718592873,
    +        "title": "『教程』这些常见编程单词到底该怎么读?看你能否读对?对✔❌✅☑",
    +        "pubdate": 1634300675,
    +        "ctime": 1634265090,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/de43275f44aea9f6d79c13ee68c6dcdfc9e5fc5e.jpg",
    +        "duration": 783,
    +        "stat": {
    +          "view": 81193
    +        },
    +        "bvid": "BV1JQ4y1D79p",
    +        "ugc_pay": 0,
    +        "interactive_video": true,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 100
    +      },
    +      {
    +        "aid": 87838863,
    +        "title": "『教程』什么是环境变量",
    +        "pubdate": 1581258353,
    +        "ctime": 1581258353,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/331b2304d8262c4252f338599846761d6a5a8e0c.jpg",
    +        "duration": 353,
    +        "stat": {
    +          "view": 99797
    +        },
    +        "bvid": "BV1w741147G9",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      }
    +    ]
    +  }
    +}
    +

    根据关键词查找视频

    https://api.bilibili.com/x/series/recArchivesByKeywords

    请求方式:GET

    URL参数:

    参数名类型内容必要性备注
    midnum用户 mid必要
    keywordsstr关键词必要可为空, 即获取所有视频
    psnum每页视频数非必要默认为 0, 留空为 20
    pnnum页码非必要留空为 1
    orderbystr排序方式非必要最新发布: pubdate(默认)
    最多播放: views
    senddate: 最新发布
    series_idnum系列 ID非必要用于过滤结果, 即若某一视频包含在系列内则不返回该视频

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    archivesarr视频列表
    pageobj页码信息

    archives 数组:

    获取视频合集信息中的archives数组

    page 对象:

    获取视频合集信息中的page对象

    示例:

    查询用户 mid=2 关键词为 的视频, 不限制每页视频数

    curl -G "https://api.bilibili.com/x/series/recArchivesByKeywords" \\
    +--data-urlencode "mid=2" \\
    +--data-urlencode "keywords=幕" \\
    +--data-urlencode "ps=0"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "archives": [
    +      {
    +        "aid": 120040,
    +        "title": "高级语言弹幕测试",
    +        "pubdate": 1311616515,
    +        "ctime": 1497344798,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/55a553659799d8a6fcb645d8f1f9df418ad6fe4e.jpg",
    +        "duration": 911,
    +        "stat": {
    +          "view": 3584767
    +        },
    +        "bvid": "BV1Xx411c7cH",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 2,
    +        "title": "字幕君交流场所",
    +        "pubdate": 1252458549,
    +        "ctime": 1497344798,
    +        "state": 0,
    +        "pic": "http://static.hdslb.com/images/transparent.gif",
    +        "duration": 2055,
    +        "stat": {
    +          "view": 4609291
    +        },
    +        "bvid": "BV1xx411c7mD",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 271,
    +        "title": "弹幕测试专用",
    +        "pubdate": 1249886475,
    +        "ctime": 1497344798,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/a5980672f3d03e8292148748a63de99cd45679d3.jpg",
    +        "duration": 1213,
    +        "stat": {
    +          "view": 4857422
    +        },
    +        "bvid": "BV1xx411c7Xg",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      }
    +    ],
    +    "page": {
    +      "num": 1,
    +      "size": 0,
    +      "total": 3
    +    }
    +  }
    +}
    +

    创建视频列表

    https://api.bilibili.com/x/series/series/createAndAddArchives

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (multipart/form-data):

    参数名类型内容必要性备注
    midnum用户 mid必要
    namestr标题必要
    keywordsstr关键词不必要
    descriptionstr简介不必要
    aidsstr视频 aid 列表不必要, 分隔, 如 2,112861,112861976201494,976201494

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    series_idnum视频列表 ID

    示例:

    mid=616368979 创建视频列表, 标题为 NAME, 视频为 112861976201494

    curl -X POST --url "https://api.bilibili.com/x/series/series/createAndAddArchives" \\
    +--url-query "csrf=xxxxxxxxxx" \\
    +--data-urlencode "mid=616368979" \\
    +--data-urlencode "name=NAME" \\
    +--data-urlencode "aids=112861976201494" \\
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "series_id": 4269765
    +  }
    +}
    +

    删除视频列表

    https://api.bilibili.com/x/series/series/delete

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要
    midnum用户 mid必要
    series_idnum视频列表 ID必要
    aidsstr不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj

    示例:

    mid=616368979 删除视频列表 series_id=4269765

    curl -X POST --url "https://api.bilibili.com/x/series/series/delete" \\
    +--url-query "csrf=xxxxxxxxxx" \\
    +--url-query "series_id=4269765" \\
    +--url-query "mid=616368979" \\
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    删除视频列表中的稿件

    https://api.bilibili.com/x/series/series/delArchives

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    midnum用户 mid必要
    series_idnum视频列表 ID必要
    aidsstr视频 aid 列表必要, 分隔, 如 2,112861,112861976201494,976201494

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj

    示例:

    mid=616368979 删除视频列表 series_id=4269782 中的 112861976201494

    curl -X POST --url "https://api.bilibili.com/x/series/series/delArchives" \\
    +--url-query "csrf=xxxxxxxxxx" \\
    +--data-urlencode "mid=616368979" \\
    +--data-urlencode "series_id=4269782" \\
    +--data-urlencode "aids=112861976201494" \\
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    添加稿件至视频列表

    https://api.bilibili.com/x/series/series/addArchives

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    删除视频列表中的稿件

    正文参数 (application/x-www-form-urlencoded):

    删除视频列表中的稿件

    JSON回复:

    删除视频列表中的稿件

    示例:

    mid=616368979 添加视频 112861976201494 至视频列表 series_id=4269782

    curl -X POST --url "https://api.bilibili.com/x/series/series/addArchives" \\
    +--url-query "csrf=xxxxxxxxxx" \\
    +--data-urlencode "mid=616368979" \\
    +--data-urlencode "series_id=4269782" \\
    +--data-urlencode "aids=112861976201494" \\
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    编辑视频列表信息

    https://api.bilibili.com/x/series/series/update

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    midnum用户 mid必要
    series_idnum视频列表 ID必要
    namestr标题必要
    keywordsstr关键词不必要
    descriptionstr简介不必要
    add_aidsstr视频 aid 列表不必要, 分隔
    del_aidsstr视频 aid 列表不必要
    aidsstr不必要

    JSON回复:

    删除视频列表中的稿件

    示例:

    mid=616368979 编辑视频列表 series_id=4269782, 设置标题为 NAME, 设置简介为空, 设置关键词 Telnet, 添加视频 112861976201494

    curl -X POST --url "https://api.bilibili.com/x/series/series/update" \\
    +--url-query "csrf=xxxxxxxxxx" \\
    +--data-urlencode "name=NAME" \\
    +--data-urlencode "mid=616368979" \\
    +--data-urlencode "series_id=4269782" \\
    +--data-urlencode "keywords=Telnet" \\
    +--data-urlencode "add_aids=112861976201494" \\
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +
    `,130);function dn(vn,kn){const t=p("RouterLink"),i=p("ExternalLinkIcon");return u(),c("div",null,[d,v,n("p",null,[s("合集是后加入的功能, 图标为立体叠放的正方形(.icon-heji), 可以在创作中心管理, 参见 "),a(t,{to:"/docs/creativecenter/season.html"},{default:e(()=>[s("合集管理")]),_:1})]),k,n("p",null,[s("此处保留原 Issue 的表述, 参见 "),n("a",q,[s("#945"),a(i)])]),b,m,y,h,n("table",null,[g,n("tbody",null,[_,f,x,E,j,A,w,n("tr",null,[B,S,V,D,n("td",null,[s("参见 "),a(t,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])]),n("tr",null,[I,J,K,T,n("td",null,[s("参见 "),a(t,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])])])]),U,n("table",null,[L,n("tbody",null,[C,F,N,R,n("tr",null,[P,O,G,z,n("td",null,[s("参见 "),a(t,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])]),n("tr",null,[W,X,M,Y,n("td",null,[s("参见 "),a(t,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])])])]),H,n("table",null,[Q,n("tbody",null,[Z,$,nn,n("tr",null,[sn,an,tn,en,n("td",null,[s("参见 "),a(t,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])]),n("tr",null,[on,pn,ln,un,n("td",null,[s("参见 "),a(t,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[s("WBI 签名")]),_:1})])]),cn])]),rn])}const bn=l(r,[["render",dn],["__file","collection.html.vue"]]);export{bn as default}; diff --git a/assets/collection.html-9e323f66.js b/assets/collection.html-9e323f66.js new file mode 100644 index 0000000000..4b7c5e3db4 --- /dev/null +++ b/assets/collection.html-9e323f66.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-738a744c","path":"/docs/video/collection.html","title":"合集和视频列表信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取视频合集信息","slug":"获取视频合集信息","link":"#获取视频合集信息","children":[]},{"level":2,"title":"只获取系列视频","slug":"只获取系列视频","link":"#只获取系列视频","children":[]},{"level":2,"title":"获取系列和合集视频","slug":"获取系列和合集视频","link":"#获取系列和合集视频","children":[]},{"level":2,"title":"查询指定系列","slug":"查询指定系列","link":"#查询指定系列","children":[]},{"level":2,"title":"获取指定系列视频","slug":"获取指定系列视频","link":"#获取指定系列视频","children":[]},{"level":2,"title":"根据关键词查找视频","slug":"根据关键词查找视频","link":"#根据关键词查找视频","children":[]},{"level":2,"title":"创建视频列表","slug":"创建视频列表","link":"#创建视频列表","children":[]},{"level":2,"title":"删除视频列表","slug":"删除视频列表","link":"#删除视频列表","children":[]},{"level":2,"title":"删除视频列表中的稿件","slug":"删除视频列表中的稿件","link":"#删除视频列表中的稿件","children":[]},{"level":2,"title":"添加稿件至视频列表","slug":"添加稿件至视频列表","link":"#添加稿件至视频列表","children":[]},{"level":2,"title":"编辑视频列表信息","slug":"编辑视频列表信息","link":"#编辑视频列表信息","children":[]}],"git":{},"filePathRelative":"docs/video/collection.md"}');export{l as data}; diff --git a/assets/color.html-2e085ee9.js b/assets/color.html-2e085ee9.js new file mode 100644 index 0000000000..82d12e1a7f --- /dev/null +++ b/assets/color.html-2e085ee9.js @@ -0,0 +1,185 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    主题色

    获取主题色基本信息1

    https://club.bilibili.com/api/query.skin.list.do

    请求方式:GET

    鉴权方式:appkey

    认证方式:仅可APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    buildnum版本APP方式必要可为6082000
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    tsnum当前时间戳
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    dataarray主题颜色列表

    data数组:

    类型内容备注
    0obj主题颜色1
    nobj主题颜色(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum颜色id
    namestr颜色名称
    is_freebool是否免费false:收费
    true:免费
    pricenum价格单位为硬币
    is_boughtbool是否已购买false:未购买
    true:已购买
    statusnum状态1:自动续费
    4:已退订
    buy_timenum购买时间毫秒时间戳
    due_timenum到期时间毫秒时间戳
    color_namestr颜色类型名称
    is_overduebool是否已到期false:未到期
    true:已到期

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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_appstr平台标识非必要可为android
    buildnum版本非必要可为6082000

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    dataarray主题颜色列表

    data数组:

    类型内容备注
    0obj主题颜色1
    nobj主题颜色(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum颜色id
    namestr颜色名称
    is_freebool是否免费false:收费
    true:免费
    pricenum价格单位为硬币
    is_boughtbool是否已购买false:未购买
    true:已购买
    statusnum状态1:自动续费
    4:已退订
    buy_timenum购买时间毫秒时间戳
    due_timenum到期时间毫秒时间戳
    color_namestr颜色类型名称
    is_overduebool是否已到期false:未到期
    true:已到期

    示例:

    curl -G 'https://api.bilibili.com/x/garb/skin/color/list' \\
    +--data-urlencode 'mobi_app=android' \\
    +--data-urlencode 'build=6082000' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    `,34),e=[o];function l(r,c){return n(),a("div",null,e)}const i=s(p,[["render",l],["__file","color.html.vue"]]);export{i as default}; diff --git a/assets/color.html-7899ab27.js b/assets/color.html-7899ab27.js new file mode 100644 index 0000000000..2c815708c1 --- /dev/null +++ b/assets/color.html-7899ab27.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-306d26a0","path":"/docs/garb/color.html","title":"主题色","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取主题色基本信息1","slug":"获取主题色基本信息1","link":"#获取主题色基本信息1","children":[]},{"level":2,"title":"获取主题色基本信息2","slug":"获取主题色基本信息2","link":"#获取主题色基本信息2","children":[]}],"git":{},"filePathRelative":"docs/garb/color.md"}');export{l as data}; diff --git a/assets/comment-d1bbcde2.svg b/assets/comment-d1bbcde2.svg new file mode 100644 index 0000000000..f5cf6b1c0a --- /dev/null +++ b/assets/comment-d1bbcde2.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/assets/config.html-27430538.js b/assets/config.html-27430538.js new file mode 100644 index 0000000000..18f9abac5f --- /dev/null +++ b/assets/config.html-27430538.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-68701008","path":"/docs/danmaku/config.html","title":"弹幕个人配置修改","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"修改弹幕个人配置(web端)","slug":"修改弹幕个人配置-web端","link":"#修改弹幕个人配置-web端","children":[]}],"git":{},"filePathRelative":"docs/danmaku/config.md"}');export{e as data}; diff --git a/assets/config.html-2b097c04.js b/assets/config.html-2b097c04.js new file mode 100644 index 0000000000..66f6a902fd --- /dev/null +++ b/assets/config.html-2b097c04.js @@ -0,0 +1,10 @@ +import{_ as t,o as d,c as s,e as n}from"./app-3168cb19.js";const a={},e=n(`

    弹幕个人配置修改

    修改弹幕个人配置(web端)

    https://api.bilibili.com/x/v2/dm/web/config

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    dm_switchbool弹幕开关非必要true:开启
    false:关闭
    blockscrollbool屏蔽类型-滚动非必要true:不屏蔽
    false:屏蔽
    blocktopbool屏蔽类型-顶部非必要同上
    blockbottombool屏蔽类型-底部非必要同上
    blockcolorbool屏蔽类型-彩色非必要同上
    blockspecialbool屏蔽类型-特殊非必要同上
    ai_switchbool是否打开智能云屏蔽非必要true:开启
    false:关闭
    ai_levelnum智能云屏蔽等级非必要区间:[0-10]
    0为默认等级(3级)
    preventshadebool防挡弹幕(底部15%)非必要true:开启
    false:关闭
    dmaskbool智能防挡弹幕(人像蒙版)非必要同上
    opacitynum弹幕不透明度非必要区间:[0-1]
    dmareanum弹幕显示区域非必要100:不重叠
    75:3/4屏
    50:半瓶
    25:1/4屏
    0:不限
    speedplusnum弹幕速度非必要区间:[0.4-1.6]
    fontsizenum字体大小非必要区间:[0.4-1.6]
    screensyncbool跟随屏幕缩放比例非必要true:开启
    false:关闭
    speedsyncbool根据播放倍速调整速度非必要同上
    fontfamilystr字体类型非必要未启用
    boldbool粗体非必要未启用
    fontbordernum描边类型非必要0:重墨
    1:描边
    2:45°投影
    drawTypestring渲染类型非必要未启用
    tsnum当前时间戳非必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    23004:数据没有修改
    messagestr错误信息默认为0
    ttlnum1

    示例:

    关闭弹幕

    curl 'https://api.bilibili.com/x/v2/dm/web/config' \\
    +--data-urlencode 'dm_switch=false' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +
    `,14),r=[e];function o(l,c){return d(),s("div",null,r)}const p=t(a,[["render",o],["__file","config.html.vue"]]);export{p as default}; diff --git a/assets/content.html-5f1b721f.js b/assets/content.html-5f1b721f.js new file mode 100644 index 0000000000..2a84a8c439 --- /dev/null +++ b/assets/content.html-5f1b721f.js @@ -0,0 +1,915 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    动态信息

    获取正在直播的已关注者

    https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users

    请求方式:GET

    认证方式:Cookie(SESSDSTA)

    url参数:

    参数名类型内容必要性备注
    sizenum每页显示数非必要默认为10

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为0
    msgnum

    data对象:

    字段类型内容备注
    countnum直播者数量
    groupstr"default"作用尚不明确
    itemsarray直播者列表
    gtnum0作用尚不明确

    data中的items数组:

    类型内容备注
    0obj第一位直播者
    nobj第(n+1)位直播者
    ……obj…………

    data中的items数组中的对象:

    字段类型内容备注
    facestr直播者头像
    linkstr直播链接
    titlestr直播标题
    uidnum直播者id
    unamestr直播者昵称

    示例:

    curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users' \\
    +--data-urlencode 'size=10' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_modenum是否开启青少年模式非必要否:0
    是:1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -6:未登录
    dataobj信息本体
    messagestr错误信息默认为0
    msgnum

    data对象:

    字段类型内容备注
    button_statementstr作用尚不明确
    itemsarray更新者列表
    gtnum0作用尚不明确

    data中的items数组:

    类型内容备注
    0obj第一位更新者
    nobj第(n+1)位更新者
    ……obj…………

    示例:

    curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_uplist' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,35),e=[o];function u(c,l){return s(),a("div",null,e)}const i=n(p,[["render",u],["__file","content.html.vue"]]);export{i as default}; diff --git a/assets/content.html-744ba654.js b/assets/content.html-744ba654.js new file mode 100644 index 0000000000..67454cbcdd --- /dev/null +++ b/assets/content.html-744ba654.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-e4fa8b6a","path":"/docs/dynamic/content.html","title":"动态信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取正在直播的已关注者","slug":"获取正在直播的已关注者","link":"#获取正在直播的已关注者","children":[]},{"level":2,"title":"获取发布新动态的已关注者","slug":"获取发布新动态的已关注者","link":"#获取发布新动态的已关注者","children":[]}],"git":{},"filePathRelative":"docs/dynamic/content.md"}');export{e as data}; diff --git a/assets/contract.html-36410063.js b/assets/contract.html-36410063.js new file mode 100644 index 0000000000..69bc1360c5 --- /dev/null +++ b/assets/contract.html-36410063.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-cf4c8e04","path":"/docs/user/contract.html","title":"加入老粉计划","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/user/contract.md"}');export{t as data}; diff --git a/assets/contract.html-688107af.js b/assets/contract.html-688107af.js new file mode 100644 index 0000000000..a838a49813 --- /dev/null +++ b/assets/contract.html-688107af.js @@ -0,0 +1,30 @@ +import{_ as t,o as s,c as a,e as n}from"./app-3168cb19.js";const d={},e=n(`

    加入老粉计划

    https://api.bilibili.com/x/v1/contract/add_contract

    请求方式:POST

    是否需要登录:

    认证方式:Cookie(SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    aidstr空串
    up_midstrUP主UID必要
    sourcestr4
    scenestr105
    platformstrweb
    mobi_appstrpc
    csrfstr用户csrf必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    158001:不满足条件
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    allow_messagebooltrue
    input_textstrUP主加油!看好你噢
    input_titlestr感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧

    示例:

    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'
    +
    点击查看
    {
    +  "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):

    参数名类型内容必要性备注
    aidstr空串
    up_midstrUP主UID必要
    sourcestr4
    scenestr105
    contentstr留言内容必要
    csrfstr用户csrf必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    158005:您跟up主还不是契约关系
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    success_toaststr提交成功,UP主已收到留言~

    示例:

    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'
    +
    点击查看
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "success_toast": "提交成功,UP主已收到留言~"
    +  }
    +}
    +
    `,29),o=[e];function p(r,c){return s(),a("div",null,o)}const i=t(d,[["render",p],["__file","contract.html.vue"]]);export{i as default}; diff --git a/assets/cookie_refresh.html-89ab1a74.js b/assets/cookie_refresh.html-89ab1a74.js new file mode 100644 index 0000000000..6b6391e20e --- /dev/null +++ b/assets/cookie_refresh.html-89ab1a74.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-16551798","path":"/docs/login/cookie_refresh.html","title":"Web端Cookie刷新","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"刷新步骤(伪代码)","slug":"刷新步骤-伪代码","link":"#刷新步骤-伪代码","children":[]},{"level":2,"title":"检查是否需要刷新","slug":"检查是否需要刷新","link":"#检查是否需要刷新","children":[]},{"level":2,"title":"生成CorrespondPath算法","slug":"生成correspondpath算法","link":"#生成correspondpath算法","children":[{"level":3,"title":"算法细节","slug":"算法细节","link":"#算法细节","children":[]},{"level":3,"title":"相关Demo","slug":"相关demo","link":"#相关demo","children":[]},{"level":3,"title":"Kotlin","slug":"kotlin","link":"#kotlin","children":[]},{"level":3,"title":"Go","slug":"go","link":"#go","children":[]},{"level":3,"title":"Java","slug":"java","link":"#java","children":[]}]},{"level":2,"title":"获取refresh_csrf","slug":"获取refresh-csrf","link":"#获取refresh-csrf","children":[]},{"level":2,"title":"刷新Cookie","slug":"刷新cookie","link":"#刷新cookie","children":[]},{"level":2,"title":"确认更新","slug":"确认更新","link":"#确认更新","children":[]}],"git":{},"filePathRelative":"docs/login/cookie_refresh.md"}');export{e as data}; diff --git a/assets/cookie_refresh.html-9bad92a2.js b/assets/cookie_refresh.html-9bad92a2.js new file mode 100644 index 0000000000..b1a842c27f --- /dev/null +++ b/assets/cookie_refresh.html-9bad92a2.js @@ -0,0 +1,297 @@ +import{_ as p,r as o,o as c,c as i,a as n,b as s,d as t,e}from"./app-3168cb19.js";const l={},u=n("h1",{id:"web端cookie刷新",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#web端cookie刷新","aria-hidden":"true"},"#"),s(" Web端Cookie刷新")],-1),r=n("p",null,[s("自从 2023 以来,社区反馈似乎 Web 端的 Cookie 会随着一些敏感接口的访问逐渐失效,而在 Web 页面上会判断 Cookie 是否需要刷新,如需刷新则会以动态加载 iframe 方式实现,同时登录(二维码 / 密码 / 短信验证码等)接口也会返回"),n("code",null,"refresh_token"),s("字段,需要持久化保存,是一种官方的风控机制实现")],-1),d={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/524",target:"_blank",rel:"noopener noreferrer"},k=e(`

    cookie 不会主动刷新的,只要他没有调用下面的刷新接口就不会刷新。也就是说,你只要不再打开浏览器,或者直接把 localStorage 的 ac_time_value 字段删除了。那么 cookie 在真的失效前(登录过期、账号风控等强制下线)都是不变化的。

    刷新步骤(伪代码)

    cookie, refresh_token = 进行登录操作() # can be 二维码 / 密码 / 短信验证码
    +
    +while True:
    +    if 每日第一次访问接口:
    +        if 检查是否需要刷新(cookie):
    +            CorrespondPath = 生成CorrespondPath(当前毫秒时间戳)
    +            refresh_csrf = 获取refresh_csrf(CorrespondPath, cookie)
    +            refresh_token_old = refresh_token # 这一步必须保存旧的 refresh_token 备用
    +            cookie, refresh_token = 刷新Cookie(refresh_token, refresh_csrf, cookie)
    +            确认更新(refresh_token_old, cookie) # 这一步需要新的 Cookie 以及旧的 refresh_token
    +            SSO站点跨域登录(cookie)
    +    do_somethings(cookie) # 其他业务逻辑处理
    +

    检查是否需要刷新

    https://passport.bilibili.com/x/passport-login/web/cookie/info

    请求方式:GET

    鉴权方式:Cookie

    url 参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于 Cookie)非必要位于 Cookie 中的bili_jct字段

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    refreshbool是否应该刷新 Cookietrue:需要刷新 Cookie
    false:无需刷新 Cookie
    timestampnum当前毫秒时间戳用于获取 refresh_csrf

    示例:

    curl -G 'https://passport.bilibili.com/x/passport-login/web/cookie/info' \\
    +	--data-urlencode 'csrf=xxx' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "refresh": false,
    +        "timestamp": 1684466082562
    +    }
    +}
    +

    生成CorrespondPath算法

    `,18),b={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/524",target:"_blank",rel:"noopener noreferrer"},v=n("p",null,"https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_rsa_encrypt_bg.wasm",-1),m=n("p",null,"https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_ras_umd.js",-1),h=n("h3",{id:"算法细节",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#算法细节","aria-hidden":"true"},"#"),s(" 算法细节")],-1),g=n("code",null,"refresh_${timestamp}",-1),f=n("code",null,"timestamp",-1),y={href:"https://datatracker.ietf.org/doc/html/rfc3447#section-7.1",target:"_blank",rel:"noopener noreferrer"},q=n("p",null,"JWK 格式:",-1),E=n("blockquote",null,[n("p",null,'{ "kty": "RSA", "n": "y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE", "e": "AQAB" }')],-1),_=n("p",null,"PEM 格式:",-1),S=n("blockquote",null,[n("p",null,"-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71 nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40 JNrRuoEUXpabUzGB8QIDAQAB -----END PUBLIC KEY-----")],-1),C=n("h3",{id:"相关demo",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#相关demo","aria-hidden":"true"},"#"),s(" 相关Demo")],-1),x=n("a",{href:"#JavaScript"},"JavaScript",-1),w=n("a",{href:"#Python"},"Python",-1),A=n("a",{href:"#vercel%E4%BA%91%E5%87%BD%E6%95%B0"},"Vercel 云函数",-1),P={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/524",target:"_blank",rel:"noopener noreferrer"},B=e(`

    JavaScript

    const publicKey = await crypto.subtle.importKey(
    +  "jwk",
    +  {
    +    kty: "RSA",
    +    n: "y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE",
    +    e: "AQAB",
    +  },
    +  { name: "RSA-OAEP", hash: "SHA-256" },
    +  true,
    +  ["encrypt"],
    +)
    +
    +async function getCorrespondPath(timestamp) {
    +  const data = new TextEncoder().encode(\`refresh_\${timestamp}\`);
    +  const encrypted = new Uint8Array(await crypto.subtle.encrypt({ name: "RSA-OAEP" }, publicKey, data))
    +  return encrypted.reduce((str, c) => str + c.toString(16).padStart(2, "0"), "")
    +}
    +
    +const ts = Date.now()
    +console.log(await getCorrespondPath(ts))
    +
    b77f21ab5b7ce7879c410b2311dd6e7ea1a2cd1cd941073db067f4c3279fdabca3a06dfa744168ee14ad050b9f4889bd4edb8e76eb597fdd18c16804d82566b55c6dba8e225d838aa93d8e5b31cf7c56720db8244d92373f4944e0561f6ca5bf721a36ac079786060fc853605ccd1ddcb33f54617de6aedd44e3b9850d13b45f
    +

    Python

    需要pycryptodome依赖

    from Crypto.Cipher import PKCS1_OAEP
    +from Crypto.PublicKey import RSA
    +from Crypto.Hash import SHA256
    +import binascii
    +import time
    +
    +key = RSA.importKey('''\\
    +-----BEGIN PUBLIC KEY-----
    +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
    +Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
    +nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
    +JNrRuoEUXpabUzGB8QIDAQAB
    +-----END PUBLIC KEY-----''')
    +
    +def getCorrespondPath(ts):
    +    cipher = PKCS1_OAEP.new(key, SHA256)
    +    encrypted = cipher.encrypt(f'refresh_{ts}'.encode())
    +    return binascii.b2a_hex(encrypted).decode()
    +
    +ts = round(time.time() * 1000)
    +print(getCorrespondPath(ts))
    +
    47bbd615f333d6a2c597bbb46ad47a6e59752a305a2f545d3ba5d49ca055309347796f80d257613696d36170c57443a0e9dea2b47f83b0b4224d431e46124fadd9a24c8fa468147e8bf2d2501eaacae43310e19bf58fc4a728d80c90b9401afcfc1536ba9a2f6438ea53c0b2652f8b8d01c87355dd5a5da51de998b1a35d519a
    +

    Kotlin

    import java.security.KeyFactory
    +import java.security.spec.MGF1ParameterSpec
    +import java.security.spec.X509EncodedKeySpec
    +import java.util.*
    +import javax.crypto.Cipher
    +import javax.crypto.spec.OAEPParameterSpec
    +import javax.crypto.spec.PSource
    +
    +
    +fun main() {
    +    println(getCorrespondPath(System.currentTimeMillis()))
    +}
    +
    +fun getCorrespondPath(timestamp: Long): String {
    +    val publicKeyPEM = """
    +        -----BEGIN PUBLIC KEY-----
    +        MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
    +        Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
    +        nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
    +        JNrRuoEUXpabUzGB8QIDAQAB
    +        -----END PUBLIC KEY-----
    +    """.trimIndent()
    +
    +    val publicKey = KeyFactory.getInstance("RSA").generatePublic(
    +        X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyPEM
    +            .replace("-----BEGIN PUBLIC KEY-----", "")
    +            .replace("-----END PUBLIC KEY-----", "")
    +            .replace("\\n", "")
    +            .trim()))
    +    )
    +
    +    val cipher = Cipher.getInstance("RSA/ECB/OAEPPadding").apply {
    +        init(Cipher.ENCRYPT_MODE,
    +            publicKey,
    +            OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)
    +        )
    +    }
    +
    +    return cipher.doFinal("refresh_$timestamp".toByteArray()).joinToString("") { "%02x".format(it) }
    +}
    +
    1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7
    +

    Go

    package main
    +
    +import (
    +	"crypto/rand"
    +	"crypto/rsa"
    +	"crypto/sha256"
    +	"crypto/x509"
    +	"encoding/hex"
    +	"encoding/pem"
    +	"fmt"
    +	"time"
    +)
    +
    +func main() {
    +	result, err := getCorrespondPath(time.Now().UnixMilli())
    +	if err != nil {
    +		panic(err)
    +	}
    +	fmt.Println(result)
    +}
    +
    +func getCorrespondPath(ts int64) (string, error) {
    +	const publicKeyPEM = \`
    +-----BEGIN PUBLIC KEY-----
    +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
    +Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
    +nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
    +JNrRuoEUXpabUzGB8QIDAQAB
    +-----END PUBLIC KEY-----
    +\`
    +	pubKeyBlock, _ := pem.Decode([]byte(publicKeyPEM))
    +	hash := sha256.New()
    +	random := rand.Reader
    +	msg := []byte(fmt.Sprintf("refresh_%d", ts))
    +	var pub *rsa.PublicKey
    +	pubInterface, parseErr := x509.ParsePKIXPublicKey(pubKeyBlock.Bytes)
    +	if parseErr != nil {
    +		return "", parseErr
    +	}
    +	pub = pubInterface.(*rsa.PublicKey)
    +	encryptedData, encryptErr := rsa.EncryptOAEP(hash, random, pub, msg, nil)
    +	if encryptErr != nil {
    +		return "", encryptErr
    +	}
    +	return hex.EncodeToString(encryptedData), nil
    +}
    +
    97759947aa357ed5d88cf9bf1172737570b7bba2d6788d39006f082b2b25ddf53b581f1f0c61ed8573317485ef525d2789faa25a277b4602a4b9cbf837681093a03e96cb9773a11df4bb1e20f1587180b3e958194de922d7dd94d0a2f0b9b0ef74e426e8041f99b99e7c02407ef4ab38040e61be81e4fdfbdb73461e3a2ad810
    +

    Java

    import javax.crypto.Cipher;
    +import javax.crypto.spec.OAEPParameterSpec;
    +import javax.crypto.spec.PSource;
    +import java.math.BigInteger;
    +import java.security.KeyFactory;
    +import java.security.PublicKey;
    +import java.security.spec.MGF1ParameterSpec;
    +import java.security.spec.X509EncodedKeySpec;
    +import java.util.Base64;
    +
    +public class CookieRefresh {
    +    private static final String PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\\n" +
    +            "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg\\n" +
    +            "Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71\\n" +
    +            "nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40\\n" +
    +            "JNrRuoEUXpabUzGB8QIDAQAB\\n" +
    +            "-----END PUBLIC KEY-----";
    +
    +    public static void main(String[] args) {
    +        try {
    +            String correspondPath = getCorrespondPath(String.format("refresh_%d", System.currentTimeMillis()), PUBLIC_KEY);
    +            System.out.println(correspondPath);
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +
    +    public static String getCorrespondPath(String plaintext, String publicKeyStr) throws Exception {
    +        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    +        publicKeyStr = publicKeyStr
    +                .replace("-----BEGIN PUBLIC KEY-----", "")
    +                .replace("-----END PUBLIC KEY-----", "")
    +                .replace("\\n", "")
    +                .trim();
    +        byte[] publicBytes = Base64.getDecoder().decode(publicKeyStr);
    +        X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicBytes);
    +        PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
    +
    +        String algorithm = "RSA/ECB/OAEPPadding";
    +        Cipher cipher = Cipher.getInstance(algorithm);
    +        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    +
    +        // Encode the plaintext to bytes
    +        byte[] plaintextBytes = plaintext.getBytes("UTF-8");
    +
    +        // Add OAEP padding to the plaintext bytes
    +        OAEPParameterSpec oaepParams = new OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);
    +        cipher.init(Cipher.ENCRYPT_MODE, publicKey, oaepParams);
    +        // Encrypt the padded plaintext bytes
    +        byte[] encryptedBytes = cipher.doFinal(plaintextBytes);
    +        // Convert the encrypted bytes to a Base64-encoded string
    +        return new BigInteger(1, encryptedBytes).toString(16);
    +    }
    +}
    +
    f87666152da692735123f4e49053e5a98c16854673b2e632f31a3ff0c029640772873661a9a8412db6be447a0bfa03a295d15548cbfd2bb35634e98ba5f25b1205519d6e6119b483f4c516c1e106d45b04ff98c73560949d379d3edaf3c0ecd10a1d46134fb9ca443122ab33c16d1dd48280496f949ed960a2fbcd65f10935e
    +

    vercel云函数

    curl -G 'https://wasm-rsa.vercel.app/api/rsa' \\
    +	--data-urlencode "t=$((\`date '+%s'\`*1000+\`date '+%N'\`/1000000))"
    +
    {
    +    "timestamp": "1684468084078",
    +    "hash": "a768efe5114ef8610f9ed9ebc28c00827375f4a3448ec4ab17958cacc4fde9898e5b7aa27f649426bba1acae4aa222aafaff7d528669b15249de0b2b60d86618557d8dc90684db4ec68e8d98e41d94f1c97d1d431c288e595ceb522d033822442a9e1ee150b32771a83fbf65c13329e9fda080fbe3bc85c49c1de7ab148d228f",
    +    "code": 0
    +}
    +

    获取refresh_csrf

    https://www.bilibili.com/correspond/1/{correspondPath}

    请求方式:GET

    鉴权方式:Cookie

    path 参数:

    参数名类型内容必要性备注
    correspondPathstr使用当前毫秒时间戳生成的签名必要生成CorrespondPath算法 加密获得

    将参数correspondPath拼接在 https://www.bilibili.com/correspond/1/ 后进行请求,例如

    https://www.bilibili.com/correspond/1/0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95

    请求该 url 会返回一个 html 页面,通常由 iframe 方式加载,它通过 SSR 方式返回一个实时刷新口令refresh_csrf存放于 html 标签中,并在 Client 端通过 js 请求 RestAPI 完成一些列的提交刷新、确认、SSO 站点登录等操作

    若参数correspondPath错误或过期,则返回一个 404 Page

    以下为返回的参数:

    标签 id内容xpath备注
    1-namerefresh_csrf//div[id='1-name']/text()实时刷新口令
    用于更新 Cookie

    示例:

    correspondPath='0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95'
    +
    +curl -G "https://www.bilibili.com/correspond/1/$correspondPath" \\
    +	-b 'SESSDATA=xxx'
    +
    <!DOCTYPE html>
    +<html lang="zh-Hans">
    +
    +<head>
    +  <meta name="spm_prefix" content="333.1193">
    +  <link
    +    href="//s1.hdslb.com/bfs/static/jinkela/token-iframe/css/token-iframe.1.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.css"
    +    rel="stylesheet">
    +</head>
    +<title>Correspond</title>
    +<script type="text/javascript"
    +  src="//www.bilibili.com/gentleman/polyfill.js?features=Promise%2CObject.assign%2CString.prototype.includes%2CNumber.isNaN2%CglobalThis"></script>
    +
    +<body>
    +  <div id="1-name">b0cc8411ded2f9db2cff2edb3123acac</div>
    +  <div id="token-iframe-app"></div>
    +  <script type="text/javascript"
    +    src="//s1.hdslb.com/bfs/static/jinkela/token-iframe/2.token-iframe.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.js"></script>
    +  <script type="text/javascript"
    +    src="//s1.hdslb.com/bfs/static/jinkela/token-iframe/token-iframe.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.js"></script>
    +</body>
    +<script type="text/javascript">window.reportMsgObj = {};
    +  window.reportConfig = {
    +    sample: 1,
    +    scrollTracker: true,
    +    msgObjects: 'reportMsgObj',
    +  };
    +
    +  let reportScript = document.createElement('script');
    +  reportScript.src = '//s1.hdslb.com/bfs/seed/log/report/log-reporter.js';
    +  document.getElementsByTagName('body')[0].appendChild(reportScript);</script>
    +
    +</html>
    +

    所以当前账号的实时刷新口令refresh_csrfb0cc8411ded2f9db2cff2edb3123acac

    刷新Cookie

    https://passport.bilibili.com/x/passport-login/web/cookie/refresh

    请求方式:POST

    鉴权方式:Cookie

    刷新成功后会设置以下 Cookie 项:

    sidDedeUserIDDedeUserID__ckMd5SESSDATAbili_jct

    正文参数 (application/x-www-form-urlencoded)或 url 参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token必要位于 Cookie 中的bili_jct字段
    refresh_csrfstr实时刷新口令必要通过 获取refresh_csrf 获得
    sourcestr访问来源?必要一般为main_web
    refresh_tokenstr持久化刷新口令必要localStorage 中的ac_time_value字段,在登录成功后返回并保存

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    86095:refresh_csrf 错误或 refresh_token 与 cookie 不匹配
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    statusnum0
    messagestr
    refresh_tokenstr新的持久化刷新口令将存储于 localStorage 中的ac_time_value字段,以便下次使用

    示例:

    curl -i 'https://passport.bilibili.com/x/passport-login/web/cookie/refresh' \\
    +	--data-urlencode 'csrf=f610640a37f51f6266f6b83cfc5eedbb' \\
    +	--data-urlencode 'refresh_csrf=b0cc8411ded2f9db2cff2edb3123acac' \\
    +	--data-urlencode 'source=main_web' \\
    +	--data-urlencode 'refresh_token=45240a041836905fe953e3b98b83d751' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:

    http 响应(关键信息已做脱敏处理):

    HTTP/2 200
    +date: Fri, 19 May 2023 07:34:11 GMT
    +content-type: application/json; charset=utf-8
    +content-length: 116
    +bili-status-code: 0
    +bili-trace-id: 17f4251365646726
    +set-cookie: SESSDATA=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT; HttpOnly; Secure
    +set-cookie: bili_jct=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +set-cookie: DedeUserID=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +set-cookie: DedeUserID__ckMd5=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +set-cookie: sid=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +x-bili-trace-id: 3f6f6174aaa087b517f4251365646726
    +expires: Fri, 19 May 2023 07:34:10 GMT
    +cache-control: no-cache
    +x-cache-webcdn: BYPASS from blzone03
    +
    +{"code":0,"message":"0","ttl":1,"data":{"status":0,"message":"","refresh_token":"ae1bd1149b56af9743ffe7bbbeff3e51"}}
    +

    JSON Payload:

    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "status": 0,
    +        "message": "",
    +        "refresh_token": "ae1bd1149b56af9743ffe7bbbeff3e51"
    +    }
    +}
    +

    确认更新

    https://passport.bilibili.com/x/passport-login/web/confirm/refresh

    请求方式:POST

    鉴权方式:Cookie

    该步操作将让旧的refresh_token对应的 Cookie 失效

    正文参数 (application/x-www-form-urlencoded)或 url 参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于 cookie)必要从新的 cookie 中获取,位于 Cookie 中的bili_jct字段
    refresh_tokenstr旧的持久化刷新口令必要在刷新前 localStorage 中的ac_time_value获取,并非刷新后返回的值

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    curl 'https://passport.bilibili.com/x/passport-login/web/confirm/refresh' \\
    +	--data-urlencode 'csrf=1e9658858e6da76be64bd92cdc0fa324' \\
    +	--data-urlencode 'refresh_token=45240a041836905fe953e3b98b83d751' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,64);function j(K,D){const a=o("ExternalLinkIcon");return c(),i("div",null,[u,r,n("p",null,[s("感谢 "),n("a",d,[s("#524"),t(a)]),s(" 提供相关研究报告以及逆向工程结果")]),k,n("p",null,[s("该算法逆向于以下 wasm 以及 JavaScript bind 接口,抓取于官方 Web 首页中,感谢 "),n("a",b,[s("#524"),t(a)]),s(" 提供")]),v,m,h,n("p",null,[s("将"),g,s("作为消息体(参数"),f,s("为当前毫秒时间戳),用下方 PubKey 进行 "),n("a",y,[s("RSA-OAEP"),t(a)]),s(" 算法加密,之后密文通过小写 Base16 编码为字符串")]),q,E,_,S,C,n("p",null,[s("该 Demo 提供 "),x,s("、"),w,s(" 以及 "),A,s(",感谢 "),n("a",P,[s("#524"),t(a)]),s(" 提供")]),B])}const N=p(l,[["render",j],["__file","cookie_refresh.html.vue"]]);export{N as default}; diff --git a/assets/dance-26e4156b.svg b/assets/dance-26e4156b.svg new file mode 100644 index 0000000000..87a5ad12eb --- /dev/null +++ b/assets/dance-26e4156b.svg @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/assets/danmaku_proto.html-6ea771c0.js b/assets/danmaku_proto.html-6ea771c0.js new file mode 100644 index 0000000000..6dacfef267 --- /dev/null +++ b/assets/danmaku_proto.html-6ea771c0.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-bf935f48","path":"/docs/danmaku/danmaku_proto.html","title":"protobuf弹幕","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取实时弹幕","slug":"获取实时弹幕","link":"#获取实时弹幕","children":[]}],"git":{},"filePathRelative":"docs/danmaku/danmaku_proto.md"}');export{t as data}; diff --git a/assets/danmaku_proto.html-d56e750f.js b/assets/danmaku_proto.html-d56e750f.js new file mode 100644 index 0000000000..de7e6981f4 --- /dev/null +++ b/assets/danmaku_proto.html-d56e750f.js @@ -0,0 +1,30 @@ +import{_ as p,r as o,o as r,c as l,a as n,b as t,d as s,w as i,e as a}from"./app-3168cb19.js";const c={},u=a('

    protobuf弹幕

    2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕 API,网页端弹幕显示的上限变为原弹幕池上限的两倍。

    新的 API 是以 6min 为一个单位加载,即每次加载 6min 内的弹幕

    获取实时弹幕

    https://api.bilibili.com/x/v2/dm/web/seg.so (web端)

    https://api.bilibili.com/x/v2/dm/wbi/web/seg.so (web 端新接口,需要 wbi 认证)

    https://api.bilibili.com/x/v2/dm/list/seg.so (APP端)

    https://i0.hdslb.com/bfs/dm/{data}.bin (BAS/代码弹幕专包)

    请求方式:GET认证方式:半匿名(部分视频在无 Cookie: SESSDATA 时只返回部分弹幕)

    此接口与漫画弹幕相同

    ',7),m=n("code",null,"pool=1",-1),b=n("code",null,"mode=1-7",-1),k=n("code",null,"pool=2",-1),v=n("code",null,"mode=8",-1),h=n("code",null,"pool=2",-1),_=n("code",null,"mode=9",-1),g=a('

    注:仅获取 6min 的整数倍时间内的弹幕,6min 内最多弹幕数为 6000 条(如第一包中弹幕progress值域为0-360000)

    url参数:

    参数名类型内容必要性备注
    typenum弹幕类必要1:视频弹幕
    2:漫画弹幕
    oidnum视频 cid必要
    pidnum稿件 avid非必要
    segment_indexnum分包必要6min 一包
    pull_modenum(?)非必要
    psnum(?)非必要
    penum(?)非必要

    proto回复:

    proto定义见:bilibili.community.service.dm.v1.DmSegMobileReply

    ',5),f={href:"https://protogen.marcgravell.com/",target:"_blank",rel:"noopener noreferrer"},y=n("code",null,"_pb2.py",-1),x={href:"https://pypi.org/project/protobuf/",target:"_blank",rel:"noopener noreferrer"},w=a(`

    消息DmSegMobileReply

    名称类型含义备注
    elemsrepeated DanmakuElem弹幕条目

    消息DanmakuElem

    名称类型含义备注
    idint64弹幕 dmid唯一 可用于操作参数
    progressint32视频内弹幕出现时间毫秒
    modeint32弹幕类型1 2 3:普通弹幕
    4:底部弹幕
    5:顶部弹幕
    6:逆向弹幕
    7:高级弹幕
    8:代码弹幕
    9:BAS 弹幕(仅限于特殊弹幕专包)
    fontsizeint32弹幕字号18:小
    25:标准
    36:大
    coloruint32弹幕颜色十进制 RGB888 值
    midHashstring发送者 mid 的 HASH用于屏蔽用户和查看用户发送的所有弹幕,也可反查用户id
    contentstring弹幕内容utf-8编码
    ctimeint64弹幕发送时间时间戳
    weightint32权重用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
    范围:[0-10]
    值越大权重越高
    actionstring动作?
    poolint32弹幕池0:普通池
    1:字幕池
    2:特殊池(代码/BAS弹幕)
    idStrstring弹幕 dmid字串形式
    唯一 可用于操作参数
    attrint32弹幕属性位bit0:保护
    bit1:直播
    bit2:高赞
    animationstring动画?

    示例:

    获取视频av810872(cid=1176840)(炮姐)的实时弹幕分包 1

    注:以下proto定义需要编译,bilibili.community.service.dm.v1.dm_pb2并非通过 pypi 安装

    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
    +
    `,10);function S(A,q){const d=o("RouterLink"),e=o("ExternalLinkIcon");return r(),l("div",null,[u,n("p",null,[t("只能返回普通弹幕("),m,t(),b,t(")和代码弹幕("),k,t(),v,t("),BAS弹幕("),h,t(),_,t(")请从"),s(d,{to:"/docs/danmaku/danmaku_view_proto.html"},{default:i(()=>[t("弹幕元数据")]),_:1}),t("中获取")]),n("p",null,[t("互动弹幕(UP 主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从"),s(d,{to:"/docs/danmaku/danmaku_view_proto.html"},{default:i(()=>[t("弹幕元数据")]),_:1}),t("中获取")]),g,n("ul",null,[n("li",null,[n("p",null,[n("a",f,[t("protogen.marcgravell"),s(e)]),t(": 在线编译 protogen 工具, 无需再安装本地编译器(生成文件需加后缀"),y,t("才可使用)")])]),n("li",null,[n("p",null,[n("a",x,[t("protobuf pip"),s(e)]),t(": 可一键安装的 Python 的 protogen 解析库")])])]),w])}const D=p(c,[["render",S],["__file","danmaku_proto.html.vue"]]);export{D as default}; diff --git a/assets/danmaku_view_proto.html-72774a23.js b/assets/danmaku_view_proto.html-72774a23.js new file mode 100644 index 0000000000..0920b4b07b --- /dev/null +++ b/assets/danmaku_view_proto.html-72774a23.js @@ -0,0 +1,120 @@ +import{_ as o,r as e,o as d,c as i,a as n,b as s,d as t,w as l,e as c}from"./app-3168cb19.js";const r={},u=n("h1",{id:"弹幕元数据",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#弹幕元数据","aria-hidden":"true"},"#"),s(" 弹幕元数据")],-1),k=n("p",null,"2020-09-25 B站更新了互动弹幕功能,包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能",-1),m=n("p",null,"详情见:",-1),b={href:"https://www.bilibili.com/read/cv7728299",target:"_blank",rel:"noopener noreferrer"},v={href:"https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html",target:"_blank",rel:"noopener noreferrer"},h=c(`

    获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端)

    https://api.bilibili.com/x/v2/dm/web/view

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    typenum弹幕类必要1:视频弹幕
    oidnum视频cid必要
    pidnum稿件avid非必要

    proto回复:

    消息DmWebViewReply

    名称类型含义备注
    stateint32弹幕开放状态0:开放弹幕
    1:禁止弹幕
    textstring
    textSidestring
    dmSgeDmSegConfig分段弹幕包信息?
    flagDanmakuFlagConfig
    specialDmsrepeated stringBAS(代码)弹幕专包url
    checkBoxbool
    countint64实际弹幕总数具有1500-6000不等的上限
    commandDmsrepeated CommandDm互动弹幕条目
    dmSettingDanmuWebPlayerConfig弹幕个人配置仅登录后存在

    消息dmSge

    名称类型含义备注
    pageSizeint64分段时间?单位为毫秒
    totalint64最大分页数?

    消息flag

    名称类型含义备注
    recFlagint32
    recTextstring
    recSwitchint32

    消息commandDms

    名称类型含义备注
    idint64弹幕dmid
    oidint64视频cid
    midint64发送者mid
    commandstring弹幕指令#UP#:UP主头像弹幕
    #LINK#:关联视频弹幕
    #ATTENTION#:视频内嵌引导关注按钮
    contentstring弹幕文字
    progressint32弹幕出现时间单位为毫秒
    ctimestring创建时间?此项为空
    mtimestring修改时间?此项为空
    extrastring弹幕负载数据json序列字串
    idStrstring弹幕dmid字串形式

    extrajson序列:

    类型为【UP主头像弹幕】时:

    字段类型内容备注
    iconstrUP主头像url

    类型为【关联视频弹幕】时:

    字段类型内容备注
    aidnum关联视频的avid
    titlestr关联视频的标题
    iconstr关联视频按钮图片url
    bvidstr关联视频的bvid

    类型为【视频内嵌引导关注按钮】时:

    字段类型内容备注
    durationnum持续时间单位为毫秒
    posXnumX坐标区间:[118-549]
    posYnumY坐标区间:[82-293]
    iconstr按钮图片url不应该是关注按钮吗,但这个是圆形的
    typenum关注按钮类型0:仅关注
    1:仅三连
    2:关注+三连

    消息dmSetting

    名称类型含义备注
    dmSwitchbool弹幕开关true:开启
    false:关闭
    aiSwitchbool智能云屏蔽同上
    aiLevelint32智能云屏蔽级别区间:[1-10]
    blocktopbool屏蔽类型-顶部true:不屏蔽
    false:屏蔽
    blockscrollbool屏蔽类型-滚动同上
    blockbottombool屏蔽类型-底部同上
    blockcolorbool屏蔽类型-彩色同上
    blockspecialbool屏蔽类型-特殊同上
    preventshadebool防挡弹幕(底部15%)true:开启
    false:关闭
    dmaskbool智能防挡弹幕(人像蒙版)同上
    opacityfloat弹幕不透明度区间:[0-1]
    dmareaint32弹幕显示区域100:不重叠
    75:3/4屏
    50:半瓶
    25:1/4屏
    0:不限
    speedplusfloat弹幕速度区间:[0.4-1.6]
    fontsizefloat字体大小区间:[0.4-1.6]
    screensyncbool跟随屏幕缩放比例
    speedsyncbool根据播放倍速调整速度
    fontfamilystring字体类型?未启用
    boldbool粗体?未启用
    fontborderint32描边类型0:重墨
    1:描边
    2:45°投影
    drawTypestring渲染类型?未启用

    protobuf结构体:

    web_dmview.proto

    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)的弹幕元数据

    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)的所有互动弹幕

    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(代码)弹幕专包

    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
    +
    `,43);function g(y,f){const a=e("ExternalLinkIcon"),p=e("RouterLink");return d(),i("div",null,[u,k,m,n("ul",null,[n("li",null,[n("a",b,[s("【客户端更新】6.10版本更新!UP主支持发布关联视频弹幕"),t(a)])]),n("li",null,[n("a",v,[s("引导关注卡片"),t(a)])])]),h,n("p",null,[s("使用"),t(p,{to:"/docs/danmaku/danmaku_proto.html#%E8%8E%B7%E5%8F%96%E5%AE%9E%E6%97%B6%E5%BC%B9%E5%B9%95"},{default:l(()=>[s("普通分段包弹幕")]),_:1}),s("的proto结构体反序列化此bin数据")])])}const _=o(r,[["render",g],["__file","danmaku_view_proto.html.vue"]]);export{_ as default}; diff --git a/assets/danmaku_view_proto.html-9762318d.js b/assets/danmaku_view_proto.html-9762318d.js new file mode 100644 index 0000000000..c6f4808c7b --- /dev/null +++ b/assets/danmaku_view_proto.html-9762318d.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-0c967c40","path":"/docs/danmaku/danmaku_view_proto.html","title":"弹幕元数据","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端)","slug":"获取弹幕个人配置与互动弹幕及bas-代码-弹幕专包-web端","link":"#获取弹幕个人配置与互动弹幕及bas-代码-弹幕专包-web端","children":[]},{"level":2,"title":"实例","slug":"实例","link":"#实例","children":[{"level":3,"title":"获取互动弹幕","slug":"获取互动弹幕","link":"#获取互动弹幕","children":[]},{"level":3,"title":"获取BAS(代码)弹幕专包","slug":"获取bas-代码-弹幕专包","link":"#获取bas-代码-弹幕专包","children":[]}]}],"git":{},"filePathRelative":"docs/danmaku/danmaku_view_proto.md"}');export{e as data}; diff --git a/assets/danmaku_xml.html-a2cff1ad.js b/assets/danmaku_xml.html-a2cff1ad.js new file mode 100644 index 0000000000..3e4cf1488f --- /dev/null +++ b/assets/danmaku_xml.html-a2cff1ad.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-6300ee4d","path":"/docs/danmaku/danmaku_xml.html","title":"xml弹幕","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取实时弹幕1","slug":"获取实时弹幕1","link":"#获取实时弹幕1","children":[]},{"level":2,"title":"获取实时弹幕2","slug":"获取实时弹幕2","link":"#获取实时弹幕2","children":[]},{"level":2,"title":"弹幕格式","slug":"弹幕格式","link":"#弹幕格式","children":[{"level":3,"title":"xml格式结构","slug":"xml格式结构","link":"#xml格式结构","children":[]},{"level":3,"title":"属性 p","slug":"属性-p","link":"#属性-p","children":[]},{"level":3,"title":"web版标准颜色","slug":"web版标准颜色","link":"#web版标准颜色","children":[]}]}],"git":{},"filePathRelative":"docs/danmaku/danmaku_xml.md"}');export{l as data}; diff --git a/assets/danmaku_xml.html-e97b4963.js b/assets/danmaku_xml.html-e97b4963.js new file mode 100644 index 0000000000..21680bf0eb --- /dev/null +++ b/assets/danmaku_xml.html-e97b4963.js @@ -0,0 +1,33 @@ +import{_ as n,o as a,c as t,e as s}from"./app-3168cb19.js";const p={},o=s(`

    xml弹幕

    实时弹幕池容量有限(根据视频类型500-8000条不等),占满后再发送会使实时弹幕池底部的弹幕压入历史弹幕池(类似于堆栈)

    获取实时弹幕1

    https://api.bilibili.com/x/v1/dm/list.so

    请求方式:GET

    使用deflate压缩,注意解码

    url参数:

    参数名类型内容必要性备注
    oidnum视频cid必要

    示例:

    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路径:

    参数名类型内容必要性备注
    cidnum视频cid必要

    示例:

    curl 'https://comment.bilibili.com/144541892.xml'
    +--compressed -o 'danmaku.xml'
    +

    xml回复:

    查看响应示例:
    <?xml version="1.0" encoding="UTF-8"?>
    +<i>
    +    <chatserver>chat.bilibili.com</chatserver>
    +    <chatid>144541892</chatid>
    +    <mission>0</mission>
    +    <maxlimit>1500</maxlimit>
    +    <state>0</state>
    +    <real_name>0</real_name>
    +    <source>e-r</source>
    +    <d p="490.19100,1,25,16777215,1584268892,0,a16fe0dd,29950852386521095">从结尾回来看这里,更感动了!</d>
    +    <d p="18.77300,1,25,16777215,1584268920,0,4fe08d3,29950867226492933">咦三体居然还有动画</d>
    +    <d p="52.88400,1,25,16777215,1584268954,0,4fe08d3,29950885214289927">哈哈哈哈开心</d>
    +    <d p="25.51600,1,25,16777215,1584268957,0,e4b18b37,29950886612566021">红岸么</d>
    +    <d p="144.45200,1,25,16777215,1584269076,0,e4b18b37,29950948716576775">我就是想看我的世界里水滴长啥样</d>
    +    <d p="112.64100,1,25,16777215,1584269109,0,96606007,29950966302244871">有手指?</d>
    +    <d p="222.84000,1,25,16777215,1584269154,0,e4b18b37,29950989809745923">侦测到在途的聚变打击</d>
    +    <d p="284.77800,1,25,16777215,1584269216,0,e4b18b37,29951022237483011">都是虫子</d>
    +    <d p="398.00500,1,25,16777215,1584269329,0,e4b18b37,29951081615196163">ocean</d>
    +    <d p="432.17900,1,25,16777215,1584269363,0,e4b18b37,29951099571535943">村民,哼~</d>
    +    <d p="467.41900,1,25,16777215,1584269399,0,e4b18b37,29951118364639237">黄河之水天上来</d>
    +    <d p="6.71900,1,25,16777215,1584269422,0,70ba16f4,29951130398621699">镇站之宝</d>
    +    <d p="313.08600,1,25,16777215,1584269425,0,e531c9dc,29951131798994947">这水</d>
    +    <d p="587.87900,1,25,16777215,1584269519,0,e4b18b37,29951181142360071">海的那边是什么</d>
    +    <d p="618.05000,1,25,16777215,1584269549,0,e4b18b37,29951196901933061">折跃门准备完毕</d>
    +    …………
    +<i>
    +

    弹幕格式

    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弹幕类型int321 2 3:普通弹幕
    4:底部弹幕
    5:顶部弹幕
    6:逆向弹幕
    7:高级弹幕
    8:代码弹幕
    9:BAS弹幕(pool必须为2)
    2弹幕字号int3218:小
    25:标准
    36:大
    3弹幕颜色int32十进制RGB888值
    4弹幕发送时间int32时间戳
    5弹幕池类型int320:普通池
    1:字幕池
    2:特殊池(代码/BAS弹幕)
    6发送者mid的HASHstring用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id
    7弹幕dmidint64唯一 可用于操作参数
    8弹幕的屏蔽等级int320-10,低于用户设定等级的弹幕将被屏蔽
    (新增,下方样例未包含)
    <d p="490.19100,1,25,16777215,1584268892,0,a16fe0dd,29950852386521095">从结尾回来看这里,更感动了!</d>
    +

    弹幕内容为:“从结尾回来看这里,更感动了!”

    参数为:视频内出现的时间是490.19100秒,类型是普通弹幕,字号为标准,颜色为白色(#FFFFFF),发送时间是2020/3/15 18:41:32.........

    web版标准颜色

    弹幕的颜色属性使用十进制RGB888

    颜色HEX(RGB888)DEC(RGB888)
    红色FE030216646914‬
    橘红FF720416740868
    橘黄FFAA0216755202
    淡黄FFD30216765698
    黄色FFFF0016776960
    草绿A0EE0010546688
    绿色00CD0052480
    墨绿019899104601
    紫色4266BE4351678
    青色89D5FF9022215
    品红CC027313369971
    黑色2222222236962
    灰色9B9B9B10197915
    白色FFFFFF16777215
    `,33),e=[o];function l(c,u){return a(),t("div",null,e)}const i=n(p,[["render",l],["__file","danmaku_xml.html.vue"]]);export{i as default}; diff --git a/assets/delete-88b14593.svg b/assets/delete-88b14593.svg new file mode 100644 index 0000000000..6901d1a9de --- /dev/null +++ b/assets/delete-88b14593.svg @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/assets/detail.html-81fd3bab.js b/assets/detail.html-81fd3bab.js new file mode 100644 index 0000000000..80175e98e9 --- /dev/null +++ b/assets/detail.html-81fd3bab.js @@ -0,0 +1,220 @@ +import{_ as t,r as p,o,c as e,a as l,b as n,d as u,w as c,e as s}from"./app-3168cb19.js";const r={},i=s('

    获取动态详情

    https://api.bilibili.com/x/polymer/web-dynamic/v1/detail

    请求方式:GET

    是否需要登录:

    URL参数

    参数名类型必填内容备注
    timezone_offsetnum-480
    idnum动态id

    Json回复

    根对象

    字段名类型内容备注
    codenum响应码0:成功
    4101139:4101139
    messagestr
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    itemobj

    data对象 -> item对象

    ',12),k=s(`

    请求示例

    curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=724328028268658744'
    +

    响应示例

    点击查看
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "item": {
    +      "basic": {
    +        "comment_id_str": "724328028268658744",
    +        "comment_type": 17,
    +        "like_icon": {
    +          "action_url": "",
    +          "end_url": "",
    +          "id": 0,
    +          "start_url": ""
    +        },
    +        "rid_str": "724328032624443401"
    +      },
    +      "id_str": "724328028268658744",
    +      "modules": {
    +        "module_author": {
    +          "face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
    +          "face_nft": false,
    +          "following": null,
    +          "jump_url": "//space.bilibili.com/11357018/dynamic",
    +          "label": "",
    +          "mid": 11357018,
    +          "name": "动画魂-Anitama",
    +          "official_verify": {
    +            "desc": "",
    +            "type": 0
    +          },
    +          "pendant": {
    +            "expire": 0,
    +            "image": "",
    +            "image_enhance": "",
    +            "image_enhance_frame": "",
    +            "name": "",
    +            "pid": 0
    +          },
    +          "pub_action": "",
    +          "pub_location_text": "",
    +          "pub_time": "2022-11-03 22:02",
    +          "pub_ts": 1667484162,
    +          "type": "AUTHOR_TYPE_NORMAL",
    +          "vip": {
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1685808000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "status": 1,
    +            "theme_type": 0,
    +            "type": 2
    +          }
    +        },
    +        "module_dynamic": {
    +          "additional": null,
    +          "desc": {
    +            "rich_text_nodes": [
    +              {
    +                "orig_text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\\n",
    +                "text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\\n",
    +                "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +              }
    +            ],
    +            "text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\\n"
    +          },
    +          "major": null,
    +          "topic": null
    +        },
    +        "module_more": {
    +          "three_point_items": [
    +            {
    +              "label": "举报",
    +              "type": "THREE_POINT_REPORT"
    +            }
    +          ]
    +        },
    +        "module_stat": {
    +          "comment": {
    +            "count": 5,
    +            "forbidden": false
    +          },
    +          "forward": {
    +            "count": 1,
    +            "forbidden": false
    +          },
    +          "like": {
    +            "count": 170,
    +            "forbidden": false,
    +            "status": false
    +          }
    +        }
    +      },
    +      "orig": {
    +        "basic": {
    +          "comment_id_str": "",
    +          "comment_type": 0,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": ""
    +        },
    +        "id_str": "720590749615259664",
    +        "modules": {
    +          "module_author": {
    +            "face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
    +            "face_nft": false,
    +            "following": null,
    +            "jump_url": "//space.bilibili.com/11357018/dynamic",
    +            "label": "",
    +            "mid": 11357018,
    +            "name": "动画魂-Anitama",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_time": "",
    +            "pub_ts": 1666614008,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1685808000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "​双11天猫红包,超大力度提前发放\\n活动很猛,红包很大,加额加量!\\n打开手淘搜“我爱你红包”\\n打开手淘搜“我爱你红包”\\n打开手淘搜“我爱你红包”\\n最高可领取28888元\\n\\n一天可领3次,今天红包额度最大\\n越早领取得现金概率越大!\\n抽奖=转发+关注",
    +                  "text": "​双11天猫红包,超大力度提前发放\\n活动很猛,红包很大,加额加量!\\n打开手淘搜“我爱你红包”\\n打开手淘搜“我爱你红包”\\n打开手淘搜“我爱你红包”\\n最高可领取28888元\\n\\n一天可领3次,今天红包额度最大\\n越早领取得现金概率越大!\\n抽奖=转发+关注",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%23%E4%BA%92%E5%8A%A8%E6%8A%BD%E5%A5%96%23",
    +                  "orig_text": "#互动抽奖#",
    +                  "text": "#互动抽奖#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": "\\n转+评,留言你领到多少红包\\n评论区随机抽取2位,每人补贴50零花钱 ",
    +                  "text": "\\n转+评,留言你领到多少红包\\n评论区随机抽取2位,每人补贴50零花钱 ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "​双11天猫红包,超大力度提前发放\\n活动很猛,红包很大,加额加量!\\n打开手淘搜“我爱你红包”\\n打开手淘搜“我爱你红包”\\n打开手淘搜“我爱你红包”\\n最高可领取28888元\\n\\n一天可领3次,今天红包额度最大\\n越早领取得现金概率越大!\\n抽奖=转发+关注#互动抽奖#\\n转+评,留言你领到多少红包\\n评论区随机抽取2位,每人补贴50零花钱 "
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 210334026,
    +                "items": [
    +                  {
    +                    "height": 672,
    +                    "size": 134.85938,
    +                    "src": "https://i0.hdslb.com/bfs/new_dyn/37c21f8864e47cbeeb7c3e3a66bb250b11357018.jpg",
    +                    "tags": [],
    +                    "width": 576
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      "type": "DYNAMIC_TYPE_FORWARD",
    +      "visible": true
    +    }
    +  }
    +}
    +
    `,4);function d(q,v){const a=p("RouterLink");return o(),e("div",null,[i,l("p",null,[n("参照 "),u(a,{to:"/docs/dynamic/all.html#%E8%8E%B7%E5%8F%96%E5%8A%A8%E6%80%81%E5%88%97%E8%A1%A8"},{default:c(()=>[n("获取动态列表")]),_:1})]),k])}const m=t(r,[["render",d],["__file","detail.html.vue"]]);export{m as default}; diff --git a/assets/detail.html-e0842ebd.js b/assets/detail.html-e0842ebd.js new file mode 100644 index 0000000000..4141d62a23 --- /dev/null +++ b/assets/detail.html-e0842ebd.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-4e8e1906","path":"/docs/dynamic/detail.html","title":"获取动态详情","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"URL参数","slug":"url参数","link":"#url参数","children":[]},{"level":2,"title":"Json回复","slug":"json回复","link":"#json回复","children":[{"level":3,"title":"根对象","slug":"根对象","link":"#根对象","children":[]},{"level":3,"title":"data对象","slug":"data对象","link":"#data对象","children":[]},{"level":3,"title":"data对象 -> item对象","slug":"data对象-item对象","link":"#data对象-item对象","children":[]}]},{"level":2,"title":"请求示例","slug":"请求示例","link":"#请求示例","children":[]},{"level":2,"title":"响应示例","slug":"响应示例","link":"#响应示例","children":[]}],"git":{},"filePathRelative":"docs/dynamic/detail.md"}');export{l as data}; diff --git a/assets/device_identity.html-754167b9.js b/assets/device_identity.html-754167b9.js new file mode 100644 index 0000000000..07873122cb --- /dev/null +++ b/assets/device_identity.html-754167b9.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-4b4ba74c","path":"/docs/misc/device_identity.html","title":"设备各类标识算法(APP 端)","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"设备唯一标识 BUVID","slug":"设备唯一标识-buvid","link":"#设备唯一标识-buvid","children":[{"level":3,"title":"生成方法","slug":"生成方法","link":"#生成方法","children":[]},{"level":3,"title":"Demo","slug":"demo","link":"#demo","children":[]}]},{"level":2,"title":"设备指纹 fp (fp_local, fp_remote)","slug":"设备指纹-fp-fp-local-fp-remote","link":"#设备指纹-fp-fp-local-fp-remote","children":[{"level":3,"title":"生成方法","slug":"生成方法-1","link":"#生成方法-1","children":[]},{"level":3,"title":"Demo","slug":"demo-1","link":"#demo-1","children":[]}]},{"level":2,"title":"附录","slug":"附录","link":"#附录","children":[{"level":3,"title":"BUVID Prefix","slug":"buvid-prefix","link":"#buvid-prefix","children":[]}]}],"git":{},"filePathRelative":"docs/misc/device_identity.md"}');export{e as data}; diff --git a/assets/device_identity.html-a75f2bc8.js b/assets/device_identity.html-a75f2bc8.js new file mode 100644 index 0000000000..fa6c23c8ab --- /dev/null +++ b/assets/device_identity.html-a75f2bc8.js @@ -0,0 +1,22 @@ +import{_ as p,r as o,o as l,c as d,a,b as n,d as s,w as i,e}from"./app-3168cb19.js";const r={},u=a("h1",{id:"设备各类标识算法-app-端",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#设备各类标识算法-app-端","aria-hidden":"true"},"#"),n(" 设备各类标识算法(APP 端)")],-1),k=a("h2",{id:"设备唯一标识-buvid",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#设备唯一标识-buvid","aria-hidden":"true"},"#"),n(" 设备唯一标识 BUVID")],-1),h=e('

    BUVID 在 APP 首次安装于某设备, 且首次启动时生成.

    APP 首次(即每次安装后)启动, 会向云端发送本机各类设备特征, 含 AndroidId, DrmId 等, 请求是否有匹配的 BUVID, 有就使用云端的, 否则使用本地生成的.

    APP 请求是否有匹配的 BUVID 发送的本机各类设备特征包括(但不限于):

    • AndroidID
    • DrmId
    • IMEI
    • OAID
    • 手机网卡 MAC
    • 设备品牌
    • 设备 Model
    • 本地生成的 BUVID

    生成方法

    1. 选定设备特征码, 可以是 AndroidID, DrmId, 手机网卡 MAC 等. 记为 ID. 特别地, MAC 应当去掉 :, GUID(即 UUID) 应当去掉 -.

    2. 计算 ID 的 MD5. 记为 ID_MD5.

    3. ID_MD5 抽取第 3, 13, 23 位, 失败就默认为 000, 记为 ID_E.

    4. 根据选定的设备特征码类型确定 BUVID Prefix, 见附录. 记为 BUVID_Prefix.

    5. {BUVID_Prefix}{ID_E}{ID_MD5} 的顺序连接起来, 共37位(2+3+32). 结果应当为大写.

    Demo

    Rust

    ',8),m={href:"https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=40b5906cf3838a60efa83fa368b15147",target:"_blank",rel:"noopener noreferrer"},f=e(`

    设备指纹 fp (fp_local, fp_remote)

    用于请求账户相关 REST API, 及 gRPC Metadata 生成.

    在请求头中, fp_localfp_remote 设置为同一值即可, 暂不清楚区别.

    生成方法

    1. 获取 BUVID. 此处一般使用 XU Prefix 的 BUVID.

    2. 获取设备 Model(Build.MODEL), 如 NOH-AN01.

    3. 获取手机无线电固件版本号(Build.getRadioVersion()), 失败则留空. 如 21C20B686S000C000,21C20B686S000C000.

    4. 按前述顺序拼接字符串, 计算得 MD5.

    5. 获取年月日, 格式 yyyyMMddhhmmss, 拼接到 4 得到的字符串后.

    6. 生成 16 位随机字符串, CharSet 为 0123456789abcdef, 拼接到 5 得到的字符串后, 记为 fp_raw.

    7. 计算得到一个特殊字符串, 拼接到 fp_raw 后, 即得到最终的 fp, 特殊字符串算法见下:

    let mut veri_code = 0;
    +// 有点像 HEX 的操作
    +let fp_raw_sub_str = fp_raw
    +    .as_bytes() // 将字符串 fp_raw 转换为字节数组
    +    .chunks(2)  // 按每两个字节一组进行切分
    +    .map(|s| unsafe { ::std::str::from_utf8_unchecked(s) }) // 对每一组解析作为 UTF-8 字符串
    +    .collect::<Vec<_>>(); // 将结果收集到 Vec 中
    +// 如果 fp_raw 的长度小于 62, 则向下取偶数减半作为循环终止条件, 否则终止条件为31
    +for i in 0..({
    +    if fp_raw.len() < 62 {
    +        fp_raw.len() - fp_raw.len() % 2 // 取偶数
    +    } else {
    +        62
    +    }
    +} / 2)
    +{
    +    // 将每组字符串转换为对应的 16 进制整数, 将转换得到的整数加到 veri_code 上. 
    +    veri_code += i32::from_str_radix(fp_raw_sub_str[i], 16).unwrap_or(0);
    +}
    +// 最后将 veri_code 对 256 取余, 格式化为两位的 16 进制字符串
    +let veri_code = format!("{:0>2x}", veri_code % 256);
    +

    Demo

    Rust

    `,8),_={href:"https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=40b5906cf3838a60efa83fa368b15147",target:"_blank",rel:"noopener noreferrer"},b=e('

    附录

    BUVID Prefix

    设备特征码BUVID Prefix备注
    AndroidIDXX
    DrmIdXU
    IMEIXZ已弃用
    GUIDXW已弃用
    MACXY
    GoogleIdXG东南亚版本
    FacebookIdXF东南亚版本
    ',3);function v(x,y){const c=o("RouterLink"),t=o("ExternalLinkIcon");return l(),d("div",null,[u,k,a("p",null,[n("注意区分于 Web 端的 "),s(c,{to:"/docs/misc/buvid3_4.html"},{default:i(()=>[n("buvid3, buvid4")]),_:1}),n(".")]),h,a("p",null,[n("代码及测试样例见 "),a("a",m,[n("Rust Playground"),s(t)]),n(".")]),f,a("p",null,[n("代码及测试样例见 "),a("a",_,[n("Rust Playground"),s(t)]),n(".")]),b])}const I=p(r,[["render",v],["__file","device_identity.html.vue"]]);export{I as default}; diff --git a/assets/digital-d249bb54.svg b/assets/digital-d249bb54.svg new file mode 100644 index 0000000000..56ea8f9343 --- /dev/null +++ b/assets/digital-d249bb54.svg @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/documentary-2c550e67.svg b/assets/documentary-2c550e67.svg new file mode 100644 index 0000000000..fcaf707f1c --- /dev/null +++ b/assets/documentary-2c550e67.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/douga-551968c9.svg b/assets/douga-551968c9.svg new file mode 100644 index 0000000000..5cf324c490 --- /dev/null +++ b/assets/douga-551968c9.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/assets/download-512c5cac.svg b/assets/download-512c5cac.svg new file mode 100644 index 0000000000..dca94f28de --- /dev/null +++ b/assets/download-512c5cac.svg @@ -0,0 +1,7 @@ + + + diff --git a/assets/download-d77df227.js b/assets/download-d77df227.js new file mode 100644 index 0000000000..038f63105d --- /dev/null +++ b/assets/download-d77df227.js @@ -0,0 +1 @@ +const s="/bilibili-API-collect/assets/download-512c5cac.svg";export{s as _}; diff --git a/assets/dynamic.html-c7efbb1d.js b/assets/dynamic.html-c7efbb1d.js new file mode 100644 index 0000000000..93856f6ea6 --- /dev/null +++ b/assets/dynamic.html-c7efbb1d.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-6423be9c","path":"/docs/video_ranking/dynamic.html","title":"分区最新视频","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取分区最新视频列表","slug":"获取分区最新视频列表","link":"#获取分区最新视频列表","children":[{"level":3,"title":"获取分区标签近期互动列表","slug":"获取分区标签近期互动列表","link":"#获取分区标签近期互动列表","children":[]},{"level":3,"title":"获取分区近期投稿列表","slug":"获取分区近期投稿列表","link":"#获取分区近期投稿列表","children":[]},{"level":3,"title":"获取分区近期投稿列表 (带排序)","slug":"获取分区近期投稿列表-带排序","link":"#获取分区近期投稿列表-带排序","children":[]}]}],"git":{},"filePathRelative":"docs/video_ranking/dynamic.md"}');export{e as data}; diff --git a/assets/dynamic.html-dfaefdaa.js b/assets/dynamic.html-dfaefdaa.js new file mode 100644 index 0000000000..6d345b8649 --- /dev/null +++ b/assets/dynamic.html-dfaefdaa.js @@ -0,0 +1,391 @@ +import{_ as e,r as l,o as r,c as u,a as n,b as s,d as p,w as o,e as a}from"./app-3168cb19.js";const c={},i=a('

    分区最新视频

    获取分区最新视频列表

    https://api.bilibili.com/x/web-interface/dynamic/region

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为14, 留空为5
    ridnum目标分区tid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    archivesarray视频列表
    pageobj页面信息

    data中的archives数组:

    类型内容备注
    0obj视频1
    nobj视频(n+1)
    ……obj…………

    data中的archives数组中的对象:

    ',14),d=a(`

    data中的page对象:

    字段类型内容备注
    countnum总计视频数
    numnum当前页码
    sizenum每页项数

    示例:

    获取tid=21(生活->日常)分区中的2条最新动态视频信息

    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'
    +
    查看响应示例:
    {
    +	"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"
    +		}]
    +	}
    +}
    +

    获取分区标签近期互动列表

    https://api.bilibili.com/x/web-interface/dynamic/tag

    请求方式: GET

    url参数:

    `,10),k=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),v=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"视频数"),n("td",null,"非必要"),n("td",null,"默认为14, 留空为5")],-1),q=n("tr",null,[n("td",null,"pn"),n("td",null,"num"),n("td",null,"列数"),n("td",null,"非必要"),n("td",null,"留空为1")],-1),b=n("td",null,"rid",-1),m=n("td",null,"num",-1),y=n("td",null,"目标分区id",-1),h=n("td",null,"必要",-1),g=n("tr",null,[n("td",null,"tag_id"),n("td",null,"num"),n("td",null,"目标标签id"),n("td",null,"必要"),n("td")],-1),_=a(`

    json回复:

    获取分区最新视频列表相同, 略

    示例:

    获取tid=136(游戏->音游)分区中tag_id=10026108(Phigros)标签近期互动列表的2条视频信息

    curl -G 'https://api.bilibili.com/x/web-interface/dynamic/tag' \\
    +--data-urlencode 'rid=136' \\
    +--data-urlencode 'tag_id=10026108' \\
    +--data-urlencode 'ps=2' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "page": {
    +      "num": 1,
    +      "size": 2,
    +      "count": 152
    +    },
    +    "archives": [
    +      {
    +        "aid": 1452657587,
    +        "videos": 1,
    +        "tid": 136,
    +        "tname": "音游",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/4cb13f97e0d4b43645728432468e44b40ad343de.jpg",
    +        "title": "【MuseDash x Phigros/逆天愚人节谱面】Retribution ~Cycle of Redemption~ Lv.? AP",
    +        "pubdate": 1712310000,
    +        "ctime": 1712302810,
    +        "desc": "谱师:Mayflycmd(@命令提示符 )",
    +        "state": 0,
    +        "duration": 189,
    +        "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": 3493136175204754,
    +          "name": "TempoTiger",
    +          "face": "https://i1.hdslb.com/bfs/face/0cf2722f9aaa0db94f9166a8084e347bca3580f4.jpg"
    +        },
    +        "stat": {
    +          "aid": 1452657587,
    +          "view": 27021,
    +          "danmaku": 141,
    +          "reply": 113,
    +          "favorite": 306,
    +          "coin": 144,
    +          "share": 95,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 1050,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 27021
    +        },
    +        "dynamic": "",
    +        "cid": 1494650111,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Eq421w7T4",
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n240405sa2zsrp9x2i3erx1ln8icirs6_firsti.jpg",
    +        "pub_location": "广东",
    +        "cover43": "",
    +        "bvid": "BV1Eq421w7T4",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": null
    +      },
    +      {
    +        "aid": 1155789590,
    +        "videos": 1,
    +        "tid": 136,
    +        "tname": "音游",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c75674c8d104421d1794e69926d42ffa90e7d73d.jpg",
    +        "title": "[Phigros 自制谱] 把一切都倾注进去吧!/ 雑踏、僕らの街 - TOGENASHI TOGEARI",
    +        "pubdate": 1719687153,
    +        "ctime": 1719687153,
    +        "desc": "不是,你们怎么忍住把这键盘歌写这么简单的?\\n不是,你们怎么忍住把这键盘歌写这么简单的?\\n不是,你们怎么忍住把这键盘歌写这么简单的?\\n\\n应该是 Phigros 第一个写满三分钟的,虽然后面抄了很多重复配置,但无伤大雅(\\n个人定数 16.6,其实就两段 5k 键盘难,看时间长多给了 0.1\\n所以啊\\n\\n愤怒也好喜悦也好悲伤也好,把一切都倾注进去!\\n怒りも喜びも哀しさも、全部ぶちこめ。\\n\\n-- 6.30 更新,修了一个特效的问题,改了一个很蹭的配置和一个很丑的排键",
    +        "state": 0,
    +        "duration": 201,
    +        "mission_id": 1726375,
    +        "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": 341532844,
    +          "name": "西宮缄",
    +          "face": "https://i1.hdslb.com/bfs/face/1387108d9337c04c27ce2d8d75679e40540d4c14.jpg"
    +        },
    +        "stat": {
    +          "aid": 1155789590,
    +          "view": 39479,
    +          "danmaku": 303,
    +          "reply": 169,
    +          "favorite": 1650,
    +          "coin": 473,
    +          "share": 653,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 5843,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 39479
    +        },
    +        "dynamic": "打这个比溜冰还爽",
    +        "cid": 1600971084,
    +        "dimension": {
    +          "width": 2000,
    +          "height": 1500,
    +          "rotate": 0
    +        },
    +        "season_id": 3395535,
    +        "short_link_v2": "https://b23.tv/BV1iZ421g7E8",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n240630sa3chl8idnpz8d31t6yaczagn_firsti.jpg",
    +        "pub_location": "天津",
    +        "cover43": "",
    +        "bvid": "BV1iZ421g7E8",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": null
    +      }
    +    ]
    +  }
    +}
    +

    获取分区近期投稿列表

    https://api.bilibili.com/x/web-interface/newlist

    请求方式: GET

    注: 该接口在 Web 端实际情况中被请求, 但似乎未在页面中显示, 作用尚不清楚

    URL参数:

    `,11),f=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),w=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"视频数"),n("td",null,"非必要"),n("td",null,"默认为14, 留空为5")],-1),E=n("tr",null,[n("td",null,"pn"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"非必要"),n("td",null,"默认为1")],-1),x=n("td",null,"rid",-1),A=n("td",null,"num",-1),j=n("td",null,"目标分区id",-1),B=n("td",null,"非必要",-1),T=n("tr",null,[n("td",null,"type"),n("td",null,"num"),n("td",null,"类型?"),n("td",null,"非必要"),n("td",null,"默认为0")],-1),z=a('

    JSON回复:

    获取分区最新视频列表相同, 略

    示例:

    获取分区最新视频列表相似, 略

    获取分区近期投稿列表 (带排序)

    https://api.bilibili.com/x/web-interface/newlist_rank

    请求方式: GET

    URL参数:

    ',8),C=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),V=n("tr",null,[n("td",null,"main_ver"),n("td",null,"str"),n("td",null,"主页版本"),n("td",null,"非必要"),n("td",null,[s("默认为 "),n("code",null,"v3")])],-1),F=n("tr",null,[n("td",null,"search_type"),n("td",null,"str"),n("td",null,"搜索类型"),n("td",null,"必要"),n("td",null,[s("默认为 "),n("code",null,"video")])],-1),M=n("tr",null,[n("td",null,"view_type"),n("td",null,"str"),n("td",null,"查看类型?"),n("td",null,"必要"),n("td",null,[s("默认为 "),n("code",null,"hot_rank")])],-1),P=n("tr",null,[n("td",null,"copy_right"),n("td",null,"num"),n("td",null,"版权?"),n("td",null,"非必要"),n("td",null,[s("默认为 "),n("code",null,"-1")])],-1),R=n("tr",null,[n("td",null,"new_web_tag"),n("td",null,"num"),n("td",null,"标签?"),n("td",null,"非必要"),n("td",null,[s("默认为 "),n("code",null,"1")])],-1),G=n("tr",null,[n("td",null,"order"),n("td",null,"str"),n("td",null,"排序方式"),n("td",null,"非必要"),n("td",null,[s("click: 按播放排序(默认)"),n("br"),s("scores: 按评论数排序"),n("br"),s("stow: 按收藏排序"),n("br"),s("coin: 按硬币数排序"),n("br"),s("dm: 按弹幕数排序")])],-1),N=n("td",null,"cate_id",-1),S=n("td",null,"num",-1),I=n("td",null,"分区id",-1),U=n("td",null,"必要",-1),L=n("code",null,"data",-1),O=n("code",null,"result",-1),D=n("code",null,"null",-1),H=n("tr",null,[n("td",null,"page"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"非必要"),n("td",null,[s("默认以 "),n("code",null,"1"),s(" 开始")])],-1),X=n("tr",null,[n("td",null,"pagesize"),n("td",null,"num"),n("td",null,"视频数"),n("td",null,"必要"),n("td",null,[s("默认为 "),n("code",null,"30"),s(", 留空会导致 -500")])],-1),J=n("tr",null,[n("td",null,"time_from"),n("td",null,"num"),n("td",null,"起始时间"),n("td",null,"必要"),n("td",null,[s("yyyyMMdd, 默认为 "),n("code",null,"time_to"),s(" - 7")])],-1),W=n("tr",null,[n("td",null,"time_to"),n("td",null,"num"),n("td",null,"结束时间"),n("td",null,"必要"),n("td",null,"yyyyMMdd, 默认为当前时间(大于起始时间)")],-1),Z=a(`

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -500: 未传pagesize
    -10: 未传其余必要参数
    messagestr错误信息无为0
    ttlnum1
    dataobj信息本体错误为null

    data对象:

    字段类型内容备注
    exp_listnull作用尚不明确
    show_module_listarray显示模块列表?
    resultarray结果本体失败时为null
    show_columnnum0作用尚不明确
    rqt_typestrsearch作用尚不明确
    numPagesnum页码失败时为0
    numResultsnum视频数失败时为0
    crr_querystr作用尚不明确
    pagesizenum视频数
    suggest_keywordnum作用尚不明确
    egg_infonull作用尚不明确
    cachenum0作用尚不明确
    exp_bitsnum1作用尚不明确
    exp_strstr作用尚不明确
    seidstr一串字符串中的数字作用尚不明确
    msgstr结果信息成功时为success, 反之为as error.
    egg_hitnum0作用尚不明确
    pagenum页码

    data中的show_module_list数组:

    类型内容备注
    0strtips
    1strbrand_ad
    2stresports
    3stractivity
    4strweb_game
    5strcard
    6strmedia_bangumi
    7strmedia_ft
    8strbili_user
    9struser
    10strstar
    11strvideo

    data中的result数组中的对象:

    字段类型内容备注
    pubdatestr发布时间格式为 yyyy-MM-dd HH:mm:ss
    picstr封面图
    tagstr标签, 分隔
    durationnum时长单位为秒
    idnumaid
    rank_scorenum排序分数?
    badgepaybool是否有角标?
    senddatenum发送时间?UNIX 秒级时间戳
    authorstrUP主名
    reviewnum评论数
    midnumUP主mid
    is_union_videonum是否为联合投稿
    rank_indexnum排序索引号
    typestr类型video: 视频
    arcrankstr0作用尚不明确
    playstr播放数
    rank_offsetnum排序偏移?rank_index 相同
    descriptionstr简介
    video_reviewnum弹幕数?
    is_paynum是否付费?0: 免费
    1: 付费
    favoritesnum收藏数
    arcurlstr视频播放页URL
    bvidstrbvid
    titlestr标题
    vtnum0作用尚不明确
    enable_vtnum0作用尚不明确
    vt_displaystr作用尚不明确

    示例:

    获取tid=231(科技->计算机技术)分区近期投稿列表, 按播放数排序, 页码为1, 视频数为2, 时间一周

    curl -G 'https://api.bilibili.com/x/web-interface/newlist_rank' \\
    +--data-urlencode 'search_type=video' \\
    +--data-urlencode 'view_type=hot_rank' \\
    +--data-urlencode 'order=click' \\
    +--data-urlencode 'cate_id=231' \\
    +--data-urlencode 'page=1' \\
    +--data-urlencode 'pagesize=2' \\
    +--data-urlencode 'time_from=20240716' \\
    +--data-urlencode 'time_to=20240723'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "exp_list": null,
    +    "show_module_list": [
    +      "tips",
    +      "brand_ad",
    +      "esports",
    +      "activity",
    +      "web_game",
    +      "card",
    +      "media_bangumi",
    +      "media_ft",
    +      "bili_user",
    +      "user",
    +      "star",
    +      "video"
    +    ],
    +    "result": [
    +      {
    +        "pubdate": "2024-07-19 15:27:23",
    +        "pic": "//i0.hdslb.com/bfs/archive/a6c2a8669e623333eee4bd8316b4e7b01716b7f2.jpg",
    +        "tag": "微软,Microsoft",
    +        "duration": 14,
    +        "id": 1406270001,
    +        "rank_score": 237205,
    +        "badgepay": false,
    +        "senddate": 1721410429,
    +        "author": "柚子木字幕组",
    +        "review": 928,
    +        "mid": 221648,
    +        "is_union_video": 0,
    +        "rank_index": 1,
    +        "type": "video",
    +        "arcrank": "0",
    +        "play": "237205",
    +        "rank_offset": 1,
    +        "description": "X",
    +        "video_review": 42,
    +        "is_pay": 0,
    +        "favorites": 618,
    +        "arcurl": "http://www.bilibili.com/video/av1406270001",
    +        "bvid": "BV1gr421M7rE",
    +        "title": "突发:微软服务中断正在影响全球用户",
    +        "vt": 0,
    +        "enable_vt": 0,
    +        "vt_display": ""
    +      },
    +      {
    +        "pubdate": "2024-07-17 22:12:47",
    +        "pic": "//i0.hdslb.com/bfs/archive/1b02bc3806369f8c051a84e1ffef11b22695e659.jpg",
    +        "tag": "演讲,大学,编程,英伟达,人工智能,TED,AI,黄仁勋",
    +        "duration": 1908,
    +        "id": 1556206286,
    +        "rank_score": 52653,
    +        "badgepay": false,
    +        "senddate": 1721225567,
    +        "author": "YouTube精选字幕组",
    +        "review": 147,
    +        "mid": 487511093,
    +        "is_union_video": 0,
    +        "rank_index": 2,
    +        "type": "video",
    +        "arcrank": "0",
    +        "play": "52648",
    +        "rank_offset": 2,
    +        "description": "New SciTech\\n上月加州理工学院毕业典礼上,刚刚带领英伟达达成世界第一市值的CEO黄仁勋,到场分享对当下AI革命趋势的见解、带领英伟达转型成AI公司的历程、以及自己在职场这么多年的人生感悟。\\n\\n全程没有上位者那种空洞无意义的说教,都是真实的发展故事和对未来世界的看法。如果你的工作生活中有涉及到AI技术的可能,那么这期演讲将会非常有意义。",
    +        "video_review": 16,
    +        "is_pay": 0,
    +        "favorites": 2152,
    +        "arcurl": "http://www.bilibili.com/video/av1556206286",
    +        "bvid": "BV1C1421b7dD",
    +        "title": "“这个时代要跑,不要走”黄仁勋加州理工毕业演讲完整版",
    +        "vt": 0,
    +        "enable_vt": 0,
    +        "vt_display": ""
    +      }
    +    ],
    +    "show_column": 0,
    +    "rqt_type": "search",
    +    "numPages": 404,
    +    "numResults": 808,
    +    "crr_query": "",
    +    "pagesize": 2,
    +    "suggest_keyword": "",
    +    "egg_info": null,
    +    "cache": 0,
    +    "exp_bits": 1,
    +    "exp_str": "",
    +    "seid": "6717218533109517809",
    +    "msg": "success",
    +    "egg_hit": 0,
    +    "page": 1
    +  }
    +}
    +
    `,13);function Y(K,Q){const t=l("RouterLink");return r(),u("div",null,[i,n("p",null,[s("基本同"),p(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:o(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的data对象")]),d,n("table",null,[k,n("tbody",null,[v,q,n("tr",null,[b,m,y,h,n("td",null,[s("参见"),p(t,{to:"/docs/video/video_zone.html"},{default:o(()=>[s("视频分区一览")]),_:1})])]),g])]),_,n("table",null,[f,n("tbody",null,[w,E,n("tr",null,[x,A,j,B,n("td",null,[s("参见"),p(t,{to:"/docs/video/video_zone.html"},{default:o(()=>[s("视频分区一览")]),_:1})])]),T])]),z,n("table",null,[C,n("tbody",null,[V,F,M,P,R,G,n("tr",null,[N,S,I,U,n("td",null,[s("留空会导致响应中"),L,s("中"),O,s("为"),D,s(", 参见"),p(t,{to:"/docs/video/video_zone.html"},{default:o(()=>[s("视频分区一览")]),_:1})])]),H,X,J,W])]),Z])}const nn=e(c,[["render",Y],["__file","dynamic.html.vue"]]);export{nn as default}; diff --git a/assets/dynamic_enum.html-202a3e68.js b/assets/dynamic_enum.html-202a3e68.js new file mode 100644 index 0000000000..810c6fb3b9 --- /dev/null +++ b/assets/dynamic_enum.html-202a3e68.js @@ -0,0 +1 @@ +import{_ as e,r,o,c as h,a as t,b as d,d as l,e as n}from"./app-3168cb19.js";const s={},i=t("h1",{id:"动态类型对照",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#动态类型对照","aria-hidden":"true"},"#"),d(" 动态类型对照")],-1),E=t("h2",{id:"动态类型",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#动态类型","aria-hidden":"true"},"#"),d(" 动态类型")],-1),T=t("thead",null,[t("tr",null,[t("th",null,"类型"),t("th",null,"说明"),t("th",null,"comment_id_str"),t("th",null,"comment_type"),t("th",null,"rid_str"),t("th",null,"示例")])],-1),u=t("td",null,"DYNAMIC_TYPE_NONE",-1),a=t("td",null,"无效动态",-1),c=t("td",null,null,-1),b=t("td",null,null,-1),O=t("td",null,null,-1),N={href:"https://t.bilibili.com/716510857084796964",target:"_blank",rel:"noopener noreferrer"},P=t("tr",null,[t("td",null,"DYNAMIC_TYPE_FORWARD"),t("td",null,"动态转发"),t("td",null,"动态本身id"),t("td",null,"17"),t("td"),t("td")],-1),A=t("tr",null,[t("td",null,"DYNAMIC_TYPE_AV"),t("td",null,"投稿视频"),t("td",null,"视频AV号"),t("td",null,"1"),t("td",null,"视频AV号"),t("td")],-1),I=t("tr",null,[t("td",null,"DYNAMIC_TYPE_PGC"),t("td",null,"剧集(番剧、电影、纪录片)"),t("td",null,"剧集分集AV号"),t("td",null,"1"),t("td",null,"剧集分集EP号"),t("td")],-1),Y=t("tr",null,[t("td",null,"DYNAMIC_TYPE_COURSES"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),D=t("td",null,"DYNAMIC_TYPE_WORD",-1),R=t("td",null,"纯文字动态",-1),C=t("td",null,"动态本身id",-1),S=t("td",null,"17",-1),M=t("td",null,null,-1),f={href:"https://t.bilibili.com/718377531474968613",target:"_blank",rel:"noopener noreferrer"},p=t("td",null,"DYNAMIC_TYPE_DRAW",-1),L=t("td",null,"带图动态",-1),U=t("td",null,"相簿id",-1),m=t("td",null,"11",-1),H=t("td",null,"相簿id",-1),y={href:"https://t.bilibili.com/718384798557536290",target:"_blank",rel:"noopener noreferrer"},B=t("td",null,"DYNAMIC_TYPE_ARTICLE",-1),G=t("td",null,"投稿专栏",-1),V=t("td",null,"专栏cv号",-1),k=t("td",null,"12",-1),g=t("td",null,"专栏cv号",-1),J={href:"https://t.bilibili.com/718372214316990512",target:"_blank",rel:"noopener noreferrer"},X=t("tr",null,[t("td",null,"DYNAMIC_TYPE_MUSIC"),t("td",null,"音乐"),t("td"),t("td"),t("td"),t("td")],-1),W=t("td",null,"DYNAMIC_TYPE_COMMON_SQUARE",-1),x=t("td",null,[d("装扮"),t("br"),d("剧集点评"),t("br"),d("普通分享")],-1),F=t("td",null,null,-1),v=t("td",null,"17",-1),w=t("td",null,null,-1),K={href:"https://t.bilibili.com/551309621391003098",target:"_blank",rel:"noopener noreferrer"},Q=t("br",null,null,-1),j={href:"https://t.bilibili.com/716503778995470375",target:"_blank",rel:"noopener noreferrer"},q=t("br",null,null,-1),z={href:"https://t.bilibili.com/716481612656672789",target:"_blank",rel:"noopener noreferrer"},Z=t("tr",null,[t("td",null,"DYNAMIC_TYPE_COMMON_VERTICAL"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),$=t("td",null,"DYNAMIC_TYPE_LIVE",-1),tt=t("td",null,"直播间分享",-1),dt=t("td",null,"动态本身id",-1),_t=t("td",null,null,-1),lt=t("td",null,"直播间id",-1),nt={href:"https://t.bilibili.com/216042859353895488",target:"_blank",rel:"noopener noreferrer"},et=t("td",null,"DYNAMIC_TYPE_MEDIALIST",-1),rt=t("td",null,"收藏夹",-1),ot=t("td",null,"收藏夹ml号",-1),ht=t("td",null,"19",-1),st=t("td",null,"收藏夹ml号",-1),it={href:"https://t.bilibili.com/534428265320147158",target:"_blank",rel:"noopener noreferrer"},Et=t("td",null,"DYNAMIC_TYPE_COURSES_SEASON",-1),Tt=t("td",null,"课程",-1),ut=t("td",null,null,-1),at=t("td",null,null,-1),ct=t("td",null,null,-1),bt={href:"https://t.bilibili.com/717906712866062340",target:"_blank",rel:"noopener noreferrer"},Ot=t("tr",null,[t("td",null,"DYNAMIC_TYPE_COURSES_BATCH"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),Nt=t("tr",null,[t("td",null,"DYNAMIC_TYPE_AD"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),Pt=t("tr",null,[t("td",null,"DYNAMIC_TYPE_APPLET"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),At=t("tr",null,[t("td",null,"DYNAMIC_TYPE_SUBSCRIPTION"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),It=t("td",null,"DYNAMIC_TYPE_LIVE_RCMD",-1),Yt=t("td",null,"直播开播",-1),Dt=t("td",null,"动态本身id",-1),Rt=t("td",null,"17",-1),Ct=t("td",null,"live_id",-1),St={href:"https://t.bilibili.com/718371505648435205",target:"_blank",rel:"noopener noreferrer"},Mt=t("tr",null,[t("td",null,"DYNAMIC_TYPE_BANNER"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),ft=t("td",null,"DYNAMIC_TYPE_UGC_SEASON",-1),pt=t("td",null,"合集更新",-1),Lt=t("td",null,"视频AV号",-1),Ut=t("td",null,"1",-1),mt=t("td",null,"视频AV号",-1),Ht={href:"https://t.bilibili.com/718390979031203873",target:"_blank",rel:"noopener noreferrer"},yt=t("tr",null,[t("td",null,"DYNAMIC_TYPE_SUBSCRIPTION_NEW"),t("td"),t("td"),t("td"),t("td"),t("td")],-1),Bt=t("h2",{id:"富文本节点类型",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#富文本节点类型","aria-hidden":"true"},"#"),d(" 富文本节点类型")],-1),Gt=t("thead",null,[t("tr",null,[t("th",null,"类型"),t("th",null,"说明"),t("th",null,"示例")])],-1),Vt=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_NONE"),t("td"),t("td")],-1),kt=t("td",null,"RICH_TEXT_NODE_TYPE_TEXT",-1),gt=t("td",null,"文字节点",-1),Jt={href:"https://t.bilibili.com/721295772787671059",target:"_blank",rel:"noopener noreferrer"},Xt=t("td",null,"RICH_TEXT_NODE_TYPE_AT",-1),Wt=t("td",null,"@用户",-1),xt={href:"https://t.bilibili.com/721296515797090324",target:"_blank",rel:"noopener noreferrer"},Ft=t("td",null,"RICH_TEXT_NODE_TYPE_LOTTERY",-1),vt=t("td",null,"互动抽奖",-1),wt={href:"https://t.bilibili.com/720907383182721040",target:"_blank",rel:"noopener noreferrer"},Kt=t("td",null,"RICH_TEXT_NODE_TYPE_VOTE",-1),Qt=t("td",null,"投票",-1),jt={href:"https://t.bilibili.com/721203899129659408",target:"_blank",rel:"noopener noreferrer"},qt=t("td",null,"RICH_TEXT_NODE_TYPE_TOPIC",-1),zt=t("td",null,"话题",-1),Zt={href:"https://t.bilibili.com/721188862459641879",target:"_blank",rel:"noopener noreferrer"},$t=t("td",null,"RICH_TEXT_NODE_TYPE_GOODS",-1),td=t("td",null,"商品链接",-1),dd={href:"https://t.bilibili.com/721282703208480790",target:"_blank",rel:"noopener noreferrer"},_d=t("td",null,"RICH_TEXT_NODE_TYPE_BV",-1),ld=t("td",null,"视频链接",-1),nd={href:"https://t.bilibili.com/716752002311258165",target:"_blank",rel:"noopener noreferrer"},ed=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_AV"),t("td"),t("td")],-1),rd=t("td",null,"RICH_TEXT_NODE_TYPE_EMOJI",-1),od=t("td",null,"表情",-1),hd={href:"https://t.bilibili.com/716751108968546393",target:"_blank",rel:"noopener noreferrer"},sd=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_USER"),t("td"),t("td")],-1),id=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_CV"),t("td"),t("td")],-1),Ed=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_VC"),t("td"),t("td")],-1),Td=t("td",null,"RICH_TEXT_NODE_TYPE_WEB",-1),ud=t("td",null,"网页链接",-1),ad={href:"https://t.bilibili.com/716751027361022055",target:"_blank",rel:"noopener noreferrer"},cd=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_TAOBAO"),t("td"),t("td")],-1),bd=t("td",null,"RICH_TEXT_NODE_TYPE_MAIL",-1),Od=t("td",null,"邮箱地址",-1),Nd={href:"https://t.bilibili.com/721314095109767220",target:"_blank",rel:"noopener noreferrer"},Pd=t("td",null,"RICH_TEXT_NODE_TYPE_OGV_SEASON",-1),Ad=t("td",null,"剧集信息",-1),Id={href:"https://t.bilibili.com/721282046064853080",target:"_blank",rel:"noopener noreferrer"},Yd=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_OGV_EP"),t("td"),t("td")],-1),Dd=t("tr",null,[t("td",null,"RICH_TEXT_NODE_TYPE_SEARCH_WORD"),t("td"),t("td")],-1),Rd=n('

    作者类型

    类型说明示例
    AUTHOR_TYPE_NONE
    AUTHOR_TYPE_NORMAL普通更新
    AUTHOR_TYPE_PGC剧集更新
    AUTHOR_TYPE_UGC_SEASON合集更新
    类型说明示例
    EMOJI_TYPE_NONE
    EMOJI_TYPE_OLD
    EMOJI_TYPE_NEW
    EMOJI_TYPE_VIP

    相关内容卡片类型

    ',4),Cd=t("thead",null,[t("tr",null,[t("th",null,"类型"),t("th",null,"说明"),t("th",null,"示例")])],-1),Sd=t("tr",null,[t("td",null,"ADDITIONAL_TYPE_NONE"),t("td"),t("td")],-1),Md=t("tr",null,[t("td",null,"ADDITIONAL_TYPE_PGC"),t("td"),t("td")],-1),fd=t("tr",null,[t("td",null,"ADDITIONAL_TYPE_GOODS"),t("td",null,"商品信息"),t("td")],-1),pd=t("td",null,"ADDITIONAL_TYPE_VOTE",-1),Ld=t("td",null,"投票",-1),Ud={href:"https://t.bilibili.com/716365292050055176",target:"_blank",rel:"noopener noreferrer"},md=t("td",null,"ADDITIONAL_TYPE_COMMON",-1),Hd=t("td",null,"一般类型",-1),yd=t("br",null,null,-1),Bd={href:"https://t.bilibili.com/716357878942793745",target:"_blank",rel:"noopener noreferrer"},Gd=t("tr",null,[t("td",null,"ADDITIONAL_TYPE_MATCH"),t("td"),t("td")],-1),Vd=t("tr",null,[t("td",null,"ADDITIONAL_TYPE_UP_RCMD"),t("td"),t("td")],-1),kd=t("td",null,"ADDITIONAL_TYPE_UGC",-1),gd=t("td",null,"视频跳转",-1),Jd={href:"https://t.bilibili.com/716489253410832401",target:"_blank",rel:"noopener noreferrer"},Xd=t("td",null,"ADDITIONAL_TYPE_RESERVE",-1),Wd=t("td",null,null,-1),xd=t("br",null,null,-1),Fd={href:"https://t.bilibili.com/716524987542929443",target:"_blank",rel:"noopener noreferrer"},vd=n('
    类型说明示例
    ADDITIONAL_BUTTON_TYPE_NONE
    ADDITIONAL_BUTTON_TYPE_JUMP
    ADDITIONAL_BUTTON_TYPE_BUTTON
    类型说明示例
    ADDITIONAL_BUTTON_STATUS_NONE
    ADDITIONAL_BUTTON_STATUS_UNCHECK
    ADDITIONAL_BUTTON_STATUS_CHECK
    类型说明示例
    ADD_BUTTON_CLICK_TYPE_NONE
    ADD_BUTTON_CLICK_TYPE_RESERVE
    类型说明示例
    DISABLE_STATE_HIGHLIGHT
    DISABLE_STATE_GRAY
    类型说明示例
    ADD_BUTTON_BG_STYLE_FILL
    ADD_BUTTON_BG_STYLE_STROKE
    ADD_BUTTON_BG_STYLE_GRAY
    类型说明示例
    HIGHLIGHT_TEXT_STYLE_TYPE_NONE
    HIGHLIGHT_TEXT_STYLE_TYPE_ACTIVE

    动态主体类型

    ',7),wd=t("thead",null,[t("tr",null,[t("th",null,"类型"),t("th",null,"说明"),t("th",null,"示例")])],-1),Kd=t("td",null,"MAJOR_TYPE_NONE",-1),Qd=t("td",null,"动态失效",-1),jd={href:"https://t.bilibili.com/716510857084796964",target:"_blank",rel:"noopener noreferrer"},qd=t("td",null,"MAJOR_TYPE_NONE",-1),zd=t("td",null,"转发动态",-1),Zd={href:"https://www.bilibili.com/opus/866756840240709701",target:"_blank",rel:"noopener noreferrer"},$d=t("td",null,"MAJOR_TYPE_OPUS",-1),t_=t("td",null,"图文动态",-1),d_={href:"https://www.bilibili.com/opus/870176712256651305",target:"_blank",rel:"noopener noreferrer"},__=t("td",null,"MAJOR_TYPE_ARCHIVE",-1),l_=t("td",null,"视频",-1),n_={href:"https://t.bilibili.com/716526237365829703",target:"_blank",rel:"noopener noreferrer"},e_=t("td",null,"MAJOR_TYPE_PGC",-1),r_=t("td",null,"剧集更新",-1),o_={href:"https://t.bilibili.com/645981661420322824",target:"_blank",rel:"noopener noreferrer"},h_=t("tr",null,[t("td",null,"MAJOR_TYPE_COURSES"),t("td"),t("td")],-1),s_=t("td",null,"MAJOR_TYPE_DRAW",-1),i_=t("td",null,"带图动态",-1),E_={href:"https://t.bilibili.com/716358050743582725",target:"_blank",rel:"noopener noreferrer"},T_=t("tr",null,[t("td",null,"MAJOR_TYPE_ARTICLE"),t("td"),t("td")],-1),u_=t("tr",null,[t("td",null,"MAJOR_TYPE_MUSIC"),t("td",null,"音频更新"),t("td")],-1),a_=t("td",null,"MAJOR_TYPE_COMMON",-1),c_=t("td",null,"一般类型",-1),b_={href:"https://t.bilibili.com/716481612656672789",target:"_blank",rel:"noopener noreferrer"},O_=t("td",null,"MAJOR_TYPE_LIVE",-1),N_=t("td",null,"直播间分享",-1),P_={href:"https://t.bilibili.com/267505569812738175",target:"_blank",rel:"noopener noreferrer"},A_=t("tr",null,[t("td",null,"MAJOR_TYPE_MEDIALIST"),t("td"),t("td")],-1),I_=t("tr",null,[t("td",null,"MAJOR_TYPE_APPLET"),t("td"),t("td")],-1),Y_=t("tr",null,[t("td",null,"MAJOR_TYPE_SUBSCRIPTION"),t("td"),t("td")],-1),D_=t("tr",null,[t("td",null,"MAJOR_TYPE_LIVE_RCMD"),t("td",null,"直播状态"),t("td")],-1),R_=t("td",null,"MAJOR_TYPE_UGC_SEASON",-1),C_=t("td",null,"合计更新",-1),S_={href:"https://t.bilibili.com/716509100448415814",target:"_blank",rel:"noopener noreferrer"},M_=t("tr",null,[t("td",null,"MAJOR_TYPE_SUBSCRIPTION_NEW"),t("td"),t("td")],-1),f_=n("
    类型说明示例
    MEDIA_TYPE_NONE
    MEDIA_TYPE_UGC
    MEDIA_TYPE_PGC
    MEDIA_TYPE_LIVE
    类型说明示例
    PGC_SUB_TYPE_NONE
    PGC_SUB_TYPE_BANGUMI
    PGC_SUB_TYPE_MOVIE
    PGC_SUB_TYPE_DOCUMENTARY
    PGC_SUB_TYPE_DOMESTIC
    PGC_SUB_TYPE_TV
    类型说明示例
    DRAW_TAG_TYPE_NONE
    DRAW_TAG_TYPE_COMMON
    DRAW_TAG_TYPE_GOODS
    DRAW_TAG_TYPE_USER
    DRAW_TAG_TYPE_TOPIC
    DRAW_TAG_TYPE_LBS
    类型说明示例
    MAJOR_COMMON_STYLE_TYPE_NONE
    MAJOR_COMMON_STYLE_TYPE_SQUARE
    MAJOR_COMMON_STYLE_TYPE_VERTICAL
    类型说明示例
    RESERVE_TYPE_NONE
    RESERVE_TYPE_RECALL
    类型说明示例
    LIVE_STATE_TYPE_NONE
    LIVE_STATE_TYPE_LIVE
    LIVE_STATE_TYPE_ROTATION
    类型说明示例
    SUBSCRIPTION_NEW_STYLE_TYPE_NONE
    SUBSCRIPTION_NEW_STYLE_TYPE_DRAW
    SUBSCRIPTION_NEW_STYLE_TYPE_LIVE
    类型说明示例
    THREE_POINT_DELETE删除
    THREE_POINT_REPORT举报
    THREE_POINT_FOLLOWING关注/取消关注
    THREE_POINT_TOP置顶/取消置顶
    THREE_POINT_UNFAV
    THREE_POINT_UNSUBS
    THREE_POINT_TOPIC_REPORT
    THREE_POINT_TOPIC_IRRELEVANT
    THREE_POINT_RCMD_RESOURCE
    THREE_POINT_RCMD_FEEDBACK
    类型说明示例
    FOLD_TYPE_NONE
    FOLD_TYPE_PUBLISH
    FOLD_TYPE_FREQUENT
    FOLD_TYPE_UNITE
    FOLD_TYPE_LIMIT
    类型说明示例
    DYN_STATUS_TYPE_NONE
    DYN_STATUS_TYPE_NORMAL
    DYN_STATUS_TYPE_AUDITING
    DYN_STATUS_TYPE_SELF_VISIBLE
    DYN_STATUS_TYPE_DELETED
    类型说明示例
    SCENE_DETAIL
    SCENE_HOT
    SCENE_GENERAL
    SCENE_SPACE
    SCENE_TOPIC
    ",11);function p_(L_,U_){const _=r("ExternalLinkIcon");return o(),h("div",null,[i,E,t("table",null,[T,t("tbody",null,[t("tr",null,[u,a,c,b,O,t("td",null,[t("a",N,[d("716510857084796964"),l(_)])])]),P,A,I,Y,t("tr",null,[D,R,C,S,M,t("td",null,[t("a",f,[d("718377531474968613"),l(_)])])]),t("tr",null,[p,L,U,m,H,t("td",null,[t("a",y,[d("718384798557536290"),l(_)])])]),t("tr",null,[B,G,V,k,g,t("td",null,[t("a",J,[d("718372214316990512"),l(_)])])]),X,t("tr",null,[W,x,F,v,w,t("td",null,[t("a",K,[d("551309621391003098"),l(_)]),Q,t("a",j,[d("716503778995470375"),l(_)]),q,t("a",z,[d("716481612656672789"),l(_)])])]),Z,t("tr",null,[$,tt,dt,_t,lt,t("td",null,[t("a",nt,[d("216042859353895488"),l(_)])])]),t("tr",null,[et,rt,ot,ht,st,t("td",null,[t("a",it,[d("534428265320147158"),l(_)])])]),t("tr",null,[Et,Tt,ut,at,ct,t("td",null,[t("a",bt,[d("717906712866062340"),l(_)])])]),Ot,Nt,Pt,At,t("tr",null,[It,Yt,Dt,Rt,Ct,t("td",null,[t("a",St,[d("718371505648435205"),l(_)])])]),Mt,t("tr",null,[ft,pt,Lt,Ut,mt,t("td",null,[t("a",Ht,[d("718390979031203873"),l(_)])])]),yt])]),Bt,t("table",null,[Gt,t("tbody",null,[Vt,t("tr",null,[kt,gt,t("td",null,[t("a",Jt,[d("721295772787671059"),l(_)])])]),t("tr",null,[Xt,Wt,t("td",null,[t("a",xt,[d("721296515797090324"),l(_)])])]),t("tr",null,[Ft,vt,t("td",null,[t("a",wt,[d("720907383182721040"),l(_)])])]),t("tr",null,[Kt,Qt,t("td",null,[t("a",jt,[d("721203899129659408"),l(_)])])]),t("tr",null,[qt,zt,t("td",null,[t("a",Zt,[d("721188862459641879"),l(_)])])]),t("tr",null,[$t,td,t("td",null,[t("a",dd,[d("721282703208480790"),l(_)])])]),t("tr",null,[_d,ld,t("td",null,[t("a",nd,[d("716752002311258165"),l(_)])])]),ed,t("tr",null,[rd,od,t("td",null,[t("a",hd,[d("716751108968546393"),l(_)])])]),sd,id,Ed,t("tr",null,[Td,ud,t("td",null,[t("a",ad,[d("716751027361022055"),l(_)])])]),cd,t("tr",null,[bd,Od,t("td",null,[t("a",Nd,[d("721314095109767220"),l(_)])])]),t("tr",null,[Pd,Ad,t("td",null,[t("a",Id,[d("721282046064853080"),l(_)])])]),Yd,Dd])]),Rd,t("table",null,[Cd,t("tbody",null,[Sd,Md,fd,t("tr",null,[pd,Ld,t("td",null,[t("a",Ud,[d("716365292050055176"),l(_)])])]),t("tr",null,[md,Hd,t("td",null,[d("游戏"),yd,t("a",Bd,[d("716357878942793745"),l(_)])])]),Gd,Vd,t("tr",null,[kd,gd,t("td",null,[t("a",Jd,[d("716489253410832401"),l(_)])])]),t("tr",null,[Xd,Wd,t("td",null,[d("直播预约"),xd,t("a",Fd,[d("716524987542929443"),l(_)])])])])]),vd,t("table",null,[wd,t("tbody",null,[t("tr",null,[Kd,Qd,t("td",null,[t("a",jd,[d("716510857084796964"),l(_)])])]),t("tr",null,[qd,zd,t("td",null,[t("a",Zd,[d("866756840240709701"),l(_)])])]),t("tr",null,[$d,t_,t("td",null,[t("a",d_,[d("870176712256651305"),l(_)])])]),t("tr",null,[__,l_,t("td",null,[t("a",n_,[d("716526237365829703"),l(_)])])]),t("tr",null,[e_,r_,t("td",null,[t("a",o_,[d("645981661420322824"),l(_)])])]),h_,t("tr",null,[s_,i_,t("td",null,[t("a",E_,[d("716358050743582725"),l(_)])])]),T_,u_,t("tr",null,[a_,c_,t("td",null,[t("a",b_,[d("716481612656672789"),l(_)])])]),t("tr",null,[O_,N_,t("td",null,[t("a",P_,[d("267505569812738175"),l(_)])])]),A_,I_,Y_,D_,t("tr",null,[R_,C_,t("td",null,[t("a",S_,[d("716509100448415814"),l(_)])])]),M_])]),f_])}const H_=e(s,[["render",p_],["__file","dynamic_enum.html.vue"]]);export{H_ as default}; diff --git a/assets/dynamic_enum.html-faf3d743.js b/assets/dynamic_enum.html-faf3d743.js new file mode 100644 index 0000000000..60c2e6fe62 --- /dev/null +++ b/assets/dynamic_enum.html-faf3d743.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-fbe42de6","path":"/docs/dynamic/dynamic_enum.html","title":"动态类型对照","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"动态类型","slug":"动态类型","link":"#动态类型","children":[]},{"level":2,"title":"富文本节点类型","slug":"富文本节点类型","link":"#富文本节点类型","children":[]},{"level":2,"title":"作者类型","slug":"作者类型","link":"#作者类型","children":[]},{"level":2,"title":"相关内容卡片类型","slug":"相关内容卡片类型","link":"#相关内容卡片类型","children":[]},{"level":2,"title":"动态主体类型","slug":"动态主体类型","link":"#动态主体类型","children":[]}],"git":{},"filePathRelative":"docs/dynamic/dynamic_enum.md"}');export{l as data}; diff --git a/assets/ent-ed6247e0.svg b/assets/ent-ed6247e0.svg new file mode 100644 index 0000000000..d938420ef9 --- /dev/null +++ b/assets/ent-ed6247e0.svg @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/assets/errcode.html-30388d7a.js b/assets/errcode.html-30388d7a.js new file mode 100644 index 0000000000..636b57362f --- /dev/null +++ b/assets/errcode.html-30388d7a.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-728812ef","path":"/docs/misc/errcode.html","title":"公共错误码","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"权限类","slug":"权限类","link":"#权限类","children":[]},{"level":2,"title":"请求类","slug":"请求类","link":"#请求类","children":[]}],"git":{},"filePathRelative":"docs/misc/errcode.md"}');export{e as data}; diff --git a/assets/errcode.html-c005e1a0.js b/assets/errcode.html-c005e1a0.js new file mode 100644 index 0000000000..24341181a2 --- /dev/null +++ b/assets/errcode.html-c005e1a0.js @@ -0,0 +1 @@ +import{_ as t,o as d,c as r,e}from"./app-3168cb19.js";const a={},h=e('

    公共错误码

    下表为大部分接口返回值中code字段值中公共的错误代码

    权限类

    代码含义
    -1应用程序不存在或已被封禁
    -2Access Key 错误
    -3API 校验密匙错误
    -4调用方对该 Method 没有权限
    -101账号未登录
    -102账号被封停
    -103积分不足
    -104硬币不足
    -105验证码错误
    -106账号非正式会员或在适应期
    -107应用不存在或者被封禁
    -108未绑定手机
    -110未绑定手机
    -111csrf 校验失败
    -112系统升级中
    -113账号尚未实名认证
    -114请先绑定手机
    -115请先完成实名认证

    请求类

    代码含义
    -304木有改动
    -307撞车跳转
    -352风控校验失败 (UA 或 wbi 参数不合法)
    -400请求错误
    -401未认证 (或非法请求)
    -403访问权限不足
    -404啥都木有
    -405不支持该方法
    -409冲突
    -412请求被拦截 (客户端 ip 被服务端风控)
    -500服务器错误
    -503过载保护,服务暂不可用
    -504服务调用超时
    -509超出限制
    -616上传文件不存在
    -617上传文件太大
    -625登录失败次数太多
    -626用户不存在
    -628密码太弱
    -629用户名或密码错误
    -632操作对象数量限制
    -643被锁定
    -650用户等级太低
    -652重复的用户
    -658Token 过期
    -662密码时间戳过期
    -688地理区域限制
    -689版权限制
    -701扣节操失败
    -799请求过于频繁,请稍后再试
    -8888对不起,服务器开小差了~ (ಥ﹏ಥ)
    ',6),c=[h];function o(n,s){return d(),r("div",null,c)}const l=t(a,[["render",o],["__file","errcode.html.vue"]]);export{l as default}; diff --git a/assets/exit.html-01fc4142.js b/assets/exit.html-01fc4142.js new file mode 100644 index 0000000000..54bc9b68c2 --- /dev/null +++ b/assets/exit.html-01fc4142.js @@ -0,0 +1,13 @@ +import{_ as t,o as s,c as e,e as a}from"./app-3168cb19.js";const n={},d=a(`

    退出账号登录

    退出登录(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):

    参数名类型内容必要性备注
    biliCSRFstrCSRF Token (位于 cookie 中的 bili_jct)必要
    gourlstr成功后跳转到的页面非必要默认为javascript:history.go(-1)

    json 回复:

    如果 cookie 已经失效则输出登录页 html

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    2202:csrf 请求非法
    statusbool返回值true:成功
    tsnum时间戳
    messagestr错误信息成功时不存在
    data有效时:obj信息本体失败时不存在

    data对象:

    字段类型内容备注
    redirectUrlstr重定向 url

    示例:

    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'
    +
    查看响应示例:
    {
    +  "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"
    +  }
    +}
    +
    `,20),o=[d];function r(p,c){return s(),e("div",null,o)}const l=t(n,[["render",r],["__file","exit.html.vue"]]);export{l as default}; diff --git a/assets/exit.html-7995bef8.js b/assets/exit.html-7995bef8.js new file mode 100644 index 0000000000..ea141c944f --- /dev/null +++ b/assets/exit.html-7995bef8.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-215493fa","path":"/docs/login/exit.html","title":"退出账号登录","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"退出登录(web端)","slug":"退出登录-web端","link":"#退出登录-web端","children":[]}],"git":{},"filePathRelative":"docs/login/exit.md"}');export{e as data}; diff --git a/assets/fashion-773241bb.svg b/assets/fashion-773241bb.svg new file mode 100644 index 0000000000..cfb662132e --- /dev/null +++ b/assets/fashion-773241bb.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/fav-55c612b4.js b/assets/fav-55c612b4.js new file mode 100644 index 0000000000..dda65d2a19 --- /dev/null +++ b/assets/fav-55c612b4.js @@ -0,0 +1 @@ +const s="/bilibili-API-collect/assets/like-10f92194.svg",i="/bilibili-API-collect/assets/coin-56bd2c69.svg",l="/bilibili-API-collect/assets/fav-e784befa.svg";export{s as _,i as a,l as b}; diff --git a/assets/fav-e784befa.svg b/assets/fav-e784befa.svg new file mode 100644 index 0000000000..eea2122741 --- /dev/null +++ b/assets/fav-e784befa.svg @@ -0,0 +1,6 @@ + + + diff --git a/assets/fetch.html-0a76fd10.js b/assets/fetch.html-0a76fd10.js new file mode 100644 index 0000000000..3853be62b1 --- /dev/null +++ b/assets/fetch.html-0a76fd10.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-ee5e21ae","path":"/docs/newbie_exam/fetch.html","title":"拉取题目","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"拉取基础题","slug":"拉取基础题","link":"#拉取基础题","children":[]},{"level":2,"title":"拉取附加题","slug":"拉取附加题","link":"#拉取附加题","children":[]},{"level":2,"title":"拉取自选题","slug":"拉取自选题","link":"#拉取自选题","children":[]}],"git":{},"filePathRelative":"docs/newbie_exam/fetch.md"}');export{e as data}; diff --git a/assets/fetch.html-e7fe2c52.js b/assets/fetch.html-e7fe2c52.js new file mode 100644 index 0000000000..5cc4844d6f --- /dev/null +++ b/assets/fetch.html-e7fe2c52.js @@ -0,0 +1,115 @@ +import{_ as p,r as e,o,c as l,a as n,b as s,d as r,w as c,e as a}from"./app-3168cb19.js";const u={},d=a('

    拉取题目

    拉取基础题

    https://api.bilibili.com/x/answer/v4/base

    请求方式:GET

    认证方式:Cookie或APP

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41020:用户基础题已通过
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    questionobj题目内容

    data中的question对象:

    ',11),i=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),k=n("tr",null,[n("td",null,"id"),n("td",null,"num"),n("td",null,"问题id"),n("td",null,[n("strong",null,"问题id不代表题图,因为选项是打乱的")])],-1),b=n("tr",null,[n("td",null,"number"),n("td",null,"num"),n("td",null,"当前题号"),n("td")],-1),m=n("tr",null,[n("td",null,"q_height"),n("td",null,"num"),n("td",null,"问题部分总高度"),n("td")],-1),v=n("tr",null,[n("td",null,"q_coord_y"),n("td",null,"num"),n("td",null,"问题部分Y裁剪起始"),n("td",null,"当然是0")],-1),q=n("tr",null,[n("td",null,"image"),n("td",null,"str"),n("td",null,"题图url"),n("td",null,"题目文字+所有的选项文字排版成一张图,存储在bfs中")],-1),h=n("tr",null,[n("td",null,"from"),n("td",null,"str"),n("td",null,"问题来源页面url"),n("td",null,"如:“xx弹幕是否违规”所在的视频页")],-1),y=n("tr",null,[n("td",null,"options"),n("td",null,"array"),n("td",null,"选项列表"),n("td")],-1),g=n("td",null,"type_id",-1),_=n("td",null,"num",-1),f=n("td",null,"题目父类型id",-1),x=n("br",null,null,-1),E=n("strong",null,"注:36为基础题",-1),A=n("tr",null,[n("td",null,"type_name"),n("td",null,"str"),n("td",null,"分院小电视提示文案"),n("td",null,"如:xx小电视")],-1),j=n("tr",null,[n("td",null,"type_image"),n("td",null,"str"),n("td",null,"分院小电视图标url"),n("td")],-1),w=a(`

    question中的options数组:

    类型内容备注
    0obj选项A
    1obj选项B选项至少2个
    2obj选项C数组长度取决于选项个数
    3obj选项D

    question中的options数组中的对象:

    字段类型内容备注
    numbernum选项序号如:1为A 2为B
    highnum选项部分总高度
    coord_ynum选项部分Y裁剪起始
    hashstr选项hash作为提交对应选项时应传参

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/base' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41023:用户答题记录不存在
    41054:用户附加题已通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    拉取基础题data对象

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/extra' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41023:用户答题记录不存在
    41051:用户答题验证码未通过
    41055:基础附加题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    拉取基础题data对象

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/pro' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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"
    +        }
    +    }
    +}
    +
    `,31);function B(S,T){const t=e("RouterLink");return o(),l("div",null,[d,n("table",null,[i,n("tbody",null,[k,b,m,v,q,h,y,n("tr",null,[g,_,f,n("td",null,[s("见"),r(t,{to:"/docs/newbie_exam/info.html#%E6%9F%A5%E8%AF%A2%E8%87%AA%E9%80%89%E9%A2%98%E5%88%86%E7%B1%BB"},{default:c(()=>[s("查询自选题分类")]),_:1}),x,E])]),A,j])]),w])}const F=p(u,[["render",B],["__file","fetch.html.vue"]]);export{F as default}; diff --git a/assets/follow-c1c4dc33.svg b/assets/follow-c1c4dc33.svg new file mode 100644 index 0000000000..900076bdc9 --- /dev/null +++ b/assets/follow-c1c4dc33.svg @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/assets/follow.html-30502485.js b/assets/follow.html-30502485.js new file mode 100644 index 0000000000..5b8eb384c6 --- /dev/null +++ b/assets/follow.html-30502485.js @@ -0,0 +1,27 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    追番相关

    追番

    https://api.bilibili.com/pgc/web/follow/add

    请求方式:POST

    鉴权方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    season_idstr剧集ssid必要
    csrfstrcsrf token(位于cookies中的bili_jct)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    messagestr信息成功时:success
    resultobj见下表

    根对象中的result对象:

    字段类型内容备注
    fmidnum0
    relationboolfalse
    statusnum2
    toaststr自己追的番就要好好看完哟^o^

    示例:

    追番ssid=41410的番剧

    curl -G 'https://api.bilibili.com/pgc/web/follow/add' \\
    +--data-urlencode 'season_id=41410' \\
    +--data-urlencode 'csrf=xxx' \\
    +
    查看响应示例:
    {
    +  "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_idstr剧集ssid必要
    csrfstrcsrf token(位于cookies中的bili_jct)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    messagestr信息成功时:success
    resultobj见下表

    根对象中的result对象:

    字段类型内容备注
    fmidnum0
    relationbooltrue
    statusnum0
    toaststr已取消追番

    示例:

    取消ssid=41410的追番

    curl -G 'https://api.bilibili.com/pgc/web/follow/del' \\
    +--data-urlencode 'season_id=41410' \\
    +--data-urlencode 'csrf=xxx' \\
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "success",
    +  "result": {
    +    "fmid": 0,
    +    "relation": false,
    +    "status": 0,
    +    "toast": "已取消追番"
    +  }
    +}
    +
    `,31),o=[d];function p(r,l){return s(),n("div",null,o)}const i=t(e,[["render",p],["__file","follow.html.vue"]]);export{i as default}; diff --git a/assets/follow.html-c3918f68.js b/assets/follow.html-c3918f68.js new file mode 100644 index 0000000000..e1a91f4789 --- /dev/null +++ b/assets/follow.html-c3918f68.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-403a6f12","path":"/docs/bangumi/follow.html","title":"追番相关","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"追番","slug":"追番","link":"#追番","children":[]},{"level":2,"title":"取消追番","slug":"取消追番","link":"#取消追番","children":[]}],"git":{},"filePathRelative":"docs/bangumi/follow.md"}');export{l as data}; diff --git a/assets/follow_up_live.html-0945217c.js b/assets/follow_up_live.html-0945217c.js new file mode 100644 index 0000000000..4e90187774 --- /dev/null +++ b/assets/follow_up_live.html-0945217c.js @@ -0,0 +1,78 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const o={},e=a(`

    关注UP直播情况

    用户关注的所有UP的直播情况

    https://api.live.bilibili.com/xlive/web-ucenter/user/following

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    pagenum页码非必要默认为1
    page_sizenum每页的数据数量非必要有效值1-10, 默认为10
    ignoreRecordnum尚不明确
    一般为1
    hit_abbool尚不明确
    建议用true, 不填为false

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:错误
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    titlestr标题
    pageSizenum每页的数据数量
    totalPagenum分页数量
    listobjUP直播情况列表
    countnum曾直播过的UP数量
    never_lived_countnum未直播过的UP数量
    live_countnum正在直播的UP数量
    never_lived_faceslist尚不明确

    list对象:

    字段类型内容备注
    roomidnum房间号
    uidnum主播uid
    unamestr主播名
    titlestr直播标题
    facestr主播头像
    live_statusnum是否正在直播0: 未直播
    1: 正在直播
    record_numnum尚不明确
    一般为0
    recent_record_idstr尚不明确
    一般为空
    is_attentionnum尚不明确
    一般为1
    clipnumnum尚不明确
    一般为0
    fans_numnum尚不明确
    一般为0
    area_namestr尚不明确
    一般为空
    area_valuestr尚不明确
    一般为空
    tagsstr尚不明确
    一般为空
    recent_record_id_v2str尚不明确
    一般为空
    record_num_v2num尚不明确
    一般为0
    record_live_timenum主播上一次直播结束的时间戳正在直播时, 值为0
    area_name_v2str频道的名称
    room_newsstr房间公告
    switchbool尚不明确
    watch_iconstr尚不明确
    text_smallstr尚不明确
    当主播正在直播时, 为在线人数(可能)
    room_coverstr房间封面图片的URL
    parent_area_idnum父分区id
    area_idnum分区id

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/following' \\
    +     -b 'SESSDATA=xxx' \\
    +     --data-urlencode 'page=1' \\
    +     --data-urlencode 'page_size=2' \\
    +     --data-urlencode 'ignoreRecord=1' \\
    +     --data-urlencode 'hit_ab=true'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "title": "哔哩哔哩直播 - 我的关注",
    +    "pageSize": 2,
    +    "totalPage": 26,
    +    "list": [
    +      {
    +        "roomid": 544853,
    +        "uid": 686127,
    +        "uname": "籽岷",
    +        "title": "尝试双机位",
    +        "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +        "live_status": 0,
    +        "record_num": 0,
    +        "recent_record_id": "",
    +        "is_attention": 1,
    +        "clipnum": 0,
    +        "fans_num": 0,
    +        "area_name": "",
    +        "area_value": "",
    +        "tags": "",
    +        "recent_record_id_v2": "",
    +        "record_num_v2": 0,
    +        "record_live_time": 1720011626,
    +        "area_name_v2": "新游推荐",
    +        "room_news": "",
    +        "switch": true,
    +        "watch_icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
    +        "text_small": "10.9万",
    +        "room_cover": "http://i0.hdslb.com/bfs/live/new_room_cover/6c89c41d7695a080d31ae21c128f7759a7f419e5.jpg",
    +        "parent_area_id": 6,
    +        "area_id": 889
    +      },
    +      {
    +        "roomid": 21686237,
    +        "uid": 456664753,
    +        "uname": "央视新闻",
    +        "title": "央视新闻的直播间",
    +        "face": "https://i1.hdslb.com/bfs/face/38a8db1c187b64a1412fafffbf350f8a3f436371.jpg",
    +        "live_status": 0,
    +        "record_num": 0,
    +        "recent_record_id": "",
    +        "is_attention": 1,
    +        "clipnum": 0,
    +        "fans_num": 0,
    +        "area_name": "",
    +        "area_value": "",
    +        "tags": "",
    +        "recent_record_id_v2": "",
    +        "record_num_v2": 0,
    +        "record_live_time": 1720001717,
    +        "area_name_v2": "社科法律心理",
    +        "room_news": "",
    +        "switch": false,
    +        "watch_icon": "https://i0.hdslb.com/bfs/live/0b265af1af0a77abc47aa3b8f1a5c0769d8bd23b.png",
    +        "text_small": "0",
    +        "room_cover": "http://i0.hdslb.com/bfs/live/d650d0e6e49397ea71d630be0a0e686679df16d8.jpg",
    +        "parent_area_id": 11,
    +        "area_id": 376
    +      }
    +    ],
    +    "count": 52,
    +    "never_lived_count": 30,
    +    "live_count": 0,
    +    "never_lived_faces": []
    +  }
    +}
    +
    +
    `,17),p=[e];function r(d,c){return n(),s("div",null,p)}const u=t(o,[["render",r],["__file","follow_up_live.html.vue"]]);export{u as default}; diff --git a/assets/follow_up_live.html-e585736a.js b/assets/follow_up_live.html-e585736a.js new file mode 100644 index 0000000000..f64b533cb8 --- /dev/null +++ b/assets/follow_up_live.html-e585736a.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-60c67fef","path":"/docs/live/follow_up_live.html","title":"关注UP直播情况","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"用户关注的所有UP的直播情况","slug":"用户关注的所有up的直播情况","link":"#用户关注的所有up的直播情况","children":[]}],"git":{},"filePathRelative":"docs/live/follow_up_live.md"}');export{e as data}; diff --git a/assets/food-5883d8d8.svg b/assets/food-5883d8d8.svg new file mode 100644 index 0000000000..e554eb589a --- /dev/null +++ b/assets/food-5883d8d8.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/game-158a0730.svg b/assets/game-158a0730.svg new file mode 100644 index 0000000000..59a2188401 --- /dev/null +++ b/assets/game-158a0730.svg @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/assets/get_dynamic_detail.html-2540d0b4.js b/assets/get_dynamic_detail.html-2540d0b4.js new file mode 100644 index 0000000000..7b12f9e0f6 --- /dev/null +++ b/assets/get_dynamic_detail.html-2540d0b4.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-5eaf8994","path":"/docs/dynamic/get_dynamic_detail.html","title":"获取特定动态卡片信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"最近更新UP主列表","slug":"最近更新up主列表","link":"#最近更新up主列表","children":[]}],"git":{},"filePathRelative":"docs/dynamic/get_dynamic_detail.md"}');export{e as data}; diff --git a/assets/get_dynamic_detail.html-76bc1809.js b/assets/get_dynamic_detail.html-76bc1809.js new file mode 100644 index 0000000000..bfc9a81a09 --- /dev/null +++ b/assets/get_dynamic_detail.html-76bc1809.js @@ -0,0 +1,402 @@ +import{_ as p,r as o,o as e,c as l,a as s,b as n,d as c,w as u,e as a}from"./app-3168cb19.js";const r={},i=a(`

    获取特定动态卡片信息

    https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    dynamic_idid动态id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    cardobj动态卡片内容当动态不存在/删除时不返回此项
    resultnum0作用尚不明确(当动态不存在/删除时不返回此项)
    _gt_num0作用尚不明确

    data中的card对象:

    字段类型内容备注
    activity_infosobj该条动态参与的活动当此条动态没有参与任何活动时不显示此项
    cardstr动态详细信息会跟随此动态类型不同发生一定的变化,评论数、点赞数等相关信息参考desc字段
    descobj动态相关信息会跟随此动态类型不同发生一定的变化,详细信息(例如动态描述等)参考card字段
    displayobj动态部分的可操作项会随着动态类型发生变化,主要用于显示动态
    extend_jsonstr动态扩展项会随着动态类型发生变化
    此处的大部分字段的内容都会根据desc中的type值发生一定变化,具体的数值对照参考下表(仅作参考,部分内容的解释未知,同时有些内容仅为在部分页面出现,无法通过此API调出):
    含义
    268435455具体定义未知
    1转发
    2图片动态
    4文字动态
    8视频动态
    16小视频
    32具体定义未知(可能为戏剧)
    64专栏
    256音频
    512番剧
    1024具体定义未知
    2048H5活动动态
    2049漫画分享
    4097PGC番剧
    4098电影
    4099电视剧
    4100国创动漫
    4101纪录片
    4200直播
    4201直播
    4300收藏夹
    4302付费课程
    4303付费课程
    4308直播
    4310合集
    4311具体定义未知
    1e3具体定义未知
    1001具体定义未知

    示例:

    获取哔哩哔哩弹幕网的动态id为507420325550127049动态

    curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail' \\
    +--data-urlencode 'dynamic_id=507420325550127049'
    +
    查看响应示例
    {
    +    "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回复:

    根对象

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为0
    ttlint1默认为1

    data对象

    字段类型内容备注
    live_usersnull不明
    my_infoobj个人关注的一些信息
    up_listarray最近更新的up主列表

    my_info对象

    字段类型内容备注
    dynsint个人动态
    facestr头像图像地址
    face_nftint不明
    followerint粉丝数量
    followingint我的关注
    level_infoobj本人等级内容
    midint账户mid
    namestr账户名称
    offcialobj认证信息
    space_bgstr账户个人中心的背景横幅图像地址
    vipobjvip信息

    my_info中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0
    current_expnum0
    next_expnum0

    my_info中的Official对象:

    `,31),d=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),k=s("td",null,"role",-1),q=s("td",null,"num",-1),v=s("td",null,"认证类型",-1),b=s("tr",null,[s("td",null,"title"),s("td",null,"str"),s("td",null,"认证信息"),s("td",null,"无为空")],-1),m=s("tr",null,[s("td",null,"desc"),s("td",null,"str"),s("td",null,"认证备注"),s("td",null,"无为空")],-1),y=s("tr",null,[s("td",null,"type"),s("td",null,"num"),s("td",null,"是否认证"),s("td",null,[n("-1:无"),s("br"),n("0:认证")])],-1),_=a(`

    my_info中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间Unix时间戳(毫秒)
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    rolenum大角色类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    avatar_subscript_urlstr大会员角标地址
    tv_vip_statusnum电视大会员状态0:未开通
    tv_vip_pay_typenum电视大会员支付类型

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr空串
    img_label_uri_hantstr空串
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    data中的up_list数组对象

    字段属性内容备注
    facestrUP主头像
    has_updatebool最近更新是否更新?
    is_reserve_recallbool不明
    midintUP主mid
    unamestrup主昵称
    查看响应示例:
    {
    +  "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----"
    +      }
    +    ]
    +  }
    +}
    +
    `,7);function h(f,g){const t=o("RouterLink");return e(),l("div",null,[i,s("table",null,[d,s("tbody",null,[s("tr",null,[k,q,v,s("td",null,[n("见"),c(t,{to:"/docs/user/official_role.html"},{default:u(()=>[n("用户认证类型一览")]),_:1})])]),b,m,y])]),_])}const x=p(r,[["render",h],["__file","get_dynamic_detail.html.vue"]]);export{x as default}; diff --git a/assets/guochuang-2887858d.svg b/assets/guochuang-2887858d.svg new file mode 100644 index 0000000000..a10c3e970c --- /dev/null +++ b/assets/guochuang-2887858d.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/header.html-46eb8c14.js b/assets/header.html-46eb8c14.js new file mode 100644 index 0000000000..56f89c9307 --- /dev/null +++ b/assets/header.html-46eb8c14.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-2bee0cb2","path":"/docs/web_widget/header.html","title":"首页横幅头图","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取方法","slug":"获取方法","link":"#获取方法","children":[]},{"level":2,"title":"获取首页头图","slug":"获取首页头图","link":"#获取首页头图","children":[]},{"level":2,"title":"图层组合处理","slug":"图层组合处理","link":"#图层组合处理","children":[]}],"git":{},"filePathRelative":"docs/web_widget/header.md"}');export{e as data}; diff --git a/assets/header.html-7ea3c62c.js b/assets/header.html-7ea3c62c.js new file mode 100644 index 0000000000..c6fa62ce6e --- /dev/null +++ b/assets/header.html-7ea3c62c.js @@ -0,0 +1,17 @@ +import{_ as a,r as e,o as s,c as d,a as t,b as o,d as q,e as n}from"./app-3168cb19.js";const r={},c=t("h1",{id:"首页横幅头图",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#首页横幅头图","aria-hidden":"true"},"#"),o(" 首页横幅头图")],-1),l=t("h2",{id:"获取方法",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#获取方法","aria-hidden":"true"},"#"),o(" 获取方法")],-1),i={href:"https://space.bilibili.com/6823116",target:"_blank",rel:"noopener noreferrer"},p=t("li",null,[t("p",null,"✅ 通过主页获取头图接口获取静态图片与各部分及其动态偏移信息")],-1),b=n(`

    获取首页头图

    https://api.bilibili.com/x/web-show/page/header

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    resource_idnum资源 ID?必要默认为 142, 实测可为任意有效整数

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlstr1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    namestr
    picstr静态头图 URL
    litpicstrbilibili logo URL
    urlstr
    is_split_layerstr是否分层1: 是
    split_layerstr分层信息一个套在字符串里的 JSON 对象

    data 对象中的split_layer 字符串里的 JSON 对象:

    字段类型内容备注
    versionstr版本号目前为 1
    layersarray层信息

    split_layer 字符串里的 JSON 对象中的 layers 数组:

    类型内容备注
    0obj第 1 个层信息
    2obj第 3 个层信息
    1obj第 2 个层信息
    ……obj……
    nobj第 (n+1) 个层信息

    split_layer 字符串里的 JSON 对象中的 layers 数组里的对象:

    字段类型内容备注
    resourcesobj图层资源
    scaleobj缩放信息
    rotateobj路径?
    translateobj偏移信息
    blurobj模糊信息?
    opacityobj不透明度?内容 wrapclamp
    idnum层 ID似乎即图层索引
    namestr层名称

    layers 数组里的对象中的 resources 对象:

    字段类型内容备注
    srcstr图层 URL
    idnum0

    layers 数组里的对象中的 scale 对象:

    字段类型内容备注
    initialnum初始缩放值?
    offsetnum缩放偏移值?部分层无此项

    layers 数组里的对象中的 translate 对象:

    字段类型内容备注
    offsetarray偏移值?[x, y]? 部分层无此项

    示例:

    获取 Sat, 03 Aug 2024 01:41:35 GMT 时刻的 B 站首页头图

    curl -G "https://api.bilibili.com/x/web-show/page/header" \\
    +--data-urlencode "resource_id=142"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "name": "",
    +    "pic": "http://i0.hdslb.com/bfs/archive/e5b7fca0c001cbe0b77a2956e4c861d9f19c4575.png",
    +    "litpic": "http://i0.hdslb.com/bfs/archive/c8fd97a40bf79f03e7b76cbc87236f612caef7b2.png",
    +    "url": "",
    +    "is_split_layer": 1,
    +    "split_layer": "{\\"version\\":\\"1\\",\\"layers\\":[{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/75ec2d45ce8c942a1f7379d4641171da4d90ab0d.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.54},\\"rotate\\":{},\\"translate\\":{},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":0,\\"name\\":\\"19-背景水\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/286eb259a60a0eabfcde96d7ea92d239fe68b3fe.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.53},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[10,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":1,\\"name\\":\\"18-再远景\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/782d55aeca6cc75f51d2d630005f514a61a0ddfa.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.55},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[10,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":3,\\"name\\":\\"16-远景房子1\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/d6c941cf2d5fc6c717173f7e3f166dbc444aa15b.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[30,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":4,\\"name\\":\\"15-两侧房子\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/27e411d92729604aa594858beb5130ed60aad76d.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.55,\\"offset\\":0.2},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[30,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":2,\\"name\\":\\"17-远景鲸鱼机\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/09d0855b6b6d6965e8f02404777986237848c6c9.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[300,10]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":5,\\"name\\":\\"14-中景鲸鱼机\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/40878bbef514e2d4bf5d660fe1145c869567bec2.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[20,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":6,\\"name\\":\\"13-窗外垃圾\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/42485baddbca05d2c4c7710a0b76b74d303e06d7.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.54},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[80,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":7,\\"name\\":\\"12-机场\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/8ea0e95a8e5fc85ae227810925dba1ace1e9fcba.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[120,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":8,\\"name\\":\\"11-空姐\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/c13ca9c6405c71bf864ed2bc421680cb437f45ef.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[80,40]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":9,\\"name\\":\\"10-泡泡04\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/a43c6833d262301373234ffbd6934559d2ce7fb2.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[100,50]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":10,\\"name\\":\\"09-泡泡03\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/ce8c5e45230a6d3805baf60f5916f1cd441aac8e.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.54},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[130,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":11,\\"name\\":\\"08-22\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/cbf19f3682dfb02e62557d07fefaf241a80296a1.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[200,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":12,\\"name\\":\\"07-近路人\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/4a4c1f6b2977478c73e41f39a2910c3b3c33167e.webm\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.5},\\"rotate\\":{},\\"translate\\":{\\"initial\\":[1000,0],\\"offset\\":[20,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":21,\\"name\\":\\"右气泡\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/7998ca9f0bc267375fb7b45f75626d96806f94d7.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[300,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":13,\\"name\\":\\"06-两侧前景植物\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/198efffbc58493300854c04ab0ea8d979a6f9223.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[280,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":15,\\"name\\":\\"04-顶部摸鱼牌子\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/142a486b8dd500a626a60b68ad993af8dabc8b55.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"offset\\":[300,130]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":16,\\"name\\":\\"03-泡泡02\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/bb6266e1525a51f7920fc8881e47cadeee271b0c.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"initial\\":[200,0],\\"offset\\":[350,20]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":17,\\"name\\":\\"02-泡泡01\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/cd68251cde11936871237ca94360acb451bf7ed2.png\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.52},\\"rotate\\":{},\\"translate\\":{\\"initial\\":[-200,0],\\"offset\\":[500,0]},\\"blur\\":{},\\"opacity\\":{\\"initial\\":0.5,\\"wrap\\":\\"clamp\\"},\\"id\\":18,\\"name\\":\\"01-光\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/426073f920477b718b8aee5ec141aca3889500f7.webm\\",\\"id\\":0}],\\"scale\\":{\\"initial\\":0.54},\\"rotate\\":{},\\"translate\\":{\\"initial\\":[400,0],\\"offset\\":[50,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":19,\\"name\\":\\"中气泡\\"},{\\"resources\\":[{\\"src\\":\\"https://i0.hdslb.com/bfs/vc/0de9fb9822d2d00500abc8bdb143907eb1802ddb.webm\\",\\"id\\":0}],\\"scale\\":{},\\"rotate\\":{},\\"translate\\":{\\"initial\\":[-700,0],\\"offset\\":[30,0]},\\"blur\\":{},\\"opacity\\":{\\"wrap\\":\\"clamp\\"},\\"id\\":20,\\"name\\":\\"左气泡\\"}]}",
    +    "request_id": "1722649278"
    +  }
    +}
    +

    图层组合处理

    `,27),h=t("li",null,[t("p",null,[t("strong",null,"注意:"),o(" 部分图像只包含部分颜色通道, 在创建文件时务必注意!")])],-1),f=t("li",null,[t("p",null,[o("图层既包含静态 PNG 图片,也包含动态 WebM 视频, 此处忽略视频, 按照 "),t("code",null,"name"),o(" 字段前的数字作为顺序, 依次导入 GIMP "),t("s",null,"(你也可以使用其她图像处理软件)"),o(", 未进行偏移调整")])],-1),m=t("li",null,[t("p",null,"接口提供的静态图片 http://i0.hdslb.com/bfs/archive/e5b7fca0c001cbe0b77a2956e4c861d9f19c4575.png")],-1),v={href:"http://i0.hdslb.com/bfs/new_dyn/510715042e8847b7fd98d8253ca1f61a616368979.png",target:"_blank",rel:"noopener noreferrer"};function y(k,g){const u=e("ExternalLinkIcon");return s(),d("div",null,[c,l,t("ul",null,[t("li",null,[t("p",null,[o("❎ "),t("s",null,[o("关注 UP 主 "),t("a",i,[o("壁纸喵"),q(u)]),o(" 获取静态图片")])])]),p]),b,t("ul",null,[h,f,m,t("li",null,[t("p",null,[o("手动导入合成的图片 https://archive.biliimg.com/bfs/archive/dc96f5d4e87a1985fc6085305d737f21f006f6a8.png ("),t("a",v,[o("备链"),q(u)]),o(")")])])])])}const w=a(r,[["render",y],["__file","header.html.vue"]]);export{w as default}; diff --git a/assets/history.html-36b46734.js b/assets/history.html-36b46734.js new file mode 100644 index 0000000000..d66209238e --- /dev/null +++ b/assets/history.html-36b46734.js @@ -0,0 +1,429 @@ +import{_ as e,r as l,o as r,c as u,a as s,b as n,d as a,w as p,e as o}from"./app-3168cb19.js";const c={},d=o(`

    历史记录

    获取历史记录列表_web端

    https://api.bilibili.com/x/web-interface/history/cursor

    请求方式:GET

    认证方式:Cookie (SESSDATA)

    注:maxbusinessview_at参数用于历史记录列表的 IFS (无限滚动),其用法类似链表的 next 指针

    url参数:

    参数名类型内容必要性备注
    maxnum历史记录截止目标 id非必要默认为 0
    稿件:稿件 avid
    剧集(番剧 / 影视):剧集 ssid
    直播:直播间 id
    文集:文集 rlid
    文章:文章 cvid
    businessstr历史记录截止目标业务类型非必要默认为空
    archive:稿件
    pgc:剧集(番剧 / 影视)
    live:直播
    article-list:文集
    article:文章
    view_atnum历史记录截止时间非必要时间戳
    默认为 0
    0 为当前时间
    typestr历史记录分类筛选非必要all:全部类型(默认)
    archive:稿件
    live:直播
    article:文章
    psnum每页项数非必要默认为 20,最大 30

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataarray历史记录列表

    data对象:

    字段类型内容备注
    cursorobj历史记录页面信息
    tabarray历史记录筛选类型
    listarray分段历史记录列表

    data中的cursor对象:

    字段类型内容备注
    maxnum最后一项目标 id见请求参数
    view_atnum最后一项时间节点时间戳
    businessstr最后一项业务类型见请求参数
    psnum每页项数

    data中的tab数组:

    类型内容备注
    0obj历史记录筛选类型 1
    1obj历史记录筛选类型 2
    2obj历史记录筛选类型 3

    tab数组中的对象:

    字段类型内容备注
    typestr类型
    namestr类型名

    data中的list数组:

    类型内容备注
    0obj历史记录 1
    nobj历史记录 (n+1)按照查看顺序排列
    ……obj

    list数组中的对象:

    字段类型内容备注
    titlestr条目标题
    long_titlestr条目副标题
    coverstr条目封面图 url用于专栏以外的条目
    covers有效时:array
    无效时:null
    条目封面图组仅用于专栏
    uristr重定向 url仅用于剧集和直播
    historyobj条目详细信息
    videosnum视频分 P 数目仅用于稿件视频
    author_namestrUP 主昵称
    author_facestrUP 主头像 url
    author_midnumUP 主 mid
    view_atnum查看时间时间戳
    progressnum视频观看进度单位为秒
    用于稿件视频或剧集
    badgestr角标文案稿件视频 / 剧集 / 笔记
    show_titlestr分 P 标题用于稿件视频或剧集
    durationnum视频总时长用于稿件视频或剧集
    currentstr(?)
    totalnum总计分集数仅用于剧集
    new_descstr最新一话 / 最新一 P 标识用于稿件视频或剧集
    is_finishnum是否已完结仅用于剧集
    0:未完结
    1:已完结
    is_favnum是否收藏0:未收藏
    1:已收藏
    kidnum条目目标 id详细内容见参数
    tag_namestr子分区名用于稿件视频和直播
    live_statusnum直播状态仅用于直播
    0:未开播
    1:已开播

    list数组中的对象中的covers数组:

    类型内容备注
    0str封面图片 1
    nstr封面图片 (n+1)
    ……str……

    list数组中的对象中的history对象:

    字段类型内容备注
    oidnum目标id稿件视频&剧集(当business=archivebusiness=pgc时):稿件avid
    直播(当business=live时):直播间id
    文章(当business=article时):文章cvid
    文集(当business=article-list时):文集rlid
    epidnum剧集epid仅用于剧集
    bvidstr稿件bvid仅用于稿件视频
    pagenum观看到的视频分P数仅用于稿件视频
    cidnum观看到的对象id稿件视频&剧集(当business=archivebusiness=pgc时):视频cid
    文集(当business=article-list时):文章cvid
    partstr观看到的视频分 P 标题仅用于稿件视频
    businessstr业务类型见请求参数
    dtnum记录查看的平台代码1 3 5 7:手机端
    2:web端
    4 6:pad端
    33:TV端
    0:其他

    示例:

    获取当前时间截止的5条历史记录

    curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \\
    +--data-urlencode 'ps=5' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码非必要默认为1
    psnum每页项数非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray历史记录列表

    data数组:

    类型内容备注
    0obj历史观看1
    nobj历史观看(n+1)按照观看顺序排列
    项数为总计观看视频数
    ……obj…………

    data数组中的对象:

    `,43),i=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),k=s("tr",null,[s("td",null,"aid"),s("td",null,"num"),s("td",null,"稿件avid"),s("td")],-1),b=s("tr",null,[s("td",null,"videos"),s("td",null,"num"),s("td",null,"视频分P总数"),s("td",null,"默认为1")],-1),v=s("tr",null,[s("td",null,"tid"),s("td",null,"num"),s("td",null,"分区tid"),s("td")],-1),q=s("tr",null,[s("td",null,"tname"),s("td",null,"str"),s("td",null,"子分区名称"),s("td")],-1),m=s("tr",null,[s("td",null,"copyright"),s("td",null,"num"),s("td",null,"是否转载"),s("td",null,[n("1:原创"),s("br"),n("2:转载")])],-1),h=s("tr",null,[s("td",null,"pic"),s("td",null,"str"),s("td",null,"视频封面图片url"),s("td")],-1),y=s("tr",null,[s("td",null,"title"),s("td",null,"str"),s("td",null,"稿件标题"),s("td")],-1),g=s("tr",null,[s("td",null,"pubdate"),s("td",null,"num"),s("td",null,"稿件发布时间"),s("td",null,"时间戳")],-1),_=s("tr",null,[s("td",null,"ctime"),s("td",null,"num"),s("td",null,"用户提交稿件的时间"),s("td",null,"时间戳")],-1),f=s("tr",null,[s("td",null,"desc"),s("td",null,"str"),s("td",null,"视频简介"),s("td")],-1),w=s("td",null,"state",-1),E=s("td",null,"num",-1),A=s("td",null,"视频状态",-1),x=s("code",null,"state",-1),j=s("td",null,[s("s",null,"attribute"),n("(仅做历史性保留)")],-1),B=s("td",null,[s("s",null,"num")],-1),F=s("td",null,[s("s",null,"稿件属性位配置")],-1),S=s("br",null,null,-1),C=s("code",null,"attribute",-1),T=s("tr",null,[s("td",null,"duration"),s("td",null,"num"),s("td",null,"视频总计持续时长(所有分P)"),s("td",null,"单位为秒")],-1),D=s("td",null,"rights",-1),P=s("td",null,"obj",-1),V=s("td",null,"视频属性标志",-1),N=s("code",null,"rights",-1),I=s("td",null,"owner",-1),G=s("td",null,"obj",-1),K=s("td",null,"视频UP主信息",-1),R=s("code",null,"owner",-1),L=s("td",null,"stat",-1),M=s("td",null,"obj",-1),O=s("td",null,"视频状态数",-1),U=s("code",null,"stat",-1),H=s("tr",null,[s("td",null,"dynamic"),s("td",null,"str"),s("td",null,"视频同步发布的的动态的文字内容"),s("td",null,"无为空")],-1),Z=s("tr",null,[s("td",null,"cid"),s("td",null,"num"),s("td",null,"视频1P cid"),s("td")],-1),z=s("td",null,"dimension",-1),J=s("td",null,"obj",-1),Q=s("td",null,"视频1P分辨率",-1),W=s("code",null,"dimension",-1),X=s("tr",null,[s("td",null,"bangumi"),s("td",null,"obj"),s("td",null,"番剧/影视信息"),s("td",null,"非番剧/影视无此项")],-1),Y=s("tr",null,[s("td",null,"cheese"),s("td",null,"obj"),s("td",null,"课程信息"),s("td",null,"非课程无此项")],-1),$=s("tr",null,[s("td",null,"favorite"),s("td",null,"bool"),s("td",null,"是否已收藏"),s("td",null,[n("true:已收藏"),s("br"),n("false:未收藏")])],-1),ss=s("tr",null,[s("td",null,"type"),s("td",null,"num"),s("td",null,"视频属性"),s("td",null,[n("3:普通视频"),s("br"),n("4:剧集"),s("br"),n("10:课程")])],-1),ns=s("tr",null,[s("td",null,"sub_type"),s("td",null,"num"),s("td",null,"附视频属性"),s("td",null,[n("0:普通视频"),s("br"),n("1:番剧"),s("br"),n("2:电影"),s("br"),n("3:纪录片"),s("br"),n("4:国创"),s("br"),n("5:电视剧"),s("br"),n("7:综艺")])],-1),ts=s("tr",null,[s("td",null,"device"),s("td",null,"num"),s("td",null,"观看平台代码"),s("td",null,[n("1 3 5 7:手机端"),s("br"),n("2:web端"),s("br"),n("4 6:pad端"),s("br"),n("33:TV端"),s("br"),n("0:其他")])],-1),as=s("tr",null,[s("td",null,"page"),s("td",null,"obj"),s("td",null,"最后观看的分P信息"),s("td")],-1),ps=s("tr",null,[s("td",null,"count"),s("td",null,"num"),s("td",null,"分P数"),s("td",null,"非投稿视频无此项")],-1),os=s("tr",null,[s("td",null,"progress"),s("td",null,"num"),s("td",null,"观看进度"),s("td",null,"单位为秒")],-1),es=s("tr",null,[s("td",null,"view_at"),s("td",null,"num"),s("td",null,"观看时间"),s("td",null,"时间戳")],-1),ls=s("tr",null,[s("td",null,"kid"),s("td",null,"num"),s("td",null,"稿件avid"),s("td")],-1),rs=s("tr",null,[s("td",null,"business"),s("td",null,"str"),s("td",null,"视频类型标识"),s("td",null,[n("archive:用户投稿视频"),s("br"),n("pgc:番剧/影视"),s("br"),n("cheese:课程")])],-1),us=s("tr",null,[s("td",null,"redirect_link"),s("td",null,"str"),s("td",null,"重定向url"),s("td")],-1),cs=s("tr",null,[s("td",null,"bvid"),s("td",null,"str"),s("td",null,"稿件bvid"),s("td")],-1),ds=o(`

    data数组中的对象bangumi对象:

    字段类型内容备注
    coverstr番剧封面图片url
    ep_idnum番剧epid
    episode_statusnum???
    follownum0作用尚不明确
    long_titlestr单集标题
    seasonobj剧集信息
    titlestr集数

    bangumi中的season对象:

    字段类型内容备注
    is_finishnum是否完结0:连载中
    1:完结
    newest_ep_idnum最细一话epid
    newest_ep_indexstr最细一话集数
    season_idnum番剧ssid
    season_statusnum???
    season_typenum???
    titlestr番剧标题
    total_countnum总集数

    data数组中的对象cheese对象:

    字段类型内容备注
    coverstr课程封面图片url
    long_titlestr完整标题
    numberstr本集数
    season_idnum课程ssid
    update_infostr总集数

    示例:

    查询当前视频历史记录列表

    curl -G 'https://api.bilibili.com/x/v2/history' \\
    +--data-urlencode 'ps=5' \\
    +--data-urlencode 'pn=1' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    kidstr删除的目标记录,格式为{业务类型}_{目标id}详见备注必要视频:archive_{稿件avid}
    直播:live_{直播间id}
    专栏:article_{专栏cvid}
    剧集:pgc_{剧集ssid}
    文集:article-list_{文集rlid}
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除视频av540580868的观看历史记录

    curl 'https://api.bilibili.com/x/v2/history/delete' \\
    +--data-urlencode 'kid=archive_540580868' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    清空历史记录

    https://api.bilibili.com/x/v2/history/clear

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    清空历史记录

    curl 'https://api.bilibili.com/x/v2/history/clear' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    停用历史记录

    https://api.bilibili.com/x/v2/history/shadow/set

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    该操作不会影响原有历史记录

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    switchbool停用开关非必要true:停用
    false:正常
    默认为false
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    停用历史记录功能

    curl 'https://api.bilibili.com/x/v2/history/shadow/set' \\
    +--data-urlencode 'switch=true' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    查询历史记录停用状态

    https://api.bilibili.com/x/v2/history/shadow

    请求方式:GET

    认证方式:Cookie (SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    databool停用状态true:停用
    false:正常

    示例:

    当前状态为未停用视频历史记录

    curl 'https://api.bilibili.com/x/v2/history/shadow' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": false
    +}
    +
    `,61);function is(ks,bs){const t=l("RouterLink");return r(),u("div",null,[d,s("table",null,[i,s("tbody",null,[k,b,v,q,m,h,y,g,_,f,s("tr",null,[w,E,A,s("td",null,[n("略,见"),a(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),x,n("备注")])]),s("tr",null,[j,B,F,s("td",null,[n("本字段已被删除"),S,s("s",null,[n("略,见"),a(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),C,n("备注")])])]),T,s("tr",null,[D,P,V,s("td",null,[n("略,见"),a(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),N,n("对象")])]),s("tr",null,[I,G,K,s("td",null,[n("略,见"),a(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),R,n("对象")])]),s("tr",null,[L,M,O,s("td",null,[n("略,见"),a(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),U,n("对象")])]),H,Z,s("tr",null,[z,J,Q,s("td",null,[n("略,见"),a(t,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),W,n("对象")])]),X,Y,$,ss,ns,ts,as,ps,os,es,ls,rs,us,cs])]),ds])}const qs=e(c,[["render",is],["__file","history.html.vue"]]);export{qs as default}; diff --git a/assets/history.html-71ecd67c.js b/assets/history.html-71ecd67c.js new file mode 100644 index 0000000000..7065e0febe --- /dev/null +++ b/assets/history.html-71ecd67c.js @@ -0,0 +1,97 @@ +import{_ as c,r as e,o as u,c as i,a as n,b as s,d as a,w as o,e as t}from"./app-3168cb19.js";const d={},r=t(`

    历史弹幕

    注:历史弹幕的xml接口已经失效,现已改为protobuf接口

    查询历史弹幕日期

    https://api.bilibili.com/x/v2/dm/history/index

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    注:查询历史弹幕需要登录

    url参数:

    参数名类型内容必要性备注
    typenum1必要
    oidnum视频cid必要
    monthstr查询目标年月必要YYYY-MM

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    data有弹幕:array
    无弹幕:null
    日期列表

    data数组:

    类型内容备注
    0str存在弹幕的日期1YYYY-MM-DD
    nstr存在弹幕的日期(n+1)YYYY-MM-DD
    ……str…………

    示例:

    查询了cid为144541892的视频位于2020年1月中有历史弹幕记录的日期

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": null
    +}
    +

    获取历史弹幕protobuf接口

    https://api.bilibili.com/x/v2/dm/web/history/seg.so

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    typenum弹幕类必要1:视频弹幕
    oidnum视频cid必要
    datestr弹幕日期必要YYYY-MM-DD

    proto回复:

    `,28),k={href:"https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/grpc_api/bilibili/community/service/dm/v1/dm.proto",target:"_blank",rel:"noopener noreferrer"},m=t(`

    获取视频av84271171(cid=144541892)2020-01-21的历史弹幕

    注:proto定义需要编译

    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接口

    `,6),v=n("summary",null,"查看折叠内容:",-1),g=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/v2/dm/history")],-1),b=n("p",null,[n("em",null,"请求方式:GET")],-1),h=n("p",null,"认证方式:Cookie(SESSDATA)",-1),q=n("p",null,[n("strong",null,"注:查询历史弹幕需要登录")],-1),x=t(`

    使用deflate压缩,注意解码

    url参数:

    参数名类型内容必要性备注
    typenum1必要
    oidnum视频cid必要
    datestr弹幕日期必要YYYY-MM-DD

    示例:

    获取视频av84271171(cid=144541892)2020-01-21的历史弹幕

    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 version="1.0" encoding="UTF-8"?>
    +<i>
    +    <chatserver>chat.bilibili.com</chatserver>
    +    <chatid>144541892</chatid>
    +    <mission>0</mission>
    +    <maxlimit>1500</maxlimit>
    +    <state>0</state>
    +    <real_name>0</real_name>
    +    <d p="473.43400,1,25,15138834,1579622380,0,ec16f2d,27532609919123456">敬礼</d>
    +    <d p="3.10200,1,25,16777215,1579622362,0,a2bd7474,27532609920696320">悄默声的更新啊怎么</d>
    +    <d p="17.52300,1,25,16777215,1579622357,0,972c932b,27532609906016258">久等了</d>
    +    <d p="40.81800,1,25,16777215,1579622343,0,bbca6701,27532609906540546">不都是乱纪元才浸泡</d>
    +    <d p="243.39800,1,25,15138834,1579622336,0,77b00ed9,27532609924890624">已阅,狗屁不通。大字报在地上搞搞就行,别弄到天上去</d>
    +    <d p="559.80000,1,25,16777215,1579622334,0,9affc7f5,27532609909686274">CSSC。。。</d>
    +    <d p="398.29700,1,25,16777215,1579622331,0,18d4707,27532609926463488">看到了个寂寞</d>
    +    <d p="34.81000,1,25,38979,1579622327,0,319d7700,27532609926987776">有耳朵了!</d>
    +    <d p="18.65700,1,25,16777215,1579622321,0,bbca6701,27532609912307714">雪天不用浸泡吧</d>
    +    <d p="305.99800,1,25,16777215,1579622316,0,878c315b,27532609928560640">未来史学派</d>
    +    <d p="7.86200,1,25,16777215,1579622309,0,c5136613,27532609913880578">浸泡!!!!!!!</d>
    +    <d p="368.95600,1,25,16777215,1579622302,0,18d4707,27532609914404866">章召忠</d>
    +    <d p="25.19800,1,25,16777215,1579622286,0,4dab6898,27532609931706368">mi24av</d>
    +    <d p="41.10100,1,25,16777215,1579622274,0,33d31036,27532609932230656">泪奔</d>
    +    <d p="627.69800,1,25,16777215,1579622264,0,d79a826a,27532609933279232">组建太空军</d>
    +    <d p="310.58900,1,25,16777215,1579622243,0,18d4707,27532609918074882">是未来史学派?</d>
    +    <d p="723.34800,1,25,16777215,1579622239,0,844fa9e7,27532609919123458">刘培强还行</d>
    +    …………
    +<i>
    +
    `,7);function y(_,f){const l=e("ExternalLinkIcon"),p=e("RouterLink");return u(),i("div",null,[r,n("p",null,[s("porto定义见:"),n("a",k,[s("bilibili.community.service.dm.v1.DmSegMobileReply"),a(l)])]),n("p",null,[s("详细说明见"),a(p,{to:"/docs/danmaku/danmaku_proto.html"},{default:o(()=>[s("protobuf弹幕")]),_:1})]),m,n("details",null,[v,g,b,h,q,n("p",null,[s("结果为"),a(p,{to:"/docs/danmaku/danmaku_xml.html#%E5%BC%B9%E5%B9%95%E6%A0%BC%E5%BC%8F"},{default:o(()=>[s("标准xml格式弹幕")]),_:1})]),x])])}const Y=c(d,[["render",y],["__file","history.html.vue"]]);export{Y as default}; diff --git a/assets/history.html-95de220d.js b/assets/history.html-95de220d.js new file mode 100644 index 0000000000..4534d63c41 --- /dev/null +++ b/assets/history.html-95de220d.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-9de02064","path":"/docs/history_toview/history.html","title":"历史记录","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取历史记录列表_web端","slug":"获取历史记录列表-web端","link":"#获取历史记录列表-web端","children":[]},{"level":2,"title":"获取视频观看历史记录_web端旧版","slug":"获取视频观看历史记录-web端旧版","link":"#获取视频观看历史记录-web端旧版","children":[]},{"level":2,"title":"删除历史记录","slug":"删除历史记录","link":"#删除历史记录","children":[]},{"level":2,"title":"清空历史记录","slug":"清空历史记录","link":"#清空历史记录","children":[]},{"level":2,"title":"停用历史记录","slug":"停用历史记录","link":"#停用历史记录","children":[]},{"level":2,"title":"查询历史记录停用状态","slug":"查询历史记录停用状态","link":"#查询历史记录停用状态","children":[]}],"git":{},"filePathRelative":"docs/history&toview/history.md"}');export{e as data}; diff --git a/assets/history.html-e040429f.js b/assets/history.html-e040429f.js new file mode 100644 index 0000000000..3ab3921338 --- /dev/null +++ b/assets/history.html-e040429f.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-6970bc40","path":"/docs/danmaku/history.html","title":"历史弹幕","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询历史弹幕日期","slug":"查询历史弹幕日期","link":"#查询历史弹幕日期","children":[]},{"level":2,"title":"获取历史弹幕protobuf接口","slug":"获取历史弹幕protobuf接口","link":"#获取历史弹幕protobuf接口","children":[]},{"level":2,"title":"获取历史弹幕xml接口","slug":"获取历史弹幕xml接口","link":"#获取历史弹幕xml接口","children":[]}],"git":{},"filePathRelative":"docs/danmaku/history.md"}');export{l as data}; diff --git a/assets/home-9af3d482.svg b/assets/home-9af3d482.svg new file mode 100644 index 0000000000..21b5eb9c80 --- /dev/null +++ b/assets/home-9af3d482.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/assets/hot.html-54c5456f.js b/assets/hot.html-54c5456f.js new file mode 100644 index 0000000000..557d1aa00a --- /dev/null +++ b/assets/hot.html-54c5456f.js @@ -0,0 +1,441 @@ +import{_ as p,r as o,o as e,c as l,a as s,b as n,d as u,w as c,e as t}from"./app-3168cb19.js";const r={},i=s("h1",{id:"默认搜索-热搜",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#默认搜索-热搜","aria-hidden":"true"},"#"),n(" 默认搜索&热搜")],-1),d=s("h2",{id:"获取默认搜索内容-web端",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#获取默认搜索内容-web端","aria-hidden":"true"},"#"),n(" 获取默认搜索内容(web端)")],-1),k=s("blockquote",null,[s("p",null,"https://api.bilibili.com/x/web-interface/wbi/search/default")],-1),q=s("blockquote",null,[s("p",null,[s("s",null,"https://api.bilibili.com/x/web-interface/search/default"),n(" (旧链接)")])],-1),v=s("p",null,[s("em",null,"请求方式:GET")],-1),m=t(`

    默认搜索为搜索框中默认填充内容,用于官方推荐内容,若不输入点击搜索按钮跳转为url中的链接

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seidstr搜索seid
    idnum默认搜索id
    typenum0
    show_namestr显示文字
    namestr
    goto_typenum跳转类型1:视频
    goto_valuestr搜索目标id视频:稿件avid
    urlstr搜索目标跳转url

    示例:

    curl 'https://api.bilibili.com/x/web-interface/search/default'
    +
    查看响应示例:
    {
    +    "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"
    +    }
    +}
    +

    获取热搜列表

    https://api.bilibili.com/x/web-interface/search/square

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    limitnum结果限制必要范围 [1, 50]
    platformstr平台标识不必要web: web 端

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为空
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    trendingobj热搜榜单套了个娃

    data中的trending对象:

    字段类型内容备注
    titlestr标题
    trackidstr跟踪 ID?
    listarray热搜列表
    top_listarray

    trending中的list数组:

    类型内容备注
    0obj热搜 1
    1obj热搜 2
    ……obj……
    nobj热搜 (n+1)

    list数组中的对象:

    字段类型内容备注
    keywordstr关键词
    show_namestr显示文字
    iconstr图标 URL
    uristr
    gotostr

    示例:

    获取热搜列表, 数量限制 4

    curl -G --url 'https://api.bilibili.com/x/web-interface/search/square' \\
    +--url-query 'limit=4'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "trending": {
    +      "title": "bilibili热搜",
    +      "trackid": "8079760748892487175",
    +      "list": [
    +        {
    +          "keyword": "马克龙祝贺中国世界前两名",
    +          "show_name": "马克龙祝贺中国世界前两名",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +          "uri": "",
    +          "goto": ""
    +        },
    +        {
    +          "keyword": "小孩电竞世界杯夺冠",
    +          "show_name": "小孩电竞世界杯夺冠",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +          "uri": "",
    +          "goto": ""
    +        },
    +        {
    +          "keyword": "孙颖莎说我全勤下班了",
    +          "show_name": "孙颖莎说我全勤下班了",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +          "uri": "",
    +          "goto": ""
    +        },
    +        {
    +          "keyword": "7月广东新冠新增一万余例",
    +          "show_name": "7月广东新冠新增一万余例",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +          "uri": "",
    +          "goto": ""
    +        }
    +      ],
    +      "top_list": []
    +    }
    +  }
    +}
    +

    获取热搜列表(web端)

    https://s.search.bilibili.com/main/hotword

    请求方式:GET

    榜单每隔固定时间统计一次,请求后返回搜索前10的关键词

    带有转义

    json回复:

    根对象:

    字段类型内容备注
    exp_strstr???
    codenum返回值0:成功
    costobj详细搜索用时大概是吧?
    seidstr搜索seid
    timestampnum榜单统计时间时间戳
    messagestr错误信息默认为success
    listarray热搜列表

    list数组:

    类型内容备注
    0obj榜单第1名
    nobj榜单第(n+1)名按照名次顺序
    10obj榜单第10名最后一项

    list数组中的对象:

    `,40),b=s("table",null,[s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])]),s("tbody",null,[s("tr",null,[s("td",null,"status"),s("td",null,"str"),s("td",null,"空"),s("td")]),s("tr",null,[s("td",null,"hot_id"),s("td",null,"num"),s("td",null,"热词id"),s("td",null,"大概是吧?")]),s("tr",null,[s("td",null,"keyword"),s("td",null,"str"),s("td",null,"关键词"),s("td")]),s("tr",null,[s("td",null,"resource_id"),s("td",null,"num"),s("td",null,"资源id"),s("td")]),s("tr",null,[s("td",null,"goto_type"),s("td",null,"num"),s("td",null,"0"),s("td")]),s("tr",null,[s("td",null,"res"),s("td",null,"array"),s("td",null,"null"),s("td")]),s("tr",null,[s("td",null,"show_name"),s("td",null,"str"),s("td",null,"完整关键词"),s("td")]),s("tr",null,[s("td",null,"pos"),s("td",null,"num"),s("td",null,"名次"),s("td",null,"1-10")]),s("tr",null,[s("td",null,"word_type"),s("td",null,"num"),s("td",null,"条目属性"),s("td",null,[n("4: 新"),s("br"),n("5: 热"),s("br"),n("6: [雾,咒,小丑(愚人节)] 具体看icon"),s("b",{r:""}),n("7: 直播中"),s("br"),n("8: 默认(无标签)"),s("br"),n("9: 梗"),s("br"),n("11: 话题"),s("br"),n("12: 独家")])]),s("tr",null,[s("td",null,"id"),s("td",null,"num"),s("td",null,"名次"),s("td",null,"1-10")]),s("tr",null,[s("td",null,"goto_value"),s("td",null,"str"),s("td",null,"空"),s("td")]),s("tr",null,[s("td",null,"live_id"),s("td",null,"array"),s("td",null,"null"),s("td")]),s("tr",null,[s("td",null,"name_type"),s("td",null,"str"),s("td",null,"空"),s("td")]),s("tr",null,[s("td",null,"icon"),s("td",null,"str"),s("td",null,"图标url"),s("td")])])],-1),y=t(`

    示例:

    curl 'https://s.search.bilibili.com/main/hotword'
    +
    查看响应示例:
    {
    +	"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

    榜单每隔固定时间统计一次

    带有转义

    url参数:

    参数名类型内容必要性备注
    limitnum热搜数量非必要留空为20, 最大为100

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum返回值默认为1

    data对象:

    字段类型内容备注
    trackidnum不知用途
    listarray热搜列表

    list数组:

    类型内容备注
    0obj榜单第1名
    nobj榜单第(n+1)名按照名次顺序
    20/limitobj榜单第20名最后一项

    list数组中的对象:

    字段类型内容备注
    positionnum名次1-20/limit
    keywordstr关键词
    show_namestr完整关键词
    word_typenum条目属性同 web 端
    iconstr图标url
    hot_idnum热词id大概是吧?

    示例:

    curl 'https://app.bilibili.com/x/v2/search/trending/ranking'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"trackid": "2578006123492681222",
    +		"list": [{
    +			"position": 1,
    +			"keyword": "列车延误乘务员哽咽安抚乘客",
    +			"show_name": "列车延误乘务员哽咽安抚乘客",
    +			"word_type": 5,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +			"hot_id": 107814,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 2,
    +			"keyword": "黑神话悟空首次线下试玩",
    +			"show_name": "黑神话悟空首次线下试玩",
    +			"word_type": 5,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +			"hot_id": 107781,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 3,
    +			"keyword": "22万人打出9.9分的动画",
    +			"show_name": "22万人打出9.9分的动画",
    +			"word_type": 6,
    +			"icon": "https://i0.hdslb.com/bfs/legacy/463fa23613670218608e68247a137dd071c0e9c8.png",
    +			"hot_id": 107818,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 4,
    +			"keyword": "冰冻近五万年线虫被复活",
    +			"show_name": "冰冻近五万年线虫被复活",
    +			"word_type": 5,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +			"hot_id": 107774,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 5,
    +			"keyword": "LNG前任和现任的较量",
    +			"show_name": "LNG前任和现任的较量",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107853,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 6,
    +			"keyword": "LOL手游剑姬女警新皮",
    +			"show_name": "LOL手游剑姬女警新皮",
    +			"word_type": 8,
    +			"hot_id": 107841,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 7,
    +			"keyword": "抽奖中金条却因过号被取消",
    +			"show_name": "抽奖中金条却因过号被取消",
    +			"word_type": 8,
    +			"hot_id": 107817,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 8,
    +			"keyword": "雪王到长城开蜜雪冰城",
    +			"show_name": "雪王到长城开蜜雪冰城",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107849,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 9,
    +			"keyword": "堡垒之夜联动终结者",
    +			"show_name": "堡垒之夜联动终结者",
    +			"word_type": 8,
    +			"hot_id": 107846,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 10,
    +			"keyword": "王者新英雄海诺动画",
    +			"show_name": "王者新英雄海诺动画",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107870,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 11,
    +			"keyword": "周星驰功夫10万字拆解",
    +			"show_name": "周星驰功夫10万字拆解",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107848,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 12,
    +			"keyword": "张杰铁粉彭奶奶去世",
    +			"show_name": "张杰铁粉彭奶奶去世",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107840,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 13,
    +			"keyword": "李玟二姐回应礼服争议",
    +			"show_name": "李玟二姐回应礼服争议",
    +			"word_type": 8,
    +			"hot_id": 107833,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 14,
    +			"keyword": "洪水中飘来冰箱市民取走饮料",
    +			"show_name": "洪水中飘来冰箱市民取走饮料",
    +			"word_type": 8,
    +			"hot_id": 107802,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 15,
    +			"keyword": "LOL斗魂觉醒佛耶戈语音",
    +			"show_name": "LOL斗魂觉醒佛耶戈语音",
    +			"word_type": 8,
    +			"hot_id": 107790,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 16,
    +			"keyword": "全面落实带薪休假制度",
    +			"show_name": "全面落实带薪休假制度",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107839,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 17,
    +			"keyword": "花少北 把病娇治好了",
    +			"show_name": "花少北 把病娇治好了",
    +			"word_type": 8,
    +			"hot_id": 107782,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 18,
    +			"keyword": "2.28米高的村超娃",
    +			"show_name": "2.28米高的村超娃",
    +			"word_type": 8,
    +			"hot_id": 107805,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 19,
    +			"keyword": "当在动漫中不小心撞到",
    +			"show_name": "当在动漫中不小心撞到",
    +			"word_type": 8,
    +			"hot_id": 107832,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 20,
    +			"keyword": "台风卡努路径趋向日本",
    +			"show_name": "台风卡努路径趋向日本",
    +			"word_type": 8,
    +			"hot_id": 107800,
    +			"is_commercial": "0"
    +		}],
    +		"exp_str": "8000#5508#6604#7703",
    +		"hotword_egg_info": "0"
    +	}
    +}
    +
    `,22);function h(g,_){const a=o("RouterLink");return e(),l("div",null,[i,d,k,q,v,s("p",null,[n("鉴权方式:"),u(a,{to:"/docs/misc/sign/wbi.html"},{default:c(()=>[n("Wbi 签名")]),_:1})]),m,b,y])}const f=p(r,[["render",h],["__file","hot.html.vue"]]);export{f as default}; diff --git a/assets/hot.html-b03b462b.js b/assets/hot.html-b03b462b.js new file mode 100644 index 0000000000..5b1b9674b2 --- /dev/null +++ b/assets/hot.html-b03b462b.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-2d7e1c50","path":"/docs/search/hot.html","title":"默认搜索&热搜","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取默认搜索内容(web端)","slug":"获取默认搜索内容-web端","link":"#获取默认搜索内容-web端","children":[]},{"level":2,"title":"获取热搜列表","slug":"获取热搜列表","link":"#获取热搜列表","children":[]},{"level":2,"title":"获取热搜列表(web端)","slug":"获取热搜列表-web端","link":"#获取热搜列表-web端","children":[]},{"level":2,"title":"获取热搜列表(手机端)","slug":"获取热搜列表-手机端","link":"#获取热搜列表-手机端","children":[]}],"git":{},"filePathRelative":"docs/search/hot.md"}');export{e as data}; diff --git a/assets/index.html-0d1d246d.js b/assets/index.html-0d1d246d.js new file mode 100644 index 0000000000..d18bc1c905 --- /dev/null +++ b/assets/index.html-0d1d246d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-8daa1a0e","path":"/","title":"","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"🌱参与贡献","slug":"🌱参与贡献","link":"#🌱参与贡献","children":[]},{"level":2,"title":"🍴目录","slug":"🍴目录","link":"#🍴目录","children":[]},{"level":2,"title":"✨鸣谢","slug":"✨鸣谢","link":"#✨鸣谢","children":[]},{"level":2,"title":"📖相关协议基础","slug":"📖相关协议基础","link":"#📖相关协议基础","children":[]},{"level":2,"title":"💦交流","slug":"💦交流","link":"#💦交流","children":[]},{"level":2,"title":"🧋发电","slug":"🧋发电","link":"#🧋发电","children":[]},{"level":2,"title":"🔗相关项目推荐","slug":"🔗相关项目推荐","link":"#🔗相关项目推荐","children":[{"level":3,"title":"库及文档","slug":"库及文档","link":"#库及文档","children":[]},{"level":3,"title":"成品","slug":"成品","link":"#成品","children":[]},{"level":3,"title":"其他","slug":"其他","link":"#其他","children":[]}]}],"git":{},"filePathRelative":"README.md"}');export{l as data}; diff --git a/assets/index.html-4a9bcc52.js b/assets/index.html-4a9bcc52.js new file mode 100644 index 0000000000..da6a592e92 --- /dev/null +++ b/assets/index.html-4a9bcc52.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-3bb3d8ab","path":"/docs/comment/","title":"评论区","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"评论区类型代码","slug":"评论区类型代码","link":"#评论区类型代码","children":[]},{"level":2,"title":"评论条目对象","slug":"评论条目对象","link":"#评论条目对象","children":[]}],"git":{},"filePathRelative":"docs/comment/readme.md"}');export{e as data}; diff --git a/assets/index.html-57334ef1.js b/assets/index.html-57334ef1.js new file mode 100644 index 0000000000..2a4393af60 --- /dev/null +++ b/assets/index.html-57334ef1.js @@ -0,0 +1 @@ +import{_ as h,r as n,o as _,c as k,a as t,b as s,d as i,w as c,e as d,p as b,f as u}from"./app-3168cb19.js";const m="/bilibili-API-collect/assets/logo-bba15bcf.png",r="/bilibili-API-collect/assets/sponsorQR-4cf95420.jpg";const p={},e=a=>(b("data-v-44d4f85c"),a=a(),u(),a),x=d('

    哔哩哔哩-API收集整理

    GitHub issuesGitHub starsGitHub forksGitHub license

    SocialSisterYi%2Fbilibili-API-collect | Trendshift

    野生API文档

    不断更新中....

    本项目旨在对 B站 WEB、APP、TV 等客户端中,散落在世界各地的野生 API 进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、代码逆向分析、拆包及反编译法、网络抓包法等研究办法

    ',7),f={href:"https://openhome.bilibili.com/doc",target:"_blank",rel:"noopener noreferrer"},y={href:"https://open-live.bilibili.com/document/",target:"_blank",rel:"noopener noreferrer"},g=e(()=>t("p",null,"B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接口为 WebSocket;REST API 接口请求数据大多为 url query 表单或 JSON,返回数据大多为 JSON 或 Protobuf,强制使用 https 协议",-1)),v={href:"https://socialsisteryi.github.io/bilibili-API-collect/",target:"_blank",rel:"noopener noreferrer"},w=e(()=>t("s",null,"av583785685",-1)),P={href:"https://shakaianee.top/archives/56/",target:"_blank",rel:"noopener noreferrer"},A={href:"https://www.youtube.com/watch?v=nfF91Z6fqGk",target:"_blank",rel:"noopener noreferrer"},B=d('

    ⚠️声明

    1. 本项目遵守 CC-BY-NC 4.0 协议,禁止一切商业使用,如需转载请注明作者 ID
    2. 请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!
    3. 利用本项目提供的接口、文档等造成不良影响及后果与本人无关
    4. 由于本项目的特殊性,可能随时停止开发或删档
    5. 本项目为开源项目,不接受任何形式的催单和索取行为,更不容许存在付费内容

    🌱参与贡献

    欢迎各位 dalao 对本项目做出贡献,也希望每个使用者都能提出宝贵的意见

    目前本项目存在的问题包括但不限于:

    ',4),S=e(()=>t("li",null,"文档二级目录尚未完成",-1)),I=e(()=>t("li",null,"部分文档较旧,修改与更新没有跟进",-1)),C={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/604",target:"_blank",rel:"noopener noreferrer"},D=e(()=>t("h2",{id:"🍴目录",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🍴目录","aria-hidden":"true"},"#"),s(" 🍴目录")],-1)),N=e(()=>t("p",null,"计划整理分类 & 目录:(文档已完结请选中 checkbox)",-1)),z={class:"contains-task-list"},j={class:"task-list-item"},O=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),R=e(()=>t("a",{href:"docs/misc/sign"},"接口签名与验证",-1)),E={class:"contains-task-list"},Y={class:"task-list-item"},T=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),L=e(()=>t("code",null,"appkey",-1)),q=e(()=>t("code",null,"sign",-1)),G={class:"task-list-item"},K=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),H={class:"task-list-item"},J=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),V=e(()=>t("code",null,"wts",-1)),Q=e(()=>t("code",null,"w_rid",-1)),U={class:"task-list-item"},W=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),F={class:"task-list-item"},M=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),X={class:"task-list-item"},Z=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),$=e(()=>t("a",{href:"docs/misc"},"杂项",-1)),tt={class:"contains-task-list"},st={class:"task-list-item"},et=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),it={class:"task-list-item"},lt=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ct={class:"task-list-item"},ot=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),at={class:"task-list-item"},dt=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),nt={class:"task-list-item"},ht=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),_t={class:"task-list-item"},kt=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),bt={class:"task-list-item"},ut=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),mt=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(),t("a",{href:"grpc_api"},"gRPC API 接口定义")],-1)),rt={class:"task-list-item"},pt=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),xt=e(()=>t("a",{href:"docs/login"},"登录",-1)),ft={class:"contains-task-list"},yt={class:"task-list-item"},gt=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),vt=e(()=>t("a",{href:"docs/login/login_action"},"登录操作 (人机认证)",-1)),wt={class:"contains-task-list"},Pt={class:"task-list-item"},At=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Bt={class:"task-list-item"},St=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),It={class:"task-list-item"},Ct=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Dt=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" SNS 登录 (QQ & 微信 & 微博)")],-1)),Nt={class:"task-list-item"},zt=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),jt={class:"task-list-item"},Ot=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Rt={class:"task-list-item"},Et=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Yt={class:"task-list-item"},Tt=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Lt={class:"task-list-item"},qt=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Gt={class:"task-list-item"},Kt=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ht=e(()=>t("a",{href:"docs/message"},"消息中心",-1)),Jt={class:"contains-task-list"},Vt={class:"task-list-item"},Qt=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ut={class:"task-list-item"},Wt=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ft=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 设置")],-1)),Mt={class:"task-list-item"},Xt=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Zt=e(()=>t("a",{href:"docs/user"},"用户",-1)),$t={class:"contains-task-list"},ts={class:"task-list-item"},ss=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),es={class:"task-list-item"},is=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ls={class:"task-list-item"},cs=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),os={class:"task-list-item"},as=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ds={class:"task-list-item"},ns=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),hs={class:"task-list-item"},_s=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ks={class:"task-list-item"},bs=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),us={class:"task-list-item"},ms=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),rs={class:"task-list-item"},ps=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),xs={class:"task-list-item"},fs=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ys=e(()=>t("a",{href:"docs/vip"},"大会员",-1)),gs={class:"contains-task-list"},vs={class:"task-list-item"},ws=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ps={class:"task-list-item"},As=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Bs={class:"task-list-item"},Ss=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Is={class:"task-list-item"},Cs=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ds={class:"task-list-item"},Ns=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),zs=e(()=>t("a",{href:"docs/video"},"视频",-1)),js={class:"contains-task-list"},Os={class:"task-list-item"},Rs=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Es={class:"task-list-item"},Ys=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ts={class:"task-list-item"},Ls=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),qs={class:"task-list-item"},Gs=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ks={class:"task-list-item"},Hs=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Js={class:"task-list-item"},Vs=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Qs={class:"task-list-item"},Us=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ws={class:"task-list-item"},Fs=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ms={class:"task-list-item"},Xs=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Zs={class:"task-list-item"},$s=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),te={class:"task-list-item"},se=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ee={class:"task-list-item"},ie=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),le={class:"task-list-item"},ce=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),oe={class:"task-list-item"},ae=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),de={class:"task-list-item"},ne=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),he={class:"task-list-item"},_e=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ke={class:"task-list-item"},be=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ue={class:"task-list-item"},me=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),re={class:"task-list-item"},pe=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),xe=e(()=>t("a",{href:"docs/bangumi"},"剧集 (番剧、影视)",-1)),fe={class:"contains-task-list"},ye={class:"task-list-item"},ge=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ve={class:"task-list-item"},we=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Pe={class:"task-list-item"},Ae=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Be={class:"task-list-item"},Se=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ie=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 状态数")],-1)),Ce=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 操作")],-1)),De={class:"task-list-item"},Ne=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ze=e(()=>t("a",{href:"docs/danmaku"},"视频弹幕",-1)),je={class:"contains-task-list"},Oe={class:"task-list-item"},Re=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ee={class:"task-list-item"},Ye=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Te={class:"task-list-item"},Le=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),qe={class:"task-list-item"},Ge=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ke={class:"task-list-item"},He=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Je={class:"task-list-item"},Ve=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Qe=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 高级弹幕")],-1)),Ue=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 屏蔽管理")],-1)),We={class:"task-list-item"},Fe=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Me={class:"task-list-item"},Xe=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ze={class:"task-list-item"},$e=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ti={class:"task-list-item"},si=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ei={class:"task-list-item"},ii=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),li=e(()=>t("a",{href:"docs/note"},"视频笔记",-1)),ci={class:"contains-task-list"},oi={class:"task-list-item"},ai=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),di={class:"task-list-item"},ni=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),hi={class:"task-list-item"},_i=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ki={class:"task-list-item"},bi=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ui=e(()=>t("a",{href:"docs/article"},"专栏",-1)),mi={class:"contains-task-list"},ri={class:"task-list-item"},pi=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),xi={class:"task-list-item"},fi=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),yi={class:"task-list-item"},gi=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),vi={class:"task-list-item"},wi=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Pi={class:"task-list-item"},Ai=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Bi={class:"task-list-item"},Si=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ii=e(()=>t("a",{href:"docs/audio"},"音频",-1)),Ci={class:"contains-task-list"},Di={class:"task-list-item"},Ni=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),zi={class:"task-list-item"},ji=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Oi={class:"task-list-item"},Ri=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ei={class:"task-list-item"},Yi=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ti={class:"task-list-item"},Li=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),qi={class:"task-list-item"},Gi=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ki={class:"task-list-item"},Hi=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ji=e(()=>t("a",{href:"docs/video_ranking"},"排行榜 & 最新视频",-1)),Vi={class:"contains-task-list"},Qi={class:"task-list-item"},Ui=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Wi={class:"task-list-item"},Fi=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Mi={class:"task-list-item"},Xi=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Zi={class:"task-list-item"},$i=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),tl={class:"task-list-item"},sl=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),el=e(()=>t("a",{href:"docs/search"},"搜索",-1)),il={class:"contains-task-list"},ll={class:"task-list-item"},cl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ol={class:"task-list-item"},al=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),dl={class:"task-list-item"},nl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),hl={class:"task-list-item"},_l=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),kl={class:"task-list-item"},bl=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ul=e(()=>t("a",{href:"docs/blackroom"},"小黑屋",-1)),ml={class:"contains-task-list"},rl=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 基本信息")],-1)),pl={class:"task-list-item"},xl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),fl={class:"task-list-item"},yl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),gl=e(()=>t("a",{href:"docs/blackroom/jury"},"风纪委员及众裁案件相关",-1)),vl={class:"contains-task-list"},wl={class:"task-list-item"},Pl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Al={class:"task-list-item"},Bl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Sl={class:"task-list-item"},Il=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Cl={class:"task-list-item"},Dl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Nl=e(()=>t("a",{href:"docs/comment"},"评论区",-1)),zl={class:"contains-task-list"},jl={class:"task-list-item"},Ol=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Rl={class:"task-list-item"},El=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Yl={class:"task-list-item"},Tl=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ll=e(()=>t("a",{href:"docs/emoji"},"表情",-1)),ql={class:"contains-task-list"},Gl={class:"task-list-item"},Kl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Hl={class:"task-list-item"},Jl=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Vl={class:"task-list-item"},Ql=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ul=e(()=>t("a",{href:"docs/creativecenter"},"创作中心",-1)),Wl={class:"contains-task-list"},Fl={class:"task-list-item"},Ml=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Xl={class:"task-list-item"},Zl=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),$l=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 列表查询相关")],-1)),tc={class:"task-list-item"},sc=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ec={class:"task-list-item"},ic=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),lc={class:"task-list-item"},cc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),oc={class:"task-list-item"},ac=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),dc=e(()=>t("a",{href:"docs/broadcast"},"实时广播(通讯协议)",-1)),nc={class:"contains-task-list"},hc={class:"task-list-item"},_c=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),kc={class:"task-list-item"},bc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),uc=e(()=>t("a",{href:"docs/electric"},"充电",-1)),mc={class:"contains-task-list"},rc={class:"task-list-item"},pc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),xc={class:"task-list-item"},fc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),yc={class:"contains-task-list"},gc={class:"task-list-item"},vc=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),wc={class:"task-list-item"},Pc=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ac={class:"task-list-item"},Bc=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Sc={class:"task-list-item"},Ic=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Cc={class:"task-list-item"},Dc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Nc=e(()=>t("a",{href:"docs/dynamic"},"动态",-1)),zc={class:"contains-task-list"},jc={class:"task-list-item"},Oc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Rc={class:"task-list-item"},Ec=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Yc={class:"task-list-item"},Tc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Lc={class:"task-list-item"},qc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Gc={class:"task-list-item"},Kc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Hc={class:"task-list-item"},Jc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Vc={class:"task-list-item"},Qc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Uc={class:"task-list-item"},Wc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Fc={class:"task-list-item"},Mc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Xc={class:"task-list-item"},Zc=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),$c={class:"task-list-item"},to=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),so={class:"task-list-item"},eo=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),io={class:"contains-task-list"},lo={class:"task-list-item"},co=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),oo={class:"task-list-item"},ao=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),no={class:"task-list-item"},ho=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),_o={class:"task-list-item"},ko=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),bo=e(()=>t("a",{href:"docs/album"},"相簿",-1)),uo={class:"contains-task-list"},mo={class:"task-list-item"},ro=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),po={class:"task-list-item"},xo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),fo={class:"task-list-item"},yo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),go={class:"task-list-item"},vo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),wo={class:"task-list-item"},Po=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ao=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 投稿")],-1)),Bo={class:"task-list-item"},So=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Io=e(()=>t("a",{href:"docs/history&toview"},"历史记录 & 稍后再看",-1)),Co={class:"contains-task-list"},Do={class:"task-list-item"},No=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),zo={class:"task-list-item"},jo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Oo={class:"task-list-item"},Ro=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Eo=e(()=>t("a",{href:"docs/fav"},"收藏夹",-1)),Yo={class:"contains-task-list"},To={class:"task-list-item"},Lo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),qo={class:"task-list-item"},Go=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ko={class:"task-list-item"},Ho=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Jo={class:"task-list-item"},Vo=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Qo=e(()=>t("a",{href:"docs/cheese"},"课程",-1)),Uo={class:"contains-task-list"},Wo={class:"task-list-item"},Fo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Mo=d('
  • 已购课程
  • 分区推荐列表
  • 操作
  • ',3),Xo={class:"task-list-item"},Zo=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),$o={class:"task-list-item"},ta=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),sa=e(()=>t("a",{href:"docs/live"},"直播",-1)),ea={class:"contains-task-list"},ia={class:"task-list-item"},la=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ca={class:"task-list-item"},oa=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),aa={class:"task-list-item"},da=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),na=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 直播间操作")],-1)),ha={class:"task-list-item"},_a=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ka={class:"task-list-item"},ba=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ua={class:"task-list-item"},ma=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ra={class:"task-list-item"},pa=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),xa={class:"task-list-item"},fa=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),ya={class:"task-list-item"},ga=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),va={class:"task-list-item"},wa=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Pa={class:"task-list-item"},Aa=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ba=e(()=>t("a",{href:"docs/activity"},"活动",-1)),Sa={class:"contains-task-list"},Ia={class:"task-list-item"},Ca=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Da={class:"task-list-item"},Na=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),za={class:"task-list-item"},ja=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Oa=e(()=>t("a",{href:"docs/newbie_exam"},"转正答题",-1)),Ra={class:"contains-task-list"},Ea={class:"task-list-item"},Ya=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ta={class:"task-list-item"},La=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),qa={class:"task-list-item"},Ga=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ka={class:"task-list-item"},Ha=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ja={class:"contains-task-list"},Va={class:"task-list-item"},Qa=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Ua=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 亲子平台")],-1)),Wa=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 课堂模式")],-1)),Fa={class:"task-list-item"},Ma=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Xa={class:"contains-task-list"},Za={class:"task-list-item"},$a=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),td=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" B币充值")],-1)),sd=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 贝壳相关")],-1)),ed={class:"task-list-item"},id=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),ld=e(()=>t("a",{href:"docs/manga"},"哔哩哔哩漫画",-1)),cd={class:"contains-task-list"},od=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 用户信息")],-1)),ad={class:"task-list-item"},dd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),nd={class:"task-list-item"},hd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),_d={class:"task-list-item"},kd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),bd={class:"task-list-item"},ud=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),md={class:"task-list-item"},rd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),pd={class:"task-list-item"},xd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),fd={class:"task-list-item"},yd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),gd={class:"task-list-item"},vd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),wd={class:"task-list-item"},Pd=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Ad=e(()=>t("li",{class:"task-list-item"},[t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"}),s(" 哔哩哔哩游戏")],-1)),Bd={class:"task-list-item"},Sd=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Id=e(()=>t("a",{href:"docs/clientinfo"},"终端网络查询",-1)),Cd={class:"contains-task-list"},Dd={class:"task-list-item"},Nd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),zd={class:"task-list-item"},jd=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Od=e(()=>t("a",{href:"docs/customerservice"},"客服中心",-1)),Rd={class:"contains-task-list"},Ed={class:"task-list-item"},Yd=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Td={class:"task-list-item"},Ld=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),qd=e(()=>t("a",{href:"docs/web_widget"},"web端组件",-1)),Gd={class:"contains-task-list"},Kd={class:"task-list-item"},Hd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Jd={class:"task-list-item"},Vd=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),Qd={class:"task-list-item"},Ud=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Wd={class:"task-list-item"},Fd=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),Md=e(()=>t("a",{href:"docs/APP_widget"},"APP端组件",-1)),Xd={class:"contains-task-list"},Zd={class:"task-list-item"},$d=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),tn={class:"task-list-item"},sn=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),en={class:"task-list-item"},ln=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),cn=e(()=>t("a",{href:"docs/garb"},"个性装扮",-1)),on={class:"contains-task-list"},an={class:"task-list-item"},dn=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),nn={class:"task-list-item"},hn=e(()=>t("input",{class:"task-list-item-checkbox",checked:"",disabled:"",type:"checkbox"},null,-1)),_n={class:"task-list-item"},kn=e(()=>t("input",{class:"task-list-item-checkbox",disabled:"",type:"checkbox"},null,-1)),bn=e(()=>t("h2",{id:"✨鸣谢",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#✨鸣谢","aria-hidden":"true"},"#"),s(" ✨鸣谢")],-1)),un=e(()=>t("p",null,"你们的存在,让社区更美好",-1)),mn={href:"https://github.com/SocialSisterYi/bilibili-API-collect/graphs/contributors",target:"_blank",rel:"noopener noreferrer"},rn=e(()=>t("img",{src:"https://opencollective.com/bilibili-api-collect/contributors.svg?width=860&button=false",alt:"contributors"},null,-1)),pn=e(()=>t("h2",{id:"📖相关协议基础",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#📖相关协议基础","aria-hidden":"true"},"#"),s(" 📖相关协议基础")],-1)),xn={href:"https://www.cnblogs.com/an-wen/p/11180076.html",target:"_blank",rel:"noopener noreferrer"},fn={href:"https://www.sojson.com/json/json_index.html",target:"_blank",rel:"noopener noreferrer"},yn={href:"https://www.w3school.com.cn/xml/xml_intro.asp",target:"_blank",rel:"noopener noreferrer"},gn={href:"https://www.jianshu.com/p/a24c88c0526a",target:"_blank",rel:"noopener noreferrer"},vn=e(()=>t("h2",{id:"💦交流",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#💦交流","aria-hidden":"true"},"#"),s(" 💦交流")],-1)),wn=e(()=>t("img",{src:"https://avatars.githubusercontent.com/u/45892418",width:"100",height:"100"},null,-1)),Pn=e(()=>t("p",null,[s("⚠注意:开源社群欢迎交流探讨,"),t("strong",null,"拒绝"),s("咨询、"),t("strong",null,"不支持"),s("合作,"),t("strong",null,"黑产号"),s("一经发现立即拉黑并举报相关 SRC")],-1)),An={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ympvb3LAPT-Ulu3ezhGqbkJ8zXMKImOX&authKey=z1KdkOdKO3wytN43m9K6On9nBtnDL4pAoD6VQHCipFBb9TasNDKuDHCmOE6TF3uc&noverify=0&group_code=191187164",target:"_blank",rel:"noopener noreferrer"},Bn={href:"https://t.me/bilibili_API_collect_community",target:"_blank",rel:"noopener noreferrer"},Sn=e(()=>t("h2",{id:"🧋发电",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🧋发电","aria-hidden":"true"},"#"),s(" 🧋发电")],-1)),In=e(()=>t("p",null,[s("欢迎来"),t("s",null,"交♂易"),s(",大家的支持就是我继续开发的动力!")],-1)),Cn=e(()=>t("p",null,[t("s",null,"请可爱的易姐喝杯奶茶")],-1)),Dn=e(()=>t("p",null,"WeChat & Alipay:",-1)),Nn=e(()=>t("img",{src:r,width:"300",height:"300"},null,-1)),zn={href:"https://afdian.net/@ShakaiAneE",target:"_blank",rel:"noopener noreferrer"},jn=e(()=>t("h2",{id:"🔗相关项目推荐",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🔗相关项目推荐","aria-hidden":"true"},"#"),s(" 🔗相关项目推荐")],-1)),On=e(()=>t("h3",{id:"库及文档",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#库及文档","aria-hidden":"true"},"#"),s(" 库及文档")],-1)),Rn={href:"https://github.com/jingyuexing/bilibiliAPI",target:"_blank",rel:"noopener noreferrer"},En={href:"https://github.com/fython/BilibiliAPIDocs",target:"_blank",rel:"noopener noreferrer"},Yn={href:"https://github.com/czp3009/bilibili-api",target:"_blank",rel:"noopener noreferrer"},Tn={href:"https://github.com/Vespa314/bilibili-api",target:"_blank",rel:"noopener noreferrer"},Ln={href:"https://github.com/wnstar/bili-utils",target:"_blank",rel:"noopener noreferrer"},qn={href:"https://github.com/lovelyyoshino/Bilibili-Live-API",target:"_blank",rel:"noopener noreferrer"},Gn={href:"https://github.com/flaribbit/bilibili-manga-spider",target:"_blank",rel:"noopener noreferrer"},Kn={href:"https://github.com/simon300000/bili-api",target:"_blank",rel:"noopener noreferrer"},Hn={href:"https://github.com/iyear/biligo",target:"_blank",rel:"noopener noreferrer"},Jn={href:"https://github.com/bilibili-openplatform/demo",target:"_blank",rel:"noopener noreferrer"},Vn={href:"https://github.com/ddiu8081/blive-message-listener",target:"_blank",rel:"noopener noreferrer"},Qn={href:"https://github.com/Nemo2011/bilibili-api",target:"_blank",rel:"noopener noreferrer"},Un={href:"https://github.com/CuteReimu/bilibili",target:"_blank",rel:"noopener noreferrer"},Wn=e(()=>t("h3",{id:"成品",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#成品","aria-hidden":"true"},"#"),s(" 成品")],-1)),Fn={href:"https://codeberg.org/NullPointerException/AnimePipe",target:"_blank",rel:"noopener noreferrer"},Mn={href:"https://github.com/3Shain/BiliChat",target:"_blank",rel:"noopener noreferrer"},Xn={href:"https://github.com/AncientLysine/BiliLocal",target:"_blank",rel:"noopener noreferrer"},Zn={href:"https://github.com/zyzsdy/biliroku",target:"_blank",rel:"noopener noreferrer"},$n={href:"https://github.com/otakustay/danmaku-to-ass",target:"_blank",rel:"noopener noreferrer"},th={href:"https://github.com/bilibili-helper/bilibili-helper-o",target:"_blank",rel:"noopener noreferrer"},sh={href:"https://github.com/apachecn/BiliDriveEx",target:"_blank",rel:"noopener noreferrer"},eh={href:"https://github.com/apachecn/CDNDrive",target:"_blank",rel:"noopener noreferrer"},ih={href:"https://github.com/Hsury/BiliDrive",target:"_blank",rel:"noopener noreferrer"},lh={href:"https://github.com/Tsuk1ko/bilibili-live-chat",target:"_blank",rel:"noopener noreferrer"},ch={href:"https://github.com/ironmanic/crawler_target_users_good",target:"_blank",rel:"noopener noreferrer"},oh={href:"https://github.com/dd-center/DDatElectron",target:"_blank",rel:"noopener noreferrer"},ah={href:"https://github.com/dd-center/vtbs.moe",target:"_blank",rel:"noopener noreferrer"},dh={href:"https://github.com/catlair/BiliOutils",target:"_blank",rel:"noopener noreferrer"},nh={href:"https://github.com/the1812/Bilibili-Evolved",target:"_blank",rel:"noopener noreferrer"},hh={href:"https://github.com/xlzy520/bili-short-url",target:"_blank",rel:"noopener noreferrer"},_h={href:"https://github.com/zjkwdy/bili_app_splash",target:"_blank",rel:"noopener noreferrer"},kh={href:"https://github.com/Jannchie/BiliOB",target:"_blank",rel:"noopener noreferrer"},bh={href:"https://github.com/biliob233/biliob233.github.io",target:"_blank",rel:"noopener noreferrer"},uh=e(()=>t("s",null,"无可奉告",-1)),mh={href:"https://github.com/biliup/biliup",target:"_blank",rel:"noopener noreferrer"},rh={href:"https://github.com/ddiu8081/bilicli",target:"_blank",rel:"noopener noreferrer"},ph={href:"https://github.com/MotooriKashin/Bilibili-Old",target:"_blank",rel:"noopener noreferrer"},xh={href:"https://github.com/SocialSisterYi/bcut-asr",target:"_blank",rel:"noopener noreferrer"},fh={href:"https://github.com/CzJam/Bili_Realtime_Data",target:"_blank",rel:"noopener noreferrer"},yh={href:"https://github.com/kingwingfly/fav",target:"_blank",rel:"noopener noreferrer"},gh={href:"https://github.com/linyuye/Bilibili_crawler",target:"_blank",rel:"noopener noreferrer"},vh=e(()=>t("h3",{id:"其他",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#其他","aria-hidden":"true"},"#"),s(" 其他")],-1)),wh={href:"https://github.com/kuresaru/geetest-validator",target:"_blank",rel:"noopener noreferrer"},Ph={href:"https://github.com/uw-labs/bloomrpc",target:"_blank",rel:"noopener noreferrer"},Ah={href:"https://github.com/grpc/grpc",target:"_blank",rel:"noopener noreferrer"},Bh={href:"https://github.com/quicktype/quicktype",target:"_blank",rel:"noopener noreferrer"};function Sh(a,Ih){const o=n("ExternalLinkIcon"),l=n("RouterLink");return _(),k("div",null,[x,t("p",null,[s("本文档探讨的对象是主站业务接口,"),t("a",f,[s("官方开放平台"),i(o)]),s(" 和 "),t("a",y,[s("直播开放平台"),i(o)]),s(" 均不属于本项目范畴,请移步")]),g,t("p",null,[s("📖阅读地址:"),t("a",v,[s("GithubPages"),i(o)])]),t("p",null,[s("小小的 Demo:"),w,s(),t("a",P,[s("视频失效原因"),i(o)]),s(" ("),t("a",A,[s("Youtube备链"),i(o)]),s(")")]),B,t("ol",null,[S,I,t("li",null,[s("目前文档使用 markdown 语法编写,不易生成编程语言的 SDK,详见 "),t("a",C,[s("#604"),i(o)])])]),t("p",null,[s("更多信息请浏览 "),i(l,{to:"/CONTRIBUTING.html"},{default:c(()=>[s("贡献指南")]),_:1})]),D,N,t("ul",z,[t("li",j,[O,s(),R,t("ul",E,[t("li",Y,[T,s(),i(l,{to:"/docs/misc/sign/APP.html"},{default:c(()=>[s("APP API 签名")]),_:1}),s("("),L,s("与"),q,s(")")]),t("li",G,[K,s(),i(l,{to:"/docs/misc/sign/APPKey.html"},{default:c(()=>[s("已知的 APPKey")]),_:1})]),t("li",H,[J,s(),i(l,{to:"/docs/misc/sign/wbi.html"},{default:c(()=>[s("Wbi 签名")]),_:1}),s("("),V,s("与"),Q,s(")")]),t("li",U,[W,s(),i(l,{to:"/docs/misc/sign/bili_ticket.html"},{default:c(()=>[s("bili_ticket")]),_:1})]),t("li",F,[M,s(),i(l,{to:"/docs/misc/sign/v_voucher.html"},{default:c(()=>[s("v_voucher 验证")]),_:1})])])]),t("li",X,[Z,s(),$,t("ul",tt,[t("li",st,[et,s(),i(l,{to:"/docs/misc/time_stamp.html"},{default:c(()=>[s("获取当前时间戳")]),_:1})]),t("li",it,[lt,s(),i(l,{to:"/docs/misc/errcode.html"},{default:c(()=>[s("公共错误码")]),_:1})]),t("li",ct,[ot,s(),i(l,{to:"/docs/misc/picture.html"},{default:c(()=>[s("图片格式化")]),_:1})]),t("li",at,[dt,s(),i(l,{to:"/docs/misc/bvid_desc.html"},{default:c(()=>[s("bvid 说明")]),_:1})]),t("li",nt,[ht,s(),i(l,{to:"/docs/misc/device_identity.html"},{default:c(()=>[s("设备唯一标识BUVID")]),_:1})]),t("li",_t,[kt,s(),i(l,{to:"/docs/misc/buvid3_4.html"},{default:c(()=>[s("获取 buvid3 / buvid4 / b_nut")]),_:1})]),t("li",bt,[ut,s(),i(l,{to:"/docs/misc/b23tv.html"},{default:c(()=>[s("b23.tv 短链")]),_:1})])])]),mt,t("li",rt,[pt,s(),xt,t("ul",ft,[t("li",yt,[gt,s(),vt,t("ul",wt,[t("li",Pt,[At,s(),i(l,{to:"/docs/login/login_action/SMS.html"},{default:c(()=>[s("短信登录")]),_:1})]),t("li",Bt,[St,s(),i(l,{to:"/docs/login/login_action/password.html"},{default:c(()=>[s("密码登录")]),_:1})]),t("li",It,[Ct,s(),i(l,{to:"/docs/login/login_action/QR.html"},{default:c(()=>[s("二维码登录")]),_:1})]),Dt])]),t("li",Nt,[zt,s(),i(l,{to:"/docs/login/login_info.html"},{default:c(()=>[s("登录基本信息")]),_:1})]),t("li",jt,[Ot,s(),i(l,{to:"/docs/login/member_center.html"},{default:c(()=>[s("个人中心")]),_:1})]),t("li",Rt,[Et,s(),i(l,{to:"/docs/login/exit.html"},{default:c(()=>[s("注销登录")]),_:1})]),t("li",Yt,[Tt,s(),i(l,{to:"/docs/login/login_notice.html"},{default:c(()=>[s("登录记录")]),_:1})]),t("li",Lt,[qt,s(),i(l,{to:"/docs/login/cookie_refresh.html"},{default:c(()=>[s("Web 端 Cookie 刷新")]),_:1})])])]),t("li",Gt,[Kt,s(),Ht,t("ul",Jt,[t("li",Vt,[Qt,s(),i(l,{to:"/docs/message/msg.html"},{default:c(()=>[s("通知类消息")]),_:1})]),t("li",Ut,[Wt,s(),i(l,{to:"/docs/message/private_msg.html"},{default:c(()=>[s("私信")]),_:1})]),Ft])]),t("li",Mt,[Xt,s(),Zt,t("ul",$t,[t("li",ts,[ss,s(),i(l,{to:"/docs/user/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),t("li",es,[is,s(),i(l,{to:"/docs/user/status_number.html"},{default:c(()=>[s("状态数")]),_:1})]),t("li",ls,[cs,s(),i(l,{to:"/docs/user/relation.html"},{default:c(()=>[s("关系")]),_:1})]),t("li",os,[as,s(),i(l,{to:"/docs/user/space.html"},{default:c(()=>[s("个人空间")]),_:1})]),t("li",ds,[ns,s(),i(l,{to:"/docs/user/check_nickname.html"},{default:c(()=>[s("检查昵称是否可注册")]),_:1})]),t("li",hs,[_s,s(),i(l,{to:"/docs/user/register.html"},{default:c(()=>[s("用户注册")]),_:1})]),t("li",ks,[bs,s(),i(l,{to:"/docs/user/official_role.html"},{default:c(()=>[s("用户认证类型一览")]),_:1})]),t("li",us,[ms,s(),i(l,{to:"/docs/user/contract.html"},{default:c(()=>[s("加入老粉计划")]),_:1})]),t("li",rs,[ps,s(),i(l,{to:"/docs/user/medals.html"},{default:c(()=>[s("所有粉丝勋章")]),_:1})])])]),t("li",xs,[fs,s(),ys,t("ul",gs,[t("li",vs,[ws,s(),i(l,{to:"/docs/vip/info.html"},{default:c(()=>[s("大会员基本信息")]),_:1})]),t("li",Ps,[As,s(),i(l,{to:"/docs/vip/center.html"},{default:c(()=>[s("大会员中心")]),_:1})]),t("li",Bs,[Ss,s(),i(l,{to:"/docs/vip/clockin.html"},{default:c(()=>[s("大会员签到")]),_:1})]),t("li",Is,[Cs,s(),i(l,{to:"/docs/vip/action.html"},{default:c(()=>[s("大会员操作")]),_:1})])])]),t("li",Ds,[Ns,s(),zs,t("ul",js,[t("li",Os,[Rs,s(),i(l,{to:"/docs/video/video_zone.html"},{default:c(()=>[s("视频分区一览 (分区代码)")]),_:1})]),t("li",Es,[Ys,s(),i(l,{to:"/docs/video/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),t("li",Ts,[Ls,s(),i(l,{to:"/docs/video/status_number.html"},{default:c(()=>[s("状态数")]),_:1})]),t("li",qs,[Gs,s(),i(l,{to:"/docs/video/snapshot.html"},{default:c(()=>[s("快照")]),_:1})]),t("li",Ks,[Hs,s(),i(l,{to:"/docs/video/action.html"},{default:c(()=>[s("点赞 & 投币 & 收藏 & 分享")]),_:1})]),t("li",Js,[Vs,s(),i(l,{to:"/docs/video/tags.html"},{default:c(()=>[s("TAG")]),_:1})]),t("li",Qs,[Us,s(),i(l,{to:"/docs/video/recommend.html"},{default:c(()=>[s("视频推荐")]),_:1})]),t("li",Ws,[Fs,s(),i(l,{to:"/docs/video/videostream_url.html"},{default:c(()=>[s("播放&下载地址 (视频流)")]),_:1})]),t("li",Ms,[Xs,s(),i(l,{to:"/docs/video/interact_video.html"},{default:c(()=>[s("互动视频")]),_:1})]),t("li",Zs,[$s,s(),i(l,{to:"/docs/video/pbp.html"},{default:c(()=>[s("高能进度条")]),_:1})]),t("li",te,[se,s(),i(l,{to:"/docs/video/report.html"},{default:c(()=>[s("信息上报 (心跳及记录历史)")]),_:1})]),t("li",ee,[ie,s(),i(l,{to:"/docs/video/attribute_data.html"},{default:c(()=>[s("视频属性数据")]),_:1})]),t("li",le,[ce,s(),i(l,{to:"/docs/video/online.html"},{default:c(()=>[s("视频在线人数")]),_:1})]),t("li",oe,[ae,s(),i(l,{to:"/docs/video/summary.html"},{default:c(()=>[s("视频AI摘要")]),_:1})]),t("li",de,[ne,s(),i(l,{to:"/docs/video/appeal.html"},{default:c(()=>[s("稿件投诉")]),_:1})]),t("li",he,[_e,s(),i(l,{to:"/docs/video/status_number.html"},{default:c(()=>[s("视频状态数")]),_:1})]),t("li",ke,[be,s(),i(l,{to:"/docs/video/collection.html"},{default:c(()=>[s("视频合集")]),_:1})]),t("li",ue,[me,s(),i(l,{to:"/docs/video/player.html"},{default:c(()=>[s("播放器")]),_:1})])])]),t("li",re,[pe,s(),xe,t("ul",fe,[t("li",ye,[ge,s(),i(l,{to:"/docs/bangumi/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),t("li",ve,[we,s(),i(l,{to:"/docs/bangumi/videostream_url.html"},{default:c(()=>[s("播放&下载地址(视频流)")]),_:1})]),t("li",Pe,[Ae,s(),i(l,{to:"/docs/bangumi/timeline.html"},{default:c(()=>[s("时间轴")]),_:1})]),t("li",Be,[Se,s(),i(l,{to:"/docs/bangumi/follow.html"},{default:c(()=>[s("追番相关")]),_:1})]),Ie,Ce])]),t("li",De,[Ne,s(),ze,t("ul",je,[t("li",Oe,[Re,s(),i(l,{to:"/docs/danmaku/danmaku_proto.html"},{default:c(()=>[s("protobuf 实时弹幕")]),_:1})]),t("li",Ee,[Ye,s(),i(l,{to:"/docs/danmaku/danmaku_view_proto.html"},{default:c(()=>[s("protobuf 弹幕元数据(BAS 弹幕 / 互动弹幕)")]),_:1})]),t("li",Te,[Le,s(),i(l,{to:"/docs/danmaku/danmaku_xml.html"},{default:c(()=>[s("xml 实时弹幕")]),_:1})]),t("li",qe,[Ge,s(),i(l,{to:"/docs/danmaku/history.html"},{default:c(()=>[s("历史弹幕")]),_:1})]),t("li",Ke,[He,s(),i(l,{to:"/docs/danmaku/snapshot.html"},{default:c(()=>[s("快照")]),_:1})]),t("li",Je,[Ve,s(),i(l,{to:"/docs/danmaku/action.html"},{default:c(()=>[s("弹幕操作")]),_:1})]),Qe,Ue,t("li",We,[Fe,s(),i(l,{to:"/docs/danmaku/webmask.html"},{default:c(()=>[s("智能防挡弹幕")]),_:1})]),t("li",Me,[Xe,s(),i(l,{to:"/docs/danmaku/config.html"},{default:c(()=>[s("弹幕个人配置修改")]),_:1})]),t("li",Ze,[$e,s(),i(l,{to:"/docs/danmaku/buzzword.html"},{default:c(()=>[s("名词解释")]),_:1})]),t("li",ti,[si,s(),i(l,{to:"/docs/danmaku/thumbup.html"},{default:c(()=>[s("点赞查询")]),_:1})])])]),t("li",ei,[ii,s(),li,t("ul",ci,[t("li",oi,[ai,s(),i(l,{to:"/docs/note/list.html"},{default:c(()=>[s("笔记列表")]),_:1})]),t("li",di,[ni,s(),i(l,{to:"/docs/note/info.html"},{default:c(()=>[s("笔记详细信息")]),_:1})]),t("li",hi,[_i,s(),i(l,{to:"/docs/note/action.html"},{default:c(()=>[s("笔记操作")]),_:1})])])]),t("li",ki,[bi,s(),ui,t("ul",mi,[t("li",ri,[pi,s(),i(l,{to:"/docs/article/category.html"},{default:c(()=>[s("专栏分类")]),_:1})]),t("li",xi,[fi,s(),i(l,{to:"/docs/article/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),t("li",yi,[gi,s(),i(l,{to:"/docs/article/action.html"},{default:c(()=>[s("点赞 & 投币 & 收藏 & 分享")]),_:1})]),t("li",vi,[wi,s(),i(l,{to:"/docs/article/articles.html"},{default:c(()=>[s("文集基本信息")]),_:1})]),t("li",Pi,[Ai,s(),i(l,{to:"/docs/article/list.html"},{default:c(()=>[s("获取用户专栏文章列表")]),_:1})])])]),t("li",Bi,[Si,s(),Ii,t("ul",Ci,[t("li",Di,[Ni,s(),i(l,{to:"/docs/audio/info.html"},{default:c(()=>[s("歌曲基本信息")]),_:1})]),t("li",zi,[ji,s(),i(l,{to:"/docs/audio/music_list.html"},{default:c(()=>[s("歌单 & 音频收藏夹详细信息")]),_:1})]),t("li",Oi,[Ri,s(),i(l,{to:"/docs/audio/status_number.html"},{default:c(()=>[s("状态数")]),_:1})]),t("li",Ei,[Yi,s(),i(l,{to:"/docs/audio/action.html"},{default:c(()=>[s("投币 & 收藏")]),_:1})]),t("li",Ti,[Li,s(),i(l,{to:"/docs/audio/musicstream_url.html"},{default:c(()=>[s("播放 & 下载地址(音频流)")]),_:1})]),t("li",qi,[Gi,s(),i(l,{to:"/docs/audio/rank.html"},{default:c(()=>[s("音频榜单")]),_:1})])])]),t("li",Ki,[Hi,s(),Ji,t("ul",Vi,[t("li",Qi,[Ui,s(),i(l,{to:"/docs/video_ranking/ranking.html"},{default:c(()=>[s("排行榜")]),_:1})]),t("li",Wi,[Fi,s(),i(l,{to:"/docs/video_ranking/popular.html"},{default:c(()=>[s("热门视频")]),_:1})]),t("li",Mi,[Xi,s(),i(l,{to:"/docs/video_ranking/dynamic.html"},{default:c(()=>[s("最新视频")]),_:1})]),t("li",Zi,[$i,s(),i(l,{to:"/docs/video_ranking/precious_videos.html"},{default:c(()=>[s("入站必刷视频")]),_:1})])])]),t("li",tl,[sl,s(),el,t("ul",il,[t("li",ll,[cl,s(),i(l,{to:"/docs/search/search_request.html"},{default:c(()=>[s("搜索请求")]),_:1})]),t("li",ol,[al,s(),i(l,{to:"/docs/search/search_response.html"},{default:c(()=>[s("搜索结果")]),_:1})]),t("li",dl,[nl,s(),i(l,{to:"/docs/search/hot.html"},{default:c(()=>[s("默认搜索 & 热搜")]),_:1})]),t("li",hl,[_l,s(),i(l,{to:"/docs/search/suggest.html"},{default:c(()=>[s("搜索建议")]),_:1})])])]),t("li",kl,[bl,s(),ul,t("ul",ml,[rl,t("li",pl,[xl,s(),i(l,{to:"/docs/blackroom/banlist.html"},{default:c(()=>[s("封禁公示")]),_:1})]),t("li",fl,[yl,s(),gl,t("ul",vl,[t("li",wl,[Pl,s(),i(l,{to:"/docs/blackroom/jury/base_info.html"},{default:c(()=>[s("风纪委员基本信息")]),_:1})]),t("li",Al,[Bl,s(),i(l,{to:"/docs/blackroom/jury/judgement_info.html"},{default:c(()=>[s("众裁案件基本信息")]),_:1})]),t("li",Sl,[Il,s(),i(l,{to:"/docs/blackroom/jury/action.html"},{default:c(()=>[s("裁决操作")]),_:1})])])])])]),t("li",Cl,[Dl,s(),Nl,t("ul",zl,[t("li",jl,[Ol,s(),i(l,{to:"/docs/comment/list.html"},{default:c(()=>[s("评论区明细")]),_:1})]),t("li",Rl,[El,s(),i(l,{to:"/docs/comment/action.html"},{default:c(()=>[s("操作")]),_:1})])])]),t("li",Yl,[Tl,s(),Ll,t("ul",ql,[t("li",Gl,[Kl,s(),i(l,{to:"/docs/emoji/list.html"},{default:c(()=>[s("表情及表情包信息")]),_:1})]),t("li",Hl,[Jl,s(),i(l,{to:"/docs/emoji/action.html"},{default:c(()=>[s("操作")]),_:1})])])]),t("li",Vl,[Ql,s(),Ul,t("ul",Wl,[t("li",Fl,[Ml,s(),i(l,{to:"/docs/creativecenter/upload.html"},{default:c(()=>[s("投稿")]),_:1})]),t("li",Xl,[Zl,s(),i(l,{to:"/docs/creativecenter/statistics&data.html"},{default:c(()=>[s("统计与数据")]),_:1})]),$l,t("li",tc,[sc,s(),i(l,{to:"/docs/creativecenter/railgun.html"},{default:c(()=>[s("电磁力数据")]),_:1})]),t("li",ec,[ic,s(),i(l,{to:"/docs/creativecenter/season.html"},{default:c(()=>[s("合集管理")]),_:1})]),t("li",lc,[cc,s(),i(l,{to:"/docs/creativecenter/videos.html"},{default:c(()=>[s("视频相关杂项")]),_:1})])])]),t("li",oc,[ac,s(),dc,t("ul",nc,[t("li",hc,[_c,s(),i(l,{to:"/docs/broadcast/video_room.html"},{default:c(()=>[s("视频内广播")]),_:1})])])]),t("li",kc,[bc,s(),uc,t("ul",mc,[t("li",rc,[pc,s(),i(l,{to:"/docs/electric/monthly.html"},{default:c(()=>[s("包月充电")]),_:1})]),t("li",xc,[fc,s(" 自定义充电 "),t("ul",yc,[t("li",gc,[vc,s(),i(l,{to:"/docs/electric/Bcoin.html"},{default:c(()=>[s("B币方式充电")]),_:1})]),t("li",wc,[Pc,s(),i(l,{to:"/docs/electric/WeChat&Alipay.html"},{default:c(()=>[s("微信 & 支付宝方式充电")]),_:1})]),t("li",Ac,[Bc,s(),i(l,{to:"/docs/electric/charge_msg.html"},{default:c(()=>[s("充电留言")]),_:1})]),t("li",Sc,[Ic,s(),i(l,{to:"/docs/electric/charge_list.html"},{default:c(()=>[s("充电列表")]),_:1})])])])])]),t("li",Cc,[Dc,s(),Nc,t("ul",zc,[t("li",jc,[Oc,s(),i(l,{to:"/docs/dynamic/all.html"},{default:c(()=>[s("获取动态列表")]),_:1})]),t("li",Rc,[Ec,s(),i(l,{to:"/docs/dynamic/space.html"},{default:c(()=>[s("获取用户空间动态")]),_:1})]),t("li",Yc,[Tc,s(),i(l,{to:"/docs/dynamic/basicInfo.html"},{default:c(()=>[s("动态基本信息")]),_:1})]),t("li",Lc,[qc,s(),i(l,{to:"/docs/dynamic/card_info.html"},{default:c(()=>[s("动态详细信息字段")]),_:1})]),t("li",Gc,[Kc,s(),i(l,{to:"/docs/dynamic/detail.html"},{default:c(()=>[s("获取动态详情")]),_:1})]),t("li",Hc,[Jc,s(),i(l,{to:"/docs/dynamic/dynamic_enum.html"},{default:c(()=>[s("动态类型对照")]),_:1})]),t("li",Vc,[Qc,s(),i(l,{to:"/docs/dynamic/content.html"},{default:c(()=>[s("动态信息")]),_:1})]),t("li",Uc,[Wc,s(),i(l,{to:"/docs/dynamic/topic.html"},{default:c(()=>[s("话题搜索")]),_:1})]),t("li",Fc,[Mc,s(),i(l,{to:"/docs/dynamic/publish.html"},{default:c(()=>[s("发送 & 转载动态")]),_:1})]),t("li",Xc,[Zc,s(),i(l,{to:"/docs/dynamic/atlist.html"},{default:c(()=>[s("根据关键字搜索用户(at 别人时的填充列表)")]),_:1})]),t("li",$c,[to,s(),i(l,{to:"/docs/dynamic/action.html"},{default:c(()=>[s("操作")]),_:1})]),t("li",so,[eo,s(" 动态列表 "),t("ul",io,[t("li",lo,[co,s(),i(l,{to:"/docs/dynamic/tag_dynamics.html"},{default:c(()=>[s("特定话题动态列表")]),_:1})])])]),t("li",oo,[ao,s(),i(l,{to:"/docs/dynamic/get_dynamic_detail.html"},{default:c(()=>[s("动态内容")]),_:1})]),t("li",no,[ho,s(),i(l,{to:"/docs/dynamic/nav.html"},{default:c(()=>[s("导航栏动态")]),_:1})])])]),t("li",_o,[ko,s(),bo,s(" (已下线) "),t("ul",uo,[t("li",mo,[ro,s(),i(l,{to:"/docs/album/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),t("li",po,[xo,s(),i(l,{to:"/docs/album/list.html"},{default:c(()=>[s("相簿列表")]),_:1})]),t("li",fo,[yo,s(),i(l,{to:"/docs/album/recommend_author.html"},{default:c(()=>[s("推荐作者")]),_:1})]),t("li",go,[vo,s(),i(l,{to:"/docs/album/activity_list.html"},{default:c(()=>[s("活动列表")]),_:1})]),t("li",wo,[Po,s(),i(l,{to:"/docs/album/action.html"},{default:c(()=>[s("操作")]),_:1})]),Ao])]),t("li",Bo,[So,s(),Io,t("ul",Co,[t("li",Do,[No,s(),i(l,{to:"/docs/history&toview/history.html"},{default:c(()=>[s("历史记录")]),_:1})]),t("li",zo,[jo,s(),i(l,{to:"/docs/history&toview/toview.html"},{default:c(()=>[s("稍后再看")]),_:1})])])]),t("li",Oo,[Ro,s(),Eo,t("ul",Yo,[t("li",To,[Lo,s(),i(l,{to:"/docs/fav/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),t("li",qo,[Go,s(),i(l,{to:"/docs/fav/list.html"},{default:c(()=>[s("收藏夹内容")]),_:1})]),t("li",Ko,[Ho,s(),i(l,{to:"/docs/fav/action.html"},{default:c(()=>[s("收藏夹操作")]),_:1})])])]),t("li",Jo,[Vo,s(),Qo,t("ul",Uo,[t("li",Wo,[Fo,s(),i(l,{to:"/docs/cheese/info.html"},{default:c(()=>[s("课程基本信息")]),_:1})]),Mo,t("li",Xo,[Zo,s(),i(l,{to:"/docs/cheese/videostream_url.html"},{default:c(()=>[s("播放 & 下载地址(视频流)")]),_:1})])])]),t("li",$o,[ta,s(),sa,t("ul",ea,[t("li",ia,[la,s(),i(l,{to:"/docs/live/info.html"},{default:c(()=>[s("直播间基本信息")]),_:1})]),t("li",ca,[oa,s(),i(l,{to:"/docs/live/live_area.html"},{default:c(()=>[s("直播分区")]),_:1})]),t("li",aa,[da,s(),i(l,{to:"/docs/live/manage.html"},{default:c(()=>[s("直播间管理")]),_:1})]),na,t("li",ha,[_a,s(),i(l,{to:"/docs/live/live_stream.html"},{default:c(()=>[s("直播视频流")]),_:1})]),t("li",ka,[ba,s(),i(l,{to:"/docs/live/message_stream.html"},{default:c(()=>[s("直播信息流")]),_:1})]),t("li",ua,[ma,s(),i(l,{to:"/docs/live/redpocket.html"},{default:c(()=>[s("直播红包")]),_:1})]),t("li",ra,[pa,s(),i(l,{to:"/docs/live/user.html"},{default:c(()=>[s("直播间用户实用 API")]),_:1})]),t("li",xa,[fa,s(),i(l,{to:"/docs/live/silent_user_manage.html"},{default:c(()=>[s("直播间禁言相关")]),_:1})]),t("li",ya,[ga,s(),i(l,{to:"/docs/live/follow_up_live.html"},{default:c(()=>[s("关注UP直播情况")]),_:1})]),t("li",va,[wa,s(),i(l,{to:"/docs/live/report.html"},{default:c(()=>[s("直播心跳上报")]),_:1})])])]),t("li",Pa,[Aa,s(),Ba,t("ul",Sa,[t("li",Ia,[Ca,s(),i(l,{to:"/docs/activity/list.html"},{default:c(()=>[s("活动列表")]),_:1})]),t("li",Da,[Na,s(),i(l,{to:"/docs/activity/info.html"},{default:c(()=>[s("活动主题信息")]),_:1})])])]),t("li",za,[ja,s(),Oa,t("ul",Ra,[t("li",Ea,[Ya,s(),i(l,{to:"/docs/newbie_exam/info.html"},{default:c(()=>[s("查询信息")]),_:1})]),t("li",Ta,[La,s(),i(l,{to:"/docs/newbie_exam/fetch.html"},{default:c(()=>[s("拉取题目")]),_:1})]),t("li",qa,[Ga,s(),i(l,{to:"/docs/newbie_exam/action.html"},{default:c(()=>[s("操作")]),_:1})])])]),t("li",Ka,[Ha,s(),i(l,{to:"/docs/teenager/"},{default:c(()=>[s("青少年守护")]),_:1}),t("ul",Ja,[t("li",Va,[Qa,s(),i(l,{to:"/docs/teenager/teenager_mode.html"},{default:c(()=>[s("青少年模式")]),_:1})]),Ua,Wa])]),t("li",Fa,[Ma,s(),i(l,{to:"/docs/wallet/"},{default:c(()=>[s("B币钱包")]),_:1}),t("ul",Xa,[t("li",Za,[$a,s(),i(l,{to:"/docs/wallet/info.html"},{default:c(()=>[s("基本信息")]),_:1})]),td,sd])]),t("li",ed,[id,s(),ld,t("ul",cd,[od,t("li",ad,[dd,s(),i(l,{to:"/docs/manga/ClockIn.html"},{default:c(()=>[s("签到")]),_:1})]),t("li",nd,[hd,s(),i(l,{to:"/docs/manga/point_shop.html"},{default:c(()=>[s("积分商城")]),_:1})]),t("li",_d,[kd,s(),i(l,{to:"/docs/manga/Comic.html"},{default:c(()=>[s("漫画操作")]),_:1})]),t("li",bd,[ud,s(),i(l,{to:"/docs/manga/Activity.html"},{default:c(()=>[s("漫画任务操作")]),_:1})]),t("li",md,[rd,s(),i(l,{to:"/docs/manga/Season.html"},{default:c(()=>[s("漫画赛季")]),_:1})]),t("li",pd,[xd,s(),i(l,{to:"/docs/manga/User.html"},{default:c(()=>[s("漫读券/已购相关")]),_:1})]),t("li",fd,[yd,s(),i(l,{to:"/docs/manga/Download.html"},{default:c(()=>[s("下载")]),_:1})]),t("li",gd,[vd,s(),i(l,{to:"/docs/manga/index_file.html"},{default:c(()=>[s("data.index解析")]),_:1})]),t("li",wd,[Pd,s(),i(l,{to:"/docs/manga/light_card.html"},{default:c(()=>[s("获取轻享卡信息")]),_:1})])])]),Ad,t("li",Bd,[Sd,s(),Id,t("ul",Cd,[t("li",Dd,[Nd,s(),i(l,{to:"/docs/clientinfo/ip.html"},{default:c(()=>[s("基于 ip 的地理位置查询")]),_:1})])])]),t("li",zd,[jd,s(),Od,t("ul",Rd,[t("li",Ed,[Yd,s(),i(l,{to:"/docs/customerservice/msg.html"},{default:c(()=>[s("客服消息")]),_:1})])])]),t("li",Td,[Ld,s(),qd,t("ul",Gd,[t("li",Kd,[Hd,s(),i(l,{to:"/docs/web_widget/zone_upload.html"},{default:c(()=>[s("分区当日投稿数")]),_:1})]),t("li",Jd,[Vd,s(),i(l,{to:"/docs/web_widget/404_manga.html"},{default:c(()=>[s("404 页漫画收集")]),_:1})]),t("li",Qd,[Ud,s(),i(l,{to:"/docs/web_widget/header.html"},{default:c(()=>[s("首页横幅头图")]),_:1})])])]),t("li",Wd,[Fd,s(),Md,t("ul",Xd,[t("li",Zd,[$d,s(),i(l,{to:"/docs/APP_widget/splash.html"},{default:c(()=>[s("开屏图片 + 恰饭珍贵录像")]),_:1})]),t("li",tn,[sn,s(),i(l,{to:"/docs/APP_widget/ver.html"},{default:c(()=>[s("获取最新 APP 版本")]),_:1})])])]),t("li",en,[ln,s(),cn,t("ul",on,[t("li",an,[dn,s(),i(l,{to:"/docs/garb/skin.html"},{default:c(()=>[s("APP 主题")]),_:1})]),t("li",nn,[hn,s(),i(l,{to:"/docs/garb/color.html"},{default:c(()=>[s("主题色")]),_:1})]),t("li",_n,[kn,s(),i(l,{to:"/docs/garb/lottery.html"},{default:c(()=>[s("装扮/收藏集")]),_:1})])])])]),bn,un,t("p",null,[t("a",mn,[rn,i(o)])]),pn,t("p",null,[s("http 协议:"),t("a",xn,[s("传送门"),i(o)])]),t("p",null,[s("json 序列格式:"),t("a",fn,[s("传送门"),i(o)])]),t("p",null,[s("xml 序列格式:"),t("a",yn,[s("传送门"),i(o)])]),t("p",null,[s("protobuf 序列格式:"),t("a",gn,[s("传送门"),i(o)])]),vn,wn,Pn,t("ul",null,[t("li",null,[s("QQ 交流群:"),t("a",An,[s("邀请链接"),i(o)])]),t("li",null,[s("Telegram 交流群:"),t("a",Bn,[s("@bilibili_API_collect_community"),i(o)])])]),Sn,In,Cn,Dn,Nn,t("p",null,[s("OR Aifadian:"),t("a",zn,[s("https://afdian.net/@ShakaiAneE"),i(o)])]),jn,On,t("ul",null,[t("li",null,[t("a",Rn,[s("jingyuexing/bilibiliAPI"),i(o)])]),t("li",null,[t("a",En,[s("fython/BilibiliAPIDocs"),i(o)])]),t("li",null,[t("a",Yn,[s("czp3009/bilibili-api"),i(o)])]),t("li",null,[t("a",Tn,[s("Vespa314/bilibili-api"),i(o)])]),t("li",null,[t("a",Ln,[s("wnstar/bili-utils"),i(o)])]),t("li",null,[t("a",qn,[s("lovelyyoshino/Bilibili-Live-API"),i(o)])]),t("li",null,[t("a",Gn,[s("flaribbit/bilibili-manga-spider"),i(o)])]),t("li",null,[t("a",Kn,[s("simon300000/bili-api"),i(o)])]),t("li",null,[t("a",Hn,[s("iyear/biligo"),i(o)]),s(" Bilibili API SDK in Golang")]),t("li",null,[t("a",Jn,[s("bilibili-openplatform/demo"),i(o)]),s(": 哔哩哔哩开放平台示例代码库")]),t("li",null,[t("a",Vn,[s("ddiu8081/blive-message-listener"),i(o)]),s(": Bilibili-live danmu listener with type. Bilibili 直播间弹幕监听库,支持类型输出。")]),t("li",null,[t("a",Qn,[s("Nemo2011/bilibili-api"),i(o)]),s(": 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。工具齐全。")]),t("li",null,[t("a",Un,[s("CuteReimu/bilibili"),i(o)]),s(": 哔哩哔哩API的Go版本SDK")])]),Wn,t("ul",null,[t("li",null,[t("a",Fn,[s("NullPointerException/AnimePipe"),i(o)]),s(": 功能完善的Android流媒体综合客户端,支持Bilibili, Youtube, NicoNico")]),t("li",null,[t("a",Mn,[s("3Shain/BiliChat"),i(o)]),s(" : 基于h5的B站直播弹幕姬")]),t("li",null,[t("a",Xn,[s("AncientLysine/BiliLocal"),i(o)]),s(":本地弹幕播放器")]),t("li",null,[t("a",Zn,[s("zyzsdy/biliroku"),i(o)]),s(":bilibili 生放送(直播)录制")]),t("li",null,[t("a",$n,[s("otakustay/danmaku-to-ass"),i(o)]),s(":A站B站弹幕转字幕文件")]),t("li",null,[t("a",th,[s("bilibili-helper/bilibili-helper-o"),i(o)]),s(":哔哩哔哩 (bilibili.com) 辅助工具,可以下载视频,查询弹幕发送人以及一些十分实用的直播区功能。")]),t("li",null,[t("a",sh,[s("apachecn/BiliDriveEx"),i(o)]),s(":基于B站相簿上传的文件分块索引存储器")]),t("li",null,[t("a",eh,[s("apachecn/CDNDrive"),i(o)]),s(":基于B站相簿上传的文件分块索引存储器")]),t("li",null,[t("a",ih,[s("Hsury/BiliDrive"),i(o)]),s(":基于B站相簿上传的文件分块索引存储器")]),t("li",null,[t("a",lh,[s("Tsuk1ko/bilibili-live-chat"),i(o)]),s(":无后端的仿 YouTube Live Chat 风格的简易 Bilibili 弹幕姬")]),t("li",null,[t("a",ch,[s("ironmanic/crawler_target_users_good"),i(o)]),s(":搜索bilibili特定视频,为评论 点赞,关注,私信,一体化服务")]),t("li",null,[t("a",oh,[s("dd-center/DDatElectron"),i(o)]),s(":DD@Home 分布式项目, 桌面客户端")]),t("li",null,[t("a",ah,[s("dd-center/vtbs.moe"),i(o)]),s(":B站VTB数据中心")]),t("li",null,[t("a",dh,[s("catlair/BiliOutils"),i(o)]),s(":利用Docker,青龙面板,以及各种云函数等实现 B 站每日自动投币,会员大积分,漫画阅读和抢兑,领取大会员福利,大会员月底给自己充电等。每天轻松获取65经验值。")]),t("li",null,[t("a",nh,[s("the1812/Bilibili-Evolved"),i(o)]),s(":强大的哔哩哔哩增强脚本: 下载视频, 音乐, 封面, 弹幕 / 简化直播间, 评论区, 首页 / 自定义顶栏, 删除广告, 夜间模式 / 触屏设备支持")]),t("li",null,[t("a",hh,[s("xlzy520/bili-short-url"),i(o)]),s(": 哔哩哔哩短链生成器")]),t("li",null,[t("a",_h,[s("zjkwdy/bili_app_splash"),i(o)]),s(": B站壁纸娘和开屏图自动下载,每天使用Actions自动同步")]),t("li",null,[t("a",kh,[s("Jannchie/BiliOB"),i(o)]),s(": BiliOB观测者是一个观测B站UP主及视频数据变化,并予以分析的Web应用程序")]),t("li",null,[t("a",bh,[s("biliob233/biliob233.github.io"),i(o)]),s(": "),uh]),t("li",null,[t("a",mh,[s("biliup/biliup"),i(o)]),s(": 全自动录播、投稿工具,也支持twitch、ytb频道搬运。提供分p上传b站接口,腾讯云内网免流+大幅提速")]),t("li",null,[t("a",rh,[s("ddiu8081/bilicli"),i(o)]),s(": Bilibili-live danmu dashboard in your terminal.")]),t("li",null,[t("a",ph,[s("MotooriKashin/Bilibili-Old"),i(o)]),s(": 恢复旧版Bilibili页面,为了那些念旧的人。")]),t("li",null,[t("a",xh,[s("SocialSisterYi/bcut-asr"),i(o)]),s(": 使用必剪API的语音字幕识别")]),t("li",null,[t("a",fh,[s("CzJam/Bili_Realtime_Data"),i(o)]),s(": Bilibili粉丝与视频实时数据统计")]),t("li",null,[t("a",yh,[s("kingwingfly/fav"),i(o)]),s(": 自动同步bili收藏夹、合集视频到本地的CLI工具(Rust实现,并提供一个文档测试完善的Rust风格的用于构建有状态爬虫的核心库)")]),t("li",null,[t("a",gh,[s("linyuye/Bilibili_crawler"),i(o)]),s(": 基于bilibili懒加载api爬取b站动态,视频等评论区")])]),vh,t("ul",null,[t("li",null,[t("p",null,[t("a",wh,[s("kuresaru/geetest-validator"),i(o)]),s(":geetest调试器")])]),t("li",null,[t("p",null,[t("a",Ph,[s("uw-labs/bloomrpc"),i(o)]),s(": GUI Client for GRPC Services")])]),t("li",null,[t("p",null,[t("a",Ah,[s("grpc/grpc"),i(o)]),s(": The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)")])]),t("li",null,[t("p",null,[t("a",Bh,[s("quicktype"),i(o)]),s(" quicktype generates strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL queries, making it a breeze to work with JSON type-safely in many programming languages.一键生成多种语言的json反序列化所需类,以便于快速反序列化, 有网页版")])])])])}const Dh=h(p,[["render",Sh],["__scopeId","data-v-44d4f85c"],["__file","index.html.vue"]]);export{Dh as default}; diff --git a/assets/index.html-68ada05c.js b/assets/index.html-68ada05c.js new file mode 100644 index 0000000000..ec07604a06 --- /dev/null +++ b/assets/index.html-68ada05c.js @@ -0,0 +1,78 @@ +import{_ as e,r as p,o as d,c as l,a as n,d as a,w as o,b as t,e as i}from"./app-3168cb19.js";const u={},c=n("h1",{id:"视频笔记",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#视频笔记","aria-hidden":"true"},"#"),t(" 视频笔记")],-1),r=n("p",null,'2020-11-16 B站推出了测试版的功能——"视频笔记",与视频稿件关联,为富文本模式,可供记录观看视频时的感悟以及视频中的重要内容,目前只可在web端操作',-1),k=n("p",null,"笔记分为私有笔记和公开笔记,一个稿件只能添加一篇私有笔记,但可以公开多篇笔记",-1),v=n("p",null,[t("公开笔记与【专栏】性质相同,使用"),n("code",null,"cvid"),t("寻址相应的公开笔记")],-1),b=n("hr",null,null,-1),q=n("p",null,[n("strong",null,"继续查看:")],-1),m=i(`

    附表-笔记正文序列格式

    根数组:

    类型内容备注
    0obj第1个元素
    nobj第(n+1)个元素
    ……obj…………

    根数组中的对象:

    字段类型内容备注
    attributesobj元素属性无属性无此项
    insertstr元素内容为跳转/图片时无此项
    insertobj元素跳转信息非跳转/图片时无此项

    对象中的attributes对象:

    字段类型内容备注
    boldbool是否加粗
    strikebool是否删除线
    underlinebool是否下划线
    backgroundstr背景颜色
    colorstr文字颜色
    liststr列表属性ordered有序列表/bullet无序列表
    sizestr文字字号

    对象中的insert对象:

    字段类型内容备注
    tagobj跳转标签二选一
    imageUploadobj笔记图片二选一

    insert中的tag对象:

    字段类型内容备注
    cidnum视频cid
    statusnum0作用尚不明确
    indexnum在稿件中的分P索引
    secondsnum视频进度
    cidCountnum稿件总分P数
    keystr标签创建时间戳
    titlestroutput作用尚不明确

    insert中的imageUpload对象:

    字段类型内容备注
    urlstr图片链接
    statusstrdone作用尚不明确
    widthnum图片宽度-2

    示例:

    以下笔记正文序列包含字号加粗高亮普通文本格式

    [
    +    {
    +        "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"
    +    }
    +]
    +
    `,17);function h(y,g){const s=p("RouterLink");return d(),l("div",null,[c,r,k,v,b,q,n("ul",null,[n("li",null,[a(s,{to:"/docs/note/list.html"},{default:o(()=>[t("笔记列表")]),_:1})]),n("li",null,[a(s,{to:"/docs/note/info.html"},{default:o(()=>[t("笔记详细信息")]),_:1})]),n("li",null,[a(s,{to:"/docs/note/action.html"},{default:o(()=>[t("笔记操作")]),_:1})])]),m])}const f=e(u,[["render",h],["__file","index.html.vue"]]);export{f as default}; diff --git a/assets/index.html-8ea2447b.js b/assets/index.html-8ea2447b.js new file mode 100644 index 0000000000..468c0230d4 --- /dev/null +++ b/assets/index.html-8ea2447b.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-394457c9","path":"/docs/broadcast/","title":"全站广播","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取广播服务器地址","slug":"获取广播服务器地址","link":"#获取广播服务器地址","children":[]},{"level":2,"title":"服务器数据包","slug":"服务器数据包","link":"#服务器数据包","children":[{"level":3,"title":"数据包结构","slug":"数据包结构","link":"#数据包结构","children":[]}]}],"git":{},"filePathRelative":"docs/broadcast/readme.md"}');export{e as data}; diff --git a/assets/index.html-965d5df0.js b/assets/index.html-965d5df0.js new file mode 100644 index 0000000000..65a0b8e5a1 --- /dev/null +++ b/assets/index.html-965d5df0.js @@ -0,0 +1,31 @@ +import{_ as r,r as p,o as c,c as l,a as t,d as s,w as e,b as a,e as o}from"./app-3168cb19.js";const i={},u=o('

    登录操作

    人机验证方式登录包含账号密码登录手机短信验证码登录

    注:扫码登录不需要进行人机验证,故不使用以下接口

    扫码登录

    ',4),h=o('

    验证登录

    人机验证流程:

    1. 请求验证码参数,得到登录密钥key与极验idgt和极验KEYchallenge
    2. 进行滑动or点击验证
    3. 返回验证结果validateseccode,进行短信或密码登录

    申请captcha验证码

    https://passport.bilibili.com/x/passport-login/captcha?source=main_web

    请求方式:GET

    ',6),b=o(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr返回信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    geetestobj极验captcha数据
    tencentobj(?)作用尚不明确
    tokenstr登录 API token与 captcha 无关,与登录接口有关
    typestr验证方式用于判断使用哪一种验证方式,目前所见只有极验
    geetest:极验

    geetest对象:

    字段类型内容备注
    gtstr极验id一般为固定值
    challengestr极验KEY由B站后端产生用于人机验证

    示例:

    curl 'https://passport.bilibili.com/x/passport-login/captcha?source=main_web'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "type": "geetest",
    +        "token": "00fbe75cc2864ba0af969231f193a974",
    +        "geetest": {
    +            "challenge": "a57d9be17505d4a15ed84694c48fbf74",
    +            "gt": "ac597a4506fee079629df5d8b66dd4fe"
    +        },
    +        "tencent": {
    +            "appid": ""
    +        }
    +    }
    +}
    +

    申请captcha验证码 (旧版)

    http://passport.bilibili.com/web/captcha/combine

    请求方式:GET

    该接口曾从文档移除过, 经过测试仍可正常使用

    URL参数:

    参数名类型内容必要性备注
    platnum平台类型必要默认为 6

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体

    data对象:

    字段类型内容备注
    resultobj套了个娃
    typenum1作用尚不明确

    result对象:

    字段类型内容备注
    successnum1作用尚不明确
    gtstr极验id一般为固定值
    challengestr极验KEY由B站后端产生用于人机验证
    keystr登录秘钥与 captcha 无关, 与登录接口有关, 亦作 token

    示例:

    curl 'https://passport.bilibili.com/web/captcha/combine?plat=6'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "result": {
    +      "success": 1,
    +      "gt": "bd111e81eda1cbb9f54425aafc0908ac",
    +      "challenge": "2903a8eb967a1d990444cb23ea42f417",
    +      "key": "76fb59fbd83a4d9d816162c5156fc964"
    +    },
    +    "type": 1
    +  }
    +}
    +

    进行验证

    `,27),k={href:"https://docs.geetest.com/sensebot/start/",target:"_blank",rel:"noopener noreferrer"},g={href:"https://kuresaru.github.io/geetest-validator/",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/kuresaru/geetest-validator",target:"_blank",rel:"noopener noreferrer"},v=o('
    1. 打开手动验证器,在1、2分别填入上面API返回的gtchallenge
    2. 点击按钮3,稍等加载验证码,点击按钮4进行验证
    3. 验证完成后,点击按钮5生成验证结果
    4. 使用最开始获得到的keychallenge和刚获得到的validateseccode继续之后的登录操作

    继续登录

    ',2);function q(y,_){const n=p("RouterLink"),d=p("ExternalLinkIcon");return c(),l("div",null,[u,t("ul",null,[t("li",null,[s(n,{to:"/docs/login/login_action/QR.html"},{default:e(()=>[a("扫码登录")]),_:1})])]),h,t("p",null,[a("注: 另外参见 "),s(n,{to:"/docs/login/login_action/password.html#%E8%8E%B7%E5%8F%96-captcha"},{default:e(()=>[a("密码登录-手机号验证-获取 captcha")]),_:1})]),b,t("p",null,[a("本文档为 Bilibili 文档,验证码为 "),t("a",k,[a("geetest 极验"),s(d)]),a(" 提供,故不提供相关 API")]),t("p",null,[a("附: "),t("a",g,[a("手动验证器"),s(d)]),t("a",m,[a("及其源码"),s(d)])]),v,t("ul",null,[t("li",null,[s(n,{to:"/docs/login/login_action/SMS.html"},{default:e(()=>[a("短信登录")]),_:1})]),t("li",null,[s(n,{to:"/docs/login/login_action/password.html"},{default:e(()=>[a("密码登录")]),_:1})])])])}const x=r(i,[["render",q],["__file","index.html.vue"]]);export{x as default}; diff --git a/assets/index.html-9f2fa5e9.js b/assets/index.html-9f2fa5e9.js new file mode 100644 index 0000000000..2b79024251 --- /dev/null +++ b/assets/index.html-9f2fa5e9.js @@ -0,0 +1 @@ +import{_ as h,r as a,o as b,c as n,a as t,d as e,w as o,b as d,e as c}from"./app-3168cb19.js";const l="/bilibili-API-collect/assets/comment-d1bbcde2.svg",i={},s=t("h1",{id:"评论区",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#评论区","aria-hidden":"true"},"#"),d(" 评论区")],-1),m=t("img",{src:l,width:"100",height:"100"},null,-1),u=t("p",null,"评论系统为全站通用,且APP与web端接口共用,以type标明对象类型,以oid指向响应的对象id",-1),p=t("hr",null,null,-1),_=t("p",null,[t("strong",null,"继续查看:")],-1),y=c('

    评论区类型代码

    (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

    评论条目对象

    字段类型内容备注
    rpidnum评论 rpid
    oidnum评论区对象 id
    typenum评论区类型代码类型代码见上表
    midnum发送者 mid
    rootnum根评论 rpid若为一级评论则为 0
    大于一级评论则为根评论 id
    parentnum回复父评论 rpid若为一级评论则为 0
    若为二级评论则为根评论 rpid
    大于二级评论为上一级评 论 rpid
    dialognum回复对方 rpid若为一级评论则为 0
    若为二级评论则为该评论 rpid
    大于二级评论为上一级评论 rpid
    countnum二级评论条数
    rcountnum回复评论条数
    floornum评论楼层号注:若不支持楼层则无此项
    statenum(?)
    fansgradenum是否具有粉丝标签0:无
    1:有
    attrnum某属性位?
    ctimenum评论发送时间时间戳
    rpid_strstr评论rpid字串格式
    root_strstr根评论rpid字串格式
    parent_strstr回复父评论rpid字串格式
    likenum评论获赞数
    actionnum当前用户操作状态需要登录(Cookie 或 APP)
    否则恒为 0
    0:无
    1:已点赞
    2:已点踩
    memberobj评论发送者信息
    contentobj评论信息
    replies无效时:null
    有效时:array
    评论回复条目预览仅嵌套一层
    否则为 null
    assistnum(?)
    folderobj折叠信息
    up_actionobj评论 UP 主操作信息
    show_followbool(?)
    invisiblebool评论是否被隐藏
    card_labelobj右上角卡片标签信息
    reply_controlobj评论提示文案信息

    评论条目中的member对象:

    字段类型内容备注
    midstr发送者 mid
    unamestr发送者昵称
    sexstr发送者性别男 女 保密
    signstr发送者签名
    avatarstr发送者头像 url
    rankstr(?)
    DisplayRankstr(?)
    level_infoobj发送者等级
    pendantobj发送者头像框信息
    nameplateobj发送者勋章信息
    official_verifyobj发送者认证信息
    vipobj发送者会员信息
    fans_detail无效时:null
    有效时:obj
    发送者粉丝标签
    followingnum是否关注该用户需要登录(Cookie或APP)
    否则恒为0
    0:未关注
    1:已关注
    is_followednum是否被该用户关注需要登录(Cookie或APP)
    否则恒为0
    0:未关注
    1:已关注
    user_sailingobj发送者评论条目装扮信息
    is_contractorbool是否为合作用户?
    contract_descstr合作用户说明?

    member中的level_info对象:

    字段类型内容备注
    current_levelnum用户等级
    current_minnum0
    current_expnum0
    next_expnum0

    member中的pendant对象:

    字段类型内容备注
    pidnum头像框 id
    namestr头像框名称
    imagestr头像框图片 url
    expirenum0
    image_enhancestr头像框图片 url
    image_enhance_framestr(?)

    member中的nameplate对象:

    字段类型内容备注
    nidnum勋章 id
    namestr勋章名称
    imagestr挂件图片 url 正常
    image_smallstr勋章图片 url 小
    levelstr勋章等级
    conditionstr勋章条件

    member中的official_verify对象:

    字段类型内容备注
    typenum认证类型-1:无
    0:个人认证
    1:机构认证
    descstr认证信息无为空

    member中的vip对象:

    字段类型内容备注
    vipTypenum大会员类型0:无
    1:月会员
    2:年以上会员
    vipDueDatenum大会员到期时间毫秒 时间戳
    dueRemarkstr(?)
    accessStatusnum(?)
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr(?)
    theme_typenum会员样式 id
    labelobj会员铭牌样式
    avatar_subscriptnum(?)
    avatar_subscript_urlstr(?)
    nickname_colorstr昵称颜色

    vip中的label对象:

    字段类型内容备注
    pathstr(?)
    textstr会员类型文案
    label_themestr会员类型vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    text_colorstr文字颜色?
    bg_stylenum(?)
    bg_colorstr背景颜色?
    border_colorstr描边颜色?

    member中的fans_detail对象:

    字段类型内容备注
    uidnum用户 mid
    medal_idnum粉丝标签 id
    medal_namestr粉丝标签名
    scorenum(?)
    levelnum当前标签等级
    intimacynum(?)
    master_statusnum(?)
    is_receivenum(?)

    member中的user_sailing对象:

    字段类型内容备注
    pendant无效时:null
    有效时:obj
    头像框信息
    cardbg无效时:null
    有效时:obj
    评论卡片装扮
    cardbg_with_focusnull(?)

    user_sailing中的pendant对象:

    字段类型内容备注
    idnum头像框 id
    namestr头像框名称
    imagestr头像框图片 url
    jump_urlstr
    typestr装扮类型suit:一般装扮
    vip_suit:vip 装扮
    image_enhancestr(?)
    image_enhance_framestr(?)

    user_sailing中的cardbg对象:

    字段类型内容备注
    idnum评论条目装扮 id
    namestr评论条目装扮名称
    imagestr评论条目装扮图片 url
    jump_urlstr评论条目装扮商城页面 url
    fanobj粉丝专属信息
    typestr装扮类型suit:一般装扮
    vip_suit:vip 装扮

    cardbg中的fan对象:

    字段类型内容备注
    is_fannum是否为粉丝专属装扮0:否
    1:是
    numbernum粉丝专属编号
    colorstr数字颜色颜色码
    namestr装扮名称
    num_descstr粉丝专属编号字串格式

    评论条目中的content对象:

    字段类型内容备注
    messagestr评论内容重要
    platnum评论发送端1:web端
    2:安卓客户端
    3:ios 客户端
    4:wp 客户端
    devicestr评论发送平台设备
    membersarrayat 到的用户信息
    emoteobj需要渲染的表情转义评论内容无表情则无此项
    jump_urlobj需要高亮的超链转义
    max_linenum6收起最大行数
    picturesarray评论图片数组

    content中的members数组:

    类型内容备注
    0objat到的用户 1基本同评论条目中的member对象
    nobjat到的用户 (n+1)项数为at到的不同的用户数
    ……obj…………

    content中的emote对象:

    字段类型内容备注
    {表情转义符}obj表情转义符信息 1
    ……obj表情转义符信息 n向下扩展

    emote中的{表情转义符}对象:

    字段类型内容备注
    idnum表情 id
    package_idnum表情包 id
    statenum0
    typenum表情类型1:免费
    2:会员专属
    3:购买所得
    4:颜文字
    attrnum(?)
    textstr表情转义符
    urlstr表情图片 url
    metaobj属性信息
    mtimenum表情创建时间时间戳
    jump_titlestr表情名称

    {表情转义符}中的meta对象:

    字段类型内容备注
    sizenum表情尺寸信息1:小
    2:大
    aliasstr简写名无则无此项

    content中的jump_url对象:

    字段类型内容备注
    {超链转义}obj超链转义信息 1
    ……obj超链转义信息 n向下扩展

    jump_url中的{超链转义}对象:

    字段类型内容备注
    titlestr标题
    statenum图标 url
    prefixIconstr(?)
    appUrlSchemastr(?)
    appNamestr(?)
    appPackageNamestr(?)
    clickReportstr上报 id

    content中的pictures数组中的对象:

    字段类型内容备注
    img_srcstr图片地址
    img_widthnum图片宽度
    img_heightnum图片高度
    img_sizenum图片大小单位KB

    评论条目中的replies数组:

    类型内容备注
    0obj回复条目1为本对象的递归嵌套
    仅可嵌套一层
    按照热度顺序排列
    1obj回复条目2
    2obj回复条目3最后一项

    评论条目中的folder对象:

    字段类型内容备注
    has_foldedbool是否有被折叠的二级评论
    is_foldedbool评论是否被折叠
    rulestr相关规则页面 url

    评论条目中的up_action对象:

    字段类型内容备注
    likebool是否UP主觉得很赞false:否
    true:是
    replybool是否被UP主回复false:否
    true:是

    评论条目中的card_label对象:

    字段类型内容备注
    rpidnum评论 rpid
    text_contentstr标签文本已知有妙评
    text_color_daystr日间文本颜色十六进制颜色值,下同
    text_color_nightstr夜间文本颜色
    label_color_daystr日间标签颜色
    label_color_nightstr夜间标签颜色
    imagestr作用不明
    typestr1作用不明
    backgroundstr背景图片 url
    background_widthnum背景图片宽度
    background_heightnum背景图片高度
    jump_urlstr跳转链接
    effectnum0作用不明,可能用于控制动画,下同
    effect_start_timenum0

    评论条目中的reply_control对象:

    字段类型内容备注
    sub_reply_entry_textstr回复提示共 xx 条回复
    sub_reply_title_textstr回复提示相关回复共有 xx 条
    time_descstr时间提示xx 天/小时 前发布
    locationstrIP属地IP属地:xx
    评论者发送评论时的IP地址属地
    仅对2022-07-25 11:00及以后发布的评论有效
    需要登录
    ',55);function g(f,j){const r=a("RouterLink");return b(),n("div",null,[s,m,u,p,_,t("ul",null,[t("li",null,[e(r,{to:"/docs/comment/list.html"},{default:o(()=>[d("查询类")]),_:1})]),t("li",null,[e(r,{to:"/docs/comment/action.html"},{default:o(()=>[d("操作类")]),_:1})])]),y])}const x=h(i,[["render",g],["__file","index.html.vue"]]);export{x as default}; diff --git a/assets/index.html-a1a3558c.js b/assets/index.html-a1a3558c.js new file mode 100644 index 0000000000..45adbba884 --- /dev/null +++ b/assets/index.html-a1a3558c.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-8955a406","path":"/grpc_api/","title":"gRPC 接口定义(protobuf 结构体)","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"gRPC 主机","slug":"grpc-主机","link":"#grpc-主机","children":[]},{"level":2,"title":"gRPC 鉴权","slug":"grpc-鉴权","link":"#grpc-鉴权","children":[]},{"level":2,"title":"gRPC Metadata","slug":"grpc-metadata","link":"#grpc-metadata","children":[]},{"level":2,"title":"接口请求定义","slug":"接口请求定义","link":"#接口请求定义","children":[]},{"level":2,"title":"应用示例","slug":"应用示例","link":"#应用示例","children":[{"level":3,"title":"Golang","slug":"golang","link":"#golang","children":[]}]},{"level":2,"title":"附录","slug":"附录","link":"#附录","children":[{"level":3,"title":"x-bili-aurora-eid 生成算法","slug":"x-bili-aurora-eid-生成算法","link":"#x-bili-aurora-eid-生成算法","children":[]},{"level":3,"title":"x-bili-trace-id 生成算法","slug":"x-bili-trace-id-生成算法","link":"#x-bili-trace-id-生成算法","children":[]}]}],"git":{},"filePathRelative":"grpc_api/readme.md"}');export{l as data}; diff --git a/assets/index.html-b057461c.js b/assets/index.html-b057461c.js new file mode 100644 index 0000000000..32255cb5a8 --- /dev/null +++ b/assets/index.html-b057461c.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-feb0d03c","path":"/docs/login/login_action/","title":"登录操作","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"扫码登录","slug":"扫码登录","link":"#扫码登录","children":[]},{"level":2,"title":"验证登录","slug":"验证登录","link":"#验证登录","children":[{"level":3,"title":"申请captcha验证码","slug":"申请captcha验证码","link":"#申请captcha验证码","children":[]},{"level":3,"title":"申请captcha验证码 (旧版)","slug":"申请captcha验证码-旧版","link":"#申请captcha验证码-旧版","children":[]},{"level":3,"title":"进行验证","slug":"进行验证","link":"#进行验证","children":[]},{"level":3,"title":"继续登录","slug":"继续登录","link":"#继续登录","children":[]}]}],"git":{},"filePathRelative":"docs/login/login_action/readme.md"}');export{l as data}; diff --git a/assets/index.html-ba30f90b.js b/assets/index.html-ba30f90b.js new file mode 100644 index 0000000000..e8a580f1fc --- /dev/null +++ b/assets/index.html-ba30f90b.js @@ -0,0 +1,47 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},p=a(`

    全站广播

    获取广播服务器地址

    https://api.bilibili.com/x/web-interface/broadcast/servers

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    platformstr平台选择必要为web时输出域名
    其他时输出ip

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    domainstr广播服务器url
    tcp_portnumtcp端口
    ws_portnumwebsocket端口
    wss_portnumwebsocket ssl端口
    heartbeatnum最大心跳包间隔时间
    nodesarray服务节点地址列表
    backoffobj???
    heartbeat_maxnum???

    data中的nodes数组:

    类型内容备注
    0str服务节点1
    nstr服务节点(n+1)
    ……str……

    data中的backoff对象:

    字段类型内容备注
    max_delaynum???
    base_delaynum???
    factornum???
    jitternum???

    示例:

    platform=web时,不显示节点ip

    curl -G 'https://api.bilibili.com/x/web-interface/broadcast/servers' \\
    +--data-urlencode 'platform=web'
    +
    查看响应示例:
    {
    +	"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

    curl -G 'https://api.bilibili.com/x/web-interface/broadcast/servers' \\
    +--data-urlencode 'platform=1'
    +
    查看响应示例:
    {
    +	"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.空闲时间接收普通包

    数据包结构

    头部通用于上行和下行数据包

    头部格式:

    偏移量长度(字节)类型含义
    0x004uint32封包总大小(头部大小+正文大小)
    0x042uint16头部大小(一般为0x0012,18字节)
    0x062uint16协议版本,可取常数1
    0x084uint32操作码(包类型)
    见下表
    0x0C4uint32sequence(请求次数),可取常数1
    对于普通包恒为0
    0x102uint16保留,一般为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|
    +
    `,40),o=[p];function d(r,c){return s(),n("div",null,o)}const i=t(e,[["render",d],["__file","index.html.vue"]]);export{i as default}; diff --git a/assets/index.html-bab316ab.js b/assets/index.html-bab316ab.js new file mode 100644 index 0000000000..988274f2b5 --- /dev/null +++ b/assets/index.html-bab316ab.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-672ca53c","path":"/docs/note/","title":"视频笔记","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"附表-笔记正文序列格式","slug":"附表-笔记正文序列格式","link":"#附表-笔记正文序列格式","children":[]}],"git":{},"filePathRelative":"docs/note/readme.md"}');export{e as data}; diff --git a/assets/index.html-c20a1382.js b/assets/index.html-c20a1382.js new file mode 100644 index 0000000000..9fe222f333 --- /dev/null +++ b/assets/index.html-c20a1382.js @@ -0,0 +1,57 @@ +import{_ as c,r as o,o as l,c as u,a as n,b as a,d as t,w as i,e as s}from"./app-3168cb19.js";const r={},d=s('

    gRPC 接口定义(protobuf 结构体)

    注:

    1. proto 结构体文件按照包名分类, 同级放在同一目录中

    2. gRPC 接口定义全部来自对官方粉版(即大陆版本) APP 的逆向工程, 一般不会有错误, 但是可能有更新, 有实际应用需求的建议自行反编译 APP, 定位到 com.bapis.* 自行补足.

    gRPC 主机

    B 站客户端的 gRPC 接口主机包括:

    • grpc.biliapi.net 原生 gRPC 接口
    • app.bilibili.com Failover gRPC 接口

    实际应用中, 后者速度相对更快. 但是需要设置如 gRPC 超时时间等参数时只能使用前者.

    gRPC 鉴权

    需要在 Metadata 中添加 authorization: identify_v1 {access_key}.

    gRPC Metadata

    ',10),k={href:"https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md",target:"_blank",rel:"noopener noreferrer"},m=n("code",null,"Metadata",-1),b=s("

    gRPC 的 Metadata 简单理解,就是 HTTP 的 Header 中的 key-value 对, 本质上是一个 Map. 在 gRPC Metadata 中,key 永远是 String,但是 value 可以是 String 也可以是二进制数据. 需要存储二进制数据时, key 应当加上一个 -bin 后缀, 同时二进制 value 应当编码为 Base64.

    一般而言, 设定 Binary 类型的 Metadata 时, 需要调用各个语言的 gRPC 库的相应方法, 库会帮我们编码二进制数据, 无需我们自行编码.

    需要的 Metadata 包括(但不限于):

    ",3),v=n("code",null,"user-agent",-1),_=n("code",null,"Dalvik/2.1.0 (Linux; U; Android 12; {device_model} Build/{device_build}) {app_ver} os/android model/{device_model} mobi_app/{mobi_app} build/{app_build} channel/master innerVer/{app_build_inner} osVer/12 network/2 grpc-java-cronet/1.36.1",-1),h=n("code",null,"grpc-java-cronet/1.36.1",-1),g=n("strong",null,"必需",-1),f=s("
  • device_model 设备 Model, 如 NOH-AN01.
  • device_build 设备 Build, 如 HUAWEINOH-AN01.
  • app_ver APP 版本号, 如 7.38.0.
  • ",3),y=n("code",null,"mobi_app",-1),w=n("li",null,[n("code",null,"app_build"),a(" APP 版本号, 如 "),n("code",null,"7380300"),a(".")],-1),x=n("li",null,[n("code",null,"app_build_inner"),a(" APP 版本号(内部), 如 "),n("code",null,"7380310"),a(". 实际应用中设置为 "),n("code",null,"app_build"),a(" 即可.")],-1),P=s("
  • x-bili-gaia-vtoken 暂时留空.
  • x-bili-aurora-eidUFUFQ1AA. 算法见附录. 未登录留空. 必需.
  • x-bili-mid 用户 UID, 未登录默认为 0. 必需.
  • x-bili-aurora-zone 留空. 必需.
  • x-bili-trace-id06e903399574695df75be114ff63ac64:f75be114ff63ac64:0:0. 算法见附录. 必需.
  • authorization 鉴权, 登录时设定为 identify_v1 {access_key}, 未登录时无需此项.
  • ",6),C=n("code",null,"buvid",-1),R=n("strong",null,"必需(?)",-1),A=s("
  • bili-http-engine 恒定为 cronet, 使用 grpc.biliapi.net 作为 gRPC 主机时无需此项.
  • te 恒定为 trailers, Java gRPC 库固定添加, 使用 app.bilibili.com 作为 gRPC 主机时无需此项.
  • ",2),V=s('
  • Binary 类
    • x-bili-fawkes-req-bin 设备 Fawkes 信息, 使用 FawkesReq 生成. 必需.
    • x-bili-metadata-bin 使用 Metadata 生成. 必需.
    • x-bili-device-bin 设备信息, 使用 Device 生成. 必需.
    • x-bili-network-bin 设备网络信息, 使用 Network 生成. 必需.
    • x-bili-restriction-bin 限制信息, 使用 Restriction 生成. 本项一般直接传空值即可. 必需.
    • x-bili-locale-bin 设备区域信息, 使用 Locale 生成. 必需.
    • x-bili-exps-bin 使用 Exps 生成. 本项一般直接传空值即可. 必需.
  • ',1),q=s('

    接口请求定义

    等待补充, 参见 proto 文件注释. 以下仅介绍常用接口:

    应用示例

    Golang

    ',5),M={href:"https://github.com/XiaoMiku01/bilibili-grpc-api-go",target:"_blank",rel:"noopener noreferrer"},N=s(`

    附录

    点此展开

    x-bili-aurora-eid 生成算法

    pub fn gen_aurora_eid(uid: u64) -> Option<String> {
    +    if uid == 0 {
    +        return None;
    +    }
    +    let mut result_byte = Vec::with_capacity(64);
    +    // 1. 将 UID 字符串转为字节数组.
    +    let mid_byte = uid.to_string().into_bytes();
    +    // 2. 将字节数组逐位(记为第 i 位)与 b"ad1va46a7lza" 中第 (i % 12) 位进行异或操作, 作为结果数组第 i 位.
    +    mid_byte.iter().enumerate().for_each(|(i, v)| {
    +        result_byte.push(v ^ (b"ad1va46a7lza"[i % 12]))
    +    });
    +    // 3. 对字节数组执行 Base64 编码, 注意 no padding, 即得到 x-bili-aurora-eid.
    +    Some(base64::Engine::encode(
    +        &base64::engine::general_purpose::STANDARD_NO_PAD,
    +        result_byte,
    +    ))
    +}
    +

    x-bili-trace-id 生成算法

    pub fn gen_trace_id() -> String {
    +    // 1. 生成 32 位随机字符串 random_id , Charset 为 0~9, a~z. 
    +    let random_id = gen_random_string!(32);
    +    let mut random_trace_id = String::with_capacity(40);
    +    // 2. 取 random_id 前 24 位, 作为 random_trace_id.
    +    random_trace_id.push_str(&random_id[0..24]);
    +    // 3. 初始化一个长度为 3 的数组 b_arr, 初始值都为 0.
    +    let mut b_arr: [i8; 3] = [0i8; 3];
    +    // 并获取当前时间戳
    +    let mut ts = chrono::Local::now().timestamp();
    +    // 使用循环从高位到低位遍历 b_arr 数组, 循环体内执行以下逻辑:
    +    //  - 首先将 ts 右移 8 位
    +    //  - 然后根据条件向 b_arr 的第 i 位赋值: 
    +    //    - 如果 (ts / 128) % 2的结果为0, 则 b_arr[i] = ts % 256
    +    //    - 否则 b_arr[i] = ts % 256 - 256
    +    for i in (0..3).rev() {
    +        ts >>= 8;
    +        b_arr[i] = {
    +            if ((ts / 128) % 2) == 0 {
    +                (ts % 256) as i8
    +            } else {
    +                (ts % 256 - 256) as i8
    +            }
    +        }
    +    }
    +    // 4. 将数组 b_arr 中的每个元素逐个转换为两位的十六进制字符串并追加到 random_trace_id 中.
    +    for i in 0..3 {
    +        random_trace_id.push_str(&format!("{:0>2x}", b_arr[i]))
    +    }
    +    // 5. 将 random_id 的第 31, 32 个字符追加到 random_trace_id 中, 此时 random_trace_id 生成完毕, 应当为 32 位长度.
    +    random_trace_id.push_str(&random_id[30..32]);
    +    // 6. 最后, 按 \`{random_trace_id}:{random_trace_id[16..32]}:0:0\` 的顺序拼接起来, 即为 x-bili-trace-id
    +    let mut random_trace_id_final = String::with_capacity(64);
    +    random_trace_id_final.push_str(&random_trace_id);
    +    random_trace_id_final.push_str(":");
    +    random_trace_id_final.push_str(&random_trace_id[16..32]);
    +    random_trace_id_final.push_str(":0:0");
    +    random_trace_id_final
    +}
    +
    `,2);function U(B,S){const e=o("ExternalLinkIcon"),p=o("RouterLink");return l(),u("div",null,[d,n("p",null,[a("参考 "),n("a",k,[a("gRPC Go 官方文档"),t(e)]),a(" 对 "),m,a(" 的说明.")]),b,n("ul",null,[n("li",null,[a("Ascii 类 "),n("ul",null,[n("li",null,[v,a(" 客户端 UA, 如 "),_,a("(其中 "),h,a(" 为原生 gRPC 接口才需要的). "),g,a(". "),n("ul",null,[f,n("li",null,[y,a(" APP 包类型, 参考 "),t(p,{to:"/docs/misc/sign/APPKey.html"},{default:i(()=>[a("APPKey.md")]),_:1}),a(".")]),w,x])]),P,n("li",null,[C,a(" 设备唯一标识, 算法见 "),t(p,{to:"/docs/misc/device_identity.html"},{default:i(()=>[a("device_identity.md")]),_:1}),a(". "),R,a(".")]),A])]),V]),q,n("p",null,[a("B 站 gRPC API Golang 封装:"),n("a",M,[a("XiaoMiku01/bilibili-grpc-api-go"),t(e)])]),N])}const G=c(r,[["render",U],["__file","index.html.vue"]]);export{G as default}; diff --git a/assets/index_file.html-b4d3d75b.js b/assets/index_file.html-b4d3d75b.js new file mode 100644 index 0000000000..2b49a393d2 --- /dev/null +++ b/assets/index_file.html-b4d3d75b.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-2212ab8c","path":"/docs/manga/index_file.html","title":"data.index","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"data.index文件解析","slug":"data-index文件解析","link":"#data-index文件解析","children":[{"level":3,"title":"获取data.index","slug":"获取data-index","link":"#获取data-index","children":[]},{"level":3,"title":"文件解密算法","slug":"文件解密算法","link":"#文件解密算法","children":[]},{"level":3,"title":"进行解密操作","slug":"进行解密操作","link":"#进行解密操作","children":[]}]},{"level":2,"title":"data.index内容","slug":"data-index内容","link":"#data-index内容","children":[]}],"git":{},"filePathRelative":"docs/manga/index_file.md"}');export{e as data}; diff --git a/assets/index_file.html-b9e570dc.js b/assets/index_file.html-b9e570dc.js new file mode 100644 index 0000000000..bfb7fb87ea --- /dev/null +++ b/assets/index_file.html-b9e570dc.js @@ -0,0 +1,151 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},e=t(`

    data.index

    data.index文件解析

    本解密及数据解析例程以《在魔王城说晚安 第 1 话 不眠之城的公主》为例

    本话链接:https://manga.bilibili.com/mc26731/329893 (mcid=26731, epid=329893

    使用 Python 语言为例

    获取data.index

    直接使用 GET 方法请求该话对应的 data.index 文件地址,就会得到一个二进制文件

    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  |<B~.'.<p...3..!;|
    +000001a0  6c b4 52 ed 16 27 c8 c9  3a a5 fb 21 b9 dc a9 8a  |l.R..'..:..!....|
    +000001b0  68 0a 38 f0 4c 33 55 96  a8 a5 dd b1 1a 75 b0 26  |h.8.L3U......u.&|
    +000001c0  83 ea a4 49 23 03 77 42  bd f3 f1 5d 82 a8 73 67  |...I#.wB...]..sg|
    +000001d0  2f ef 67 49 14 69 8c b9  d6 62 2c 8d 43 93 f2 b9  |/.gI.i...b,.C...|
    +000001e0  d2 bd 21 4f 2d 48 20 f6  02 d0 05 17 d3 8e 1b 9d  |..!O-H .........|
    +000001f0  58 6c 6a 67 a9 ef 64 ca  4d 9c 40 17 c3 6f 2a 70  |Xljg..d.M.@..o*p|
    +00000200  36 0b 14 4c 51 a9 4f ff  b9 75 42 b2 8f 2c fb c3  |6..LQ.O..uB..,..|
    +00000210  d1 13 2c 0b de 48 24 64  24 6f 88 b4 eb af cf ce  |..,..H$d$o......|
    +00000220  66 3a 12 58 dc 3f c5 03  94 a3 e1 ef 1d 59 ca d5  |f:.X.?.......Y..|
    +00000230  58 07 b8 e3 c9 71 b2 e0  c9 15 54 4c cd e1 62 19  |X....q....TL..b.|
    +00000240  66 4e 02 f0 a0 85 8c a4  b5 f6 47 e3 c9 dd c3 54  |fN........G....T|
    +00000250  4d fc c8 45 e7 8f 22 00  68 e0 46 f4 ec 19 b4 b0  |M..E..".h.F.....|
    +00000260  f8 01 53 21 68 ad 49 6b  37 f5 fa 5f 0e 18 07 f3  |..S!h.Ik7.._....|
    +00000270  14 bf 03 59 f4 d5 5e a7  9c fd e1 90 9b 18 a9 12  |...Y..^.........|
    +00000280  b1 a7 2c 52 1d d2 b8 81  c7 3d 22 6f 5b de f9 4e  |..,R.....="o[..N|
    +00000290  ba 38 c0 84 99 5d e3 7b  ba 04 e1 e1 9a 0d bc 31  |.8...].{.......1|
    +000002a0  ef 6e 79 5c 38 e7 1d 72  9a 51 ea 55 6e fb a1 b8  |.ny\\8..r.Q.Un...|
    +000002b0  75 29 b3 06 a9 52 10 53  17 24 e6 84 4b 00 f5 59  |u)...R.S.$..K..Y|
    +000002c0  81 28 ad cd cc dd a9 a6  56 a5 06 e7 65 39 6b 89  |.(......V...e9k.|
    +000002d0  5c 13 ba 51 c0 48 91 fc  74 19 b5 f9 bd d4 d5 44  |\\..Q.H..t......D|
    +000002e0  ea 6a e7 02 6c 96 9d ed  2d d7 37 49 7f c3 e2 cd  |.j..l...-.7I....|
    +000002f0  ff 0e f7 90 ea 88 7e bc  17 4a df e5 fb 98 93 3f  |......~..J.....?|
    +00000300  01 a5 08 fa ff 3b 23 07  08 ac 60 82 8a be 6a 00  |.....;#...\`...j.|
    +00000310  00 dd 02 05 00 3b 23 01  02 b1 08 11 00 63 68 08  |.....;#......ch.|
    +00000320  00 a5 08 05 00 62 00 87  8a 70 0a 05 00 13 62 00  |.....b...p....b.|
    +00000330  00 ac 08 05 00 6b 68 00  00 a5 08 05 00 6b 68 00  |.....kh......kh.|
    +00000340  00 a5 08 6c 6e 0f 0d 78  2e c1 69 71 50 20 6d 06  |...ln..x..iqP m.|
    +00000350  00 a5 08 05 01 6b 69 00  37 a5 08 05 0c 68 68 00  |.....ki.7....hh.|
    +00000360  00 a5                                             |..|
    +

    文件解密算法

    首先以mcid(对应漫画id)以及epid(对应单话)生成一个 8 Byte 的数组作为密钥

    具体内容为前 4 Byte 为 epid 后 4 Byte 为 mcid,字节排序均为小端序 MSB First

    接下来从返回数据的 09H 处开始,逐字节与密钥取单个字节进行 **XOR(异或)**运算,密钥数组每 8 Byte 循环一次

    解密成功的数据是一个 zip 格式的压缩文件,提取index.dat中的数据并以 JSON 数据解析就完成了

    进行解密操作

    mcid=26731 epid=329893,计算得到的数组便是密钥

    mcid = 26731
    +epid = 329893
    +key = list(epid.to_bytes(4, 'little') + mcid.to_bytes(4, 'little'))
    +print(key)
    +
    [165, 8, 5, 0, 107, 104, 0, 0]
    +

    拉取索引数据并解密,需要跳过前 9 Byte,这时候已经能看到数据具有 zip 格式压缩文件的特征,前两 Byte 为 “PK”(50H 4BH)

    import requests
    +
    +data = requests.get('https://manga.hdslb.com/bfs/manga/26731/329893/data.index?token=0ba7042d3a5d138c59151316a1914058&ts=634e53fb').content
    +
    +temp = bytearray(data[9:])
    +for i in range(len(temp)):
    +   temp[i] ^= key[i % 8]
    +print(temp)
    +
    bytearray(b'PK\\x03\\x04\\x14\\x00\\x08\\x00\\x08\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\t\\x00\\x00\\x00index.dat\\xec\\x96\\xcb\\x8a\\\\G\\x0c\\x86\\xdf\\xe5\\xac\\x87X\\xf7*\\xf5\\xab\\x84YH\\xaa\\x92\\x99\\xe0\\x84!\\x93E\\x123\\xef\\x1e\\xba\\x8d!x\\xce\\xe2l\\x03\\xd94\\x85\\xf8~Zu\\xbe\\xba}=\\xea\\xcb\\xcb\\xeb\\xdbq\\xfb\\xf9\\xeb\\xf1\\xfbqC\\x03x:\\xf2\\xb8\\x11\\xdf\\x07\\x7f\\x1c7x:\\xbe<~__\\xea\\xb8\\xc1\\xfb\\xd3\\x0f\\x9c\\xd8<\\xe1\\xf0"G\\x179\\xbe\\xc8\\xc9EN/rv\\x91\\x1b\\x17\\xb9y\\x91\\xf3\\x8b\\x1c^\\x16r\\xd5\\x08^U\\x82W\\x9d\\xe0U)x\\xd5\\n^\\xd5\\x82W\\xbd\\xe0U1x\\xd5\\x0c}73\\xc5\\x1e\\x1c\\xd2\\xe9\\x8e"|\\x7f~\\x0c\\xef{\\xf0\\xf8\\x94\\xfd\\xf6\\xe9\\xd7\\xf8\\xeds|\\xea2\\xd5\\x0e"X\\x1d9$\\xd31=m3\\xcc\\xed\\xb4\\xb1\\x87tI\\xfe\\xf4\\xcb\\xeb\\xe7\\xe3\\xe9\\xdf\\xc9J\\xae9\\xa95\\x06\\x95(OU\\xc1m\\xba2,j\\xd8\\xf4"\\xd9Y\\x1f\\x93\\xde\\xc3mr0\\x046\\x9a\\x86E\\xd6"U\\x00\\xb3\\\\\\xd0\\x9e\\xb5\\x07\\xfa\\xc7\\xa4:\\r\\xa00A\\x8c9\\xd8\\x17\\x08.\\x85\\xea\\xf6(\\xa5\\xaa\\xe2\\r\\x91x\\x92\\xa4N\\x06\\x8d1z\\xc2\\x12\\x18S\\xcc\\xcbF\\x85\\x94\\xac\\t\\x8c\\x83(\\xea\\xa4\\xdb\\xc5\\x99\\x8c\\x15\\xe8\\xc2E\\xaasW\\xf8j\\x0f\\x91\\x1c\\x9dJ\\xcbi4\\xee\\x8fI\\x8a\\x02\\xcb\\xb92b\\x83\\xb8\\xef\\xd5\\xa3\\xd3j\\xb9\\x17\\xf6\\x96\\x14\\x92p\\xeb\\x93/4\\xdb\\xb8\\x91}W3lN\\xe0a\\xac]\\xd8\\xea\\x9d\\x02<\\xe7v\\x19\\'\\xf3Tp\\xdf\\xa1\\x1b6\\xfa\\x94I;l\\x11Z\\xe8\\x16L\\xa0\\xc9:\\x00\\xf3$\\xb9\\xb7\\xc1\\x8ah\\xaf0\\xf5LX=\\x96\\xa8\\x00\\xd5\\xb4\\x1a\\x1e\\xd8&\\x83O\\xacL#h\\x1fB\\xbdV\\xf9X\\x82\\xc3\\x1bg/JoL\\x14\\x02\\xe4\\xb9\\xd6\\xc7$\\x88C\\xf8\\x9a\\xb9\\xd2\\x18)J-#H\\xf6\\x02u\\r\\x12\\xd3\\xe5s\\x9dX\\xc9bb\\xa9\\x84\\x0c\\xcaM9H\\x12\\xc3\\x04Bp6\\xae\\x1cIQ\\xc2\\'\\xff\\xb9\\xd0J\\xb7\\x8fG\\x93\\xc3\\xd1\\xb6$\\x0e\\xde#Ld$\\xca\\x80\\xb1\\xeb\\xc4\\xa7\\xcef\\x9f\\x1a]\\xdcT\\xad\\x03\\x94\\x06\\xe9\\xea\\x1d2\\xa2\\xd5X\\xa2\\xb0\\xe6\\xc9\\x1a\\xda\\xe0\\xc9\\xb0\\\\I\\xcd\\x8a\\n\\x19f\\xeb\\n\\xf5\\xa0\\xee\\xe4\\xa4\\xb5SO\\xe6\\xc9\\xb6\\xabTMY\\xc0@\\xe7\\xe4J\\x00hEN\\xf1\\xecr\\xdc\\xb0\\xf8\\xa4[$h\\xc6!k7P\\xf2Z\\x0eso\\xf3\\x14\\x1a\\x0b\\\\\\xf4\\xbe6\\xa7\\x9cX\\xe9\\x95\\x9bs\\xc1\\x12\\xb1\\x02$W\\x1d\\xb9\\xd0\\x81\\xc7\\x98*j[\\xb5\\x91N\\xba\\x9d\\xc8\\x81\\x996\\x8b{\\xba\\xa1\\xe9\\xe4\\x9af\\xd41\\xef\\xcbqY8\\x8cur\\x9a\\xf4\\xe2Pn\\x90\\xc9\\xb8u\\x8c\\xbb\\x03\\xa99xS\\x17\\x81\\xee\\x81Kk\\x9dY\\x81\\x8d\\xa5\\xc8\\xcc\\xb6\\xc1\\xa6V\\x00\\x0e\\xe2eR\\x03\\x89\\\\\\xb6\\xb2T\\xc0#\\xf9\\xfct\\xbc\\xbd\\xfc\\xbd\\xbf\\xbdD\\xea\\xcf\\xef\\x07l\\xfd\\xf5\\xed-r?L\\x7f\\xa8\\x8a\\xcd\\xff\\xab\\xff\\x95\\xea\\xe3\\x16\\xbc\\x17\\xef\\xd7\\xe0\\xfb\\xf3\\xfb?\\x01\\x00\\x00\\xff\\xffPK\\x07\\x08\\th\\x87\\x8a\\xd5\\x02\\x00\\x00x\\n\\x00\\x00PK\\x01\\x02\\x14\\x00\\x14\\x00\\x08\\x00\\x08\\x00\\x00\\x00\\x00\\x00\\th\\x87\\x8a\\xd5\\x02\\x00\\x00x\\n\\x00\\x00\\t\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00index.datPK\\x05\\x06\\x00\\x00\\x00\\x00\\x01\\x00\\x01\\x007\\x00\\x00\\x00\\x0c\\x03\\x00\\x00\\x00\\x00')
    +

    进行解压缩数据,提取index.dat中的数据

    import zipfile
    +from io import BytesIO
    +
    +with zipfile.ZipFile(BytesIO(temp)) as zf:
    +    index_data = zf.read('index.dat')
    +print(index_data)
    +

    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 数据定义

    根对象:

    字段类型内容备注
    clipsarray尺寸信息
    picsarray图片路径
    sizesarray尺寸信息

    根对象中的clips数组:

    类型内容备注
    0obj第 1 页信息
    nobj第 (n+1) 页信息
    ……obj…………

    clips数组中的对象:

    字段类型内容备注
    rnum图片宽度
    bnum图片高度
    tnum(?)
    lnum(?)
    picnum图片页码序号从 0 开始递增

    根对象中的pics数组:

    类型内容备注
    0str第 1 图片路径图片不能直接访问,需要二次鉴权
    nstr第 (n+1) 图片路径
    ……str…………

    根对象中的sizes数组:

    类型内容备注
    0obj第 1 页信息
    nobj第 (n+1) 页信息
    ……obj…………

    clips数组中的对象:

    字段类型内容备注
    cxnum图片宽度
    cynum图片高度
    `,41),o=[e];function c(u,l){return s(),a("div",null,o)}const i=n(p,[["render",c],["__file","index_file.html.vue"]]);export{i as default}; diff --git a/assets/info.html-0a88b4dc.js b/assets/info.html-0a88b4dc.js new file mode 100644 index 0000000000..41ae27617c --- /dev/null +++ b/assets/info.html-0a88b4dc.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-e6a8723e","path":"/docs/newbie_exam/info.html","title":"查询信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询答题状态","slug":"查询答题状态","link":"#查询答题状态","children":[]},{"level":2,"title":"查询自选题分类","slug":"查询自选题分类","link":"#查询自选题分类","children":[]},{"level":2,"title":"查询答题结果","slug":"查询答题结果","link":"#查询答题结果","children":[]}],"git":{},"filePathRelative":"docs/newbie_exam/info.md"}');export{e as data}; diff --git a/assets/info.html-0ee7d366.js b/assets/info.html-0ee7d366.js new file mode 100644 index 0000000000..a04cb9cf10 --- /dev/null +++ b/assets/info.html-0ee7d366.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-180bc312","path":"/docs/article/info.html","title":"专栏基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取专栏文章基本信息","slug":"获取专栏文章基本信息","link":"#获取专栏文章基本信息","children":[]}],"git":{},"filePathRelative":"docs/article/info.md"}');export{t as data}; diff --git a/assets/info.html-327a946d.js b/assets/info.html-327a946d.js new file mode 100644 index 0000000000..d6d8856164 --- /dev/null +++ b/assets/info.html-327a946d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-ed6e4b3c","path":"/docs/user/info.html","title":"用户基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"用户空间详细信息","slug":"用户空间详细信息","link":"#用户空间详细信息","children":[]},{"level":2,"title":"用户名片信息","slug":"用户名片信息","link":"#用户名片信息","children":[]},{"level":2,"title":"登录用户空间详细信息","slug":"登录用户空间详细信息","link":"#登录用户空间详细信息","children":[]},{"level":2,"title":"多用户详细信息","slug":"多用户详细信息","link":"#多用户详细信息","children":[]},{"level":2,"title":"多用户详细信息2","slug":"多用户详细信息2","link":"#多用户详细信息2","children":[]}],"git":{},"filePathRelative":"docs/user/info.md"}');export{l as data}; diff --git a/assets/info.html-3698858a.js b/assets/info.html-3698858a.js new file mode 100644 index 0000000000..54d4fc0a6e --- /dev/null +++ b/assets/info.html-3698858a.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-0e0e11ae","path":"/docs/cheese/info.html","title":"课程基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取课程基本信息","slug":"获取课程基本信息","link":"#获取课程基本信息","children":[]},{"level":2,"title":"获取课程分集列表","slug":"获取课程分集列表","link":"#获取课程分集列表","children":[]}],"git":{},"filePathRelative":"docs/cheese/info.md"}');export{e as data}; diff --git a/assets/info.html-3e528fa8.js b/assets/info.html-3e528fa8.js new file mode 100644 index 0000000000..b234252168 --- /dev/null +++ b/assets/info.html-3e528fa8.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-f4104c6e","path":"/docs/note/info.html","title":"笔记详细信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询该稿件是否禁止笔记","slug":"查询该稿件是否禁止笔记","link":"#查询该稿件是否禁止笔记","children":[]},{"level":2,"title":"查询私有笔记内容","slug":"查询私有笔记内容","link":"#查询私有笔记内容","children":[]},{"level":2,"title":"查询公开笔记内容","slug":"查询公开笔记内容","link":"#查询公开笔记内容","children":[]}],"git":{},"filePathRelative":"docs/note/info.md"}');export{e as data}; diff --git a/assets/info.html-418558e4.js b/assets/info.html-418558e4.js new file mode 100644 index 0000000000..35afba0263 --- /dev/null +++ b/assets/info.html-418558e4.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-16ff2ad2","path":"/docs/audio/info.html","title":"歌曲基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询歌曲基本信息","slug":"查询歌曲基本信息","link":"#查询歌曲基本信息","children":[]},{"level":2,"title":"查询歌曲TAG","slug":"查询歌曲tag","link":"#查询歌曲tag","children":[]},{"level":2,"title":"查询歌曲创作成员列表","slug":"查询歌曲创作成员列表","link":"#查询歌曲创作成员列表","children":[]},{"level":2,"title":"获取歌曲歌词","slug":"获取歌曲歌词","link":"#获取歌曲歌词","children":[]}],"git":{},"filePathRelative":"docs/audio/info.md"}');export{l as data}; diff --git a/assets/info.html-42872bfc.js b/assets/info.html-42872bfc.js new file mode 100644 index 0000000000..b9410c4a3c --- /dev/null +++ b/assets/info.html-42872bfc.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-38c89e50","path":"/docs/wallet/info.html","title":"基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取用户钱包","slug":"获取用户钱包","link":"#获取用户钱包","children":[]}],"git":{},"filePathRelative":"docs/wallet/info.md"}');export{e as data}; diff --git a/assets/info.html-49043672.js b/assets/info.html-49043672.js new file mode 100644 index 0000000000..ea000b1c95 --- /dev/null +++ b/assets/info.html-49043672.js @@ -0,0 +1,73 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const o={},e=a(`

    专栏基本信息

    获取专栏文章基本信息

    https://api.bilibili.com/x/article/viewinfo

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    idnum专栏cvid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    likenum是否点赞0:未点赞
    1:已点赞
    需要登录(Cookie)
    未登录为0
    attentionbool是否关注文章作者false:未关注
    true:已关注
    需要登录(Cookie)
    未登录为false
    favoritebool是否收藏false:未收藏
    true:已收藏
    需要登录(Cookie)
    未登录为false
    coinnum为文章投币数
    statsobj状态数信息
    titlestr文章标题
    banner_urlstr文章头图url
    midnum文章作者mid
    author_namestr文章作者昵称
    is_authorbooltrue作用尚不明确
    image_urlsarray动态封面
    origin_image_urlsarray封面图片
    shareablebooltrue作用尚不明确
    show_later_watchbooltrue作用尚不明确
    show_small_windowbooltrue作用尚不明确
    in_listbool是否收于文集false:否
    true:是
    prenum上一篇文章cvid无为0
    nextnum下一篇文章cvid无为0
    share_channelsarray分享方式列表
    typenum文章类别0:文章
    2:笔记

    stats对象:

    字段类型内容备注
    viewnum阅读数
    favoritenum收藏数
    likenum点赞数
    dislikenum点踩数
    replynum评论数
    sharenum分享数
    coinnum投币数
    dynamicnum动态转发数

    data中的image_urls数组:

    类型内容备注
    0str动态封面图片url

    data中的origin_image_urls数组:

    类型内容备注
    0str文章封面图片url

    data中的share_channels数组:

    类型内容备注
    0obj分享项:qq
    1obj分享项:qq空间
    2obj分享项:微信
    3obj分享项:朋友圈
    4obj分享项:微博

    data中的share_channels数组中的对象:

    字段类型内容备注
    namestr分享名称
    picturestr分享图片url
    share_channelstr分享代号

    示例:

    查询文章cv2的基本信息

    curl -G 'https://api.bilibili.com/x/article/viewinfo' \\
    +--data-urlencode 'id=2' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,26),p=[e];function d(r,l){return s(),n("div",null,p)}const u=t(o,[["render",d],["__file","info.html.vue"]]);export{u as default}; diff --git a/assets/info.html-4f3267d8.js b/assets/info.html-4f3267d8.js new file mode 100644 index 0000000000..3e7f82e8c1 --- /dev/null +++ b/assets/info.html-4f3267d8.js @@ -0,0 +1,294 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const p={},o=a(`

    课程基本信息

    课程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_idnum课程ssid必要(可选)season_id与ep_id任选其一
    与番剧ssid不互通
    ep_idnum课程epid必要(可选)season_id与ep_id任选其一
    与番剧epid不互通

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    briefobj课程概述信息
    couponobj优惠信息若无优惠则无此项
    coverstr课程封面url
    episode_pageobj课程分集信息
    episode_sortnum1作用尚不明确
    episodesarray课程分集列表
    faqobj常见问题信息1合并格式
    faq1obj常见问题信息2分离格式
    paymentobj付费信息
    purchase_noteobj购买须知信息
    purchase_protocolobj付费内容协议信息
    release_bottom_infostr底部更新状态文字
    release_infostr更新状态文字+更新连载状态文字
    release_info2str更新连载状态文字
    release_statusstr更新状态文字
    season_idnum课程ssid与番剧ssid不互通
    share_urlstr页面url
    short_linkstrbilibili uri链接
    statobj播放数信息
    statusnum10作用尚不明确
    subtitlestr课程简介信息
    titlestr课程标题
    up_infoobjUP主信息
    user_statusobj用户状态信息需要登录(SESSDATA)且referer为https://www.bilibili.com

    data中的brief对象:

    字段类型内容备注
    contentstr
    imgarray简介图片
    titlestr课程概述
    typenum2

    brief中的img数组:

    类型内容备注
    0obj简介图片1
    nobj简介图片(n+1)
    ……obj…………

    img数组中的对象:

    字段类型内容备注
    aspect_rationum???作用尚不明确
    urlstr简介图片url

    data中的coupon对象:

    字段类型内容备注
    amountnum折扣乘数
    expire_timestr结束时间YYYY-MM-DD HH:MM:SS
    start_timestr起始时间YYYY-MM-DD HH:MM:SS
    statusnum???作用尚不明确
    titlestr优惠标题
    tokenstr领取token

    data中的episode_page对象:

    字段类型内容备注
    nextboolfalse
    numnum1
    sizenum总计集数
    totalnum总计集数

    data中的episodes数组:

    类型内容备注
    0obj课程分集1
    nobj课程分集(n+1)
    ……obj…………

    episodes数组中的对象:

    字段类型内容备注
    aidnum课程分集avid与普通稿件avid部分不互通
    cidnum课程分集cid与普通视频cid部分不互通
    durationnum课程分集时间长度单位为秒
    fromstrpugv
    idnum课程分集epid与番剧epid不互通
    indexnum课程分集数
    pagenum1
    playnum课程分集播放量
    release_datenum课程分集发布时间时间戳
    statusnum分集权限属性1:可观看
    2:不可观看
    titlestr课程分集标题
    watchedbool是否观看该集需要登录(SESSDATA)且referer为https://www.bilibili.com
    false:未观看
    true:已观看
    watchedHistorynum该集观看历史需要登录(SESSDATA)且referer为https://www.bilibili.com

    data中的faq对象:

    字段类型内容备注
    contentstr常见问题信息
    linkstr常见问题页面url
    titlestr常见问题

    data中的faq1对象:

    字段类型内容备注
    itemsarray常见问题列表
    titlestr常见问题

    faq1中的items数组:

    类型内容备注
    0obj常见问题1
    nobj常见问题(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    answerstr回答信息
    questionstr问题信息

    data中的payment对象:

    字段类型内容备注
    descstr付费价格说明
    discount_descstr折扣说明信息若无优惠则无此项
    discount_prefixstr折扣类型前缀若无优惠则无此项
    pay_shadestr观看所有视频付费说明
    pricenum课程价格单位为B币(折扣后价格)
    price_formatstr课程价格单位为B币折扣后价格)

    data中的purchase_note对象:

    字段类型内容备注
    contentstr购买须知信息文字内容
    linkstr购买须知页面url
    titlestr购买须知

    data中的purchase_protocol对象:

    字段类型内容备注
    linkstr付费内容协议页面url
    titlestr付费内容协议

    data中的stat对象:

    字段类型内容备注
    playnum播放量
    play_descstr播放量文字信息

    data中的up_info对象:

    字段类型内容备注
    avatarstrUP主头像url
    briefstrUP主备注非个人签名
    followernumUP主粉丝数
    is_follownum是否关注UP主需要登录(SESSDATA)且referer为https://www.bilibili.com
    0:未关注
    1:已关注
    linkstrUP主空间url
    midnumUP主uid
    pendantobj???作用尚不明确
    unamestrUP主昵称

    up_info中的pendant对象:

    字段类型内容备注
    imagestr作用尚不明确
    namestr作用尚不明确
    followernum0作用尚不明确

    data中的user_status对象:

    字段类型内容备注
    favorednum是否收藏0:未收藏
    1:已收藏
    favored_countnum1作用尚不明确
    payednum是否购买0:未购买
    1:已购买
    progressobj课程进度未登录无此项

    user_status中的progress对象:

    字段类型内容备注
    last_ep_idnum最后观看的epid
    last_ep_indexstr最后观看的标题
    last_timenum最后观看的时间进度单位为秒

    示例:

    查询课程ss61或分集ep790的信息

    ssid方式:

    curl -G 'https://api.bilibili.com/pugv/view/web/season' \\
    +--data-urlencode 'season_id=61' \\
    +-b 'SESSDATA=xxx' \\
    +-e 'https://www.bilibili.com'
    +

    epid方式:

    curl -G 'https://api.bilibili.com/pugv/view/web/season' \\
    +--data-urlencode 'ep_id=790' \\
    +-b 'SESSDATA=xxx' \\
    +-e 'https://www.bilibili.com'
    +
    查看响应示例:
    {
    +    "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. 本内容为付费内容,购买成功后方可观看。<br/>2. 本内容为虚拟服务,已购买内容不支持退款,敬请谅解。<br/>3. 实际购买价格以页面展示的价格及订单结算页显示价格为准。<br/>4. 如您在购买付费内容时有任何疑问,可随时咨询在线客服。<br/>完整的购买协议,请点击阅读<a href=\\"https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html\\" color=\\"#0ba395\\" target=\\"_blank\\">《bilibili付费内容购买协议》</a>",
    +            "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_idnum课程ssid必要与番剧ssid不互通
    psnum每页项数非必要默认为50
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    itemsarray课程分集列表
    pageobj列表分页信息

    data中的items数组:

    类型内容备注
    0obj课程分集1
    nobj课程分集(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    aidnum课程分集avid与普通稿件avid部分不互通
    cidnum课程分集cid与普通视频cid部分不互通
    durationnum课程分集时间长度单位为秒
    fromstrpugv
    idnum课程分集epid与番剧epid不互通
    indexnum课程分集数
    pagenum1
    playnum课程分集播放量
    release_datenum课程分集发布时间时间戳
    statusnum分集权限属性1:可观看
    2:不可观看
    titlestr课程分集标题
    watchedbool是否观看该集需要登录(SESSDATA)且referer为https://www.bilibili.com
    false:未观看
    true:已观看
    watchedHistorynum该集观看历史需要登录(SESSDATA)且referer为https://www.bilibili.com

    data中的page对象:

    字段类型内容备注
    nextbool是否存在下一页false:不存在下一页
    true:存在下一页
    numnum当前页码
    sizenum每页项数
    totalnum总价项数

    示例:

    按照每页5项查询课程ss61的分集列表第1页

    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'
    +
    查看响应示例:
    {
    +    "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"
    +}
    +
    `,83),e=[o];function d(r,l){return s(),n("div",null,e)}const u=t(p,[["render",d],["__file","info.html.vue"]]);export{u as default}; diff --git a/assets/info.html-54ba32d2.js b/assets/info.html-54ba32d2.js new file mode 100644 index 0000000000..4a560a558e --- /dev/null +++ b/assets/info.html-54ba32d2.js @@ -0,0 +1,234 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p="/bilibili-API-collect/assets/collect-398d30e8.svg",o={},e=a('

    收藏夹基本信息

    获取收藏夹元数据

    https://api.bilibili.com/x/v3/fav/folder/info

    请求方式:GET

    认证方式:Cookie(SESSDATA) 或 APP

    注:查询权限收藏夹时需要相应用户登录

    url参数:

    参数名类型内容必要性备注
    media_idnum目标收藏夹id(完整id)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    11010: 内容不存在
    messagestr错误信息默认为0
    data有效时:obj
    无效或:null
    信息本体

    data对象:

    字段类型内容备注
    idnum收藏夹mlid(完整id)收藏夹原始id+创建者mid尾号2位
    fidnum收藏夹原始id
    midnum创建者mid
    attrnum属性位(?)
    titlestr收藏夹标题
    coverstr收藏夹封面图片url
    upperobj创建者信息
    cover_typenum封面图类别(?)
    cnt_infoobj收藏夹状态数
    typenum类型(?)一般是11
    introstr备注
    ctimenum创建时间时间戳
    mtimenum收藏时间时间戳
    statenum状态(?)一般为0
    fav_statenum收藏夹收藏状态已收藏收藏夹:1
    未收藏收藏夹:0
    需要登录
    like_statenum点赞状态已点赞:1
    未点赞:0
    需要登录
    media_countnum收藏夹内容数量

    data中的upper对象:

    字段类型内容备注
    midnum创建者mid
    namestr创建者昵称
    facestr创建者头像url
    followedbool是否已关注创建者
    vip_typenum会员类别0:无
    1:月大会员
    2:年度及以上大会员
    vip_statuenum会员开通状态0:无
    1:有

    data中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    thumb_upnum点赞数
    sharenum分享数

    示例:

    查询收藏夹id=1052622027的元数据

    curl -G 'https://api.bilibili.com/x/v3/fav/folder/info' \\
    +--data-urlencode 'media_id=1052622027' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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 (SESSDATA) 或 APP

    若欲查看相应用户的私密收藏夹需要登录

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要
    typenum目标内容属性非必要默认为全部
    0:全部
    2:视频稿件
    ridnum目标内容id非必要视频稿件:视频稿件avid

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:obj
    信息本体

    data对象:

    字段类型内容备注
    countnum创建的收藏夹数
    list无收藏夹时:null
    有收藏夹时:array
    收藏夹列表
    seasonnull(?)

    data中的list数组:

    类型内容备注
    0obj收藏夹1
    nobj收藏夹(n+1)项数取决于count的值
    ……obj……

    data中的list数组中的对象:

    字段类型内容备注
    idnum收藏夹mlid(完整id)收藏夹原始id+创建者mid尾号2位
    fidnum收藏夹原始id
    midnum创建者mid
    attrnum属性位
    titlestr收藏夹标题
    fav_statenum目标id是否存在于该收藏夹存在于该收藏夹:1
    不存在于该收藏夹:0
    media_countnum收藏夹内容数量

    attr属性位二进制值表:

    内容备注
    0是否为默认收藏夹0:默认收藏夹
    1:其他收藏夹
    1私有收藏夹0:公开
    1:私有
    其他有待补充...

    示例:

    查询用户mid=7792521的收藏夹列表

    curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \\
    +--data-urlencode 'up_mid=7792521' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    psnum每页项数必要定义域 1 - 大于70
    pnnum页码必要
    up_midnum目标用户mid必要
    platformstr平台类型非必要填写web 返回值才会包含用户收藏的视频合集

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    40022:签名过长
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:obj
    信息本体

    data对象:

    字段类型内容备注
    countnum创建的收藏夹数
    list无收藏夹时:null
    有收藏夹时:array
    收藏夹列表

    data中的list数组:

    类型内容备注
    0obj收藏夹1
    nobj收藏夹(n+1)项数取决于count的值
    ……obj……

    data中的list数组中的对象:

    字段类型内容备注
    idnum收藏夹ml
    fidnum原始收藏夹mlid去除两位mid尾号
    midnum创建用户mid
    attrnum收藏夹属性转换成8-bit二进制处理
    详细说明见下表
    titlestr收藏夹标题
    coverstr收藏夹封面图片url
    upperobj收藏夹创建用户信息
    cover_typenum2作用尚不明确
    introstr作用尚不明确
    ctimenum创建时间时间戳
    mtimenum审核时间时间戳
    statenum0, 10: 正常;1:收藏夹已失效
    fav_statenum0作用尚不明确
    media_countnum收藏夹总计视频数

    attr属性二进制值表:

    其他有待补充...1:默认收藏夹0:公开性
    0:默认收藏夹
    1:其他收藏夹
    0:公开
    1:私有

    data中的list数组中的对象中的upper对象:

    字段类型内容备注
    midnum创建人mid
    namestr创建人昵称
    facestr作用尚不明确

    示例:

    查询用户mid=293793435的收藏夹收藏列表

    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'
    +
    查看响应示例:
    {
    +  "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
    +    }]
    +  }
    +}
    +

    批量获取指定收藏id的内容

    https://api.bilibili.com/x/v3/fav/resource/infos

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    resourcesstrs目标内容id列表必要格式:{内容id}:{内容类型}
    每个成员间用,分隔
    类型:
    2:视频稿件
    12:音频
    内容id:
    视频稿件:视频稿件avid
    音频:音频auid
    platformstr平台标识非必要可为web(影响内容列表类型)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    data有效时:array
    无效或:null
    内容信息列表

    data数组:

    类型内容备注
    0obj内容信息1
    nobj内容信息(n+1)
    ...obj...

    data数组中的对象:

    字段类型内容备注
    idnum内容id视频稿件:视频稿件avid
    音频:音频auid
    typenum内容类型2:视频稿件
    12:音频
    titlestr标题
    coverstr封面url
    introstr简介
    pagenum视频分P数
    durationnum音频/视频时长
    upperobjUP主信息
    attrnum属性0:正常
    1:失效
    cnt_infoobj状态数
    linkstr跳转uri
    ctimenum投稿时间时间戳
    pubtimenum发布时间时间戳
    fav_timenum收藏时间时间戳
    bv_idstr视频稿件bvid
    bvidstr视频稿件bvid
    seasonnull(?)

    data数组中的对象中的upper对象:

    字段类型内容备注
    midnumUP主mid
    namestrUP主昵称
    facestrUP主头像url

    data数组中的对象中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    danmakunum弹幕数

    示例:

    批量查询内容

    1-视频稿件-av583785685

    2-音频-au15664

    curl -G 'https://api.bilibili.com/x/v3/fav/resource/infos' \\
    +--data-urlencode 'resources=583785685:2,15664:12'
    +
    查看响应示例:
    {
    +  "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
    +    }
    +  ]
    +}
    +
    `,88),d=[e];function r(l,c){return n(),s("div",null,d)}const i=t(o,[["render",r],["__file","info.html.vue"]]);export{i as default}; diff --git a/assets/info.html-556f8b0b.js b/assets/info.html-556f8b0b.js new file mode 100644 index 0000000000..30e2f6b73a --- /dev/null +++ b/assets/info.html-556f8b0b.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-253cacdc","path":"/docs/fav/info.html","title":"收藏夹基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取收藏夹元数据","slug":"获取收藏夹元数据","link":"#获取收藏夹元数据","children":[]},{"level":2,"title":"获取指定用户创建的所有收藏夹信息","slug":"获取指定用户创建的所有收藏夹信息","link":"#获取指定用户创建的所有收藏夹信息","children":[]},{"level":2,"title":"查询用户收藏的视频收藏夹","slug":"查询用户收藏的视频收藏夹","link":"#查询用户收藏的视频收藏夹","children":[]},{"level":2,"title":"批量获取指定收藏id的内容","slug":"批量获取指定收藏id的内容","link":"#批量获取指定收藏id的内容","children":[]}],"git":{},"filePathRelative":"docs/fav/info.md"}');export{l as data}; diff --git a/assets/info.html-6273db3e.js b/assets/info.html-6273db3e.js new file mode 100644 index 0000000000..db0f27c72e --- /dev/null +++ b/assets/info.html-6273db3e.js @@ -0,0 +1,543 @@ +import{_ as r,r as d,o as l,c,a as t,b as n,d as s,w as p,e}from"./app-3168cb19.js";const u="/bilibili-API-collect/assets/akari-2ec5bc83.jpg",i={},k=e('

    用户基本信息

    用户空间详细信息

    https://api.bilibili.com/x/space/wbi/acc/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    ',6),b=t("code",null,"buvid3",-1),q={href:"https://api.bilibili.com/x/space/acc/info",target:"_blank",rel:"noopener noreferrer"},m=t("p",null,[t("strong",null,"url参数:")],-1),v=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),h=t("tr",null,[t("td",null,"mid"),t("td",null,"num"),t("td",null,"目标用户mid"),t("td",null,"必要"),t("td")],-1),y=t("td",null,"w_rid",-1),_=t("td",null,"str",-1),g=t("td",null,"Wbi 签名",-1),f=t("td",null,"必要",-1),x=t("td",null,"wts",-1),w=t("td",null,"num",-1),j=t("td",null,"当前时间戳",-1),E=t("td",null,"必要",-1),F=e("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    -404:用户不存在(如注销账号)
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnummid
    namestr昵称
    sexstr性别男/女/保密
    facestr头像链接
    face_nftnum是否为 NFT 头像0:不是 NFT 头像
    1:是 NFT 头像
    face_nft_typenumNFT 头像类型?
    signstr签名
    ranknum用户权限等级目前应该无任何作用
    5000:0级未答题
    10000:普通会员
    20000:字幕君
    25000:VIP
    30000:真·职人
    32000:管理员
    levelnum当前等级0-6 级
    jointimenum注册时间此接口返回恒为0
    moralnum节操值此接口返回恒为0
    silencenum封禁状态0:正常
    1:被封
    coinsnum硬币数需要登录(Cookie)
    只能查看自己的
    默认为0
    fans_badgebool是否具有粉丝勋章false:无
    true:有
    fans_medalobj粉丝勋章信息
    officialobj认证信息
    vipobj会员信息
    pendantobj头像框信息
    nameplateobj勋章信息
    user_honour_infoobj(?)
    is_followedbool是否关注此用户true:已关注
    false:未关注
    需要登录(Cookie)
    未登录恒为false
    top_photostr主页头图链接
    themeobj(?)
    sys_noticeobj系统通知无内容则为空对象
    主要用于展示如用户争议、纪念账号等等的小黄条
    live_roomobj直播间信息
    birthdaystr生日MM-DD
    如设置隐私为空
    schoolobj学校
    professionobj专业资质信息
    tagsnull个人标签
    seriesobj
    is_senior_membernum是否为硬核会员0:否
    1:是
    mcn_infonull(?)
    gaia_res_typenum(?)
    gaia_datanull(?)
    is_riskbool(?)
    elecobj充电信息
    contractobj是否显示老粉计划

    rank示例

    UIDrank
    220000
    1676520000
    1577338420000
    12441620000
    42973636225000
    42426176825000
    4127372625000
    1508010725000
    984749725000
    485600725000
    92812325000
    13270425000
    7009325000
    4729125000
    2738025000
    2244525000
    335125000
    110125000
    9306630000
    244306830000
    4636830000
    1116730000

    profession示例

    UID
    654391
    1440295
    1785155
    2990100
    3875803

    data中的official对象:

    ",10),A=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),B=t("td",null,"role",-1),S=t("td",null,"num",-1),T=t("td",null,"认证类型",-1),C=t("tr",null,[t("td",null,"title"),t("td",null,"str"),t("td",null,"认证信息"),t("td",null,"无为空")],-1),I=t("tr",null,[t("td",null,"desc"),t("td",null,"str"),t("td",null,"认证备注"),t("td",null,"无为空")],-1),D=t("tr",null,[t("td",null,"type"),t("td",null,"num"),t("td",null,"是否认证"),t("td",null,[n("-1:无"),t("br"),n("0:个人认证"),t("br"),n("1:机构认证")])],-1),N=e("

    data中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间毫秒时间戳
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    rolenum大角色类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    avatar_subscript_urlstr大会员角标地址
    tv_vip_statusnum电视大会员状态0:未开通
    tv_vip_pay_typenum电视大会员支付类型

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr空串
    img_label_uri_hantstr空串
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    data中的pendant对象:

    普通头像框的imageimage_enhance内容相同

    动态头像框的image为png静态图片,image_enhance为webp动态图片,image_enhance_frame为png逐帧序列

    字段类型内容备注
    pidnum头像框id
    namestr头像框名称
    imagestr头像框图片url
    expirenum过期时间此接口返回恒为0
    image_enhancestr头像框图片url
    image_enhance_framestr头像框图片逐帧序列url

    data中的nameplate对象:

    字段类型内容备注
    nidnum勋章id
    namestr勋章名称
    imagestr勋章图标
    image_smallstr勋章图标(小)
    levelstr勋章等级
    conditionstr获取条件

    data中的fans_medal对象:

    字段类型内容备注
    showbool
    wearbool是否佩戴了粉丝勋章
    medalobj粉丝勋章信息

    fans_medal中的medal对象:

    字段类型内容备注
    uidnum此用户mid
    target_idnum粉丝勋章所属UP的mid
    medal_idnum粉丝勋章id
    levelnum粉丝勋章等级
    medal_namestr粉丝勋章名称
    medal_colornum颜色
    intimacynum当前亲密度
    next_intimacynum下一等级所需亲密度
    day_limitnum每日亲密度获取上限
    today_feednum今日已获得亲密度
    medal_color_startnum粉丝勋章颜色十进制数,可转为十六进制颜色代码
    medal_color_endnum粉丝勋章颜色十进制数,可转为十六进制颜色代码
    medal_color_bordernum粉丝勋章边框颜色十进制数,可转为十六进制颜色代码
    is_lightednum
    light_statusnum
    wearing_statusnum当前是否佩戴0:未佩戴
    1:已佩戴
    scorenum

    data中的sys_notice对象:

    字段类型内容备注
    idnumid
    contentstr显示文案
    urlstr跳转地址
    notice_typenum提示类型1,2
    iconstr前缀图标
    text_colorstr文字颜色
    bg_colorstr背景颜色

    sys_notice示例

    ",17),P=t("thead",null,[t("tr",null,[t("th",null,"id"),t("th",null,"content"),t("th",null,"notice_type"),t("th",null,"示例用户")])],-1),G=t("tr",null,[t("td",null,"5"),t("td",null,"该用户存在争议行为,已冻结其帐号功能的使用"),t("td",null,"1"),t("td")],-1),O=t("td",null,"8",-1),W=t("td",null,"该用户存在较大争议,请谨慎甄别其内容",-1),R=t("td",null,"1",-1),V={href:"https://space.bilibili.com/28062215",target:"_blank",rel:"noopener noreferrer"},U=t("tr",null,[t("td",null,"11"),t("td",null,"该账号涉及合约争议,暂冻结其账号功能使用。详见公告->"),t("td",null,"1"),t("td")],-1),Y=t("td",null,"16",-1),L=t("td",null,"该UP主内容存在争议,请注意甄别视频内信息",-1),M=t("td",null,"1",-1),H={href:"https://space.bilibili.com/382534165",target:"_blank",rel:"noopener noreferrer"},K=t("td",null,"20",-1),Q=t("td",null,"请允许我们在此献上最后的告别,以此纪念其在哔哩哔哩留下的回忆与足迹。请点此查看纪念账号相关说明",-1),X=t("td",null,"2",-1),J={href:"https://space.bilibili.com/212535360",target:"_blank",rel:"noopener noreferrer"},z=t("tr",null,[t("td",null,"22"),t("td",null,"该账号涉及合约诉讼,封禁其账号使用"),t("td"),t("td")],-1),Z=t("td",null,"24",-1),$=t("td",null,"该账号涉及合约争议,暂冻结其账号功能使用",-1),tt=t("td",null,"1",-1),nt={href:"https://space.bilibili.com/291229008",target:"_blank",rel:"noopener noreferrer"},st=t("td",null,"25",-1),at=t("td",null,"该用户涉及严重指控,暂冻结其账号功能使用",-1),ot=t("td",null,"1",-1),pt={href:"https://space.bilibili.com/81447581",target:"_blank",rel:"noopener noreferrer"},et=t("td",null,"31",-1),dt=t("td",null,"该用户涉及严重指控,暂冻结其账号功能使用",-1),rt=t("td",null,"1",-1),lt={href:"https://space.bilibili.com/22439273",target:"_blank",rel:"noopener noreferrer"},ct=t("td",null,"34",-1),ut=t("td",null,"该用户涉及严重指控,暂冻结其账号功能使用",-1),it=t("td",null,"1",-1),kt={href:"https://space.bilibili.com/1640486775",target:"_blank",rel:"noopener noreferrer"},bt=t("tr",null,[t("td",null,"36"),t("td",null,"该账户存在争议,请谨慎甄别"),t("td",null,"1"),t("td")],-1),qt=e("

    data中的live_room对象:

    字段类型内容备注
    roomStatusnum直播间状态0:无房间
    1:有房间
    liveStatusnum直播状态0:未开播
    1:直播中
    urlstr直播间网页 url
    titlestr直播间标题
    coverstr直播间封面 url
    watched_showobj
    roomidnum直播间 id
    roundStatusnum轮播状态0:未轮播
    1:轮播
    broadcast_typenum0

    live_room中的watched_show对象:

    字段类型内容备注
    switchbool?
    numnumtotal watched users
    text_smallstr
    text_largestr
    iconstrwatched icon url
    icon_locationstr?
    icon_webstrwatched icon url

    data中的school对象:

    字段类型内容备注
    namestr就读大学名称没有则为空

    data中的profession对象:

    字段类型内容备注
    namestr资质名称
    departmentstr职位
    titlestr所属机构
    is_shownum是否显示0:不显示
    1:显示

    data中的user_honour_info对象:

    字段类型内容备注
    midnum0
    colourstrnull
    tagsarraynull

    data中的series对象:

    字段类型内容备注
    user_upgrade_statusnum(?)
    show_upgrade_windowbool(?)

    data中的elec对象:

    字段类型内容备注
    show_infoobj

    elec中的show_info对象:

    字段类型内容备注
    showbool是否开通了充电
    statenum状态-1:未开通
    1:已开通
    titlestr空串
    iconstr空串
    jump_urlstr空串

    data中的contract对象:

    字段名类型内容备注
    is_displaybooltrue/false
    在页面中未使用此字段
    is_follow_displaybool是否在显示老粉计划true:显示
    false:不显示

    示例:

    ",19),mt=t("code",null,"mid=2",-1),vt=t("code",null,"wts",-1),ht=t("code",null,"w_rid",-1),yt=e(`
    curl -G 'https://api.bilibili.com/x/space/wbi/acc/info' \\
    +	--data-urlencode 'mid=2' \\
    +	--data-urlencode 'wts=1685070149' \\
    +	--data-urlencode 'w_rid=f7b376124782ae8cb42c56fdd69144ed' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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": 3931344000000,
    +            "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": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.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,
    +            "tv_due_date": 2000822400
    +        },
    +        "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://i2.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png",
    +            "image_small": "https://i2.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png",
    +            "level": "普通勋章",
    +            "condition": "所有自制视频总播放数>=10万"
    +        },
    +        "user_honour_info": {
    +            "mid": 0,
    +            "colour": null,
    +            "tags": []
    +        },
    +        "is_followed": true,
    +        "top_photo": "http://i2.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": 19,
    +                "text_small": "19",
    +                "text_large": "19人看过",
    +                "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": 0,
    +        "mcn_info": null,
    +        "gaia_res_type": 0,
    +        "gaia_data": null,
    +        "is_risk": false,
    +        "elec": {
    +            "show_info": {
    +                "show": true,
    +                "state": 1,
    +                "title": "",
    +                "icon": "",
    +                "jump_url": "?oid=2"
    +            }
    +        },
    +        "contract": {
    +            "is_display": false,
    +            "is_follow_display": false
    +        }
    +    }
    +}
    +

    用户名片信息

    https://api.bilibili.com/x/web-interface/card

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    photobool是否请求用户主页头图非必要true:是
    false:否

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    cardobj卡片信息
    followingbool是否关注此用户true:已关注
    false:未关注
    需要登录(Cookie)
    未登录为false
    archive_countnum用户稿件数
    article_countnum0作用尚不明确
    followernum粉丝数
    like_numnum点赞数

    data中的card对象:

    字段类型内容备注
    midstr用户mid
    approveboolfalse作用尚不明确
    namestr用户昵称
    sexstr用户性别男 女 保密
    facestr用户头像链接
    DisplayRankstr0作用尚不明确
    regtimenum0作用尚不明确
    spacestanum用户状态0:正常
    -2:被封禁
    birthdaystr作用尚不明确
    placestr作用尚不明确
    descriptionstr作用尚不明确
    articlenum0作用尚不明确
    attentionsarray作用尚不明确
    fansnum粉丝数
    friendnum关注数
    attentionnum关注数
    signstr签名
    level_infoobj等级
    pendantobj挂件
    nameplateobj勋章
    Officialobj认证信息
    official_verifyobj认证信息2
    vipobj大会员状态
    spaceobj主页头图

    card中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0作用尚不明确
    current_expnum0作用尚不明确
    next_expnum0作用尚不明确

    card中的pendant对象:

    字段类型内容备注
    pidnum挂件id
    namestr挂件名称
    imagestr挂件图片url
    expirenum0作用尚不明确

    card中的nameplate对象:

    字段类型内容备注
    nidnum勋章id详细说明有待补充
    namestr勋章名称
    imagestr挂件图片url 正常
    image_smallstr勋章图片url 小
    levelstr勋章等级
    conditionstr勋章条件

    card中的Official对象:

    `,22),_t=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),gt=t("td",null,"role",-1),ft=t("td",null,"num",-1),xt=t("td",null,"认证类型",-1),wt=t("tr",null,[t("td",null,"title"),t("td",null,"str"),t("td",null,"认证信息"),t("td",null,"无为空")],-1),jt=t("tr",null,[t("td",null,"desc"),t("td",null,"str"),t("td",null,"认证备注"),t("td",null,"无为空")],-1),Et=t("tr",null,[t("td",null,"type"),t("td",null,"num"),t("td",null,"是否认证"),t("td",null,[n("-1:无"),t("br"),n("0:UP主认证"),t("br"),n("1:机构认证")])],-1),Ft=e(`

    card中的official_verify对象:

    字段类型内容备注
    typenum是否认证-1:无
    0:UP主认证
    1:机构认证
    descstr认证信息无为空

    card中的vip对象:

    字段类型内容备注
    vipTypenum大会员类型0:无
    1:月度大会员
    2:年度及以上大会员
    dueRemarkstr作用尚不明确
    accessStatusnum0作用尚不明确
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr作用尚不明确
    theme_typenum0作用尚不明确

    card中的space对象:

    字段类型内容备注
    s_imgstr主页头图url 小图
    l_imgstr主页头图url 正常

    示例:

    curl -G 'https://api.bilibili.com/x/web-interface/card' \\
    +--data-urlencode 'mid=2' \\
    +--data-urlencode 'photo=true' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnummid
    namestr昵称
    sexstr性别男 女 保密
    facestr头像图片url
    signstr签名
    ranknum10000作用尚不明确
    levelnum当前等级0-6级
    jointimenum0作用尚不明确
    moralnum节操默认70
    silencenum封禁状态0:正常
    1:被封
    email_statusnum已验证邮箱0:未验证
    1:已验证
    tel_statusnum已验证手机号0:未验证
    1:已验证
    identificationnum1作用尚不明确
    vipobj大会员状态
    birthdaynum生日时间戳
    is_touristnum0作用尚不明确
    is_fake_accountnum0作用尚不明确
    pin_promptingnum0作用尚不明确
    is_deletednum0作用尚不明确
    coinsnum硬币数
    followingnum粉丝数
    followernum粉丝数

    data中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间Unix时间戳(毫秒)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员名称
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员

    data中的pendant对象:

    字段类型内容备注
    pidnum挂件id详细说明有待补充
    namestr挂件名称
    imagestr挂件图片url
    expirenum0作用尚不明确

    data中的nameplate对象:

    字段类型内容备注
    nidnum勋章id详细说明有待补充
    namestr勋章名称
    imagestr挂件图片url 正常
    image_smallstr勋章图片url 小
    levelstr勋章等级
    conditionstr勋章条件

    data中的Official对象:

    `,27),At=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),Bt=t("td",null,"role",-1),St=t("td",null,"num",-1),Tt=t("td",null,"认证类型",-1),Ct=t("tr",null,[t("td",null,"title"),t("td",null,"str"),t("td",null,"认证信息"),t("td",null,"无为空")],-1),It=t("tr",null,[t("td",null,"desc"),t("td",null,"str"),t("td",null,"认证备注"),t("td",null,"无为空")],-1),Dt=t("tr",null,[t("td",null,"type"),t("td",null,"num"),t("td",null,"是否认证"),t("td",null,[n("-1:无"),t("br"),n("0:认证")])],-1),Nt=e(`

    data中的level_exp对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0指当前等级从多少经验值开始
    current_expnum0当前账户的经验值
    next_expnum0下一个等级所需的经验值**(不是还需要多少)**

    示例:

    curl -G 'https://api.bilibili.com/x/space/myinfo' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.bilibili.com/x/polymer/pc-electron/v1/user/cards

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    uidsnums目标用户的mid列表必要每个成员间用,分隔,最多200个成员

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    40143:批量大小超过限制
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体用户信息随机排序

    data对象:

    字段类型内容备注
    {用户mid}obj该mid对应的用户信息
    ……obj…………

    data中的{用户mid}对象:

    字段类型内容备注
    facestr头像链接
    face_nftnum是否为 NFT 头像0:不是 NFT 头像
    1:是 NFT 头像
    face_nft_newnum是否为新版 NFT 头像
    midstrmid
    namestr昵称
    name_render有效时:obj
    无效时:null
    昵称渲染信息
    nameplate有效时:obj
    无效时:null
    勋章信息基本同「用户空间详细信息」中的 data.nameplate 对象
    officialobj认证信息基本同「用户空间详细信息」中的 data.official 对象
    pendant有效时:obj
    无效时:null
    头像框信息基本同「用户空间详细信息」中的 data.pendant 对象,其中有些类型为 num 的字段在本接口中类型为 str
    vipobj会员信息基本同「用户空间详细信息」中的 data.vip 对象,其中有些类型为 num 的字段在本接口中类型为 str

    {用户mid}中的name_render对象:

    字段类型内容备注
    colors_infoobj昵称颜色信息(?)作用尚不明确
    render_schemestr"Default""Colorful"作用尚不明确

    name_render中的colors_info对象:

    字段类型内容备注
    colorarray昵称颜色(?)作用尚不明确
    color_idsarray["6"]作用尚不明确

    color数组:

    类型内容备注
    0obj颜色1
    nobj颜色(n+1)
    ……obj…………

    color数组中的对象:

    字段类型内容备注
    color_daystr浅色模式昵称颜色HEX颜色代码
    color_nightstr深色模式昵称颜色HEX颜色代码

    示例:

    查询用户uids=1,2,3的详细信息

    curl -G 'https://api.bilibili.com/x/polymer/pc-electron/v1/user/cards' \\
    +--data-urlencode 'uids=1,2,3'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "1": {
    +      "face": "http://i1.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +      "face_nft": 0,
    +      "face_nft_new": 0,
    +      "mid": "1",
    +      "name": "bishi",
    +      "name_render": {
    +        "colors_info": { "color": [], "color_ids": [ "6" ] },
    +        "render_scheme": "Default"
    +      },
    +      "nameplate": null,
    +      "official": { "desc": "", "role": 0, "title": "", "type": -1 },
    +      "pendant": null,
    +      "vip": {
    +        "avatar_icon": {
    +          "icon_resource": {
    +            "type": "ICON_RES_TYPE_IMAGE",
    +            "url": "https://i0.hdslb.com/bfs/bangumi/kt/aba51485c0d02940c89aeefcf6680510d9858472.png"
    +          },
    +          "icon_type": "ICON_TYPE_VIP_ACTIVITY"
    +        },
    +        "avatar_subscript": 1,
    +        "avatar_subscript_url": "",
    +        "due_date": "1883059200000",
    +        "label": {
    +          "bg_color": "#FB7299",
    +          "bg_style": 1,
    +          "border_color": "",
    +          "img_label_uri_hans": "",
    +          "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/bangumi/kt/fb0a74b14d6a4e119ae301ba2693febeda051030.png",
    +          "img_label_uri_hant": "",
    +          "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +          "label_theme": "ten_annual_vip",
    +          "path": "",
    +          "text": "十年大会员",
    +          "text_color": "#FFFFFF",
    +          "use_img_label": true
    +        },
    +        "nickname_color": "#FB7299",
    +        "role": "7",
    +        "status": 1,
    +        "theme_type": 0,
    +        "tv_due_date": "1633622400",
    +        "tv_vip_pay_type": 0,
    +        "tv_vip_status": 0,
    +        "type": 2,
    +        "vip_pay_type": 1
    +      }
    +    },
    +    "2": {
    +      "face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
    +      "face_nft": 0,
    +      "face_nft_new": 0,
    +      "mid": "2",
    +      "name": "碧诗",
    +      "name_render": {
    +        "colors_info": { "color": [], "color_ids": [ "6" ] },
    +        "render_scheme": "Default"
    +      },
    +      "nameplate": {
    +        "condition": "所有自制视频总播放数>=10万",
    +        "image": "https://i1.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png",
    +        "image_small": "https://i2.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png",
    +        "level": "普通勋章",
    +        "name": "见习偶像",
    +        "nid": 10
    +      },
    +      "official": { "desc": "", "role": 2, "title": "bilibili创始人(站长)", "type": 0 },
    +      "pendant": {
    +        "expire": "0",
    +        "image": "https://i2.hdslb.com/bfs/garb/item/488870931b1bba66da36d22848f0720480d3d79a.png",
    +        "image_enhance": "https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp",
    +        "image_enhance_frame": "https://i2.hdslb.com/bfs/garb/item/4316a3910bb0bd6f2f1c267a3e9187f0b9fe5bd0.png",
    +        "n_pid": "32257",
    +        "name": "EveOneCat2",
    +        "pid": 32257
    +      },
    +      "vip": {
    +        "avatar_icon": {
    +          "icon_resource": {
    +            "type": "ICON_RES_TYPE_IMAGE",
    +            "url": "https://i0.hdslb.com/bfs/bangumi/kt/aba51485c0d02940c89aeefcf6680510d9858472.png"
    +          },
    +          "icon_type": "ICON_TYPE_VIP_ACTIVITY"
    +        },
    +        "avatar_subscript": 1,
    +        "avatar_subscript_url": "",
    +        "due_date": "3968841600000",
    +        "label": {
    +          "bg_color": "#FB7299",
    +          "bg_style": 1,
    +          "border_color": "",
    +          "img_label_uri_hans": "",
    +          "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/bangumi/kt/53845a8ab8b226131c5d89b198d4b61de91d0aa2.png",
    +          "img_label_uri_hant": "",
    +          "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +          "label_theme": "ten_annual_vip",
    +          "path": "",
    +          "text": "十年大会员",
    +          "text_color": "#FFFFFF",
    +          "use_img_label": true
    +        },
    +        "nickname_color": "#FB7299",
    +        "role": "7",
    +        "status": 1,
    +        "theme_type": 0,
    +        "tv_due_date": "2003500800",
    +        "tv_vip_pay_type": 1,
    +        "tv_vip_status": 1,
    +        "type": 2,
    +        "vip_pay_type": 0
    +      }
    +    },
    +    "3": {
    +      "face": "http://i0.hdslb.com/bfs/face/d4de6a84557eea8f18510a3f61115d96832aa071.jpg",
    +      "face_nft": 0,
    +      "face_nft_new": 0,
    +      "mid": "3",
    +      "name": "囧囧倉",
    +      "name_render": {
    +        "colors_info": {
    +          "color": [
    +            { "color_day": "#CB7919", "color_night": "#E2963C" },
    +            { "color_day": "#E6A75B", "color_night": "#E6A75B" },
    +            { "color_day": "#E9BD67", "color_night": "#F8CE7E" }
    +          ],
    +          "color_ids": [ "6" ]
    +        },
    +        "render_scheme": "Colorful"
    +      },
    +      "nameplate": null,
    +      "official": { "desc": "", "role": 0, "title": "", "type": -1 },
    +      "pendant": null,
    +      "vip": {
    +        "avatar_icon": null,
    +        "avatar_subscript": 0,
    +        "avatar_subscript_url": "",
    +        "due_date": "0",
    +        "label": {
    +          "bg_color": "",
    +          "bg_style": 0,
    +          "border_color": "",
    +          "img_label_uri_hans": "",
    +          "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +          "img_label_uri_hant": "",
    +          "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +          "label_theme": "",
    +          "path": "",
    +          "text": "",
    +          "text_color": "",
    +          "use_img_label": true
    +        },
    +        "nickname_color": "",
    +        "role": "0",
    +        "status": 0,
    +        "theme_type": 0,
    +        "tv_due_date": "0",
    +        "tv_vip_pay_type": 0,
    +        "tv_vip_status": 0,
    +        "type": 0,
    +        "vip_pay_type": 0
    +      }
    +    }
    +  }
    +}
    +

    多用户详细信息2

    https://api.vc.bilibili.com/account/v1/user/cards

    请求方式:GET

    本接口较其他接口相比,只会返回非常有限的信息

    url参数:

    参数名类型内容必要性备注
    uidsnums目标用户的mid列表必要每个成员间用,分隔,最多50个成员,若超过此限制则返回的data数组为空

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray信息本体用户信息随机排序

    data数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    midnummid
    namestr昵称
    facestr头像链接
    signstr签名
    ranknum用户权限等级
    levelnum当前等级0-6 级
    silencenum封禁状态0:正常
    1:被封

    示例:

    查询用户uids=1,2,3的详细信息

    curl -G 'https://api.vc.bilibili.com/account/v1/user/cards' \\
    +--data-urlencode 'uids=1,2,3'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "",
    +    "ttl": 1,
    +    "data": [{
    +        "mid": 1,
    +        "name": "bishi",
    +        "face": "http://i1.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +        "sign": "",
    +        "rank": 10000,
    +        "level": 6,
    +        "silence": 0
    +    }, {
    +        "mid": 2,
    +        "name": "碧诗",
    +        "face": "http://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
    +        "sign": "https://kami.im 直男过气网红 #  We Are Star Dust",
    +        "rank": 20000,
    +        "level": 6,
    +        "silence": 0
    +    }, {
    +        "mid": 3,
    +        "name": "囧囧倉",
    +        "face": "http://i0.hdslb.com/bfs/face/d4de6a84557eea8f18510a3f61115d96832aa071.jpg",
    +        "sign": "富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善。",
    +        "rank": 10000,
    +        "level": 6,
    +        "silence": 0
    +    }]
    +}
    +
    `,46);function Pt(Gt,Ot){const o=d("RouterLink"),a=d("ExternalLinkIcon");return l(),c("div",null,[k,t("p",null,[n("鉴权方式:"),s(o,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1}),n(", Cookie (对于某些 IP 地址,需要在 Cookie 中提供任意非空的 "),b,n(" 字段)")]),t("p",null,[t("s",null,[n("该接口的旧版 API :"),t("a",q,[n("https://api.bilibili.com/x/space/acc/info"),s(a)])]),n("(已废弃,不建议使用)")]),m,t("table",null,[v,t("tbody",null,[h,t("tr",null,[y,_,g,f,t("td",null,[n("详见 "),s(o,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1})])]),t("tr",null,[x,w,j,E,t("td",null,[n("详见 "),s(o,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1})])])])]),F,t("table",null,[A,t("tbody",null,[t("tr",null,[B,S,T,t("td",null,[n("见 "),s(o,{to:"/docs/user/official_role.html"},{default:p(()=>[n("用户认证类型一览")]),_:1})])]),C,I,D])]),N,t("table",null,[P,t("tbody",null,[G,t("tr",null,[O,W,R,t("td",null,[t("a",V,[n("28062215"),s(a)])])]),U,t("tr",null,[Y,L,M,t("td",null,[t("a",H,[n("382534165"),s(a)])])]),t("tr",null,[K,Q,X,t("td",null,[t("a",J,[n("212535360"),s(a)])])]),z,t("tr",null,[Z,$,tt,t("td",null,[t("a",nt,[n("291229008"),s(a)])])]),t("tr",null,[st,at,ot,t("td",null,[t("a",pt,[n("81447581"),s(a)])])]),t("tr",null,[et,dt,rt,t("td",null,[t("a",lt,[n("22439273"),s(a)])])]),t("tr",null,[ct,ut,it,t("td",null,[t("a",kt,[n("1640486775"),s(a)])])]),bt])]),qt,t("p",null,[n("查询用户"),mt,n("的详细信息,Wbi 签名的 "),vt,n("、"),ht,n("生成方式详见 "),s(o,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1}),n(" 文档")]),yt,t("table",null,[_t,t("tbody",null,[t("tr",null,[gt,ft,xt,t("td",null,[n("见"),s(o,{to:"/docs/user/official_role.html"},{default:p(()=>[n("用户认证类型一览")]),_:1})])]),wt,jt,Et])]),Ft,t("table",null,[At,t("tbody",null,[t("tr",null,[Bt,St,Tt,t("td",null,[n("见"),s(o,{to:"/docs/user/official_role.html"},{default:p(()=>[n("用户认证类型一览")]),_:1})])]),Ct,It,Dt])]),Nt])}const Rt=r(i,[["render",Pt],["__file","info.html.vue"]]);export{Rt as default}; diff --git a/assets/info.html-7afe2277.js b/assets/info.html-7afe2277.js new file mode 100644 index 0000000000..8687019fa6 --- /dev/null +++ b/assets/info.html-7afe2277.js @@ -0,0 +1,95 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const o={},p=a(`

    相簿基本信息

    获取相簿详细信息

    https://api.vc.bilibili.com/link_draw/v1/doc/detail

    请求方式:GET

    认证方式:Cookie(SESSDSTA)

    url参数:

    参数名类型内容必要性备注
    doc_idnum目标相簿id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    110001:找不到目标相簿
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    userobj作者信息
    itemobj相簿信息

    data中的user对象:

    字段类型内容备注
    uidnum作者mid
    head_urlstr头像url
    namestr昵称
    vipobj会员信息
    upload_countstr相簿投稿数

    user中的vip对象:

    字段类型内容备注
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度及以上大会员
    vipDueDatenum会员到期时间毫秒 时间戳
    dueRemarkstr作用尚不明确
    accessStatusnum0作用尚不明确
    vipStatusnum会员开通状态0:无
    1:有
    vipStatusWarnstr作用尚不明确
    themeTypenum0作用尚不明确
    labelobj作用尚不明确

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确

    data中的item对象:

    字段类型内容备注
    biznum相簿分区1:画友
    2:摄影
    3:日常
    doc_idnum相簿id
    poster_uidnum作者mid
    categorystr子分区标识cos:cosplay
    daily:日常
    illustration:插画
    comic:漫画
    draw:其他
    sifu:私服
    typenum相簿类型0:原创
    1:同人
    titlestr标题
    tagsarray相簿TAG
    picturesarray相簿图片
    sourcenull作用尚不明确
    upload_timestr投稿时间(时间码)YYYY-MM-DD hh:mm:ss
    upload_timestampnum投稿时间(时间戳)
    upload_time_textstr投稿时间(文本)
    descriptionstr简介
    rolenull作用尚不明确
    settingsobj权限配置
    already_collectednum是否已收藏需要登录(Cookie)
    否则恒为0
    already_likednum0作用尚不明确
    user_statusnum0作用尚不明确
    at_controlstr作用尚不明确
    view_countnum观看数
    like_countnum0作用尚不明确
    collect_countnum收藏数
    verify_statusnum1作用尚不明确
    already_votednum是否已点赞需要登录(Cookie)
    否则恒为0
    vote_countnum点赞数
    comment_countnum评论数

    item中的tags数组:

    类型内容备注
    0objTAG 1
    nobjTAG (n+1)
    ……obj…………

    item中的tags数组中的对象:

    字段类型内容备注
    tagstrTAG名
    typenum类型?
    categorystrTAG所属子分区名
    linkstr活动页面url是活动TAG有此项
    textstrTAG名
    namestrTAG名

    item中的pictures数组:

    类型内容备注
    0obj图片 1
    nobj图片 (n+1)
    ……obj…………

    item中的pictures数组中的对象:

    字段类型内容备注
    img_srcstr图片url
    img_widthnum图片宽度
    img_heightnum图片高度
    img_sizenum图片大小单位为KByte

    item中的settings对象:

    字段类型内容备注
    copy_forbiddennum禁止转载标志0:不设置转载权限
    1:开放授权-署名-非商用转载
    2:作者授权-署名-非商用转载
    3:禁止转载

    示例:

    查询相簿id=99184721的详细信息

    curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/detail' \\
    +--data-urlencode 'doc_id=99184721' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +
    `,34),e=[p];function d(r,c){return s(),n("div",null,e)}const l=t(o,[["render",d],["__file","info.html.vue"]]);export{l as default}; diff --git a/assets/info.html-809c19c5.js b/assets/info.html-809c19c5.js new file mode 100644 index 0000000000..33677f10e7 --- /dev/null +++ b/assets/info.html-809c19c5.js @@ -0,0 +1,168 @@ +import{_ as n,o as t,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    歌曲基本信息

    查询歌曲基本信息

    https://www.bilibili.com/audio/music-service-c/web/song/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    7201006:该音频不存在或已被下架
    72010027:版权音乐重定向
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    idnum音频auid
    uidnumUP主mid
    unamestrUP主昵称
    authorstr作者名
    titlestr歌曲标题
    coverstr封面图片url
    introstr歌曲简介
    lyricstrlrc歌词url
    crtypenum1作用尚不明确
    durationnum歌曲时间长度单位为秒
    passtimenum歌曲发布时间时间戳
    curtimenum当前请求时间时间戳
    aidnum关联稿件avid无为0
    bvidstr关联稿件bvid无为空
    cidnum关联视频cid无为0
    msidnum0作用尚不明确
    attrnum0作用尚不明确
    limitnum0作用尚不明确
    activityIdnum0作用尚不明确
    limitdescstr作用尚不明确
    ctimenull-作用尚不明确
    statisticobj状态数
    vipInfoobjUP主会员状态
    collectIdsarray歌曲所在的收藏夹mlid需要登录(SESSDATA)
    coin_numnum投币数

    data中的statistic对象:

    字段类型内容备注
    sidnum音频auid
    playnum播放次数
    collectnum收藏数
    commentnum评论数
    sharenum分享数

    data中的vipInfo对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月会员
    2:年会员
    statusnum会员状态0:无
    1:有
    due_datenum会员到期时间时间戳 毫秒
    vip_pay_typenum会员开通状态0:无
    1:有

    data中的collectIds数组:

    类型内容备注
    0num第1个所在的收藏夹mlid
    nnum第(n+1)个所在的收藏夹mlid
    ……num…………

    示例:

    查询音频au13598的基本信息

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/song/info' \\
    +--data-urlencode 'sid=13598' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    dataarrayTAG列表无为空

    data数组:

    类型内容备注
    0strTAG1
    nstrTAG(n+1)
    ……str…………

    data数组中的对象:

    字段类型内容备注
    typestrsong作用尚不明确
    subtypenum???作用尚不明确
    keynumTAG id??作用尚不明确
    infostrTAG名

    示例:

    查询音频au15664的TAG

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/tag/song' \\
    +--data-urlencode 'sid=15664'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    dataarray成员类型列表无为空

    data数组:

    类型内容备注
    0str成员类型1
    nstr成员类型(n+1)
    ……str…………

    data数组中的对象:

    字段类型内容备注
    listarray成员列表
    typenum成员类型代码1:歌手
    2:作词
    3:作曲
    4:编曲
    5:后期/混音
    7:封面制作
    8:音源
    9:调音
    10:演奏
    11:乐器
    127:UP主

    data数组中的对象中的list数组:

    类型内容备注
    0str成员1
    nstr成员(n+1)
    ……str…………

    list数组中的对象:

    字段类型内容备注
    midnum0作用尚不明确
    namestr成员名
    member_idnum成员id??作用尚不明确

    示例:

    查询音频au815861的创作成员信息

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/member/song' \\
    +--data-urlencode 'sid=815861'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    data正确时:str
    错误时:null
    lrc格式歌词信息无为空

    示例:

    获取音频au15664的歌词信息

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/song/lyric' \\
    +--data-urlencode 'sid=15664' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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"
    +}
    +
    `,71),o=[e];function d(r,c){return t(),s("div",null,o)}const u=n(p,[["render",d],["__file","info.html.vue"]]);export{u as default}; diff --git a/assets/info.html-84fe7504.js b/assets/info.html-84fe7504.js new file mode 100644 index 0000000000..535c86ab66 --- /dev/null +++ b/assets/info.html-84fe7504.js @@ -0,0 +1,54 @@ +import{_ as e,r as p,o,c as d,a as n,b as t,d as r,w as l,e as s}from"./app-3168cb19.js";const c={},i=s('

    大会员信息

    卡券状态查询

    https://api.bilibili.com/x/vip/privilege/my

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值-101:账号未登录
    -400:请求错误
    0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray卡券信息列表
    is_short_vipbool(?)
    is_freight_openbool(?)
    levelnum当前等级
    cur_expnum当前拥有经验值
    next_expnum升级所需经验值满级时为 -1
    is_vipbool是否为大会员
    is_senior_membernum(?)
    format060102num(?)

    list数组:

    索引类型内容type备注
    0objB币兑换状态1
    1obj会员购优惠券兑换状态2
    2obj漫画福利券兑换状态3
    3obj会员购包邮券兑换状态4
    4obj漫画商城优惠券兑换状态5
    5obj装扮体验卡兑换状态6
    6obj课堂优惠券兑换状态7
    7obj王者荣耀)游戏礼盒兑换状态8每日可领取,目前 state 固定为 1
    8obj每日 10 经验领取状态9每日可领取,未完成时 state 为 2

    list中的对象:

    字段类型内容备注
    typenum卡券类型详见 list 数组表格中的 type
    statenum兑换状态0:未兑换
    1:已兑换
    2:未完成(若需要完成)
    expire_timenum本轮卡券过期时间戳当月月底/当日24点
    vip_typenum当前用户的大会员状态2:年度大会员
    next_receive_daysnum距下一轮兑换剩余天数无权限时,每月任务固定为 0,每日固定为 1
    period_end_unixnum下一轮兑换开始时间戳秒级时间戳
    ',14),u=n("strong",null,"注意:",-1),k=n("code",null,"type",-1),v=n("code",null,"8",-1),b=n("code",null,"9",-1),m=n("br",null,null,-1),_=n("code",null,"type",-1),h=n("code",null,"9",-1),q=n("code",null,"state",-1),y=s(`

    示例:

    curl 'https://api.bilibili.com/x/vip/privilege/my' \\
    +	-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "type": 1,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 2,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 3,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 4,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 5,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      }
    +    ],
    +    "is_short_vip": false,
    +    "is_freight_open": true
    +  }
    +}
    +
    `,3);function x(g,f){const a=p("RouterLink");return o(),d("div",null,[i,n("p",null,[u,t(" 卡券除每日可领取("),k,t(" 为 "),v,t(" 和 "),b,t(")的,其他可通过 "),r(a,{to:"/docs/vip/action.html#%E5%85%91%E6%8D%A2%E5%8D%A1%E5%88%B8"},{default:l(()=>[t("https://api.bilibili.com/x/vip/privilege/receive")]),_:1}),t(" 领取"),m,t(" 每日 10 经验领取("),_,t(" 为 "),h,t(")需要完成视频观看,未完成的 "),q,t(" 为 2。")]),y])}const E=e(c,[["render",x],["__file","info.html.vue"]]);export{E as default}; diff --git a/assets/info.html-8a8a4952.js b/assets/info.html-8a8a4952.js new file mode 100644 index 0000000000..16b2e04f67 --- /dev/null +++ b/assets/info.html-8a8a4952.js @@ -0,0 +1,31 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},o=a(`

    活动主题信息

    主题信息

    https://api.bilibili.com/x/activity/subject/info

    请求方式: GET

    URL参数:

    | 参数名 | 类型 | 内容 | 必要性 | 备注 | | - | - | - | - | - | - | - | | sid | num | 活动 id | 必要 | | | bvid | str | 来源视频 bvid | 非必要 | |

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    idnum活动 id
    oidnum0
    typenum13
    statenum1
    stimenum开始时间UNIX 秒级时间戳
    etimenum结束时间UNIX 秒级时间戳
    ctimenum创建时间UNIX 秒级时间戳
    mtimenum修改时间UNIX 秒级时间戳
    namestr活动名称
    act_urlstr活动链接
    lstimenum?作用尚不明确
    letimenum?作用尚不明确
    coverstr封面图片
    dicstr简介
    h5_coverstrH5 封面
    android_urlstrAndroid 端活动链接
    ios_urlstriOS 端活动链接
    child_sidsstr子活动 id?
    calendarstr日历?空 或 {}?
    lidnum?仅在传入 bvid 时存在

    示例:

    curl -G --url 'https://api.bilibili.com/x/activity/subject/info' \\
    +--url-query 'sid=4017552' \\
    +--url-query 'bvid=BV1mKY4e8ELy'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "id": 4017552,
    +    "oid": 0,
    +    "type": 13,
    +    "state": 1,
    +    "stime": 1720540800,
    +    "etime": 1728575999,
    +    "ctime": 1720439769,
    +    "mtime": 1720591285,
    +    "name": "科技猎手2024第2季",
    +    "act_url": "https://www.bilibili.com/blackboard/era/kejilieshou2PC.html",
    +    "lstime": 1720540800,
    +    "letime": 1728575999,
    +    "cover": "https://i0.hdslb.com/bfs/activity-plat/static/98bc38873cc71e154019070975cd20a0/fLOEOStVUV.jpg",
    +    "dic": "科技猎手召集中!投稿赢奖金>>",
    +    "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/98bc38873cc71e154019070975cd20a0/PTIFsXkV0o.jpg",
    +    "android_url": "https://www.bilibili.com/blackboard/era/kejilieshou2H5.html",
    +    "ios_url": "https://www.bilibili.com/blackboard/era/kejilieshou2H5.html",
    +    "child_sids": "",
    +    "calendar": "",
    +    "lid": 294258214
    +  }
    +}
    +
    `,14),p=[o];function d(r,i){return s(),n("div",null,p)}const c=t(e,[["render",d],["__file","info.html.vue"]]);export{c as default}; diff --git a/assets/info.html-a6721c37.js b/assets/info.html-a6721c37.js new file mode 100644 index 0000000000..804933f43a --- /dev/null +++ b/assets/info.html-a6721c37.js @@ -0,0 +1,358 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    查询信息

    查询答题状态

    https://api.bilibili.com/x/answer/v4/status

    请求方式:GET

    认证方式:Cookie或APP

    json回复:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hidnum答题会话id
    midnum答题用户mid
    scorenum当前得分
    statusnum答题状态0:未答题
    2:答题中
    3:已通过
    numbernum当前题号
    resultstr是否通过答题failed:未通过
    succeed:已通过
    stagestr当前答题阶段base:基础题
    extra:附加题
    pro_type:等待选择自选题类型
    pro:自选题
    complete:已完成
    versionstr答题版本当前为v4
    start_timenum本次答题开始时间时间戳
    first_answernum(?)
    progressstr当前答题进度百分比
    60分为100%
    textstr提示文案
    urlstr答题页面url
    in_reg_auditbool是否为第一次答题
    editionnum答题版本0:旧版(40+10+50)
    2:新版(40+30+30)
    rewardsnull(?)
    captchanum是否已经提交验证码1:已提交
    仅新版提交验证码后存在

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/status' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41031:自选题未通过
    41055:基础附加题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataarray父分类列表

    data数组:

    类型内容备注
    0obj父分类1
    nobj父分类(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum父分类id
    namestr父分类名
    fieldsarray子分类列表

    data数组中的对象中的fields数组:

    类型内容备注
    0obj子分类1
    nobj子分类(n+1)
    ……obj…………

    fields数组中的对象:

    字段类型内容备注
    idnum子分类id
    namestr子分类名

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/pro/type' \\
    +-b 'SESSDATA=xxx'
    +

    旧版edition=0返回:

    查看响应示例:
    {
    +    "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返回:

    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    hidnum答题会话id必要

    json回复:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hidnum答题会话id
    midnum答题用户mid
    membernum
    scorenum得分
    levelnum用户等级
    first_passnum
    unamestr用户昵称
    facestr用户头像url
    statusstr答题结果failed:未通过
    succeed:已通过
    question_typesarray已选择的自选题列表
    powerarray自选题分类得分情况
    start_timenum开始答题时间时间戳
    shareobj
    can_show_rank_btnbool
    is_same_userbool
    view_morestr
    video_infoobj
    main_tidsarray
    sub_tidsarray
    power_resultnull
    score_ratenum分数超过平均用户的百分比
    permissionobj
    rewardsnull

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/result' \\
    +--data-urlencode 'hid=1615088061307609' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +
    `,46),e=[o];function l(u,c){return s(),a("div",null,e)}const r=n(p,[["render",l],["__file","info.html.vue"]]);export{r as default}; diff --git a/assets/info.html-ad870103.js b/assets/info.html-ad870103.js new file mode 100644 index 0000000000..04503c0e4e --- /dev/null +++ b/assets/info.html-ad870103.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-64c3e144","path":"/docs/vip/info.html","title":"大会员信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"卡券状态查询","slug":"卡券状态查询","link":"#卡券状态查询","children":[]}],"git":{},"filePathRelative":"docs/vip/info.md"}');export{e as data}; diff --git a/assets/info.html-c42e4c4d.js b/assets/info.html-c42e4c4d.js new file mode 100644 index 0000000000..7c6d5c3b36 --- /dev/null +++ b/assets/info.html-c42e4c4d.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-5938a1f0","path":"/docs/album/info.html","title":"相簿基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取相簿详细信息","slug":"获取相簿详细信息","link":"#获取相簿详细信息","children":[]}],"git":{},"filePathRelative":"docs/album/info.md"}');export{t as data}; diff --git a/assets/info.html-c6dce5c8.js b/assets/info.html-c6dce5c8.js new file mode 100644 index 0000000000..5b0916375a --- /dev/null +++ b/assets/info.html-c6dce5c8.js @@ -0,0 +1,585 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const p={},o=a(`

    剧集基本信息

    剧集基本信息(mdid方式)

    https://api.bilibili.com/pgc/review/user

    请求方式:GET

    鉴权方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    media_idstr剧集mdid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:错误
    messagestr错误信息默认为success
    resultobj信息本体

    result对象:

    字段类型内容备注
    mediaobj剧集信息
    reviewobj用户操作信息仅登录时存在此项

    result中的media对象:

    字段类型内容备注
    areasarray地区
    coverstr封面图片url
    horizontal_picturestr横板封面图片url
    media_idnum剧集mdid
    new_epobj最新一话信息
    ratingobj评分信息
    season_idnum剧集ssid
    share_urlurl剧集详情页连接
    titlestr标题
    typenum剧集类型id1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    6:漫画
    7:综艺
    type_namestr剧集类型

    media中的areas数组:

    类型内容备注
    0obj地区信息1
    nobj地区信息(n+1)
    ……obj……

    areas数组中的对象:

    字段类型内容备注
    idnum所属地区编号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:哈萨克斯坦
    namestr所属地区名称

    media中的new_ep对象:

    字段类型内容备注
    idnum最新一话的epid
    indexstr最新一话名称
    index_showstr最新一话显示名称eg. 第1话更新至第4话

    media中的rating对象:

    字段类型内容备注
    countnum总计评分人数
    scorenum评分

    result中的review对象:

    字段类型内容备注
    is_coinnum0作用尚不明确
    is_opennum1作用尚不明确

    示例:

    查询剧集md28220978的基本信息

    curl -G 'https://api.bilibili.com/pgc/review/user' \\
    +--data-urlencode 'media_id=28220978' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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_idnum番剧ssid必要(可选)season_id与ep_id任选其一
    ep_idnum剧集epid必要(可选)season_id与ep_id任选其一

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    ttlnum1作用尚不明确
    resultobj信息本体

    result对象:

    字段类型内容备注
    activityobj参与的活动
    aliasstr作用尚不明确
    bkg_coverstr网页背景图片url无则为空
    coverstr剧集封面图片url
    episodesarray正片剧集列表
    evaluatestr简介
    jp_titlestr作用尚不明确
    linkstr简介页面url
    media_idnum剧集mdid
    modenum2作用尚不明确
    new_epobj更新信息
    paymentobj会员&付费信息若无相关内容则无此项
    positiveobj
    publishobj发布信息
    ratingobj评分信息若无相关内容则无此项
    recordstr备案号无则为空
    rightsobj属性标志信息
    season_idnum番剧ssid
    season_titlestr剧集标题
    seasonsarray同系列所有季信息
    sectionarray花絮、PV、番外等非正片内容若无相关内容则无此项
    seriesobj系列信息
    share_copystr《{标题}》+{备注}
    share_sub_titlestr备注
    share_urlstr番剧播放页面url
    showobj网页全屏标志
    square_coverstr方形封面图片url
    statobj状态数
    statusnum
    subtitlestr剧集副标题
    titlestr剧集标题
    totalnum总计正片集数未完结:大多为-1
    已完结:正整数
    typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    up_infoobjUP主信息若无相关内容则无此项

    result中的activity对象:

    字段类型内容备注
    head_bg_urlstr作用尚不明确
    idnum活动id
    titlestr活动标题

    result中的episodes数组:

    类型内容备注
    0obj正片第1集
    nobj正片第(n+1)集按照顺序排列
    ……obj

    episodes数组中的对象:

    字段类型内容备注
    aidnum单集稿件avid
    badgestr标签文字例如会员限免
    badge_infoobj
    badge_typenum
    bvidstr单集稿件bvid
    cidnum视频cid
    coverstr单集封面url
    dimensionobj分辨率信息
    fromstr
    idnum单集epid
    linkstr单集网页url
    long_titlestr单集完整标题
    pub_timenum发布时间时间戳
    pvnum0作用尚不明确
    release_datestr作用尚不明确
    rightsobj
    share_copystr《{标题}》+第n话+{单集完整标题}
    share_urlstr单集网页url
    short_linkstr单集网页url短链接
    statusnum
    subtitlestr单集副标题观看次数文字
    titlestr单集标题
    vidstr单集vidvupload_+{cid}

    result中的new_ep对象:

    字段类型内容备注
    descstr更新备注
    idnum最新一话epid
    is_newnum是否最新发布0:否
    1:是
    titlestr最新一话标题

    result中的payment对象:

    字段类型内容备注
    discountnum折扣100为原价
    pay_typeobj支付相关
    pricestr售价
    promotionstr推广信息
    vip_discountnum大会员折扣
    vip_first_promotionstr
    vip_pricestr大会员售价
    vip_promotionstr大会员推广信息

    payment中的pay_type对象:

    字段类型内容备注
    allow_discountnum启用折扣0:否
    1:是
    下同
    allow_packnum
    allow_ticketnum启用票券
    allow_time_limitnum启用时间限制
    allow_vip_discountnum启用大会员折扣
    forbid_bbnum禁止使用B币券

    result中的positive对象:

    字段类型内容备注
    idnum
    titlestr

    result中的publish对象:

    字段类型内容备注
    is_finishnum完结状态0:未完结
    1:已完结
    is_startednum是否发布0:未发布
    1:已发布
    pub_timestr发布时间YYYY-MM-DDD hh:mm:ss
    pub_time_showstr发布时间文字介绍
    unknow_pub_datenum0作用尚不明确
    weekdaynum0作用尚不明确

    result中的rating对象:

    字段类型内容备注
    countnum总计评分人数
    scorenum评分

    result中的rights对象:

    字段类型内容备注
    allow_bpnum
    allow_bp_ranknum
    allow_downloadnum
    allow_reviewnum
    area_limitnum
    ban_area_shownum
    can_watchnum
    copyrightstr版权标志bilibili:授权
    dujia:独家
    forbid_prenum
    is_cover_shownum
    is_previewnum
    only_vip_downloadnum
    resourcestr
    watch_platformnum

    result中的seasons数组:

    类型内容备注
    0obj同系列剧集1
    nobj同系列剧集(n+1)按照顺序排列
    ……obj

    seasons数组中的对象:

    字段类型内容备注
    badgestr
    badge_infoobj
    badge_typenum
    coverstr
    media_idstr
    new_epnum
    season_idobj
    season_titlenum
    season_typestr
    statobj

    result中的section数组:

    类型内容备注
    0obj其他内容块1
    nobj其他内容块(n+1)按照顺序排列
    ……obj

    section数组中的对象:

    字段类型内容备注
    episode_idnum0
    episodesarray板块内容
    idnum板块id?
    titlestr板块标题
    typenum

    result中的series对象:

    字段类型内容备注
    series_idnum系列id
    series_titlestr系列名

    result中的show对象:

    字段类型内容备注
    wide_screennum是否全屏0:正常
    1:全屏

    result中的stat对象:

    字段类型内容备注
    coinsnum投币数
    danmakusnum弹幕数
    favoritesnum收藏数
    likesnum点赞数
    replynum评论数
    sharenum分享数
    viewsnum播放数

    result中的up_info对象:

    字段类型内容备注
    avatarstr头像图片url
    followernum粉丝数
    is_follownum0
    midnumUP主mid
    pendantobj
    theme_typenum0
    unamestrUP主昵称
    verify_typenum
    vip_statusnum
    vip_typenum

    获取剧集分集信息

    https://api.bilibili.com/pgc/web/season/section

    请求方式:GET

    鉴权方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    season_idstr剧集ssid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    resultobj信息本体

    result对象:

    字段类型内容备注
    main_sectionobj正片信息
    sectionarray花絮、PV等

    result中的main_section对象:

    字段类型内容备注
    episodesarray分集信息
    idnum分组id
    typenum0:正片
    1:PV&其他
    2:OP&ED
    titlestr

    episodes数组中的对象:

    字段类型内容备注
    aidnum视频av号
    badgestr
    badge_infoobj
    badge_typenum0
    cidnum分集cid
    coverstr分集封面
    fromstrbangumi
    idnum分集epId
    is_premierenum0
    long_titlestr长标题
    share_urlstr分集播放页url
    statusnum2
    titlestr短标题
    vidstr

    badge_info对象:

    字段类型内容备注
    bg_colorstr
    bg_color_nightstr
    textstr

    section数组中的对象:

    main_section对象

    示例:

    curl -L -X GET 'https://api.bilibili.com/pgc/web/season/section?season_id=42290'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    `,96),e=[o];function r(u,c){return n(),t("div",null,e)}const d=s(p,[["render",r],["__file","info.html.vue"]]);export{d as default}; diff --git a/assets/info.html-c8498357.js b/assets/info.html-c8498357.js new file mode 100644 index 0000000000..dc740c96ff --- /dev/null +++ b/assets/info.html-c8498357.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-e8e1d54c","path":"/docs/bangumi/info.html","title":"剧集基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"剧集基本信息(mdid方式)","slug":"剧集基本信息-mdid方式","link":"#剧集基本信息-mdid方式","children":[]},{"level":2,"title":"获取剧集明细(web端)(ssid/epid方式)","slug":"获取剧集明细-web端-ssid-epid方式","link":"#获取剧集明细-web端-ssid-epid方式","children":[]}],"git":{},"filePathRelative":"docs/bangumi/info.md"}');export{e as data}; diff --git a/assets/info.html-ccc81d99.js b/assets/info.html-ccc81d99.js new file mode 100644 index 0000000000..276c72b0c8 --- /dev/null +++ b/assets/info.html-ccc81d99.js @@ -0,0 +1,101 @@ +import{_ as p,r as d,o as l,c as r,a as n,b as t,d as o,w as e,e as s}from"./app-3168cb19.js";const u={},c=s(`

    笔记详细信息

    查询该稿件是否禁止笔记

    https://api.bilibili.com/x/note/is_forbid

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -400请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    forbid_note_entrancebool是否禁止笔记true禁止笔记
    false允许笔记

    示例:

    查询视频稿件av338677252是否禁止笔记

    curl 'https://api.bilibili.com/x/note/info' \\
    +--data-urlencode 'aid=338677252'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "forbid_note_entrance": false
    +    }
    +}
    +

    查询私有笔记内容

    https://api.bilibili.com/x/note/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    note_idnum笔记id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -400请求错误
    -101账号未登录
    79502笔记详情未找到
    79503笔记正文未找到
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    `,25),i=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),k=n("tr",null,[n("td",null,"arc"),n("td",null,"obj"),n("td",null,"对应视频稿件信息"),n("td")],-1),b=n("tr",null,[n("td",null,"audit_status"),n("td",null,"num"),n("td",null,"0"),n("td",null,"作用暂不明确")],-1),v=n("tr",null,[n("td",null,"cid_count"),n("td",null,"num"),n("td",null,"视频分P数"),n("td")],-1),m=n("td",null,"content",-1),h=n("td",null,"str",-1),q=n("td",null,"笔记正文json序列",-1),_=n("tr",null,[n("td",null,"forbid_note_entrance"),n("td",null,"bool"),n("td"),n("td")],-1),y=n("tr",null,[n("td",null,"pub_reason"),n("td",null,"str"),n("td",null,"公开笔记相关原因"),n("td")],-1),g=n("tr",null,[n("td",null,"pub_status"),n("td",null,"num"),n("td",null,"公开笔记状态"),n("td",null,[n("code",null,"1"),t("未公开"),n("br"),n("code",null,"2"),t("已公开"),n("br"),n("code",null,"4"),t("退回")])],-1),f=n("tr",null,[n("td",null,"pub_version"),n("td",null,"num"),n("td"),n("td")],-1),x=n("tr",null,[n("td",null,"summary"),n("td",null,"str"),n("td",null,"笔记预览文本"),n("td")],-1),j=n("tr",null,[n("td",null,"tags"),n("td",null,"array"),n("td",null,"笔记跳转标签列表"),n("td")],-1),E=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"笔记标题"),n("td")],-1),A=s(`

    data中的arc对象:

    字段类型内容备注
    oidnum目标id
    oid_typenum目标id类型0视频(oid=avid)
    titlestr视频标题
    picstr视频封面
    statusnum
    descstr视频简介

    data中的tags数组:

    类型内容备注
    0obj标签1
    nobj标签(n+1)按照笔记中位置排列
    ……obj…………

    tags中的对象:

    字段类型内容备注
    cidnum视频cid
    statusnum0作用尚不明确
    indexnum在稿件中的分P索引
    secondsnum视频进度
    posnum笔记中位置

    示例:

    查询视频av338677252中笔记24508729145690112的内容

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    cvidnum笔记对应的专栏cvid必要非笔记id

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -400请求错误
    79514公开笔记详情未找到
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    `,19),B=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),C=n("tr",null,[n("td",null,"cvid"),n("td",null,"num"),n("td",null,"公开笔记对应的专栏cvid"),n("td")],-1),S=n("tr",null,[n("td",null,"note_id"),n("td",null,"num"),n("td",null,"笔记id"),n("td")],-1),T=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"笔记标题"),n("td")],-1),V=n("tr",null,[n("td",null,"summary"),n("td",null,"str"),n("td",null,"笔记预览"),n("td")],-1),D=n("td",null,"content",-1),F=n("td",null,"str",-1),N=n("td",null,"笔记正文json序列",-1),G=n("tr",null,[n("td",null,"cid_count"),n("td",null,"num"),n("td",null,"(?)"),n("td")],-1),L=n("tr",null,[n("td",null,"pub_status"),n("td",null,"num"),n("td",null,"公开状态"),n("td")],-1),w=n("tr",null,[n("td",null,"tags"),n("td",null,"array"),n("td"),n("td")],-1),P=n("tr",null,[n("td",null,"arc"),n("td",null,"obj"),n("td",null,"稿件信息"),n("td")],-1),R=n("tr",null,[n("td",null,"author"),n("td",null,"obj"),n("td",null,"作者信息"),n("td")],-1),O=n("tr",null,[n("td",null,"forbid_note_entrance"),n("td",null,"bool"),n("td"),n("td")],-1),Q=s(`

    data中的arc对象:

    字段类型内容备注
    oidnum目标id
    oid_typenum目标id类型0视频(oid=avid)
    titlestr标题
    statusnum(?)
    picstr封面url
    descstr简介

    data中的author对象:

    字段类型内容备注
    midnum用户mid
    namestr昵称
    facestr头像url
    levelnum用户等级
    vip_infoobj会员信息
    pendantobj头像框信息

    示例:

    查看公开笔记cv15160286的信息

    curl 'https://api.bilibili.com/x/note/publish/info' \\
    +--data-urlencode 'cvid=15160286'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,8);function U(z,H){const a=d("RouterLink");return l(),r("div",null,[c,n("table",null,[i,n("tbody",null,[k,b,v,n("tr",null,[m,h,q,n("td",null,[t("格式见"),o(a,{to:"/docs/note/#%E9%99%84%E8%A1%A8-%E7%AC%94%E8%AE%B0%E6%AD%A3%E6%96%87%E5%BA%8F%E5%88%97%E6%A0%BC%E5%BC%8F"},{default:e(()=>[t("附表")]),_:1})])]),_,y,g,f,x,j,E])]),A,n("table",null,[B,n("tbody",null,[C,S,T,V,n("tr",null,[D,F,N,n("td",null,[t("格式见"),o(a,{to:"/docs/note/#%E9%99%84%E8%A1%A8-%E7%AC%94%E8%AE%B0%E6%AD%A3%E6%96%87%E5%BA%8F%E5%88%97%E6%A0%BC%E5%BC%8F"},{default:e(()=>[t("附表")]),_:1})])]),G,L,w,P,R,O])]),Q])}const J=p(u,[["render",U],["__file","info.html.vue"]]);export{J as default}; diff --git a/assets/info.html-d84481e4.js b/assets/info.html-d84481e4.js new file mode 100644 index 0000000000..e098bf2388 --- /dev/null +++ b/assets/info.html-d84481e4.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-3a8d6a43","path":"/docs/live/info.html","title":"直播间基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取直播间信息","slug":"获取直播间信息","link":"#获取直播间信息","children":[]},{"level":2,"title":"获取用户对应的直播间状态","slug":"获取用户对应的直播间状态","link":"#获取用户对应的直播间状态","children":[]},{"level":2,"title":"获取房间页初始化信息","slug":"获取房间页初始化信息","link":"#获取房间页初始化信息","children":[]},{"level":2,"title":"获取主播信息","slug":"获取主播信息","link":"#获取主播信息","children":[]},{"level":2,"title":"获取直播间基本信息","slug":"获取直播间基本信息","link":"#获取直播间基本信息","children":[]},{"level":2,"title":"批量查询直播间状态","slug":"批量查询直播间状态","link":"#批量查询直播间状态","children":[]},{"level":2,"title":"获取直播间最近历史弹幕","slug":"获取直播间最近历史弹幕","link":"#获取直播间最近历史弹幕","children":[]},{"level":2,"title":"清晰度代码","slug":"清晰度代码","link":"#清晰度代码","children":[]},{"level":2,"title":"获取直播间信息","slug":"获取直播间信息-1","link":"#获取直播间信息-1","children":[]},{"level":2,"title":"获取直播间主播信息","slug":"获取直播间主播信息","link":"#获取直播间主播信息","children":[]}],"git":{},"filePathRelative":"docs/live/info.md"}');export{l as data}; diff --git a/assets/info.html-e8fa1744.js b/assets/info.html-e8fa1744.js new file mode 100644 index 0000000000..e60a8d44e2 --- /dev/null +++ b/assets/info.html-e8fa1744.js @@ -0,0 +1,3803 @@ +import{_ as e,r as c,o as l,c as u,a as n,b as s,d as t,w as p,e as o}from"./app-3168cb19.js";const r="/bilibili-API-collect/assets/ploading-a19ded76.gif",i={},k=o('

    视频基本信息

    获取视频详细信息(web端)

    https://api.bilibili.com/x/web-interface/wbi/view
    https://api.bilibili.com/x/web-interface/view

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    限制游客访问的视频需要登录

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:权限不足
    -404:无视频
    62002:稿件不可见
    62004:稿件审核中
    62012:仅UP主自己可见
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    ',13),d=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),v=n("tr",null,[n("td",null,"bvid"),n("td",null,"str"),n("td",null,"稿件bvid"),n("td")],-1),q=n("tr",null,[n("td",null,"aid"),n("td",null,"num"),n("td",null,"稿件avid"),n("td")],-1),b=n("tr",null,[n("td",null,"videos"),n("td",null,"num"),n("td",null,"稿件分P总数"),n("td",null,"默认为1")],-1),m=n("tr",null,[n("td",null,"tid"),n("td",null,"num"),n("td",null,"分区tid"),n("td")],-1),y=n("tr",null,[n("td",null,"tname"),n("td",null,"str"),n("td",null,"子分区名称"),n("td")],-1),_=n("tr",null,[n("td",null,"copyright"),n("td",null,"num"),n("td",null,"视频类型"),n("td",null,[s("1:原创"),n("br"),s("2:转载")])],-1),h=n("tr",null,[n("td",null,"pic"),n("td",null,"str"),n("td",null,"稿件封面图片url"),n("td")],-1),g=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"稿件标题"),n("td")],-1),f=n("tr",null,[n("td",null,"pubdate"),n("td",null,"num"),n("td",null,"稿件发布时间"),n("td",null,"秒级时间戳")],-1),w=n("tr",null,[n("td",null,"ctime"),n("td",null,"num"),n("td",null,"用户投稿时间"),n("td",null,"秒级时间戳")],-1),j=n("tr",null,[n("td",null,"desc"),n("td",null,"str"),n("td",null,"视频简介"),n("td")],-1),B=n("tr",null,[n("td",null,"desc_v2"),n("td",null,"array"),n("td",null,"新版视频简介"),n("td")],-1),V=n("td",null,"state",-1),x=n("td",null,"num",-1),z=n("td",null,"视频状态",-1),A=n("td",null,[n("s",null,"attribute"),s("(已经弃用)")],-1),P=n("td",null,[n("s",null,"num")],-1),E=n("td",null,[n("s",null,"稿件属性位配置")],-1),C=n("tr",null,[n("td",null,"duration"),n("td",null,"num"),n("td",null,"稿件总时长(所有分P)"),n("td",null,"单位为秒")],-1),F=n("tr",null,[n("td",null,"forward"),n("td",null,"num"),n("td",null,"撞车视频跳转avid"),n("td",null,"仅撞车视频存在此字段")],-1),M=n("tr",null,[n("td",null,"mission_id"),n("td",null,"num"),n("td",null,"稿件参与的活动id"),n("td")],-1),G=n("tr",null,[n("td",null,"redirect_url"),n("td",null,"str"),n("td",null,"重定向url"),n("td",null,[s("仅番剧或影视视频存在此字段"),n("br"),s("用于番剧&影视的av/bv->ep")])],-1),R=n("tr",null,[n("td",null,"rights"),n("td",null,"obj"),n("td",null,"视频属性标志"),n("td")],-1),T=n("tr",null,[n("td",null,"owner"),n("td",null,"obj"),n("td",null,"视频UP主信息"),n("td")],-1),D=n("tr",null,[n("td",null,"stat"),n("td",null,"obj"),n("td",null,"视频状态数"),n("td")],-1),K=n("tr",null,[n("td",null,"dynamic"),n("td",null,"str"),n("td",null,"视频同步发布的的动态的文字内容"),n("td")],-1),U=n("tr",null,[n("td",null,"cid"),n("td",null,"num"),n("td",null,"视频1P cid"),n("td")],-1),N=n("tr",null,[n("td",null,"dimension"),n("td",null,"obj"),n("td",null,"视频1P分辨率"),n("td")],-1),S=n("tr",null,[n("td",null,"premiere"),n("td"),n("td",null,"null"),n("td")],-1),W=n("tr",null,[n("td",null,"teenage_mode"),n("td",null,"num"),n("td"),n("td")],-1),Y=n("tr",null,[n("td",null,"is_chargeable_season"),n("td",null,"bool"),n("td"),n("td")],-1),J=n("tr",null,[n("td",null,"is_story"),n("td",null,"bool"),n("td"),n("td")],-1),L=n("tr",null,[n("td",null,"no_cache"),n("td",null,"bool"),n("td"),n("td",null,"作用尚不明确")],-1),H=n("tr",null,[n("td",null,"pages"),n("td",null,"array"),n("td",null,"视频分P列表"),n("td")],-1),Q=n("tr",null,[n("td",null,"subtitle"),n("td",null,"obj"),n("td",null,"视频CC字幕信息"),n("td")],-1),I=n("tr",null,[n("td",null,"staff"),n("td",null,"array"),n("td",null,"合作成员列表"),n("td",null,"非合作视频无此项")],-1),O=n("tr",null,[n("td",null,"is_season_display"),n("td",null,"bool"),n("td"),n("td")],-1),Z=n("tr",null,[n("td",null,"user_garb"),n("td",null,"obj"),n("td",null,"用户装扮信息"),n("td")],-1),X=n("tr",null,[n("td",null,"honor_reply"),n("td",null,"obj"),n("td"),n("td")],-1),$=n("tr",null,[n("td",null,"like_icon"),n("td",null,"str"),n("td"),n("td")],-1),nn=n("tr",null,[n("td",null,"argue_info"),n("td",null,"obj"),n("td",null,"争议/警告信息"),n("td")],-1),sn=o("

    data中的desc_v2数组:

    类型内容备注
    0obj新版简介内容

    desc_v2数组中的对象:

    字段类型内容备注
    raw_textstr简介内容type=1时显示原文
    type=2时显示'@'+raw_text+' '并链接至biz_id的主页
    typenum类型1:普通,2:@他人
    biz_idnum被@用户的mid=0,当type=1

    data中的rights对象:

    字段类型内容备注
    bpnum是否允许承包
    elecnum是否支持充电
    downloadnum是否允许下载
    movienum是否电影
    paynum是否PGC付费
    hd5num是否有高码率
    no_reprintnum是否显示“禁止转载”标志
    autoplaynum是否自动播放
    ugc_paynum是否UGC付费
    is_cooperationnum是否为联合投稿
    ugc_pay_previewnum0作用尚不明确
    no_backgroundnum0作用尚不明确
    clean_modenum0作用尚不明确
    is_stein_gatenum是否为互动视频
    is_360num是否为全景视频
    no_sharenum0作用尚不明确
    arc_paynum0作用尚不明确
    free_watchnum0作用尚不明确

    data中的owner对象:

    字段类型内容备注
    midnumUP主mid
    namestrUP主昵称
    facestrUP主头像

    data中的stat对象:

    字段类型内容备注
    aidnum稿件avid
    viewnum播放数
    danmakunum弹幕数
    replynum评论数
    favoritenum收藏数
    coinnum投币数
    sharenum分享数
    now_ranknum当前排名
    his_ranknum历史最高排行
    likenum获赞数
    dislikenum点踩数恒为0
    evaluationstr视频评分
    vtint作用尚不明确恒为0

    data中的pages数组:

    类型内容备注
    0obj1P内容无分P仅有此项
    nobj(n+1)P内容
    ……obj…………

    pages数组中的对象:

    字段类型内容备注
    cidnum分P cid
    pagenum分P序号从1开始
    fromstr视频来源vupload:普通上传(B站)
    hunan:芒果TV
    qq:腾讯
    partstr分P标题
    durationnum分P持续时间单位为秒
    vidstr站外视频vid仅站外视频有效
    weblinkstr站外视频跳转url仅站外视频有效
    dimensionobj当前分P分辨率部分较老视频无分辨率值

    pages数组中的对象中的dimension对象(同data中的dimension对象):

    字段类型内容备注
    widthnum当前分P 宽度
    heightnum当前分P 高度
    rotatenum是否将宽高对换0:正常
    1:对换

    subtitle对象:

    字段类型内容备注
    allow_submitbool是否允许提交字幕
    listarray字幕列表

    subtitle对象中的list数组:

    类型内容备注
    0obj字幕1
    nobj字幕(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum字幕id
    lanstr字幕语言
    lan_docstr字幕语言名称
    is_lockbool是否锁定
    author_midnum字幕上传者mid
    subtitle_urlstrjson格式字幕文件url
    authorobj字幕上传者信息

    list数组中的对象中的author对象:

    字段类型内容备注
    midnum字幕上传者mid
    namestr字幕上传者昵称
    sexstr字幕上传者性别男 女 保密
    facestr字幕上传者头像url
    signstr字幕上传者签名
    ranknum10000作用尚不明确
    birthdaynum0作用尚不明确
    is_fake_accountnum0作用尚不明确
    is_deletednum0作用尚不明确

    staff数组:

    类型内容备注
    0obj合作成员1
    nobj合作成员(n+1)
    ……obj…………

    staff数组中的对象:

    字段类型内容备注
    midnum成员mid
    titlestr成员名称
    namestr成员昵称
    facestr成员头像url
    vipobj成员大会员状态
    officialobj成员认证信息
    followernum成员粉丝数
    label_stylenum

    staff数组中的对象中的vip对象:

    字段类型内容备注
    typenum成员会员类型0:无
    1:月会员
    2:年会员
    statusnum会员状态0:无
    1:有
    theme_typenum0

    staff数组中的对象中的official对象:

    ",31),an=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),tn=n("td",null,"role",-1),pn=n("td",null,"num",-1),on=n("td",null,"成员认证级别",-1),en=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"成员认证名"),n("td",null,"无为空")],-1),cn=n("tr",null,[n("td",null,"desc"),n("td",null,"str"),n("td",null,"成员认证备注"),n("td",null,"无为空")],-1),ln=n("tr",null,[n("td",null,"type"),n("td",null,"num"),n("td",null,"成员认证类型"),n("td",null,[s("-1:无"),n("br"),s("0:有")])],-1),un=o(`

    data中的user_garb对象:

    字段类型内容备注
    url_image_ani_cutstr某url?

    data中的honor_reply对象:

    字段类型内容备注
    honorarray

    honor数组中的对象:

    字段类型内容备注
    aidnum当前稿件aid
    typenum1:入站必刷收录
    2:第?期每周必看
    3:全站排行榜最高第?名
    4:热门
    descnum描述
    weekly_recommend_numnum

    data中的argue_info对象:

    字段类型内容备注
    argue_linkstr作用尚不明确
    argue_msgstr警告/争议提示信息
    argue_typeint作用尚不明确

    示例:

    获取视频av85440373/BV117411r7R1的基本信息

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view' \\
    +--data-urlencode 'aid=85440373'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view' \\
    +--data-urlencode 'bvid=BV117411r7R1'
    +
    查看响应示例:
    {
    +  "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": "https://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg"
    +    },
    +    "stat": {
    +      "aid": 85440373,
    +      "view": 2353489,
    +      "danmaku": 12026,
    +      "reply": 2648,
    +      "favorite": 58761,
    +      "coin": 72088,
    +      "share": 9539,
    +      "now_rank": 0,
    +      "his_rank": 55,
    +      "like": 159350,
    +      "dislike": 0,
    +      "evaluation": "",
    +      "vt": 0
    +    },
    +    "argue_info": {
    +      "argue_msg": "",
    +      "argue_type": 0,
    +      "argue_link": ""
    +    },
    +    "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,
    +    "is_upower_exclusive": false,
    +    "is_upower_play": false,
    +    "enable_vt": 0,
    +    "vt_display": "",
    +    "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": [
    +        {
    +          "id": 1061981378473780000,
    +          "lan": "ai-zh",
    +          "lan_doc": "中文(自动生成)",
    +          "is_lock": false,
    +          "subtitle_url": "",
    +          "type": 1,
    +          "id_str": "1061981378473779968",
    +          "ai_type": 0,
    +          "ai_status": 2,
    +          "author": {
    +            "mid": 0,
    +            "name": "",
    +            "sex": "",
    +            "face": "",
    +            "sign": "",
    +            "rank": 0,
    +            "birthday": 0,
    +            "is_fake_account": 0,
    +            "is_deleted": 0,
    +            "in_reg_audit": 0,
    +            "is_senior_member": 0
    +          }
    +        }
    +      ]
    +    },
    +    "staff": [
    +      {
    +        "mid": 66606350,
    +        "title": "UP主",
    +        "name": "Crazy_Bucket_陈楒潼",
    +        "face": "https://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg",
    +        "vip": {
    +          "type": 2,
    +          "status": 1,
    +          "due_date": 1706112000000,
    +          "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,
    +          "tv_due_date": 0
    +        },
    +        "official": {
    +          "role": 1,
    +          "title": "bilibili 知名音乐UP主",
    +          "desc": "",
    +          "type": 0
    +        },
    +        "follower": 650859,
    +        "label_style": 0
    +      },
    +      {
    +        "mid": 53456,
    +        "title": "曲绘",
    +        "name": "Warma",
    +        "face": "https://i2.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg",
    +        "vip": {
    +          "type": 2,
    +          "status": 1,
    +          "due_date": 1738339200000,
    +          "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": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
    +            "img_label_uri_hant": "",
    +            "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
    +            "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png"
    +          },
    +          "avatar_subscript": 1,
    +          "nickname_color": "#FB7299",
    +          "role": 3,
    +          "avatar_subscript_url": "",
    +          "tv_vip_status": 1,
    +          "tv_vip_pay_type": 1,
    +          "tv_due_date": 1721145600
    +        },
    +        "official": {
    +          "role": 1,
    +          "title": "bilibili 知名UP主",
    +          "desc": "",
    +          "type": 0
    +        },
    +        "follower": 4223581,
    +        "label_style": 0
    +      }
    +    ],
    +    "is_season_display": false,
    +    "user_garb": {
    +      "url_image_ani_cut": "https://i0.hdslb.com/bfs/garb/item/311b29b795eb3f09ed0401a56eddf5c90b8fbfd6.bin"
    +    },
    +    "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": "",
    +    "need_jump_bv": false,
    +    "disable_show_up_info": false
    +  }
    +}
    +

    视频标题为:当我给拜年祭的快板加了电音配乐…

    视频分区为: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

    获取视频超详细信息(web端)

    https://api.bilibili.com/x/web-interface/view/detail

    https://api.bilibili.com/x/web-interface/wbi/view/detail

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    `,35),rn=o('

    限制游客访问的视频需要登录

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:权限不足
    -404:无视频
    62002:稿件不可见
    62004:稿件审核中
    62012:仅UP主自己可见
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    Viewobj视频基本信息
    Cardobj视频UP主信息
    Tagsarray视频TAG信息
    Replyobj视频热评信息
    Relatedarray推荐视频信息
    Specnull作用尚不明确
    hot_shareobj作用尚不明确
    elecnull作用尚不明确
    recommendnull作用尚不明确
    view_additobj作用尚不明确

    data中的View对象:

    基本同「获取视频详细信息(web端)」中的data对象

    data中的Card对象:

    字段类型内容备注
    cardobjUP主名片信息
    spaceobj主页头图
    followingbool是否关注此用户true:已关注
    false:未关注
    需要登录(Cookie)
    未登录为false
    archive_countnum用户稿件数
    article_countnum用户专栏数
    followernum粉丝数
    like_numnumUP主获赞次数

    Card中的card对象:

    字段类型内容备注
    midstr用户mid
    namestr用户昵称
    approveboolfalse作用尚不明确
    sexstr用户性别男 女 保密
    rankstr10000作用尚不明确
    facestr用户头像链接
    face_nftnum是否为 nft 头像0不是nft头像
    1是 nft 头像
    DisplayRankstr0作用尚不明确
    regtimenum0作用尚不明确
    spacestanum0作用尚不明确
    birthdaystr作用尚不明确
    placestr作用尚不明确
    descriptionstr作用尚不明确
    articlenum0作用尚不明确
    attentionsarray作用尚不明确
    fansnum粉丝数
    friendnum关注数
    attentionnum关注数
    signstr签名
    level_infoobj等级
    pendantobj挂件
    nameplateobj勋章
    Officialobj认证信息
    official_verifyobj认证信息2
    vipobj大会员状态
    is_senior_membernum是否为硬核会员0:否
    1:是

    card中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0作用尚不明确
    current_expnum0作用尚不明确
    next_expnum0作用尚不明确

    card中的pendant对象:

    字段类型内容备注
    pidnum挂件id
    namestr挂件名称
    imagestr挂件图片url
    expirenum0作用尚不明确

    card中的nameplate对象:

    字段类型内容备注
    nidnum勋章id详细说明有待补充
    namestr勋章名称
    imagestr挂件图片url 正常
    image_smallstr勋章图片url 小
    levelstr勋章等级
    conditionstr勋章条件

    card中的Official对象:

    ',21),kn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),dn=n("td",null,"role",-1),vn=n("td",null,"num",-1),qn=n("td",null,"认证类型",-1),bn=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"认证信息"),n("td",null,"无为空")],-1),mn=n("tr",null,[n("td",null,"desc"),n("td",null,"str"),n("td",null,"认证备注"),n("td",null,"无为空")],-1),yn=n("tr",null,[n("td",null,"type"),n("td",null,"num"),n("td",null,"是否认证"),n("td",null,[s("-1:无"),n("br"),s("0:认证")])],-1),_n=o("

    card中的official_verify对象:

    字段类型内容备注
    typenum是否认证-1:无
    0:认证
    descstr认证信息无为空

    card中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间Unix时间戳(毫秒)
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    rolenum大角色类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    avatar_subscript_urlstr大会员角标地址
    tv_vip_statusnum电视大会员状态0:未开通
    tv_vip_pay_typenum电视大会员支付类型

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr空串
    img_label_uri_hantstr空串
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    Card中的space对象:

    字段类型内容备注
    s_imgstr主页头图url 小图
    l_imgstr主页头图url 正常

    data中的Tags数组:

    ",9),hn=n("p",null,[n("code",null,"data"),s("中的"),n("code",null,"Reply"),s("对象:")],-1),gn=o(`

    data中的Related数组:

    类型内容备注
    0obj推荐视频1
    nobj推荐视频(n+1)
    ……obj…………

    Related数组中的对象:

    基本同「获取视频详细信息(web端)」中的data对象,已知没有分P信息

    data中的hot_share对象:

    字段类型内容备注
    showboolfalse作用尚不明确
    listarray作用尚不明确

    data中的view_addit对象:

    字段类型内容备注
    63boolfalse作用尚不明确
    64boolfalse作用尚不明确
    69boolfalse作用尚不明确
    71boolfalse作用尚不明确
    72boolfalse作用尚不明确

    示例:

    获取视频av170001/BV17x411w7KC的详细信息

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view/detail' \\
    +--data-urlencode 'aid=170001'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view/detail' \\
    +--data-urlencode 'bvid=BV17x411w7KC'
    +
    查看响应示例:
    {
    +  "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": 44433679,
    +        "danmaku": 912351,
    +        "reply": 180971,
    +        "favorite": 889815,
    +        "coin": 285498,
    +        "share": 637667,
    +        "now_rank": 0,
    +        "his_rank": 13,
    +        "like": 904145,
    +        "dislike": 0,
    +        "evaluation": "",
    +        "vt": 0
    +      },
    +      "argue_info": {
    +        "argue_msg": "",
    +        "argue_type": 0,
    +        "argue_link": ""
    +      },
    +      "dynamic": "",
    +      "cid": 279786,
    +      "dimension": {
    +        "width": 512,
    +        "height": 288,
    +        "rotate": 0
    +      },
    +      "premiere": null,
    +      "teenage_mode": 0,
    +      "is_chargeable_season": false,
    +      "is_story": false,
    +      "is_upower_exclusive": false,
    +      "is_upower_play": false,
    +      "enable_vt": 0,
    +      "vt_display": "",
    +      "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": "https://i0.hdslb.com/bfs/garb/item/311b29b795eb3f09ed0401a56eddf5c90b8fbfd6.bin"
    +      },
    +      "honor_reply": {
    +        "honor": [
    +          {
    +            "aid": 170001,
    +            "type": 3,
    +            "desc": "全站排行榜最高第13名",
    +            "weekly_recommend_num": 0
    +          }
    +        ]
    +      },
    +      "like_icon": "",
    +      "need_jump_bv": false,
    +      "disable_show_up_info": false
    +    },
    +    "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": 65409,
    +        "friend": 44,
    +        "attention": 44,
    +        "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": "",
    +          "n_pid": 0
    +        },
    +        "nameplate": {
    +          "nid": 9,
    +          "name": "出道偶像",
    +          "image": "https://i2.hdslb.com/bfs/face/3f2d64f048b39fb6c26f3db39df47e6080ec0f9c.png",
    +          "image_small": "https://i1.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,
    +          "tv_due_date": 0,
    +          "vipType": 1,
    +          "vipStatus": 0
    +        },
    +        "is_senior_member": 0
    +      },
    +      "space": {
    +        "s_img": "http://i2.hdslb.com/bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png",
    +        "l_img": "http://i2.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png"
    +      },
    +      "following": false,
    +      "archive_count": 390,
    +      "article_count": 0,
    +      "follower": 65409,
    +      "like_num": 1020481
    +    },
    +    "Tags": [
    +      {
    +        "tag_id": 0,
    +        "tag_name": "Hop",
    +        "cover": "",
    +        "head_cover": "",
    +        "content": "",
    +        "short_content": "",
    +        "type": 0,
    +        "state": 0,
    +        "ctime": 0,
    +        "count": {
    +          "view": 0,
    +          "use": 0,
    +          "atten": 0
    +        },
    +        "is_atten": 0,
    +        "likes": 0,
    +        "hates": 0,
    +        "attribute": 0,
    +        "liked": 0,
    +        "hated": 0,
    +        "extra_attr": 0,
    +        "music_id": "MA407124762800730394",
    +        "tag_type": "bgm",
    +        "is_activity": false,
    +        "color": "",
    +        "alpha": 0,
    +        "is_season": false,
    +        "subscribed_count": 0,
    +        "archive_count": "",
    +        "featured_count": 0,
    +        "jump_url": "https://music.bilibili.com/h5/music-detail?music_id=MA407124762800730394&cid=279786&aid=170001"
    +      },
    +      {
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "archive_count": "-",
    +        "featured_count": 0,
    +        "jump_url": ""
    +      }
    +    ],
    +    "Reply": {
    +      "page": null,
    +      "replies": [
    +        {
    +          "rpid": 1,
    +          "oid": 0,
    +          "type": 0,
    +          "mid": 0,
    +          "root": 0,
    +          "parent": 0,
    +          "dialog": 0,
    +          "count": 0,
    +          "rcount": 0,
    +          "state": 0,
    +          "fansgrade": 0,
    +          "attr": 0,
    +          "ctime": 0,
    +          "like": 0,
    +          "action": 0,
    +          "content": null,
    +          "replies": null,
    +          "assist": 0,
    +          "show_follow": false
    +        }
    +      ]
    +    },
    +    "Related": [
    +      {
    +        "aid": 429064052,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/d894070d2dad98a17f6f9d6c20885ac00ccc372f.jpg",
    +        "title": "【高清版本修复】van样暗黑配音",
    +        "pubdate": 1659252811,
    +        "ctime": 1659251713,
    +        "desc": "BV1rU4y1Q7Fh的高清修复版本\\n高清版本",
    +        "state": 0,
    +        "duration": 92,
    +        "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": 2138730253,
    +          "name": "Kochiya-Sanae",
    +          "face": "https://i1.hdslb.com/bfs/face/32c7158bb57634488fc7624c8f64e9a7b2cc66c3.jpg"
    +        },
    +        "stat": {
    +          "aid": 429064052,
    +          "view": 871978,
    +          "danmaku": 951,
    +          "reply": 794,
    +          "favorite": 28667,
    +          "coin": 7401,
    +          "share": 18597,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 39961,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 871978
    +        },
    +        "dynamic": "",
    +        "cid": 1249117530,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1CG411h7We",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n230828qn1qsxsilxzs5ee3ngc96ejhn_firsti.jpg",
    +        "pub_location": "江苏",
    +        "bvid": "BV1CG411h7We",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 429064052,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 331415167,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/709a2da2014aba9b11cbb3bdbb229e82860f5c40.jpg",
    +        "title": "𓀬古埃及𓀯宽带广告𓀿𓀶𓈷𓉅 𓁞 𓁟𓂮 𓂯𓃠𓃄𓀰 𓀱𓀐𓀡 𓀼 𓀽𓁀𓉆𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓀷𓀾",
    +        "pubdate": 1612174676,
    +        "ctime": 1612174676,
    +        "desc": "??? ?最新?发掘出的 ?古埃及?宽带? 广告? ?? ???? ??? ? ???\\n??汉谟拉比?宽带??? BV1rv411s7b6\\n印尼宽带西藏特供版ཧིན་ཉི་ཐགས་ཡངས་དམིགས་བསལ་མཁོ་འདོན་པར་གཞི་BV1ao4y1d7VH\\n印औ度ष宽फ 带(梵ह文)औगळऴॊवशछजॊझञस BV1bA411u7Fy\\n【乱 码】此 宽 带 无 法 显 示     迠鐩\\u0007\\u0010内 暫?\\u0015\\fV/豬嶬 源=塇  BV1P54y1W75k",
    +        "state": 0,
    +        "duration": 37,
    +        "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": 294594289,
    +          "name": "不咕的鱼鸽子",
    +          "face": "https://i1.hdslb.com/bfs/face/10eb0658f6ff99e8f042168b15f7c684533f359e.webp"
    +        },
    +        "stat": {
    +          "aid": 331415167,
    +          "view": 2756922,
    +          "danmaku": 12348,
    +          "reply": 3179,
    +          "favorite": 37005,
    +          "coin": 7427,
    +          "share": 8592,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 134223,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2756922
    +        },
    +        "dynamic": "#IndiHomePaket##印度尼西亚##印尼##印尼宽带##鬼畜##古埃及#\\n𓀬𓀷𓀾 𓀿最新𓀯发掘出的 𓀶古埃及𓈷宽带𓉅 广告𓁞 𓁟𓂮 𓂯𓃠𓃄𓀰 𓀱𓀐𓀡 𓀼 𓀽𓁀𓉆\\n𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓁇𓁈𓁉𓁊𓁋𓁌𓁍𓁎𓁏𓁐𓁑𓁒𓁓𓁔𓁕𓁖𓁗𓁘𓁙𓁚𓁛𓁜𓁝𓁞𓁟𓁠𓁡𓁢𓁣𓁤𓁥",
    +        "cid": 291047427,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1LA411u7MY",
    +        "bvid": "BV1LA411u7MY",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 331415167,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 586401881,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/06c2aa7637c8bc97addb2e4d51c5eb5f9c64b7a5.jpg",
    +        "title": "【凭良心广告补档】天灾!天灾!天灾!(绝望)(av114514)",
    +        "pubdate": 1612109179,
    +        "ctime": 1612109179,
    +        "desc": "原b站视频补档\\n飞机君将该广告视频删除后的普通补档。\\n弹幕付与无弹幕录屏版本已有T-N-O-K兄贵搬过,如需生草可移步那里。\\n本视频是非录屏的无弹幕版本,就是当初的原视频。适合想要极致观看体验的人与想要使用本素材进行二次创作者。",
    +        "state": 0,
    +        "duration": 71,
    +        "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": 1731873,
    +          "name": "Codex_Septimia",
    +          "face": "https://i0.hdslb.com/bfs/face/ad55ee98ae7992f5e7631bc8340ee1ac91eeccee.jpg"
    +        },
    +        "stat": {
    +          "aid": 586401881,
    +          "view": 791249,
    +          "danmaku": 1667,
    +          "reply": 691,
    +          "favorite": 8050,
    +          "coin": 453,
    +          "share": 2117,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 19435,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 791249
    +        },
    +        "dynamic": "KNN有知名的美声,银环妈作为戏曲工作者一定也有美声。\\n银环妈为凭良心做形象代言人,KNNUnofficial发布凭良心视频。\\nKNN是木毛的母亲,银环妈的艺名中有“妈”字。\\nKNN银环妈说成立。",
    +        "cid": 290699578,
    +        "dimension": {
    +          "width": 368,
    +          "height": 276,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1cz4y1D7Mz",
    +        "up_from_v2": 8,
    +        "pub_location": "山西",
    +        "bvid": "BV1cz4y1D7Mz",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 586401881,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 320315699,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/b146c7765d450bd1dee28bd86ed7102f769df827.jpg",
    +        "title": "HARDCORE大爷",
    +        "pubdate": 1693051288,
    +        "ctime": 1693051288,
    +        "desc": "群友发的",
    +        "state": 0,
    +        "duration": 31,
    +        "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": 99802647,
    +          "name": "丿情缘灬风",
    +          "face": "https://i0.hdslb.com/bfs/face/7329960b16484d612fc714063dba592b1e09f936.jpg"
    +        },
    +        "stat": {
    +          "aid": 320315699,
    +          "view": 694032,
    +          "danmaku": 493,
    +          "reply": 1332,
    +          "favorite": 16817,
    +          "coin": 1356,
    +          "share": 16275,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 32469,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 694032
    +        },
    +        "dynamic": "",
    +        "cid": 1247688806,
    +        "dimension": {
    +          "width": 544,
    +          "height": 960,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Xw411Q7Ah",
    +        "up_from_v2": 28,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n230826qn3j53pg60bkvzg3cghpme06f_firsti.jpg",
    +        "pub_location": "浙江",
    +        "bvid": "BV1Xw411Q7Ah",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 320315699,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 472001919,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/80d4ec02cbb98db2c828f0707c01d6c096a3a9d8.jpg",
    +        "title": "【年龄和声音终于一致了】rick应邀重新演绎经典MV",
    +        "pubdate": 1660644003,
    +        "ctime": 1660644003,
    +        "desc": "www.sina.com\\n【高清重制版“你被骗了”】",
    +        "state": 0,
    +        "duration": 58,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 313884779,
    +          "name": "submarineboy",
    +          "face": "https://i2.hdslb.com/bfs/face/f8d8aca5418f41dead66db2940aca4fab6bf578c.jpg"
    +        },
    +        "stat": {
    +          "aid": 472001919,
    +          "view": 1507776,
    +          "danmaku": 499,
    +          "reply": 361,
    +          "favorite": 11986,
    +          "coin": 1258,
    +          "share": 1893,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 53487,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1507776
    +        },
    +        "dynamic": "",
    +        "cid": 805405430,
    +        "dimension": {
    +          "width": 864,
    +          "height": 480,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1aT411A7YY",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220816qno8liw07p36rv296yk523ze3_firsti.jpg",
    +        "pub_location": "安徽",
    +        "bvid": "BV1aT411A7YY",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 472001919,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 978001831,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/d4f59d4d0767f7d2b0fb27e99a60825459b77db2.jpg",
    +        "title": "德国某游乐场",
    +        "pubdate": 1641964720,
    +        "ctime": 1641964720,
    +        "desc": "https://www.reddit.com/r/AccidentalRacism/comments/ruy8i7/this_funfair_ride_that_is_in_germany/?utm_source=share&utm_medium=ios_app&utm_name=iossmf",
    +        "state": 0,
    +        "duration": 23,
    +        "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": 393830038,
    +          "name": "Jed_Toastie",
    +          "face": "https://i1.hdslb.com/bfs/face/6bb2426ddcecca66b12f2cf3899bfca0b02e966d.jpg"
    +        },
    +        "stat": {
    +          "aid": 978001831,
    +          "view": 1007311,
    +          "danmaku": 341,
    +          "reply": 441,
    +          "favorite": 10873,
    +          "coin": 542,
    +          "share": 5990,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 24825,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1007311
    +        },
    +        "dynamic": "",
    +        "cid": 482608581,
    +        "dimension": {
    +          "width": 426,
    +          "height": 240,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1y44y1j7Hm",
    +        "up_from_v2": 11,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220112ad1wiskq1jv187v18sk8ybhpx_firsti.jpg",
    +        "pub_location": "中国香港",
    +        "bvid": "BV1y44y1j7Hm",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 978001831,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "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": 1476915,
    +          "danmaku": 644,
    +          "reply": 650,
    +          "favorite": 6183,
    +          "coin": 368,
    +          "share": 1100,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 30637,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1476915
    +        },
    +        "dynamic": "#音乐选集##保加利亚#",
    +        "cid": 60984624,
    +        "dimension": {
    +          "width": 640,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Qb411N7Ez",
    +        "up_from_v2": 8,
    +        "bvid": "BV1Qb411N7Ez",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 34812433,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 30406016,
    +        "videos": 1,
    +        "tid": 124,
    +        "tname": "社科·法律·心理",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/655cecf4c63455a5eedf650425b5b72d043746c8.jpg",
    +        "title": "youtube(油管)的镇管之宝 (播放量破30亿的视频)",
    +        "pubdate": 1535318818,
    +        "ctime": 1535318815,
    +        "desc": "不知道为什么大晚上的想做这个\\n(可能是我早上作死看了什么镇店之宝,然后就去查了一下B站有没有youtube的镇店之宝排行,发现没有,然后想做,然后。。这个就出来了,不过。。。50亿播放有点吓人)\\n简介字数不够撑,相关链接会在明晚发(晚修)\\nhttps://www.youtube.com/watch?v=OPf0YbXqDm0\\nwatch?v=9bZkp7q19f0、RgKAFK5djSk、kJQP7kiw5Fk、JGwWNGJdvx8、KYniUCGPGLs",
    +        "state": 0,
    +        "duration": 262,
    +        "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": 24532501,
    +          "name": "orange橙汁juice",
    +          "face": "https://i1.hdslb.com/bfs/face/0b8852420761029a8d121d22a8311bc19e0a5905.jpg"
    +        },
    +        "stat": {
    +          "aid": 30406016,
    +          "view": 13872585,
    +          "danmaku": 34046,
    +          "reply": 6961,
    +          "favorite": 116501,
    +          "coin": 26718,
    +          "share": 3391,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 277220,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 13872585
    +        },
    +        "dynamic": "#油管的镇店之宝##Youtube##MV和点击量#\\n不知道为什么想做这个,但已经做了,那就凑合吧,这也不是水视频,我查了十多个视频才找到这些数据",
    +        "cid": 53051723,
    +        "dimension": {
    +          "width": 784,
    +          "height": 596,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1PW411Q7LB",
    +        "bvid": "BV1PW411Q7LB",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 30406016,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 265120317,
    +        "videos": 1,
    +        "tid": 184,
    +        "tname": "预告·资讯",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/225cd9efeb8bf7899faac9c0eb52189a9d2721e5.jpg",
    +        "title": "\\"人类能活下来吗?\\"吴京刘德华灵魂发问 电影《流浪地球 2 》 发布\\"MOSS \\" 预告",
    +        "pubdate": 1673251590,
    +        "ctime": 1673251590,
    +        "desc": "",
    +        "state": 0,
    +        "duration": 112,
    +        "redirect_url": "https://www.bilibili.com/bangumi/play/ep741418?theme=movie",
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 1,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 207539637,
    +          "name": "哔哩哔哩放映员",
    +          "face": "https://i0.hdslb.com/bfs/face/370e15e2cb6caf92a86d210b393617a9bbf6e884.jpg"
    +        },
    +        "stat": {
    +          "aid": 265120317,
    +          "view": 1592156,
    +          "danmaku": 1080,
    +          "reply": 4147,
    +          "favorite": 2938,
    +          "coin": 8553,
    +          "share": 1209,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 23059,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1592156
    +        },
    +        "dynamic": "#B刷电影资讯#电影《流浪地球2》的故事围绕《流浪地球》前作展开,讲述了危机刚刚降临,地球开始\\"流浪\\"之前,世界陷入一片恐慌之中,万座行星发动机正在建造,人类面临末日灾难的严峻挑战。影片由郭帆导演,刘慈欣监制,吴京、李雪健、沙溢、宁理、王智、朱颜曼滋领衔主演,刘德华先生特别演出。即将于2023年大年初一全国上映。",
    +        "cid": 958149402,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1TY411y7Ds",
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n230109qn1wytmh3zto827u2z3wfe251_firsti.jpg",
    +        "pub_location": "上海",
    +        "bvid": "BV1TY411y7Ds",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 265120317,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 851303752,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/1642e1c237b72955ba5aee24629469725d332a94.jpg",
    +        "title": "这可能是b站最牛的用户了,居然有人敢在b站创始人之一的评论区写日记???还更新了十多年!?",
    +        "pubdate": 1644248539,
    +        "ctime": 1644248539,
    +        "desc": "av349",
    +        "state": 0,
    +        "duration": 157,
    +        "mission_id": 342009,
    +        "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": 18061914,
    +          "name": "练实",
    +          "face": "https://i0.hdslb.com/bfs/face/3eb152e249e72170553c88d1702ba99b317e4399.jpg"
    +        },
    +        "stat": {
    +          "aid": 851303752,
    +          "view": 2700655,
    +          "danmaku": 205,
    +          "reply": 2653,
    +          "favorite": 10211,
    +          "coin": 759,
    +          "share": 1693,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 86268,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2700655
    +        },
    +        "dynamic": "",
    +        "cid": 503631036,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1cL4y1s7kH",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220207a22mkkm3hl8kqyc10hhl7xxan_firsti.jpg",
    +        "bvid": "BV1cL4y1s7kH",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 851303752,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 1018701,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c392b46c9da4c53f6d9ec9b2e317ed636f96d6bf.jpg",
    +        "title": "【克里米亚 女检察官】我有特别的卖萌技巧",
    +        "pubdate": 1395305501,
    +        "ctime": 1497423668,
    +        "desc": "自制 萌就是正义!",
    +        "state": 0,
    +        "duration": 68,
    +        "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": 330676,
    +          "name": "庄生晓梦Void",
    +          "face": "https://i1.hdslb.com/bfs/face/c513e74972761bd3aaf9da5beb1a5dad00dcefb4.gif"
    +        },
    +        "stat": {
    +          "aid": 1018701,
    +          "view": 6959542,
    +          "danmaku": 25812,
    +          "reply": 5682,
    +          "favorite": 62703,
    +          "coin": 12863,
    +          "share": 3544,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 89183,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 6959542
    +        },
    +        "dynamic": "",
    +        "cid": 1473824,
    +        "dimension": {
    +          "width": 480,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1es411Z7UG",
    +        "bvid": "BV1es411Z7UG",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 1018701,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 424669369,
    +        "videos": 1,
    +        "tid": 27,
    +        "tname": "综合",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/6b9e84717a9586cd6f46ee896dc730c23310e875.jpg",
    +        "title": "被观众推荐看《HOP》的日本vtuber 你们都喜欢这种的吗",
    +        "pubdate": 1647085427,
    +        "ctime": 1647085427,
    +        "desc": "太厉害了",
    +        "state": 0,
    +        "duration": 270,
    +        "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": 1861416807,
    +          "name": "羽澄照乌愈Official",
    +          "face": "https://i0.hdslb.com/bfs/face/589d1c9bc57916158a166af5399c1a5234858924.jpg"
    +        },
    +        "stat": {
    +          "aid": 424669369,
    +          "view": 948657,
    +          "danmaku": 1381,
    +          "reply": 946,
    +          "favorite": 5509,
    +          "coin": 2278,
    +          "share": 508,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 36605,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 948657
    +        },
    +        "dynamic": "",
    +        "cid": 547889792,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1g3411L7iP",
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220312qn1fhcj5tl3giyi3m43p8scsu_firsti.jpg",
    +        "bvid": "BV1g3411L7iP",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 424669369,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 243915800,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/4d7ee00b0124c65d0fa89ae99709a0e4f19ba4d7.jpg",
    +        "title": "建议改成:美国国歌",
    +        "pubdate": 1595583733,
    +        "ctime": 1595583734,
    +        "desc": "BGM: What Did You learn in School Today? - Pete Seeger",
    +        "state": 0,
    +        "duration": 100,
    +        "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": 36022720,
    +          "name": "勺子与保鲜膜",
    +          "face": "https://i1.hdslb.com/bfs/face/bb2037d6db4075c06da5fc798b0fe3fcf11a64fe.jpg"
    +        },
    +        "stat": {
    +          "aid": 243915800,
    +          "view": 11676714,
    +          "danmaku": 7781,
    +          "reply": 5271,
    +          "favorite": 261968,
    +          "coin": 158421,
    +          "share": 33328,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 640175,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 11676714
    +        },
    +        "dynamic": "#特朗普##美国##美利坚#",
    +        "cid": 216095542,
    +        "dimension": {
    +          "width": 1024,
    +          "height": 576,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Nv411q7dJ",
    +        "bvid": "BV1Nv411q7dJ",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 243915800,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 843702081,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/ba6bef51ed095c85250af0427da105eec2b20727.jpg",
    +        "title": "油管官方惨遭Rickroll",
    +        "pubdate": 1610655191,
    +        "ctime": 1610655191,
    +        "desc": "twitter.com/edma06RBLX/status/1336063965701545988\\n真实事件",
    +        "state": 0,
    +        "duration": 24,
    +        "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": 477500,
    +          "name": "tobラハイサ",
    +          "face": "https://i2.hdslb.com/bfs/face/74909beeba74b6ecb53e8d93f36d14e3371170a6.jpg"
    +        },
    +        "stat": {
    +          "aid": 843702081,
    +          "view": 2473244,
    +          "danmaku": 789,
    +          "reply": 882,
    +          "favorite": 14983,
    +          "coin": 678,
    +          "share": 3097,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 79300,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2473244
    +        },
    +        "dynamic": "",
    +        "cid": 282521485,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1L54y1s7wg",
    +        "bvid": "BV1L54y1s7wg",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 843702081,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 805480295,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/1801214eb4b7add422f2e08406204978b2b9b481.jpg",
    +        "title": "Ngana Rindu高级版",
    +        "pubdate": 1631568595,
    +        "ctime": 1631568595,
    +        "desc": "https://www.youtube.com/watch?v=DkrAxPsKJv8\\n鉴于很多人想要视频,我就打包了视频和bgm。需要的话请自行下载[\\n链接: https://pan.baidu.com/s/1sDIdjy-FHrpcb9PDsi6XEg 提取码: u83n",
    +        "state": 0,
    +        "duration": 83,
    +        "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": 1603908990,
    +          "name": "schei8e",
    +          "face": "https://i0.hdslb.com/bfs/face/4d3127af1eb8ff4784f29f7a909ff1b152df8e11.jpg"
    +        },
    +        "stat": {
    +          "aid": 805480295,
    +          "view": 28247298,
    +          "danmaku": 20112,
    +          "reply": 7761,
    +          "favorite": 513278,
    +          "coin": 170786,
    +          "share": 207987,
    +          "now_rank": 0,
    +          "his_rank": 31,
    +          "like": 943402,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 28247298
    +        },
    +        "dynamic": "",
    +        "cid": 407888077,
    +        "dimension": {
    +          "width": 608,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1R34y1Q7J4",
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n210914a233a5cb5ku791zvxkpays3r6_firsti.jpg",
    +        "bvid": "BV1R34y1Q7J4",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 805480295,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 600031475,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/7b9bd555ed88c9ff6ff746551ab49219ce2bf344.jpg",
    +        "title": "【8K】MV 宮本浩次 《冬之花》「冬の花」—— 收藏级画质",
    +        "pubdate": 1655283491,
    +        "ctime": 1655283492,
    +        "desc": "关注后自动回复获取群号\\n往期视频下载链接在群文件\\n群文件没有上传的请私信UP\\n感谢各位看官老爷的一键三连和充电\\n你的支持是我更新的动力!",
    +        "state": 0,
    +        "duration": 267,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 34870081,
    +          "name": "Sallos",
    +          "face": "https://i1.hdslb.com/bfs/face/ac268f534cb26fe6bfb8fbfd229e4b323456b4d8.jpg"
    +        },
    +        "stat": {
    +          "aid": 600031475,
    +          "view": 10158426,
    +          "danmaku": 23883,
    +          "reply": 8656,
    +          "favorite": 280801,
    +          "coin": 80915,
    +          "share": 65081,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 321518,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 10158426
    +        },
    +        "dynamic": "",
    +        "cid": 747397025,
    +        "dimension": {
    +          "width": 7680,
    +          "height": 4320,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1sB4y147MZ",
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220615a221rk8h1nhwgqs20l5vtj9xt_firsti.jpg",
    +        "pub_location": "北京",
    +        "bvid": "BV1sB4y147MZ",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 600031475,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 51473940,
    +        "videos": 1,
    +        "tid": 130,
    +        "tname": "音乐综合",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/e017186678d864cee15c7bbf6a7053a1cff5ecea.jpg",
    +        "title": "抑郁听两遍-《孤儿乐园》",
    +        "pubdate": 1556983085,
    +        "ctime": 1556983085,
    +        "desc": "《孤儿乐园》是台湾女歌手卓依婷演唱的一首歌曲,收录于1996年发行的专辑《校园青春乐》中。",
    +        "state": 0,
    +        "duration": 165,
    +        "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": 84121473,
    +          "name": "Ottimisti",
    +          "face": "https://i0.hdslb.com/bfs/face/62340162f04ae2607c48608fa44513dcd091d4de.webp"
    +        },
    +        "stat": {
    +          "aid": 51473940,
    +          "view": 11158972,
    +          "danmaku": 153407,
    +          "reply": 14915,
    +          "favorite": 150203,
    +          "coin": 23518,
    +          "share": 109196,
    +          "now_rank": 0,
    +          "his_rank": 34,
    +          "like": 246194,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 11158972
    +        },
    +        "dynamic": "#音乐##治愈向##致郁#",
    +        "cid": 90097246,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1N4411i7Pt",
    +        "bvid": "BV1N4411i7Pt",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 51473940,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 80433022,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/5242750857121e05146d5d5b13a47a2a6dd36e98.jpg",
    +        "title": "【官方 MV】Never Gonna Give You Up - Rick Astley",
    +        "pubdate": 1577835803,
    +        "ctime": 1577835803,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 213,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 1,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 486906719,
    +          "name": "索尼音乐中国",
    +          "face": "https://i2.hdslb.com/bfs/face/6bc95d0670863d36bf9167a37b825c39ce258506.jpg"
    +        },
    +        "stat": {
    +          "aid": 80433022,
    +          "view": 82923631,
    +          "danmaku": 116923,
    +          "reply": 145821,
    +          "favorite": 1138175,
    +          "coin": 917605,
    +          "share": 337308,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 2161145,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 82923631
    +        },
    +        "dynamic": "",
    +        "cid": 137649199,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1GJ411x7h7",
    +        "up_from_v2": 15,
    +        "pub_location": "未知",
    +        "bvid": "BV1GJ411x7h7",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 80433022,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 598292501,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/c9dcb4b6d27c587c2d703efc29d31bffd6266ec0.jpg",
    +        "title": "我爸的收藏,来自三十年前的骗局",
    +        "pubdate": 1657626186,
    +        "ctime": 1657626186,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 244,
    +        "mission_id": 755832,
    +        "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": 3173690,
    +          "name": "面霜_facecream",
    +          "face": "https://i2.hdslb.com/bfs/face/c765c540e50f38522cb7421fe48eb26168c2251c.jpg"
    +        },
    +        "stat": {
    +          "aid": 598292501,
    +          "view": 5253173,
    +          "danmaku": 4018,
    +          "reply": 4056,
    +          "favorite": 62433,
    +          "coin": 19041,
    +          "share": 10281,
    +          "now_rank": 0,
    +          "his_rank": 40,
    +          "like": 434897,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 5253173
    +        },
    +        "dynamic": "",
    +        "cid": 771205689,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV11B4y1e7Zp",
    +        "up_from_v2": 20,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220712qn1v1aiz14ttdc3sp5cjbv7m1_firsti.jpg",
    +        "pub_location": "北京",
    +        "bvid": "BV11B4y1e7Zp",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 598292501,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 752817708,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/064da6608c12892d673c4fbf6849736a8d370970.jpg",
    +        "title": "接 单 成 功",
    +        "pubdate": 1587060098,
    +        "ctime": 1587060098,
    +        "desc": "切勿疲劳驾驶",
    +        "state": 0,
    +        "duration": 23,
    +        "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": 834635,
    +          "name": "黑玛瑙",
    +          "face": "http://i2.hdslb.com/bfs/face/d9253039e6da0c266104f8ff225b8a83ecf289b9.jpg"
    +        },
    +        "stat": {
    +          "aid": 752817708,
    +          "view": 9211533,
    +          "danmaku": 3650,
    +          "reply": 2338,
    +          "favorite": 50476,
    +          "coin": 24078,
    +          "share": 33582,
    +          "now_rank": 0,
    +          "his_rank": 19,
    +          "like": 257783,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 9211533
    +        },
    +        "dynamic": "#黑人抬棺#",
    +        "cid": 179358597,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1zk4y1R7gi",
    +        "pub_location": "广东",
    +        "bvid": "BV1zk4y1R7gi",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 752817708,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 628641603,
    +        "videos": 4,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/1e1f0d1b3457bc17c7d0ad59bf15f68c69214404.jpg",
    +        "title": "骗 过 上 帝",
    +        "pubdate": 1610796481,
    +        "ctime": 1610796481,
    +        "desc": "P2音量注意!!\\nP2音量注意!!",
    +        "state": 0,
    +        "duration": 55,
    +        "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": 31933468,
    +          "name": "天そら",
    +          "face": "https://i1.hdslb.com/bfs/face/ca130aa54daa846ee8d39c0bf8db7e19afc4af89.jpg"
    +        },
    +        "stat": {
    +          "aid": 628641603,
    +          "view": 10114976,
    +          "danmaku": 2384,
    +          "reply": 2770,
    +          "favorite": 199680,
    +          "coin": 63408,
    +          "share": 37938,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 236177,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 10114976
    +        },
    +        "dynamic": "",
    +        "cid": 283868302,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV15t4y1z7sS",
    +        "bvid": "BV15t4y1z7sS",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 628641603,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 508705976,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/d53d2b502305a9e6cf942ffdeb50e1e223e1581e.jpg",
    +        "title": "我一直在等他说德语",
    +        "pubdate": 1643556577,
    +        "ctime": 1643556577,
    +        "desc": "tik tok\\nQQ空间转载视频\\n侵删",
    +        "state": 0,
    +        "duration": 95,
    +        "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": 12922294,
    +          "name": "屠龙的番茄炒蛋",
    +          "face": "https://i1.hdslb.com/bfs/face/d890299b31edeb9959cc1a76ace2fe68f5af3bea.jpg"
    +        },
    +        "stat": {
    +          "aid": 508705976,
    +          "view": 12094647,
    +          "danmaku": 9717,
    +          "reply": 4528,
    +          "favorite": 179645,
    +          "coin": 48401,
    +          "share": 101874,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 403291,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 12094647
    +        },
    +        "dynamic": "",
    +        "cid": 498009758,
    +        "dimension": {
    +          "width": 856,
    +          "height": 480,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1uu411d7ax",
    +        "up_from_v2": 35,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220130a225h5i4fqeu9zuqns20wgj97_firsti.jpg",
    +        "bvid": "BV1uu411d7ax",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 508705976,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 469143727,
    +        "videos": 1,
    +        "tid": 201,
    +        "tname": "科学科普",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/33e2ce4fd06847ce703b6bb0151cc37a3bb40550.jpg",
    +        "title": "不可思议!蚂蚁沿着这个方向一直走,神奇的一幕来了!@油兔不二字幕组",
    +        "pubdate": 1652782288,
    +        "ctime": 1652782288,
    +        "desc": "https://www.youtube.com/watch?v=_PCoPzf8i9o",
    +        "state": 0,
    +        "duration": 25,
    +        "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": 15967711,
    +          "name": "油兔不二字幕组",
    +          "face": "https://i1.hdslb.com/bfs/face/23e00144a96d7110db302f50d52e340f98af377d.jpg"
    +        },
    +        "stat": {
    +          "aid": 469143727,
    +          "view": 507538,
    +          "danmaku": 63,
    +          "reply": 328,
    +          "favorite": 1779,
    +          "coin": 37,
    +          "share": 84,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 8366,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 507538
    +        },
    +        "dynamic": "睁大眼认真看!千万不要眨眼!一直走,一直走,居然走到了……这真的是个神奇的空间,数学是如此美妙!",
    +        "cid": 722525913,
    +        "dimension": {
    +          "width": 450,
    +          "height": 560,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1u5411R7RK",
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220517qnmvx8etq4vyx2t3sgafi1zc3_firsti.jpg",
    +        "pub_location": "福建",
    +        "bvid": "BV1u5411R7RK",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 469143727,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 605316920,
    +        "videos": 1,
    +        "tid": 29,
    +        "tname": "音乐现场",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/7782e2eeab413bec5c46edfd15bffb5e7b3892da.jpg",
    +        "title": "泽连斯基在俄国跨年节目上歌舞2013(完整版)",
    +        "pubdate": 1669000560,
    +        "ctime": 1669000560,
    +        "desc": "youtube\\n原曲\\nДискотека Авария — Новогодняя",
    +        "state": 0,
    +        "duration": 199,
    +        "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": 306423517,
    +          "name": "Nayrok",
    +          "face": "https://i1.hdslb.com/bfs/face/29523c7f3ee91f55676fd681c03168a7e2018d3e.jpg"
    +        },
    +        "stat": {
    +          "aid": 605316920,
    +          "view": 3683544,
    +          "danmaku": 3941,
    +          "reply": 7528,
    +          "favorite": 26701,
    +          "coin": 2891,
    +          "share": 27710,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 55089,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3683544
    +        },
    +        "dynamic": "",
    +        "cid": 898106941,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Q84y1k7dT",
    +        "up_from_v2": 35,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n221121adatz2r5mjg8cd1688brlzti7_firsti.jpg",
    +        "pub_location": "中国台湾",
    +        "bvid": "BV1Q84y1k7dT",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 605316920,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 669307520,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/e91f2d6c4b8aefe862c75bca6f997bac13e1a689.jpg",
    +        "title": "【官方MV】ナナヲアカリ「完全放棄宣言」",
    +        "pubdate": 1599408049,
    +        "ctime": 1598266568,
    +        "desc": "",
    +        "state": 0,
    +        "duration": 266,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 1,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 486906719,
    +          "name": "索尼音乐中国",
    +          "face": "https://i2.hdslb.com/bfs/face/6bc95d0670863d36bf9167a37b825c39ce258506.jpg"
    +        },
    +        "stat": {
    +          "aid": 669307520,
    +          "view": 1866712,
    +          "danmaku": 983,
    +          "reply": 1635,
    +          "favorite": 70439,
    +          "coin": 31735,
    +          "share": 9715,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 81500,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1866712
    +        },
    +        "dynamic": "",
    +        "cid": 228238849,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "season_id": 1307508,
    +        "short_link_v2": "https://b23.tv/BV1pa4y177qi",
    +        "up_from_v2": 15,
    +        "pub_location": "未知",
    +        "bvid": "BV1pa4y177qi",
    +        "season_type": 1,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 669307520,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 675490509,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/58f8f3c8dfcf3b1ac6cf7a7b0eda660aa2e1e1fc.jpg",
    +        "title": "奥地利美术生就业经历",
    +        "pubdate": 1631273645,
    +        "ctime": 1631272999,
    +        "desc": "https://m.youtube.com/watch?v=h7s410TPnWg",
    +        "state": 0,
    +        "duration": 128,
    +        "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": 489656132,
    +          "name": "古米廖夫",
    +          "face": "https://i2.hdslb.com/bfs/face/633ed3ba1ec5bcde5db105849c2498b03f6b7eee.jpg"
    +        },
    +        "stat": {
    +          "aid": 675490509,
    +          "view": 34555566,
    +          "danmaku": 43970,
    +          "reply": 9671,
    +          "favorite": 851993,
    +          "coin": 497044,
    +          "share": 233825,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 1310434,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 34555566
    +        },
    +        "dynamic": "",
    +        "cid": 405970117,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1jU4y1N7vg",
    +        "up_from_v2": 35,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n210910a2u7yjx97xzec435kyzziyn8s_firsti.jpg",
    +        "pub_location": "黑龙江",
    +        "bvid": "BV1jU4y1N7vg",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 675490509,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 424255760,
    +        "videos": 1,
    +        "tid": 27,
    +        "tname": "综合",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/00d44d28329c6b42fa2b701ab16ae9011d955374.jpg",
    +        "title": "【绊爱】万恶之源 花Q",
    +        "pubdate": 1645927038,
    +        "ctime": 1645927038,
    +        "desc": "https://www.youtube.com/watch?v=FyFYH-7Ody0\\n@AIChannel官方  \\n爱的b站主页:https://space.bilibili.com/1473830\\n祝ai酱一帆风顺",
    +        "state": 0,
    +        "duration": 17,
    +        "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": 418077794,
    +          "name": "沐秋的伞",
    +          "face": "https://i2.hdslb.com/bfs/face/aa133427eff9b3a21aad471691e27b4fd54439a5.jpg"
    +        },
    +        "stat": {
    +          "aid": 424255760,
    +          "view": 813059,
    +          "danmaku": 40,
    +          "reply": 492,
    +          "favorite": 10383,
    +          "coin": 725,
    +          "share": 1497,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 28100,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 813059
    +        },
    +        "dynamic": "",
    +        "cid": 517786072,
    +        "dimension": {
    +          "width": 2160,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1R3411L7Jc",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220227qn1euzixuzs9w981rpjcapccw_firsti.jpg",
    +        "bvid": "BV1R3411L7Jc",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 424255760,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 843793876,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/74234c81ff5a00cc8a1db6c37b955cadee2e0737.jpg",
    +        "title": "【8K超高清重制版】印尼魔性电信广告原版完整版IndiHome Paket Phoenix",
    +        "pubdate": 1611702584,
    +        "ctime": 1611702584,
    +        "desc": "前面那个被锁了,现在重投了\\n原版看累了来康康up的其他印尼宽带视频吧\\n哔哩哔哩大会员广告印尼特供版 8K超高清重制版BV14T4y1K7gY\\n印尼宽带西藏特供版ཧིན་ཉི་ཐགས་ཡངས་དམིགས་བསལ་མཁོ་འདོན་པར་གཞི་BV1ao4y1d7VH\\n【4K⁶⁰ᶠᵖˢ】这里有一个初音给你的视频唷 BV19T4y1A7fJ\\n古埃及宽带广告最新出土av331415167\\n汉谟拉比宽带 BV1rv411s7b6\\n【乱 码】此 宽 带 无 法 显 示    迠鐩 BV1P54y1W75k",
    +        "state": 0,
    +        "duration": 262,
    +        "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": 294594289,
    +          "name": "不咕的鱼鸽子",
    +          "face": "https://i1.hdslb.com/bfs/face/10eb0658f6ff99e8f042168b15f7c684533f359e.webp"
    +        },
    +        "stat": {
    +          "aid": 843793876,
    +          "view": 3971358,
    +          "danmaku": 29319,
    +          "reply": 2663,
    +          "favorite": 102296,
    +          "coin": 24942,
    +          "share": 27730,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 165773,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3971358
    +        },
    +        "dynamic": "https://www.youtube.com/watch?v=5WVTFZAiB5Y,自己进行了8K高清重制\\n前面那个被锁了,现在重投了\\n记得多发弹幕吖~~~多发点空耳的唷\\n原版看累了来康康up的其他印尼宽带视频吧\\n哔哩哔哩大会员广告印尼特供版 8K超高清重制版BV14T4y1K7gY\\n【4K⁶⁰ᶠᵖˢ】这里有一个初音给你的视频唷~~ BV19T4y1A7fJ\\n\\n#IndiHome paket Phoen##印尼宽带#",
    +        "cid": 288188355,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1y54y1s74a",
    +        "bvid": "BV1y54y1s74a",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 843793876,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 16744787,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/fc7356c9e697b4f9f911a4f1c14c15ac24444ea5.jpg",
    +        "title": "一个愤怒的德国小哥,为了证明德国人非常幽默,给大家讲了个笑话……",
    +        "pubdate": 1511852220,
    +        "ctime": 1511852220,
    +        "desc": "https://weibo.com/2393541445/Fx2D0xQ9e?from=page_1005052393541445_profile&amp;wvr=6&amp;mod=weibotime\\n一个愤怒的德国小哥,为了证明德国人非常幽默,给大家讲了个笑话……\\n(微博@松鼠视频)",
    +        "state": 0,
    +        "duration": 25,
    +        "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": 95511972,
    +          "name": "松鼠视频",
    +          "face": "http://i0.hdslb.com/bfs/face/706c7b0f8131aaae59886094d6dda3ae789775c9.jpg"
    +        },
    +        "stat": {
    +          "aid": 16744787,
    +          "view": 3829756,
    +          "danmaku": 1607,
    +          "reply": 1795,
    +          "favorite": 24529,
    +          "coin": 1377,
    +          "share": 6101,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 106929,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3829756
    +        },
    +        "dynamic": "一个愤怒的德国小哥,为了证明德国人非常幽默,给大家讲了个笑话……\\n(微博@松鼠视频)",
    +        "cid": 27360814,
    +        "dimension": {
    +          "width": 360,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1kx41157pM",
    +        "bvid": "BV1kx41157pM",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 16744787,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 738113948,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/1b3dc4772ba90b6fc2e258023ea8082cf11f1556.jpg",
    +        "title": "当年成功暂停了b站最短的视频",
    +        "pubdate": 1677983278,
    +        "ctime": 1677983279,
    +        "desc": "哼哼哼,喝啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊哇啊啊啊啊啊这简介太臭力",
    +        "state": 0,
    +        "duration": 26,
    +        "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": 1942788306,
    +          "name": "神经兮兮的病猫",
    +          "face": "https://i0.hdslb.com/bfs/face/7e72c58637ff26df68fb30939de078d2bbbfcdbe.jpg"
    +        },
    +        "stat": {
    +          "aid": 738113948,
    +          "view": 1126625,
    +          "danmaku": 239,
    +          "reply": 964,
    +          "favorite": 1503,
    +          "coin": 359,
    +          "share": 90,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 12365,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1126625
    +        },
    +        "dynamic": "|-|",
    +        "cid": 1039873906,
    +        "dimension": {
    +          "width": 616,
    +          "height": 1280,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1kD4y1M7xk",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n230305qn2e096agbu88t6j39xe0mk9t_firsti.jpg",
    +        "pub_location": "广东",
    +        "bvid": "BV1kD4y1M7xk",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 738113948,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 207094984,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/8a52c7b347410bd7fc76f12243cc5cfa8287281e.jpg",
    +        "title": "Van Darkholme 听完这首歌绷不住了",
    +        "pubdate": 1628157469,
    +        "ctime": 1628157469,
    +        "desc": "Van Darkholme 听完这首歌绷不住了",
    +        "state": 0,
    +        "duration": 376,
    +        "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": 477631979,
    +          "name": "vansamaofficial",
    +          "face": "https://i2.hdslb.com/bfs/face/78ce170986aa6a8536a74f20d512efb1ba01abc7.jpg"
    +        },
    +        "stat": {
    +          "aid": 207094984,
    +          "view": 2048608,
    +          "danmaku": 2829,
    +          "reply": 3263,
    +          "favorite": 16843,
    +          "coin": 11612,
    +          "share": 6341,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 104351,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2048608
    +        },
    +        "dynamic": "Van Darkholme 听完这首歌绷不住了",
    +        "cid": 383094867,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1eh411q7ic",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n210805a23chpxg28zrbpo2kec99cy76_firsti.jpg",
    +        "pub_location": "浙江",
    +        "bvid": "BV1eh411q7ic",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 207094984,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 2056621,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/b7c6370dc85a19722d94f1677468c6443a1c40e1.jpg",
    +        "title": "德国BOY原版 (空耳字幕版)",
    +        "pubdate": 1425053793,
    +        "ctime": 1497430587,
    +        "desc": "http://v.qq.com/boke/page/k/q/z/k0147k30cqz.html 这才是真正的德国男孩说中文",
    +        "state": 0,
    +        "duration": 262,
    +        "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": 8224350,
    +          "name": "UmiKu39",
    +          "face": "https://i0.hdslb.com/bfs/face/81ca8715513197e252d795b14b16d25f77072929.jpg"
    +        },
    +        "stat": {
    +          "aid": 2056621,
    +          "view": 8428011,
    +          "danmaku": 98925,
    +          "reply": 17208,
    +          "favorite": 303576,
    +          "coin": 83034,
    +          "share": 146215,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 321054,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 8428011
    +        },
    +        "dynamic": "",
    +        "cid": 3183008,
    +        "dimension": {
    +          "width": 444,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1yx411A72S",
    +        "bvid": "BV1yx411A72S",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 2056621,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 585887630,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/56d158e4816546efbf8adda8fa2c1649ab053723.jpg",
    +        "title": "Rick astley本人被Rickroll给Rickroll了",
    +        "pubdate": 1609655387,
    +        "ctime": 1609655387,
    +        "desc": "https://www.youtube.com/watch?v=bIY0OYCB15w",
    +        "state": 0,
    +        "duration": 9,
    +        "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": 25072174,
    +          "name": "通訊录好友",
    +          "face": "https://i1.hdslb.com/bfs/baselabs/5e0044971bc5740363e6df59c9d4be59a6489651.jpg"
    +        },
    +        "stat": {
    +          "aid": 585887630,
    +          "view": 2082713,
    +          "danmaku": 145,
    +          "reply": 395,
    +          "favorite": 6660,
    +          "coin": 243,
    +          "share": 355,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 42458,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2082713
    +        },
    +        "dynamic": "",
    +        "cid": 276435856,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1fz4y1r7dH",
    +        "bvid": "BV1fz4y1r7dH",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 585887630,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 29842657,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/36be926b50bc091fc8074c540e2a9510844318e2.jpg",
    +        "title": "班长:我@#真的看不下去了!",
    +        "pubdate": 1535580001,
    +        "ctime": 1535579997,
    +        "desc": "已置顶被迫害的同学",
    +        "state": 0,
    +        "duration": 22,
    +        "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": 108330718,
    +          "name": "芙兰D嗒啦",
    +          "face": "https://i1.hdslb.com/bfs/face/9c63726ee0900789aaabcc4db07c812b654c1fca.jpg"
    +        },
    +        "stat": {
    +          "aid": 29842657,
    +          "view": 327790,
    +          "danmaku": 156,
    +          "reply": 175,
    +          "favorite": 629,
    +          "coin": 32,
    +          "share": 159,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 2990,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 327790
    +        },
    +        "dynamic": "",
    +        "cid": 51962975,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1aW411975v",
    +        "up_from_v2": 8,
    +        "bvid": "BV1aW411975v",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 29842657,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 816173477,
    +        "videos": 1,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/12a107b256a8984ac3e18c720d0ec1cf8786f07e.jpg",
    +        "title": "『SLG/像素/安卓直装』白毛萝莉…嘿嘿嘿!😍",
    +        "pubdate": 1664855100,
    +        "ctime": 1664797579,
    +        "desc": "可恶,我想去其他地方耍,河南农村太悲了,虽然房子确实蛮大的,但是灰尘好多啊啊啊啊啊",
    +        "state": 0,
    +        "duration": 31,
    +        "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": 503190013,
    +          "name": "卡卡萌拉",
    +          "face": "https://i1.hdslb.com/bfs/face/db1e5deb2a25e54a7a857cb5ba285066e4d0c587.jpg"
    +        },
    +        "stat": {
    +          "aid": 816173477,
    +          "view": 488050,
    +          "danmaku": 41,
    +          "reply": 446,
    +          "favorite": 7598,
    +          "coin": 8801,
    +          "share": 135,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 15446,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 488050
    +        },
    +        "dynamic": "让我看看是谁让我妊娠了",
    +        "cid": 851127373,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1pG4y1W73S",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n221003a22arnbc249oey1v6tsl6s1kk_firsti.jpg",
    +        "pub_location": "河南",
    +        "bvid": "BV1pG4y1W73S",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 816173477,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 895258574,
    +        "videos": 1,
    +        "tid": 130,
    +        "tname": "音乐综合",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/b94b8be43cd0a9a12bf1a334541b017a3bd24cb6.jpg",
    +        "title": "【全弹幕】av10388 武器A",
    +        "pubdate": 1648906567,
    +        "ctime": 1648906567,
    +        "desc": "sm9307581\\n武器A\\n[日常]UP主:博丽·灵梦(UID:13308)\\n播放:0 | 弹幕:38279 | 硬币:3921 | 收藏:40047\\n投稿时间:2010/06/20 10:13\\n啊哈哈哈,啊哈哈,啊哈,啊……总之就是武器……",
    +        "state": 0,
    +        "duration": 72,
    +        "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": 104657830,
    +          "name": "尚宜鼎MEMZ",
    +          "face": "https://i1.hdslb.com/bfs/face/6761798442c6e9607c62803ac4fa5fe4a3e7b25b.jpg"
    +        },
    +        "stat": {
    +          "aid": 895258574,
    +          "view": 2763614,
    +          "danmaku": 14104,
    +          "reply": 2200,
    +          "favorite": 9211,
    +          "coin": 367,
    +          "share": 2980,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 36940,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2763614
    +        },
    +        "dynamic": "",
    +        "cid": 565705666,
    +        "dimension": {
    +          "width": 2560,
    +          "height": 1442,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1NP4y1K7Ze",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220402qnljolmy317ncyss4pr3ds863_firsti.jpg",
    +        "pub_location": "广东",
    +        "bvid": "BV1NP4y1K7Ze",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 895258574,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 827984205,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/ffacd250c10ca7cea1a665e89b691b3b7b837587.jpg",
    +        "title": "燃!保加利亚妖王2023新歌MV!",
    +        "pubdate": 1688208848,
    +        "ctime": 1688208848,
    +        "desc": "youtube\\n保加利亚妖王azis新歌mv",
    +        "state": 0,
    +        "duration": 225,
    +        "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": 1295732260,
    +          "name": "SJM-史密斯",
    +          "face": "https://i1.hdslb.com/bfs/face/5a9898c57668ab662ad509151896284b10d2f3f7.jpg"
    +        },
    +        "stat": {
    +          "aid": 827984205,
    +          "view": 144989,
    +          "danmaku": 170,
    +          "reply": 324,
    +          "favorite": 761,
    +          "coin": 76,
    +          "share": 2247,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 4081,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 144989
    +        },
    +        "dynamic": "",
    +        "cid": 1181623685,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV19g4y1A7xq",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n230701qn3tfuifpjvvh0e2pctwqbkep_firsti.jpg",
    +        "pub_location": "上海",
    +        "bvid": "BV19g4y1A7xq",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 827984205,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 345957866,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/2327de6051626e9f263e265805cbb1be3a05ad8d.jpg",
    +        "title": "【越南神曲】-《Kẻ Cắp Gặp Bà Già 》!终于找到原版了!",
    +        "pubdate": 1664102700,
    +        "ctime": 1664027264,
    +        "desc": "提到「越南电音」,大家可能会感到比较陌生,甚至摸不着头脑。 事实上,越南电音已经席卷国内短视频平台,没有人可以逃过它的轰炸。  音乐一开,无人不嗨~",
    +        "state": 0,
    +        "duration": 234,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 2043250564,
    +          "name": "4K音乐馆",
    +          "face": "https://i1.hdslb.com/bfs/face/4be964615e70e18ab469e4403cb0fa320f8d2fdc.jpg"
    +        },
    +        "stat": {
    +          "aid": 345957866,
    +          "view": 5385788,
    +          "danmaku": 2780,
    +          "reply": 2811,
    +          "favorite": 104536,
    +          "coin": 7321,
    +          "share": 5689,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 97393,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 5385788
    +        },
    +        "dynamic": "",
    +        "cid": 842321779,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "season_id": 725909,
    +        "short_link_v2": "https://b23.tv/BV1Ud4y1M7C7",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220924qn371jsgk4te6781w32102ovo_firsti.jpg",
    +        "pub_location": "山东",
    +        "bvid": "BV1Ud4y1M7C7",
    +        "season_type": 1,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 345957866,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 827183116,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/724f74b61f670b10a78e026a352864eb7e89a138.jpg",
    +        "title": "对不起马老师,我真的没忍住",
    +        "pubdate": 1686386780,
    +        "ctime": 1686386780,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 23,
    +        "mission_id": 1570720,
    +        "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": 207454032,
    +          "name": "趣看视频",
    +          "face": "https://i0.hdslb.com/bfs/face/ff1317c16a58620a8e7a3c27d9db9a9edf569d59.jpg"
    +        },
    +        "stat": {
    +          "aid": 827183116,
    +          "view": 2797645,
    +          "danmaku": 2818,
    +          "reply": 2023,
    +          "favorite": 20772,
    +          "coin": 5499,
    +          "share": 25617,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 56003,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2797645
    +        },
    +        "dynamic": "",
    +        "cid": 1159242423,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1ou4y1d7Z3",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n230610a21n9lcrrzzdtud2zi8janufy_firsti.jpg",
    +        "pub_location": "广西",
    +        "bvid": "BV1ou4y1d7Z3",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 827183116,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 56927206,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/fd8324a72f0c6629f6d9b6af0daa11d950863993.jpg",
    +        "title": "【每天一遍,网抑再见】万恶之源,抖就完事了",
    +        "pubdate": 1561555314,
    +        "ctime": 1561555314,
    +        "desc": "【带字幕版】本人亲自翻译\\nBGM:coincidance \\n有些人看着看着就抖起来了,别说了,护士姐姐真漂亮\\nhttps://www.youtube.com/watch?v=nBHkIWAJitg&feature=share\\n肩膀好了,就来摇头吧\\nav65659850",
    +        "state": 0,
    +        "duration": 139,
    +        "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": 34232005,
    +          "name": "200斤的五条艾",
    +          "face": "https://i1.hdslb.com/bfs/face/5135289ba858105ae466429ba9610e7980cf73f0.jpg"
    +        },
    +        "stat": {
    +          "aid": 56927206,
    +          "view": 40520266,
    +          "danmaku": 76914,
    +          "reply": 17391,
    +          "favorite": 1545707,
    +          "coin": 693056,
    +          "share": 547011,
    +          "now_rank": 0,
    +          "his_rank": 15,
    +          "like": 1970242,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 40520266
    +        },
    +        "dynamic": "#沙雕##搞笑视频##魔性#",
    +        "cid": 99428737,
    +        "dimension": {
    +          "width": 960,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Ax411d7jD",
    +        "up_from_v2": 11,
    +        "bvid": "BV1Ax411d7jD",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 56927206,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      }
    +    ],
    +    "Spec": null,
    +    "hot_share": {
    +      "show": false,
    +      "list": []
    +    },
    +    "elec": null,
    +    "recommend": null,
    +    "emergency": {
    +      "no_like": false,
    +      "no_coin": false,
    +      "no_fav": false,
    +      "no_share": false
    +    },
    +    "view_addit": {
    +      "63": false,
    +      "64": false,
    +      "69": false,
    +      "71": false,
    +      "72": false
    +    },
    +    "guide": null,
    +    "query_tags": null,
    +    "is_old_user": false,
    +    "participle": null
    +  }
    +}
    +

    获取视频简介

    https://api.bilibili.com/x/web-interface/archive/desc

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    62002:稿件不可见
    messagestr错误信息默认为0
    ttlnum1
    datastr简介内容

    示例:

    查看视频(教主的咕鸽)av39330059/BV1Bt411z799的简介

    avid方式:

    curl -G 'https://api.bilibili.com/x/archive/desc' \\
    +--data-urlencode 'aid=39330059'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/archive/desc' \\
    +--data-urlencode 'bvid=BV1Bt411z799'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataarray分P列表

    数组data

    类型内容备注
    0obj1P内容无分P仅有此项
    nobj(n+1)P内容
    ……obj…………

    数组data中的对象:

    字段类型内容备注
    cidnum当前分P cid
    pagenum当前分P
    fromstr视频来源vupload:普通上传(B站)
    hunan:芒果TV
    qq:腾讯
    partstr当前分P标题
    durationnum当前分P持续时间单位为秒
    vidstr站外视频vid
    weblinkstr站外视频跳转url
    dimensionobj当前分P分辨率有部分视频无法获取分辨率
    first_framestr分P封面

    数组data中的对象中的dimension对象:

    字段类型内容备注
    widthnum当前分P 宽度
    heightnum当前分P 高度
    rotatenum是否将宽高对换0:正常
    1:对换

    示例:

    查询视频av13502509/BV1ex411J7GE的分P列表

    avid方式:

    curl -G 'https://api.bilibili.com/x/player/pagelist' \\
    +--data-urlencode 'aid=13502509'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/player/pagelist' \\
    +--data-urlencode 'bvid=BV1ex411J7GE'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }, 
    +    …………
    +    ]
    +}
    +
    `,51);function fn(wn,jn){const a=c("RouterLink");return l(),u("div",null,[k,n("table",null,[d,n("tbody",null,[v,q,b,m,y,_,h,g,f,w,j,B,n("tr",null,[V,x,z,n("td",null,[s("详情见"),t(a,{to:"/docs/video/attribute_data.html#state%E5%AD%97%E6%AE%B5%E5%80%BC(%E7%A8%BF%E4%BB%B6%E7%8A%B6%E6%80%81)"},{default:p(()=>[s("属性数据文档")]),_:1})])]),n("tr",null,[A,P,E,n("td",null,[s("详情见"),t(a,{to:"/docs/video/attribute_data.html#attribute%E5%AD%97%E6%AE%B5%E5%80%BC(%E7%A8%BF%E4%BB%B6%E5%B1%9E%E6%80%A7%E4%BD%8D)"},{default:p(()=>[s("属性数据文档")]),_:1})])]),C,F,M,G,R,T,D,K,U,N,S,W,Y,J,L,H,Q,I,O,Z,X,$,nn])]),sn,n("table",null,[an,n("tbody",null,[n("tr",null,[tn,pn,on,n("td",null,[s("见"),t(a,{to:"/docs/user/official_role.html"},{default:p(()=>[s("用户认证类型一览")]),_:1})])]),en,cn,ln])]),un,n("p",null,[s("鉴权方式:"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("Wbi 签名")]),_:1})]),rn,n("table",null,[kn,n("tbody",null,[n("tr",null,[dn,vn,qn,n("td",null,[s("见"),t(a,{to:"/docs/user/official_role.html"},{default:p(()=>[s("用户认证类型一览")]),_:1})])]),bn,mn,yn])]),_n,n("p",null,[s("基本同「"),t(a,{to:"/docs/video/tags.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91TAG%E4%BF%A1%E6%81%AF"},{default:p(()=>[s("获取视频TAG信息")]),_:1}),s("」中的data数组")]),hn,n("p",null,[s("基本同「"),t(a,{to:"/docs/comment/list.html#%E8%8E%B7%E5%8F%96%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%83%AD%E8%AF%84"},{default:p(()=>[s("获取评论区热评")]),_:1}),s("」中的data对象")]),gn])}const Vn=e(i,[["render",fn],["__file","info.html.vue"]]);export{Vn as default}; diff --git a/assets/info.html-e903c48b.js b/assets/info.html-e903c48b.js new file mode 100644 index 0000000000..33aaa66c8e --- /dev/null +++ b/assets/info.html-e903c48b.js @@ -0,0 +1,1687 @@ +import{_ as u,r as t,o as r,c,g as p,a as n,b as s,d as o,w as i,e as a}from"./app-3168cb19.js";const d={},k=a(`

    直播间基本信息

    获取直播间信息

    https://api.live.bilibili.com/room/v1/Room/get_info

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    room_idnum直播间号必要可以为短号

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:不存在
    messagestr错误信息
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    uidnum主播mid
    room_idnum直播间长号
    short_idnum直播间短号为0是无短号
    attentionnum关注数量
    onlinenum观看人数
    is_portraitbool是否竖屏
    descriptionstr描述
    live_statusnum直播状态0:未开播
    1:直播中
    2:轮播中
    area_idnum分区id
    parent_area_idnum父分区id
    parent_area_namestr父分区名称
    old_area_idnum旧版分区id
    backgroundstr背景图片链接
    titlestr标题
    user_coverstr封面
    keyframestr关键帧用于网页端悬浮展示
    is_strict_roombool未知未知
    live_timestr直播开始时间YYYY-MM-DD HH:mm:ss
    tagsstr标签','分隔
    is_anchornum未知未知
    room_silent_typestr禁言状态
    room_silent_levelnum禁言等级
    room_silent_secondnum禁言时间单位是秒
    area_namestr分区名称
    pardantsstr未知未知
    area_pardantsstr未知未知
    hot_wordslist(str)热词
    hot_words_statusnum热词状态
    verifystr未知未知
    new_pendantsobj头像框\\大v
    up_sessionstr未知
    pk_statusnumpk状态
    pk_idnumpk id
    battle_idnum未知
    allow_change_area_timenum
    allow_upload_cover_timenum
    studio_infoobj

    new_pendants对象:

    字段类型内容备注
    frameobj头像框
    mobile_frameobj同上手机版, 结构一致, 可能null
    badgeobj大v
    mobile_badgeobj同上手机版, 结构一致, 可能null

    frame对象:

    字段类型内容备注
    namestr名称
    valuestr
    positionnum位置
    descstr描述
    areanum分区
    area_oldnum旧分区
    bg_colorstr背景色
    bg_picstr背景图
    use_old_areabool是否旧分区号

    badge对象:

    字段类型内容备注
    namestr类型v_person: 个人认证(黄)
    v_company: 企业认证(蓝)
    positionnum位置
    valuestr
    descstr描述

    studio_info对象:

    字段类型内容备注
    statusnum
    master_listarray

    示例:

    查询直播间room_id=1信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \\
    +--data-urlencode 'room_id=1'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    roomStatusnum直播间状态0:无房间
    1:有房间
    roundStatusnum轮播状态0:未轮播
    1:轮播
    live_statusnum直播状态0:未开播
    1:直播中
    urlstr直播间网页url
    titlestr直播间标题
    coverstr直播间封面url
    onlinenum直播间人气值为上次直播时刷新
    roomidnum直播间id(短号)
    broadcast_typenum0
    online_hiddennum0

    示例:

    查询用户mid=322892的直播间信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \\
    +--data-urlencode 'mid=322892'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    idnum目标直播间号(短号)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    60004:直播间不存在
    msgstr错误信息默认为ok
    messagestr错误信息默认为ok
    dataobj信息本体

    data对象:

    字段类型内容备注
    room_idnum直播间真实id
    short_idnum直播间id(短号)
    uidnum主播用户mid
    need_p2pnum是否p2p
    is_hiddenbool是否隐藏
    is_lockedbool是否锁定
    is_portraitbool是否竖屏
    live_statusnum直播状态0:未开播
    1:直播中
    2:轮播中
    hidden_tillnum隐藏时间戳
    lock_tillnum锁定时间戳
    encryptedbool是否加密
    pwd_verifiedbool加密房间是否通过密码验证encrypted=true时才有意义
    live_timenum开播时间未开播时为-62170012800
    room_shieldnum未知
    is_spnum是否为特殊直播间0:普通直播间
    1:付费直播间
    special_typenum特殊直播间标志0:普通直播间
    1:付费直播间
    2:拜年祭直播间

    示例:

    查询直播间id=76的直播间信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \\
    +--data-urlencode 'id=76'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    uidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为空
    messagestr错误信息默认为空
    dataobj信息本体

    data对象:

    字段类型内容备注
    infoobj主播信息
    expobj经验等级
    follower_numnum主播粉丝数
    room_idnum直播间id(短号)
    medal_namestr粉丝勋章名
    glory_countnum主播荣誉数
    pendantstr直播间头像框url
    link_group_numnum0作用尚不明确
    room_newsobj主播公告

    info对象:

    字段类型内容备注
    uidnum主播mid
    unamestr主播用户名
    facestr主播头像url
    official_verifyobj认证信息
    gendernum主播性别-1:保密
    0:女
    1:男

    info中的official_verify对象:

    字段类型内容备注
    typenum主播认证类型-1:无
    0:个人认证
    1:机构认证
    descstr主播认证信息

    exp对象:

    字段类型内容备注
    master_levelobj主播等级

    exp中的master_level对象:

    字段类型内容备注
    levelnum当前等级
    colornum等级框颜色
    currentarray当前等级信息
    nextarray下一等级信息

    master_level中的current数组:

    类型内容备注
    0num升级积分
    1num总积分

    master_level中的next数组:

    类型内容备注
    0num升级积分
    1num总积分

    room_news对象:

    字段类型内容备注
    contentstr公告内容
    ctimestr公告时间
    ctime_textstr公告日期

    示例:

    查询直播间mid=2的主播信息

    curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \\
    +--data-urlencode 'uid=2'
    +
    查看响应示例:
    {
    +  "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/xlive/web-room/v1/index/getRoomBaseInfo

    请求方式: GET

    `,82),v=a(`

    URL参数:

    参数名类型内容必要性备注
    req_bizstrweb_room_componet必要
    room_idsnum直播间短ID不必要多个重复该参数即可

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    by_uidsobj
    by_room_idsobj直播间信息

    data中的by_room_ids对象:

    以直播间长ID为键, 直播间信息为值的, 按键名降序排序

    by_room_ids中的值对象:

    字段类型内容备注
    room_idnum直播间长ID
    uidnum主播用户mid
    area_idnum直播间分区ID
    live_statusnum直播状态0: 未开播
    1: 直播中
    2: 轮播中
    live_urlstr直播间网页url
    parent_area_idnum直播间父分区ID
    titlestr直播间标题
    parent_area_namestr直播间父分区名称
    area_namestr直播间分区名称
    live_timestr开播时间yyyy-MM-dd HH:mm:ss
    descriptionstr直播间简介
    tagsstr直播间标签, 分隔
    attentionnum关注数
    onlinenum在线人数
    short_idnum直播间短ID为0是无短号
    unamestr主播用户名
    coverstr直播间封面url
    backgroundstr直播间背景url
    join_slidenum1
    live_idnum0
    live_id_strstr"0"

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomBaseInfo' \\
    +--url-query 'req_biz=web_room_componet' \\
    +--url-query 'room_ids=1' \\
    +--url-query 'room_ids=3
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "by_uids": {},
    +    "by_room_ids": {
    +      "23058": {
    +        "room_id": 23058,
    +        "uid": 11153765,
    +        "area_id": 190,
    +        "live_status": 0,
    +        "live_url": "https://live.bilibili.com/23058",
    +        "parent_area_id": 5,
    +        "title": "哔哩哔哩音悦台",
    +        "parent_area_name": "电台",
    +        "area_name": "唱见电台",
    +        "live_time": "0000-00-00 00:00:00",
    +        "description": "<p>这里是哔哩哔哩官方音乐台喔!</p><p>一起来听音乐吧ε=ε=(ノ≧∇≦)ノ</p><p>没想到蒸汽配圣诞下装,意外的很暴露呢=3=</p>\\n",
    +        "tags": "",
    +        "attention": 225431,
    +        "online": 0,
    +        "short_id": 3,
    +        "uname": "3号直播间",
    +        "cover": "",
    +        "background": "https://i0.hdslb.com/bfs/live/2836bb7b84c792e2c6aadfd4d1cce13484775fa3.jpg",
    +        "join_slide": 1,
    +        "live_id": 0,
    +        "live_id_str": "0"
    +      },
    +      "5440": {
    +        "room_id": 5440,
    +        "uid": 9617619,
    +        "area_id": 701,
    +        "live_status": 2,
    +        "live_url": "https://live.bilibili.com/5440",
    +        "parent_area_id": 11,
    +        "title": "华为nova Flip新生之夜",
    +        "parent_area_name": "知识",
    +        "area_name": "科技·科学",
    +        "live_time": "0000-00-00 00:00:00",
    +        "description": "<p>华为novaFlip新生之夜正在直播中!备案号:Z0910417240818001<br></p>",
    +        "tags": "",
    +        "attention": 17848313,
    +        "online": 0,
    +        "short_id": 1,
    +        "uname": "哔哩哔哩直播",
    +        "cover": "http://i0.hdslb.com/bfs/live/1a862058e4211a5e73a8a1bf0635953ea08a4091.jpg",
    +        "background": "http://i0.hdslb.com/bfs/live/ec518ede15d4c2547c83cb59f14752450c0889b0.jpg",
    +        "join_slide": 1,
    +        "live_id": 0,
    +        "live_id_str": "0"
    +      }
    +    }
    +  }
    +}
    +

    批量查询直播间状态

    https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids

    请求方式:GET/POST

    认证方式:无 (无需添加Cookie)

    url参数 (GET方式):

    参数名类型内容必要性备注
    uids[]array要查询的主播 mid必要

    正文参数 (POST方式):

    参数名类型内容必要性备注
    uidsnums要查询的主播 mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    messagestr错误信息默认为success
    msgstr错误信息默认为success
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    uidstr直播间信息实际字段为主播mid

    uid对象:

    字段类型内容备注
    titlestr直播间标题
    room_idnum直播间房间号直播间实际房间号
    uidnum主播mid
    onlinenum直播间在线人数
    live_timenum开播时间戳,单位秒,未开播时为0
    live_statusnum直播间开播状态0:未开播
    1:正在直播
    2:轮播中
    short_idnum直播间房间号直播间短房间号,常见于签约主播
    areanum直播间分区id
    area_namestr直播间分区名
    area_v2_idnum直播间新版分区id
    area_v2_namestr直播间新版分区名
    area_v2_parent_idnum直播间父分区id
    area_v2_parent_namestr直播间父分区名
    unamestr主播用户名
    facestr主播头像url
    tag_namestr直播间标签
    tagsstr直播间自定标签
    cover_from_userstr直播间封面url
    keyframestr直播间关键帧url
    lock_tillstr直播间封禁信息
    hidden_tillstr直播间隐藏信息
    broadcast_typenum直播类型0:普通直播
    1:手机直播

    示例:

    查询用户mid=672328094的直播间信息

    # 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]}" 
    +
    查看响应示例:
    {
    +  "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
    +    }
    +  }
    +}
    +

    获取直播间最近历史弹幕

    https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory

    `,35),q=n("p",null,[n("em",null,"请求方式: GET")],-1),m={href:"https://www.bilibili.com/read/cv8186413/",target:"_blank",rel:"noopener noreferrer"},b=a("

    URL参数:

    参数名类型内容必要性备注
    roomidnum直播间短ID必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为空
    msgstr仅请求成功时存在
    ttlnum1仅请求失败时存在
    dataobj信息本体

    data对象:

    字段类型内容备注
    adminarray管理员最新的10条弹幕消息格式与room相同
    roomarray普通用户的10条弹幕信息格式与admin相同

    data中的任意数组中的对象:

    ",8),y=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),_=n("tr",null,[n("td",null,"text"),n("td",null,"str"),n("td",null,"弹幕内容"),n("td")],-1),h=n("tr",null,[n("td",null,"dm_type"),n("td",null,"num"),n("td",null,"弹幕类型"),n("td")],-1),g=n("tr",null,[n("td",null,"uid"),n("td",null,"num"),n("td",null,"弹幕发送者的UID"),n("td")],-1),f=n("tr",null,[n("td",null,"nickname"),n("td",null,"str"),n("td",null,"弹幕发送者的昵称"),n("td")],-1),w=n("tr",null,[n("td",null,"uname_color"),n("td",null,"str"),n("td",null,"弹幕发送者的颜色?"),n("td")],-1),j=n("tr",null,[n("td",null,"timeline"),n("td",null,"str"),n("td",null,"弹幕发送时间"),n("td",null,[s("格式为"),n("code",null,"yyyy-MM-dd HH:mm:ss")])],-1),x=n("tr",null,[n("td",null,"isadmin"),n("td",null,"num"),n("td",null,"是否为管理员"),n("td")],-1),F=n("tr",null,[n("td",null,"vip"),n("td",null,"num"),n("td",null,"是否为VIP?"),n("td")],-1),E=n("tr",null,[n("td",null,"svip"),n("td",null,"num"),n("td",null,"是否为SVIP?"),n("td")],-1),B=n("tr",null,[n("td",null,"medal"),n("td",null,"array"),n("td",null,"粉丝勋章信息?"),n("td",null,"格式不明")],-1),C=n("tr",null,[n("td",null,"title"),n("td",null,"array"),n("td",null,"标题?"),n("td",null,"格式不明")],-1),A=n("tr",null,[n("td",null,"user_level"),n("td",null,"array"),n("td",null,"用户等级信息?"),n("td",null,"格式不明")],-1),I=n("td",null,"rank",-1),R=n("td",null,"num",-1),G=n("td",null,"排名?",-1),D=n("tr",null,[n("td",null,"teamid"),n("td",null,"num"),n("td"),n("td")],-1),T=n("tr",null,[n("td",null,"rnd"),n("td",null,"str"),n("td",null,"发送时间?"),n("td",null,"UNIX 秒级时间戳")],-1),V=n("tr",null,[n("td",null,"user_title"),n("td",null,"用户标题?"),n("td",null,"格式不明"),n("td")],-1),P=n("tr",null,[n("td",null,"guard_level"),n("td"),n("td"),n("td")],-1),S=n("tr",null,[n("td",null,"bubble"),n("td"),n("td"),n("td")],-1),L=n("tr",null,[n("td",null,"bubble_color"),n("td"),n("td"),n("td")],-1),M=n("tr",null,[n("td",null,"lpl"),n("td"),n("td"),n("td")],-1),U=n("tr",null,[n("td",null,"yeah_space_url"),n("td"),n("td"),n("td")],-1),H=n("tr",null,[n("td",null,"jump_to_url"),n("td"),n("td"),n("td")],-1),N=n("tr",null,[n("td",null,"check_info"),n("td",null,"obj"),n("td",null,"弹幕审核信息?"),n("td")],-1),O=n("tr",null,[n("td",null,"voice_dm_info"),n("td",null,"obj"),n("td",null,"语音弹幕信息?"),n("td")],-1),z=n("tr",null,[n("td",null,"emoticon"),n("td",null,"obj"),n("td",null,"表情信息?"),n("td")],-1),Y=n("tr",null,[n("td",null,"emots"),n("td",null,"null"),n("td"),n("td")],-1),J=n("tr",null,[n("td",null,"id_str"),n("td",null,"str"),n("td",null,"弹幕ID?"),n("td")],-1),K=n("tr",null,[n("td",null,"wealth_level"),n("td",null,"num"),n("td",null,"财富等级?"),n("td")],-1),X=n("tr",null,[n("td",null,"bubble_id_v2"),n("td",null,"num"),n("td"),n("td")],-1),Z=n("tr",null,[n("td",null,"reply"),n("td",null,"obj"),n("td"),n("td")],-1),Q=n("tr",null,[n("td",null,"group_medal"),n("td",null,"null"),n("td"),n("td")],-1),W=n("tr",null,[n("td",null,"user"),n("td",null,"obj"),n("td",null,"该用户信息"),n("td")],-1),$=a(`

    data对象中的user对象:

    字段类型内容备注
    uidnum用户 mid
    baseobj用户基本信息
    medalnull
    wealthnull
    titleobj用户标题?
    guardnull
    uhead_framenull
    guard_leaderobj

    data对象中的user对象中的base对象:

    字段类型内容备注
    namestr用户名
    facestr用户头像 url
    name_colornum用户名颜色?
    is_mysterybool是否为神秘用户?
    risk_ctrl_infonull
    origin_infoobj原始信息?
    official_infoobj认证信息
    name_color_strstr

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory' \\
    +--url-query 'roomid=1'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "admin": [],
    +    "room": [
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-15 05:05:06",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723669505",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723669506,
    +          "ct": "18434F3D"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "74368f428dfaec806cd205e62866bd1c45",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 05:05:06",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723755905",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723755906,
    +          "ct": "F65D229F"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "7f3bb90826ad642012a31368f266be6d2",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:33:28",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723818808,
    +          "ct": "1B75FB"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "088336a59eb277942ee353dd6666bf6347",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:35:16",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723818916,
    +          "ct": "D6ABF2E7"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "6f421255746f5d8e4731fdadac66bf6356",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:36:51",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723819011,
    +          "ct": "1B6978C1"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "270f5a2ac69c5904617873cc4666bf640",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:39:01",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723819141,
    +          "ct": "143613AF"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "002ebbdc402b3d625052865f7b66bf6469",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "赚麻了 哈哈",
    +        "dm_type": 0,
    +        "uid": 243082910,
    +        "nickname": "可人的樱花",
    +        "uname_color": "",
    +        "timeline": "2024-08-17 01:00:49",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723379161",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723827649,
    +          "ct": "3917D4D7"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "03f3261e144366383c49c6b5d166bf8563",
    +        "wealth_level": 7,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 243082910,
    +          "base": {
    +            "name": "可人的樱花",
    +            "face": "http://i2.hdslb.com/bfs/face/5faa9bef952f831236b740932c559476658f88e5.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "可人的樱花",
    +              "face": "http://i2.hdslb.com/bfs/face/5faa9bef952f831236b740932c559476658f88e5.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-17 05:05:07",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723842307",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723842307,
    +          "ct": "8B947ABC"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "1a928b968afaa7825ea506ffe566bfbf16",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "下播啦~ 感谢大家的陪伴~ 下次见哦~",
    +        "dm_type": 0,
    +        "uid": 3546614675278489,
    +        "nickname": "机器人管家_鱼",
    +        "uname_color": "",
    +        "timeline": "2024-08-18 00:07:36",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          21,
    +          "赴神明",
    +          "Mr_钟明",
    +          27751673,
    +          1725515,
    +          "",
    +          0,
    +          12632256,
    +          12632256,
    +          12632256,
    +          0,
    +          0,
    +          3493291261692485
    +        ],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          11,
    +          0,
    +          6406234,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723910862",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723910856,
    +          "ct": "9BD05026"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "2ee6101973eeb69931eb86ac7e66c0ca17",
    +        "wealth_level": 23,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546614675278489,
    +          "base": {
    +            "name": "机器人管家_鱼",
    +            "face": "https://i1.hdslb.com/bfs/face/de737cd746a96742c07ced6c213aa25cf0429d90.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "机器人管家_鱼",
    +              "face": "https://i1.hdslb.com/bfs/face/de737cd746a96742c07ced6c213aa25cf0429d90.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "赴神明",
    +            "level": 21,
    +            "color_start": 12632256,
    +            "color_end": 12632256,
    +            "color_border": 12632256,
    +            "color": 1725515,
    +            "id": 1231122,
    +            "typ": 0,
    +            "is_light": 0,
    +            "ruid": 3493291261692485,
    +            "guard_level": 0,
    +            "score": 50001573,
    +            "guard_icon": "",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#919298CC",
    +            "v2_medal_color_end": "#919298CC",
    +            "v2_medal_color_border": "#919298CC",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#6C6C7299",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-18 05:05:05",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723928706",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723928705,
    +          "ct": "8A379FF4"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "41e8b55dea381d494cfe60ba3466c11064",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      }
    +    ]
    +  },
    +  "message": "",
    +  "msg": ""
    +}
    +

    清晰度代码

    代码说明
    30000杜比
    200004K
    10000原画
    400蓝光
    250超清
    150高清
    80流畅

    获取直播间信息

    https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo

    请求方式:GET

    认证方式:无 (无需添加Cookie)

    url参数 (GET方式):

    参数名类型内容必填备注
    room_idnum直播间id必要
    protocolstr直播协议必要0:http_stream
    1:http_hls
    可多选, 使用英文逗号分隔
    formatstr格式必要0:flv
    1:ts
    2:fmp4
    可多选, 使用英文逗号分隔
    codecstr编码格式必要0:AVC
    1:HEVC
    可多选, 使用英文逗号分隔
    qnnum清晰度编码默认150
    清晰度代码
    platformstrweb
    ptypenum8
    dolbynum5
    panoramanum1

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    1002002:参数错误
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    room_idnum直播间id
    short_idnum直播间短id
    uidnum主播uid
    is_hiddenbool直播间是否被隐藏
    is_lockedbool直播间是否被锁定
    is_portraitbool是否竖屏
    live_statusnum直播状态0:未开播
    1:直播中
    2:轮播中
    hidden_tillnum隐藏结束时间
    lock_tillnum封禁结束时间秒级时间戳
    encryptedbool直播间为加密直播间
    pwd_verifiedbool是否通过密码验证encryptedtrue时才有意义
    live_timenum本次开播时间秒级时间戳
    room_shieldnum
    all_special_typesarray
    playurl_infoobj直播流信息

    playurl_info对象

    字段名类型内容备注
    conf_jsonstr
    playurlobj

    playurl对象

    字段名类型内容备注
    cidnum直播间id
    g_qn_descarray清晰度列表
    streamarray直播流信息
    p2p_dataobj
    dolby_qn

    g_qn_desc数组中的对象

    字段名类型内容备注
    qnnum清晰度代码清晰度代码
    descstr清晰度描述
    hdr_descstr
    attr_desc

    stream数组中的对象

    字段名类型内容备注
    protocol_namestr协议名
    formatarray格式列表

    format数组中的对象

    字段名类型内容备注
    format_namestr格式名
    codecarray编码列表

    codec数组中的对象

    字段名类型内容备注
    codec_namestr编码名
    current_qnnum当前清晰度编码清晰度代码
    accept_qnarray可用清晰度编码列表清晰度代码
    base_urlstr播放源路径
    url_infoarray域名信息列表
    hdr_qnnull
    dolby_typenum
    attr_namestr

    url_info数组中的对象

    字段名类型内容备注
    hoststr域名
    extrastrURL参数
    stream_ttlnum

    p2p_data对象

    字段名类型内容备注
    p2pbool
    p2p_typenum
    m_p2pbool
    m_serversnull

    示例:

    查询room_id=3的直播间信息

    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'
    +
    查看响应示例:
    {
    +  "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
    +      }
    +    }
    +  }
    +}
    +

    获取直播间主播信息

    https://api.live.bilibili.com/live_user/v1/UserInfo/get_anchor_in_room

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    roomidnum直播间号必要可以为短号

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功 (直播间不存在也为0)
    messagestr错误信息
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    infoobj主播信息
    levelobj直播等级
    sannum主播san值12满分

    info对象:

    字段类型内容备注
    uidnum主播mid
    unamestr主播用户名
    facestr主播头像URL
    rankstr主播排名
    platform_user_levelnum平台用户等级
    mobile_verifynum手机验证状态
    identificationnum身份认证状态
    official_verifyobj认证信息
    vip_typenumVIP类型
    gendernum主播性别-1:保密
    0:女
    1:男

    info中的official_verify对象:

    字段类型内容备注
    typenum主播认证类型-1:无
    0:个人认证
    1:机构认证
    descstr主播认证信息
    rolenum未知

    level对象:

    字段类型内容备注
    uidnum用户ID
    costnum消费金额
    rcostnum充值金额
    user_scorestr用户积分
    vipnumVIP状态
    vip_timestrVIP到期时间
    svipnumSVIP状态
    svip_timestrSVIP到期时间
    update_timestr更新时间
    master_levelobj主播等级
    user_levelnum用户等级
    colornum颜色值
    anchor_scorenum主播积分

    level 中的 master_level对象:

    字段类型内容备注
    levelnum主播等级
    colornum颜色值
    currentlist当前积分
    nextlist下一等级积分
    anchor_scorenum主播积分
    upgrade_scorenum升级积分
    master_level_colornum主播等级颜色值
    sortstr排名

    示例:

    查询roomid=1的直播间主播信息

    curl -G 'https://api.live.bilibili.com/live_user/v1/UserInfo/get_anchor_in_room' \\
    +--data-urlencode 'roomid=1'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "success",
    +  "message": "success",
    +  "data": {
    +    "info": {
    +      "uid": 9617619,
    +      "uname": "哔哩哔哩直播",
    +      "face": "https://i0.hdslb.com/bfs/face/8f6a614a48a3813d90da7a11894ae56a59396fcd.jpg",
    +      "rank": "10000",
    +      "platform_user_level": 6,
    +      "mobile_verify": 1,
    +      "identification": 1,
    +      "official_verify": {
    +        "type": 1,
    +        "desc": "哔哩哔哩直播官方账号",
    +        "role": 3
    +      },
    +      "vip_type": 2,
    +      "gender": -1
    +    },
    +    "level": {
    +      "uid": 9617619,
    +      "cost": 7782673656,
    +      "rcost": 20199200291,
    +      "user_score": "0",
    +      "vip": 0,
    +      "vip_time": "0000-00-00 00:00:00",
    +      "svip": 0,
    +      "svip_time": "0000-00-00 00:00:00",
    +      "update_time": "2024-08-08 17:13:12",
    +      "master_level": {
    +        "level": 40,
    +        "color": 16746162,
    +        "current": [0, 147013810],
    +        "next": [0, 147013810],
    +        "anchor_score": 201992002,
    +        "upgrade_score": 0,
    +        "master_level_color": 16746162,
    +        "sort": "\\u003E10000"
    +      },
    +      "user_level": 60,
    +      "color": 16752445,
    +      "anchor_score": 201992002
    +    },
    +    "san": 12
    +  }
    +}
    +
    `,62);function nn(sn,an){const e=t("ExternalLinkIcon"),l=t("RouterLink");return r(),c("div",null,[k,p(`{ + "gh": [745] +}`),v,p(`{ + "from": { + "url": "https://www.bilibili.com/read/cv8186413/" + } +}`),q,n("p",null,[s("注: 该接口部分返回信息不明, 仅供参考, 来源 "),n("a",m,[s("cv8186413"),o(e)])]),b,n("table",null,[y,n("tbody",null,[_,h,g,f,w,j,x,F,E,B,C,A,n("tr",null,[I,R,G,n("td",null,[o(l,{to:"/docs/user/info.html#%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF"},{default:i(()=>[s("用户空间详细信息")]),_:1})])]),D,T,V,P,S,L,M,U,H,N,O,z,Y,J,K,X,Z,Q,W])]),$])}const pn=u(d,[["render",nn],["__file","info.html.vue"]]);export{pn as default}; diff --git a/assets/info.html-ed1280ca.js b/assets/info.html-ed1280ca.js new file mode 100644 index 0000000000..0b6df5e161 --- /dev/null +++ b/assets/info.html-ed1280ca.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-c357ce08","path":"/docs/video/info.html","title":"视频基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取视频详细信息(web端)","slug":"获取视频详细信息-web端","link":"#获取视频详细信息-web端","children":[]},{"level":2,"title":"获取视频超详细信息(web端)","slug":"获取视频超详细信息-web端","link":"#获取视频超详细信息-web端","children":[]},{"level":2,"title":"获取视频简介","slug":"获取视频简介","link":"#获取视频简介","children":[]},{"level":2,"title":"查询视频分P列表 (avid/bvid转cid)","slug":"查询视频分p列表-avid-bvid转cid","link":"#查询视频分p列表-avid-bvid转cid","children":[]}],"git":{},"filePathRelative":"docs/video/info.md"}');export{e as data}; diff --git a/assets/info.html-f20ce56c.js b/assets/info.html-f20ce56c.js new file mode 100644 index 0000000000..9c7e27b6d6 --- /dev/null +++ b/assets/info.html-f20ce56c.js @@ -0,0 +1,24 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const e={},d=a(`

    基本信息

    获取用户钱包

    https://pay.bilibili.com/paywallet/wallet/getUserWallet

    请求方法: POST

    认证方式: Cookie (SESSDATA) (注意 , * 需要 URL 转义)

    正文参数 (application/json):

    参数名类型内容必要性备注
    panelTypenum面板类型不必要默认为 3
    platformTypenum平台类型必要任意有效数字, 默认为 3
    timestampnum当前时间不必要UNIX 毫秒时间戳
    traceIdnum追踪 ID不必要与 timestamp 值相同
    versionstr版本不必要默认 1.0

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    8006000004: 缺参
    别的错误码在 errno
    errnonum错误码8006000004: 缺参
    800501008: 内部错误(传的不是JSON)
    800501007: 用户未登录
    msgstr返回信息SUCCESS: 成功
    否则为错误信息
    showMsgstr显示信息成功时为空
    dataobj数据本体
    successbool是否成功

    data 对象:

    字段类型内容备注
    midnum用户 mid
    totalBpnum总计 B 币
    defaultBpnum默认 B 币?
    isoBpnumiOS B 币?
    couponBalancenum优惠券余额
    availableBpnum可用 B 币
    unavailableBpnum不可用 B 币
    unavailableReasonstr不可用原因
    tipstr请XXXXX请投币??
    needShowClassBalancenum需要显示类平衡??1

    示例:

    curl -X POST 'https://pay.bilibili.com/paywallet/wallet/getUserWallet' \\
    +--data-raw '{"platformType":"3"}' \\
    +-H 'content-type: application/json' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "errno": 0,
    +  "msg": "SUCCESS",
    +  "showMsg": "",
    +  "data": {
    +    "mid": 616368979,
    +    "totalBp": 0.00,
    +    "defaultBp": 0.00,
    +    "iosBp": 0.00,
    +    "couponBalance": 0,
    +    "availableBp": 0.00,
    +    "unavailableBp": 0,
    +    "unavailableReason": "",
    +    "tip": "请XXXXX",
    +    "needShowClassBalance": 1
    +  },
    +  "success": true
    +}
    +
    `,15),p=[d];function o(r,l){return n(),s("div",null,p)}const i=t(e,[["render",o],["__file","info.html.vue"]]);export{i as default}; diff --git a/assets/info.html-f7a47d1e.js b/assets/info.html-f7a47d1e.js new file mode 100644 index 0000000000..553185ac5b --- /dev/null +++ b/assets/info.html-f7a47d1e.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-511a71b4","path":"/docs/activity/info.html","title":"活动主题信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"主题信息","slug":"主题信息","link":"#主题信息","children":[]}],"git":{},"filePathRelative":"docs/activity/info.md"}');export{t as data}; diff --git a/assets/information-d98c5ed0.svg b/assets/information-d98c5ed0.svg new file mode 100644 index 0000000000..c33d83818a --- /dev/null +++ b/assets/information-d98c5ed0.svg @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/assets/interact_video.html-440fac1d.js b/assets/interact_video.html-440fac1d.js new file mode 100644 index 0000000000..4d357a5626 --- /dev/null +++ b/assets/interact_video.html-440fac1d.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-7e6a01b8","path":"/docs/video/interact_video.html","title":"互动视频信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取互动视频模块详细信息","slug":"获取互动视频模块详细信息","link":"#获取互动视频模块详细信息","children":[]}],"git":{},"filePathRelative":"docs/video/interact_video.md"}');export{e as data}; diff --git a/assets/interact_video.html-f9b5e535.js b/assets/interact_video.html-f9b5e535.js new file mode 100644 index 0000000000..8f31856646 --- /dev/null +++ b/assets/interact_video.html-f9b5e535.js @@ -0,0 +1,164 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},o=a(`

    互动视频信息

    注:互动视频分P与普通视频分P不互通

    获取互动视频模块详细信息

    https://api.bilibili.com/x/stein/edgeinfo_v2

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    graph_versionnum剧情图id必要位于player.so
    edge_idnum模块编号非必要0或留空为起始模块

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    99003:剧情图被修改已失效
    99077:请输入aid/bvid
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    titlestr视频模块(分P)标题
    edge_idnum当前模块id
    story_listarray进度回溯信息未登录仅有起始模块
    edgesobj当前模块信息
    preloadobj预加载的分P
    hidden_varsarray变量列表无变量时不存在此项
    is_leafnum是否为结束模块0:当前模块为普通模块
    1:当前模块为结束模块
    no_tutorialnum禁止记录选择1:禁止
    非禁止时无此项
    no_backtrackingnum禁止进度回溯1:禁止
    非禁止时无此项
    no_evaluationnum禁止结尾评分1:禁止
    非禁止时无此项

    data中的story_list数组:

    类型内容备注
    0obj回溯第一项模块
    nobj回溯第(n+1)项模块
    ……obj…………

    story_list数组中的对象:

    类型内容备注
    node_idnum模块编号
    edge_idnum同上
    titlestr模块(分P)标题
    cidnum模块(分P)cid
    start_posnum记录播放开始位置单位为毫秒
    coverstr分P封面url
    is_currentnum是否为当前模块1:是
    仅为当前模块时存在
    cursornum进度序号从0开始向上增长

    data中的edges对象:

    字段类型内容备注
    dimensionobj当前分P分辨率有部分视频无法获取分辨率
    questionsarray问题结束模块无此项
    skinobj问题外观

    edges中的dimension对象:

    字段类型内容备注
    widthnum当前分P 宽度
    heightnum当前分P 高度
    rotatenum是否将宽高对换0:正常
    1:对换
    sarstr???作用尚不明确

    edges中的questions数组:

    类型内容备注
    0obj套了个娃

    edges中的questions数组中的对象:

    字段类型内容备注
    idnum???作用尚不明确
    typenum选项显示模式0:不显示选项
    1:底部选项模式
    2:坐标定点模式
    3:???
    127:???
    start_time_rnum300 或 duration作用尚不明确
    durationnum回答限时单位为毫秒
    不限时为-1
    pause_videonum是否暂停播放视频0:不暂停
    1:暂停播放
    titlestr作用尚不明确
    choicesarray选项列表
    fade_in_timenum选项淡入时间毫秒
    fade_out_timenum选项淡出时间毫秒

    questions数组中的对象中的choices数组:

    类型内容备注
    0obj第一选项
    nobj第(n+1)选项
    ……obj…………

    questions数组中的对象中的choices数组中的对象:

    字段类型内容备注
    idnum选项所跳转的模块id
    platform_actionstr跳转信息文字JUMP+{所跳转的模块编号}+{所跳转的cid}
    native_actionstr点击后对变量运算语句每项间用分号隔开
    无为空
    conditionstr选项出现条件判断语句无为空
    cidnum选项所跳转分P的cid
    xnum选项出现的x坐标仅坐标模式有此项
    ynum选项出现的y坐标仅坐标模式有此项
    text_alignnum选项文本对齐方式
    optionstr选项文字
    selectedobj选择动画信息
    submitedobj提交动画信息
    is_defaultnum是否为默认选项1:是
    非默认选项无此项
    is_hiddennum是否为隐藏选项1:是
    非隐藏选项无此项

    edges中的skin对象:

    字段类型内容备注
    choice_imagestr选项组件外观图片url
    title_text_colorstr文字颜色以下均为RGBA格式
    title_shadow_colorstr文字阴影颜色
    title_shadow_offset_xnum文字阴影x偏移
    title_shadow_offset_ynum文字阴影y偏移
    title_shadow_radiusnum文字阴影半径
    progressbar_colorstr倒计时条颜色
    progressbar_shadow_colorstr倒计时条阴影颜色

    data中的preload对象:

    字段类型内容备注
    videoarray预加载的分P

    preload中的video数组:

    类型内容备注
    0obj预加载第一项预加载的内容为当前所有选项的跳转视频
    nobj预加载第(n+1)项
    ……obj…………

    preload中的video数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    cidnum分P cid

    data中的hidden_vars数组:

    类型内容备注
    0obj第一个变量
    nobj第(n+1)个变量
    ……obj…………

    data中的hidden_vars数组中的对象:

    字段类型内容备注
    valuenum变量值随机值为随机整数
    idstr变量编号
    id_v2str变量编号语句中一般使用这种
    typenum变量类型1:普通变量
    2:随机值
    is_shownum是否展示变量0:否
    1:是
    namestr变量名
    skip_overwritenum0作用尚不明确

    示例:

    查询互动视频av73267982下剧情图155446模块5556092的信息

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,48),e=[o];function d(r,c){return n(),s("div",null,e)}const i=t(p,[["render",d],["__file","interact_video.html.vue"]]);export{i as default}; diff --git a/assets/ip.html-298243ad.js b/assets/ip.html-298243ad.js new file mode 100644 index 0000000000..293b973e67 --- /dev/null +++ b/assets/ip.html-298243ad.js @@ -0,0 +1 @@ +const i=JSON.parse('{"key":"v-cd0c7f92","path":"/docs/clientinfo/ip.html","title":"通过ip确定地理位置","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"根据请求IP确定属地","slug":"根据请求ip确定属地","link":"#根据请求ip确定属地","children":[]},{"level":2,"title":"查询任意 IP 地址的归属地","slug":"查询任意-ip-地址的归属地","link":"#查询任意-ip-地址的归属地","children":[]}],"git":{},"filePathRelative":"docs/clientinfo/ip.md"}');export{i as data}; diff --git a/assets/ip.html-2da36839.js b/assets/ip.html-2da36839.js new file mode 100644 index 0000000000..ea2dd3931f --- /dev/null +++ b/assets/ip.html-2da36839.js @@ -0,0 +1,49 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const e={},o=a(`

    通过ip确定地理位置

    根据请求IP确定属地

    https://api.bilibili.com/x/web-interface/zone

    https://api.live.bilibili.com/xlive/web-room/v1/index/getIpInfo

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    addrstr公网IP地址
    countrystr国家/地区名
    provincestr省/州非必须存在项
    citystr城市非必须存在项
    ispstr运营商名
    latitudenum纬度
    longitudenum经度
    zone_idnumip数据库id第二个接口无
    country_codenum国家/地区代码第二个接口无

    示例:

    curl 'https://api.bilibili.com/x/web-interface/zone'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +}
    +

    查询任意 IP 地址的归属地

    https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr
    https://api.live.bilibili.com/client/v1/Ip/getInfoNew

    注: 以上接口等效

    请求方式:GET

    URL参数:

    参数名类型内容必要性备注
    ipstrIP地址不必要IPv4或IPv6地址不限, 留空与根据请求IP确定地理位置基本相同

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为空
    msgstr错误信息同message
    dataobj信息本体出错时为空数组

    data对象:

    根据请求IP确定地理位置回复的data对象基本相同, 但无 zone_id country_code 字段

    示例:

    查询请求IP地址的归属地:

    curl -G 'https://api.live.bilibili.com/client/v1/Ip/getInfoNew'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "message": "",
    +  "data": {
    +    "addr": "104.28.156.113",
    +    "country": "新加坡",
    +    "province": "新加坡",
    +    "city": "",
    +    "isp": "cloudflare.com",
    +    "latitude": "1.352083",
    +    "longitude": "103.819836"
    +  }
    +}
    +

    查询IP地址8.8.8.8的归属地:

    curl -G 'https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr' \\
    +--data-urlencode 'ip=8.8.8.8'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "message": "",
    +  "data": {
    +    "addr": "8.8.8.8",
    +    "country": "GOOGLE.COM",
    +    "province": "GOOGLE.COM",
    +    "city": "",
    +    "isp": "level3.com",
    +    "latitude": "",
    +    "longitude": ""
    +  }
    +}
    +
    `,30),p=[o];function d(r,i){return n(),t("div",null,p)}const c=s(e,[["render",d],["__file","ip.html.vue"]]);export{c as default}; diff --git a/assets/judgement_info.html-1834630d.js b/assets/judgement_info.html-1834630d.js new file mode 100644 index 0000000000..acf4b0ccbb --- /dev/null +++ b/assets/judgement_info.html-1834630d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-ba4e3898","path":"/docs/blackroom/jury/judgement_info.html","title":"众裁信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"Enum类型代码","slug":"enum类型代码","link":"#enum类型代码","children":[{"level":3,"title":"投票类型码总览","slug":"投票类型码总览","link":"#投票类型码总览","children":[]},{"level":3,"title":"投票选项码总览","slug":"投票选项码总览","link":"#投票选项码总览","children":[]}]},{"level":2,"title":"获取单个案件信息","slug":"获取单个案件信息","link":"#获取单个案件信息","children":[]},{"level":2,"title":"查询案件众裁信息","slug":"查询案件众裁信息","link":"#查询案件众裁信息","children":[]},{"level":2,"title":"查询我的众裁记录","slug":"查询我的众裁记录","link":"#查询我的众裁记录","children":[]},{"level":2,"title":"查询案件众裁信息(旧 api)","slug":"查询案件众裁信息-旧-api","link":"#查询案件众裁信息-旧-api","children":[]},{"level":2,"title":"获取众议观点","slug":"获取众议观点","link":"#获取众议观点","children":[]}],"git":{},"filePathRelative":"docs/blackroom/jury/judgement_info.md"}');export{l as data}; diff --git a/assets/judgement_info.html-c79d96cf.js b/assets/judgement_info.html-c79d96cf.js new file mode 100644 index 0000000000..a1b7eb1d6a --- /dev/null +++ b/assets/judgement_info.html-c79d96cf.js @@ -0,0 +1,359 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    众裁信息

    Enum类型代码

    投票类型码总览

    代码含义
    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_keystrAPP登录TokenAPP方式必要
    case_idstr案件id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr信息默认为 0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    case_idstr案件id
    case_typenum任务类型1:单条评论
    2:评论氛围
    3:单条弹幕
    4:弹幕氛围
    jury_statenum1改版后未见过其它值
    participatenum是否投票0:未投票
    1:已投票
    vote_itemsobject投票选项见开头「投票选项码总览」
    default_votenum默认投票选项414无法判断
    statusnum裁决状态(新版)0:进行中
    1:已结束
    origin_startnum案件关联视频,播放进度条起始坐标单位:
    avidnum视频av号
    cidnum弹幕 dmid
    vote_cdnum-1暂不明确
    resultnum众议结论见开头「投票选项码总览」
    result_textstr众议结论文本见开头「投票选项码总览」
    titlestr视频标题
    case_infoobject案件信息
    my_pointobject我的观点仅自己投过票才有该字段
    vote_infoobject投票信息

    data 对象下的case_info对象

    字段类型内容备注
    commentobject单条评论信息仅当case_type1有值。见「对象:评论信息」
    danmu_imgstr弹幕截图仅当case_type4有值,截图URL
    commentsobject若干条评论仅当case_type2有值。见「对象:评论信息」
    single_danmustr单条弹幕信息仅当case_type3有值。见「对象:评论信息)」

    对象:评论信息

    字段类型内容备注
    midnum用户uid
    unamestr用户名
    facestr用户头像头像URL
    contentstr评论内容
    child_commentsobject子评论(对该评论的回复)见「对象:评论信息」,单条评论和子评论下无child_comments字段

    对象:弹幕信息

    字段类型内容备注
    id_strstr弹幕dmid
    contentstr弹幕内容
    progressnum尚不明确

    data 对象下的my_point对象

    记录了自己的投票(观点)信息,仅当自己投过票才有该字段。

    字段类型内容备注
    opidnum观点编号每当某个一个风纪委员给某个仲裁案件发表观点,就+1
    midnum风纪委员用户ID
    unamestr风纪委员用户名风纪委勾选匿名投票则显示“匿名用户”
    facestr头像URL头像
    votenum投票选项“合适题”分别为 1 或者 2 或者 3 或者 4
    对应:“合适”、“一般”、“不合适”、“无法判断”

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

    注释
    合适题:“单条弹幕(评论)是否合适?”
    氛围题:“弹幕(评论区)氛围如何”
    vote_text内容为空现在系统已不再展示其他风纪委所投的票
    contentstr观点内容该风纪委员所发表的观点内容
    anonymousnum0尚不明确
    likenum被点赞数量
    hatenum被点踩数量
    like_statusnum点赞(踩)状态本账号是否给该条评论点赞:
    0:没做操作;1:给评论点赞;2:给评论点踩
    vote_timenum投票时间时间戳,精确到秒
    insidersnum是否观看此类视频1:平时观看此类视频;0:平时不观看此类视频

    data 对象下的vote_info对象

    字段类型内容备注
    all_countnum总投票数
    countsarray观点分布格式:[合适, 一般, 不合适, 无法判断]
    insiders_countsarray行为分布格式:[平时会看此类视频, 平时不看此类视频]

    示例:

    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    cidnum案件id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    25010:没有权限查看案件
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    idnum案件id
    midnum被举报用户mid
    statusnum裁决状态1:投票中
    2:停止发放
    3:复核中(结案中)
    4:已裁决
    5:待重启
    6:未裁决
    7:冻结中
    8:队列中
    statusTitlestr封禁时间文字judgeType=1时有效
    originTypenum来源类型见「封禁公示」中表
    reasonTypenum原因类型见「封禁公示」中表
    originContentstr被举报的原文
    punishResultnum处理结果0:无
    1:封禁3天
    2:封禁7天
    3:永封
    4:其他封禁天数
    5:封禁15天
    6:仅删除不封禁
    punishTitlestr处罚原因
    judgeTypenum裁决类型status=4时有效
    0:未裁决
    1:违规
    2:不违规
    originUrlstr来源url
    blockedDaysnum封禁时间judgeType=1时有效
    putTotalnum???作用尚不明确
    voteRulenum投票不违规人数
    voteBreaknum投票建议封禁人数
    voteDeletenum投票建议删除人数
    startTimenum裁决起始时间时间戳
    endTimenum裁决截止时间时间戳
    未结案固定为24小时
    ctimenum举报创建时间时间戳
    mtimenum开始拉取时间时间戳
    originTitlestr来源标题
    relationIdstr违规关系标识字{评论rpid}-{违规类型id}-{来源对象id}
    facestr被举报用户头像url
    unamestr被举报用户昵称
    votenum我的投票见上表
    case_typenum众裁类型0:小众众裁
    1:大众众裁

    示例:

    查询案件1239790的信息

    Cookie方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \\
    +--data-urlencode 'cid=1239790' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \\
    +--data-urlencode 'access_key=xxx' \\
    +--data-urlencode 'cid=1239790' \\
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    cidnum案件id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    data有效时:object
    无效时:null
    数据本体

    data 对象:

    字段类型内容备注
    idnum案件id
    midnum被举报用户mid
    statusnum裁决状态1:投票中
    2:停止发放
    3:复核中(结案中)
    4:已裁决
    5:待重启
    6:未裁决
    7:冻结中
    8:队列中
    originTypenum来源类型见「封禁公示」中表
    reasonTypenum原因类型见「封禁公示」中表
    originContentstr被举报的原文
    punishResultnum处理结果0:无
    1:封禁3天
    2:封禁7天
    3:永封
    4:其他封禁天数
    5:封禁15天
    6:仅删除不封禁
    judgeTypenum裁决类型status=4时有效
    0:未裁决
    1:违规
    2:不违规
    originUrlstr来源url
    blockedDaysnum封禁时间judgeType=1时有效
    putTotalnum???作用尚不明确
    voteRulenum投票不违规人数
    voteBreaknum投票建议封禁人数
    voteDeletenum投票建议删除人数
    startTimenum裁决起始时间时间戳
    endTimenum裁决截止时间时间戳
    未结案固定为24小时
    ctimenum举报创建时间时间戳
    mtimenum开始拉取时间时间戳
    originTitlestr来源标题
    relationIdstr违规关系标识字{评论rpid}-{违规类型id}-{来源对象id}
    facestr被举报用户头像url
    unamestr被举报用户昵称
    votenum0固定为0
    case_typenum众裁类型0:小众众裁
    1:大众众裁

    示例:

    查询案件1239790的信息

    curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \\
    +--data-urlencode 'cid=1239790'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码非必要默认为1
    psnum每页显示数量非必要默认为30
    最大30

    Headers参数

    参数名类型内容必要性备注
    cookiestr必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体
    data.totalnum仲裁案例数
    data.listarray仲裁记录列表

    list数组:

    类型内容备注
    0object仲裁记录1
    nobject仲裁记录(n+1)按照时间顺序
    ……object…………

    list数组中的对象:

    字段类型内容备注
    case_idstr案件id
    case_typenum案件类型1:单条评论
    2:评论氛围
    3:单条弹幕
    4:弹幕氛围
    statusnum裁决状态0:投票中
    1:已结束
    votenum投票选项“单条评论(弹幕)”分别为 1 或者 2 或者 3 或者 4
    对应:“合适”、“一般”、“不合适”、“无法判断”

    “评论(弹幕)氛围”分别为 11 或者 12 或者 13 或者 14
    对应:“好”、“一般”、“差”、“无法判断”
    vote_textstr投票选项文本参考上条
    vote_timenum投票时间时间戳,精确到秒
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    pnnum页码非必要默认为1
    psnum每页显示数量非必要默认为30
    最大30

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    dataarray仲裁记录列表

    data数组:

    类型内容备注
    0object仲裁记录1
    nobject仲裁记录(n+1)按照时间顺序
    ……object…………

    data数组中的对象:

    字段类型内容备注
    idnum案件id
    midnum被举报用户mid
    statusnum裁决状态1:投票中
    2:停止发放
    3:复核中(结案中)
    4:已裁决
    5:待重启
    6:未裁决
    7:冻结中
    8:队列中
    originTypenum来源类型见「封禁公示」中表
    reasonTypenum原因类型见「封禁公示」中表
    originContentstr被举报的原文
    punishResultnum处理结果0:无
    1:封禁3天
    2:封禁7天
    3:永封
    4:其他封禁天数
    5:封禁15天
    6:仅删除不封禁
    punishTitlestr处罚原因
    judgeTypenum裁决类型status=4时有效
    0:未裁决
    1:违规
    2:不违规
    originUrlstr来源url
    blockedDaysnum封禁时间judgeType=1时有效
    putTotalnum???作用尚不明确
    voteRulenum投票不违规人数
    voteBreaknum投票建议封禁人数
    voteDeletenum投票建议删除人数
    startTimenum裁决起始时间时间戳
    endTimenum裁决截止时间时间戳
    未结案固定为24小时
    ctimenum举报创建时间时间戳
    mtimenum开始拉取时间时间戳
    originTitlestr来源标题
    relationIdstr违规关系标识字{评论rpid}-{违规类型id}-{来源对象id}
    facestr被举报用户头像url
    unamestr被举报用户昵称
    votenum我的投票见上表
    voteTimenum我的裁决时间毫秒 时间戳
    case_typenum众裁类型0:小众众裁
    1:大众众裁

    示例:

    查询我的历史众裁,第1页,每页显示1个案件

    Cookie方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \\
    +--data-urlencode 'ps=1' \\
    +--data-urlencode 'pn=1' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \\
    +--data-urlencode 'access_key=xxx' \\
    +--data-urlencode 'ps=1' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "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):

    参数名类型内容必要性备注
    CookiestrCookie必要

    URL参数(Query Params):

    参数名类型内容备注
    case_idstr仲裁案件id必填
    pnnum显示第x页(default = 1)
    psnum每页显示y条观点(Max = 20)(default = 10)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功;
    -400:ps参数大于可允许的最大值20
    messagestr信息默认为0
    ttlnum1作用尚不明确
    dataobject数据本体

    data对象:

    字段类型内容备注
    totalnum当前案件众议观点总数
    listarray无数据时是一个空数组:“[]”

    data.list对象是一个数组,里面包含ps个object(参数ps见上文,object结构见「附表4」)

    示例:

    查看案件AC1xx411c7ac的众议观点,每页2项,查看第1

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    cidnum案件id必要
    psnum每页项数非必要默认为10
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    countnum观点总数
    opinion有效时:array
    无效时:null
    观点列表

    data 中的opinion 数组:

    类型内容备注
    0object观点1
    nobject观点(n+1)按照时间顺序
    ……object…………

    opinion 数组中的对象:

    字段类型内容备注
    midnum用户mid仅非匿名有此项
    facestr用户头像仅非匿名有此项
    namestr用户昵称仅非匿名有此项
    opidnum观点id
    votenum投票选择见上表
    contentstr观点内容
    attrnum是否匿名0:匿名
    1:不匿名
    hatenum喜欢人数
    likenum不喜欢人数

    示例:

    查看案件1239790的众议观点,每页10项,查看第一页

    curl -G 'https://api.bilibili.com/x/credit/jury/case/opinion' \\
    +--data-urlencode 'cid=1239790' \\
    +--data-urlencode 'ps=10' \\
    +--data-urlencode 'pn=1' \\
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    `,74),o=[e];function d(r,c){return n(),s("div",null,o)}const u=t(p,[["render",d],["__file","judgement_info.html.vue"]]);export{u as default}; diff --git a/assets/kichiku-8f960ae2.svg b/assets/kichiku-8f960ae2.svg new file mode 100644 index 0000000000..2d74f850ba --- /dev/null +++ b/assets/kichiku-8f960ae2.svg @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/knowledge-65fd8dce.svg b/assets/knowledge-65fd8dce.svg new file mode 100644 index 0000000000..8ede0d7744 --- /dev/null +++ b/assets/knowledge-65fd8dce.svg @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/life-1f4a6ef5.svg b/assets/life-1f4a6ef5.svg new file mode 100644 index 0000000000..ad03a79991 --- /dev/null +++ b/assets/life-1f4a6ef5.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/assets/light_card.html-8a7d5469.js b/assets/light_card.html-8a7d5469.js new file mode 100644 index 0000000000..e1b5d480b7 --- /dev/null +++ b/assets/light_card.html-8a7d5469.js @@ -0,0 +1 @@ +const a=JSON.parse('{"key":"v-6219086a","path":"/docs/manga/light_card.html","title":"获取轻享卡信息","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/manga/light_card.md"}');export{a as data}; diff --git a/assets/light_card.html-b4e072c6.js b/assets/light_card.html-b4e072c6.js new file mode 100644 index 0000000000..aeb98894c4 --- /dev/null +++ b/assets/light_card.html-b4e072c6.js @@ -0,0 +1,74 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const e={},p=a(`

    获取轻享卡信息

    https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystr登录access_keySESSDATA二选其一

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    msgstr
    dataobj信息本体

    data对象:

    字段名类型内容备注
    statenum轻享卡开通状态0:未开通
    1:已开通
    show_statenum
    expire_datestr轻享卡到期时间
    receive_amountnum已领取数量
    save_moneynum已节省漫币
    indexnum默认选择签到周期
    weekarray一个领取周期内的领取状态信息
    month_reward_statenum是否可选择全勤奖0:不可领取
    1:可领取
    2:不可领取(灰色)
    month_rewardnum
    cur_month_endstr全勤奖领取剩余时间
    server_timestr当前服务器时间

    week数组中的对象:

    字段名类型内容备注
    indexnum第几领取周期1开始
    start_timestr本周期领取开始时间1:待领取
    2:已领取
    3:明日可领
    4:已失效
    5:可领取
    end_timestr本周期领取结束时间同上
    firstnum本周期第1天的领取状态同上
    secondnum本周期第2天的领取状态同上
    thirdnum本周期第3天的领取状态同上
    fourthnum本周期第4天的领取状态同上
    full_reward_statenum周期全勤奖领取状态1:不可领取
    2:可领取
    3:已领取

    示例:

    SESSDATA方式:

    curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard' \\
    +-H 'Cookie: SESSDATA=xxx'
    +

    access_key方式:

    curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard?access_key=xxx'
    +
    查看响应示例:
    {
    +  "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_keystrSESSDATA二选其一

    正文参数( application/json ):

    参数名类型必填内容备注
    weekIndexnum第几周1开始
    typenum领取类型1:领取漫读券
    2:领取限免卡

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    3:今日已领取,请明日再来
    3:还未满足领取条件
    4:找不到数据~
    6:你点击太快了哦~
    msgstr
    dataobj

    示例:

    SESSDATA方式:

    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方式:

    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}'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {}
    +}
    +
    `,38),o=[p];function r(d,c){return n(),t("div",null,o)}const i=s(e,[["render",r],["__file","light_card.html.vue"]]);export{i as default}; diff --git a/assets/like-10f92194.svg b/assets/like-10f92194.svg new file mode 100644 index 0000000000..cfc8cb18fe --- /dev/null +++ b/assets/like-10f92194.svg @@ -0,0 +1,5 @@ + + + diff --git a/assets/list.html-2971c414.js b/assets/list.html-2971c414.js new file mode 100644 index 0000000000..15a25a419c --- /dev/null +++ b/assets/list.html-2971c414.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-167ffab0","path":"/docs/comment/list.html","title":"评论区明细","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取评论区明细_翻页加载","slug":"获取评论区明细-翻页加载","link":"#获取评论区明细-翻页加载","children":[]},{"level":2,"title":"获取评论区明细_懒加载","slug":"获取评论区明细-懒加载","link":"#获取评论区明细-懒加载","children":[]},{"level":2,"title":"获取指定评论的回复","slug":"获取指定评论的回复","link":"#获取指定评论的回复","children":[]},{"level":2,"title":"获取指定评论对话树","slug":"获取指定评论对话树","link":"#获取指定评论对话树","children":[]},{"level":2,"title":"获取评论区热评","slug":"获取评论区热评","link":"#获取评论区热评","children":[]},{"level":2,"title":"获取指定评论信息","slug":"获取指定评论信息","link":"#获取指定评论信息","children":[]},{"level":2,"title":"获取评论区评论总数","slug":"获取评论区评论总数","link":"#获取评论区评论总数","children":[]}],"git":{},"filePathRelative":"docs/comment/list.md"}');export{l as data}; diff --git a/assets/list.html-2e89a343.js b/assets/list.html-2e89a343.js new file mode 100644 index 0000000000..5e3e9c5c4a --- /dev/null +++ b/assets/list.html-2e89a343.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-619ac887","path":"/docs/article/list.html","title":"获取用户专栏信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取用户专栏文章列表","slug":"获取用户专栏文章列表","link":"#获取用户专栏文章列表","children":[]},{"level":2,"title":"获取用户专栏文集列表","slug":"获取用户专栏文集列表","link":"#获取用户专栏文集列表","children":[]}],"git":{},"filePathRelative":"docs/article/list.md"}');export{l as data}; diff --git a/assets/list.html-3cdf3e48.js b/assets/list.html-3cdf3e48.js new file mode 100644 index 0000000000..daff74345c --- /dev/null +++ b/assets/list.html-3cdf3e48.js @@ -0,0 +1,410 @@ +import{_ as a,r as p,o,c as e,a as r,b as s,d as c,w as l,e as n}from"./app-3168cb19.js";const u={},d=n('

    获取用户专栏信息

    获取用户专栏文章列表

    https://api.bilibili.com/x/space/wbi/article

    https://api.bilibili.com/x/space/article(旧链接)

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    ',6),i=n(`

    url参数:

    参数名类型内容必要性备注
    midnum用户uid
    pnnum默认:1
    psnum默认:30
    范围:[1,30]
    sortstrpublish_time:最新发布
    view:最多阅读
    fav:最多收藏
    默认:publish_time

    json回复:

    根对象

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    articlesarray专栏文章信息列表
    pnnum本次请求分页页数
    psnum本次请求分页大小
    countnum专栏文章总数

    data对象 -> articles数组中的对象

    字段名类型内容备注
    idnum专栏文章id
    categoryobj分类
    categoriesarray分类
    titlestr标题
    summarystr摘要
    banner_urlstr封面图
    template_idnum
    statenum
    authorobjUP主信息
    reprintnum
    image_urlsarray
    publish_timenum发布时间戳单位:秒
    ctimenum提交时间戳单位:秒
    statsobj专栏文章数据统计
    tagsarray标签
    wordsnum
    dynamicstr粉丝动态文案
    origin_image_urlsarray
    listnull
    is_likebool
    mediaobj
    apply_timestr空串
    check_timestr空串
    originalnum
    act_idnum
    disputenull
    authenMarknull
    cover_avidnum
    top_video_infonull
    typenum

    data对象 -> articles数组中的对象 -> category对象

    字段名类型内容备注
    idnum分类id
    parent_idnum父级分类id
    namestr分类名称

    data对象 -> articles数组中的对象 -> categories数组中的对象

    字段名类型内容备注
    idnum分类id
    parent_idnum父级分类id
    namestr分类名称

    data对象 -> articles数组中的对象 -> author对象

    字段名类型内容备注
    midnum用户uid
    namestr用户名
    facestr头像
    pendantobj头像框信息
    official_verifyobj账号认证信息
    nameplateobj成就勋章信息
    vipobj大会员信息

    data对象 -> articles数组中的对象 -> author对象 -> pendant对象

    字段名类型内容备注
    pidnum头像框id
    namestr头像框名称
    imagestr头像框图片url
    expirenum过期时间

    data对象 -> articles数组中的对象 -> author对象 -> official_verify对象

    字段名类型内容备注
    typenum是否认证-1:无
    0:个人认证
    1:机构认证
    descstr认证备注

    data对象 -> articles数组中的对象 -> author对象 -> nameplate对象

    字段名类型内容备注
    nidnum勋章id
    namestr勋章名称
    imagestr勋章图标
    image_smallstr勋章图标(小)
    levelstr勋章等级
    conditionstr获取条件

    data对象 -> articles数组中的对象 -> author对象 -> vip对象

    字段名类型内容备注
    typenum大会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum大会员状态0:无
    1:有
    due_datenum大会员过期时间时间戳单位:毫秒
    vip_pay_typenum支付类型
    theme_typenum0
    labelobj大会员标签
    avatar_subscriptnum是否显示大会员图标0:不显示
    1:显示
    nickname_colorstr大会员昵称颜色

    data对象 -> articles数组中的对象 -> author对象 -> vip对象 -> label对象

    字段名类型内容备注
    pathstr空串
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼

    data对象 -> articles数组中的对象 -> stats对象

    字段名类型内容备注
    viewnum浏览数
    favoritenum收藏数
    likenum点赞数
    dislikenum点踩数恒为0
    replynum回复数
    sharenum转发数
    coinnum投币数
    dynamicnum

    data对象 -> articles数组中的对象 -> tags数组中的对象

    字段名类型内容备注
    tidnum标签id
    namestr标签名称

    data对象 -> articles数组中的对象 -> media对象

    字段名类型内容备注
    scorenum0
    media_idnum0
    titlestr空串
    coverstr空串
    areastr空串
    type_idnum0
    type_namestr空串
    spoilernum0

    示例:

    curl -L -X GET 'https://api.bilibili.com/x/space/article?mid=300021061&pn=1&ps=2&sort=publish_time'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    midnum用户uid
    sortnum排序方式0:最近更新
    1:最多阅读
    jsonpstr
    callbackstr

    json回复:

    根对象

    字段名类型内容备注
    codenum响应码0:成功
    -400:请求错误
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    listsarray文集信息列表
    totalnum文集总数

    data对象 -> lists数组中的对象

    字段名类型内容备注
    idnum文集id
    midnum作者uid
    namestr文集名称
    image_urlstr封面
    update_timenum最后更新时间戳单位:秒
    ctimenum创建时间戳单位:秒
    publish_timenum单位:秒
    summarystr空串
    wordsnum总字数
    readnum阅读量
    articles_countnum包含文章数
    statenum1
    reasonstr空串
    apply_timestr空串
    check_timestr空串

    示例:

    curl -X GET 'https://api.bilibili.com/x/article/up/lists' \\
    +    --data-urlencode 'mid=2859372' \\
    +    --data-urlencode 'sort=0'
    +
    点击查看
    {
    +  "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
    +  }
    +}
    +
    `,50);function k(m,q){const t=p("RouterLink");return o(),e("div",null,[d,r("p",null,[s("鉴权方式:"),c(t,{to:"/docs/misc/sign/wbi.html"},{default:l(()=>[s("Wbi 签名")]),_:1})]),i])}const b=a(u,[["render",k],["__file","list.html.vue"]]);export{b as default}; diff --git a/assets/list.html-3dfb5395.js b/assets/list.html-3dfb5395.js new file mode 100644 index 0000000000..2f2260fd04 --- /dev/null +++ b/assets/list.html-3dfb5395.js @@ -0,0 +1,132 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const p={},o=a(`

    活动列表

    获取活动列表

    https://api.bilibili.com/x/activity/page/list

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    platstr活动平台类型?必要可选范围 [1, 3], 以半角逗号分隔, 默认 1,3
    moldint0非必要
    httpint3非必要
    pnint目标页码非必要默认为 1
    psint每页条数非必要默认为 15

    JSON回复:

    根对象:

    字段类型内容备注
    codeint返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlint1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray活动列表
    numint当前页码
    sizeint每页条数
    totalint总条数

    list 数组中的对象:

    字段类型内容备注
    idint活动 ID
    stateint1
    stimeint开始时间UNIX 秒级时间戳
    etimeint结束时间UNIX 秒级时间戳
    ctimeint创建时间?UNIX 秒级时间戳, 可能为 0
    mtimeint修改时间?UNIX 秒级时间戳, 可能为 0
    namestr活动名称
    authorstr
    pc_urlstr
    rankint0
    h5_urlstr活动链接
    pc_coverstr
    h5_coverstr活动封面
    page_namestr页面名称
    platint活动平台类型?即 URL 中 plat 参数
    descstr活动描述
    clickint0
    typeint0
    moldint0
    seriesint0
    deptint0
    reply_idint0
    tp_idint0
    ptimeint0
    catalogint0
    creatorstr
    spm_idstr

    示例:

    curl -G 'https://api.bilibili.com/x/activity/page/list' \\
    +--url-query 'plat=1,2,3' \\
    +--url-query 'ps=4'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "id": 207,
    +        "state": 1,
    +        "stime": 1723262400,
    +        "etime": 1724774399,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "原神fes2024",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/DK8i0NS7fxwcLBgm.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/d32c2bb79f59192cb072d7bf79b61c6d/In2tYOLFTZ.png",
    +        "page_name": "原神fes2024",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      },
    +      {
    +        "id": 210,
    +        "state": 1,
    +        "stime": 1723219200,
    +        "etime": 1725983999,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "暗区突围端游海外版全员夺金冲榜挑战赛",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/UP8CZSTfboDVZuGr.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/f9a67e268d55d029e6b27d81246fc59a/LPN9dlcRlW.png",
    +        "page_name": "暗区突围端游海外版全员夺金冲榜挑战赛",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      },
    +      {
    +        "id": 199,
    +        "state": 1,
    +        "stime": 1723089600,
    +        "etime": 1725897599,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "剑与远征:启程公测创作者激励",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/HkHatvvW9nJZXEMh.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/7785e7ecb0434c85530b92e3586f32ff/CgKENr0ftC.jpeg",
    +        "page_name": "剑与远征:启程公测创作者激励",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      },
    +      {
    +        "id": 203,
    +        "state": 1,
    +        "stime": 1723089600,
    +        "etime": 1724255999,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "王者荣耀新英雄少司缘创作激励",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/g0gn2j4ZENrCLYLn.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/a99ba278036e9fbfa81b9100d13d9e7e/9UHZg6r0Y5.jpg",
    +        "page_name": "王者荣耀新英雄少司缘创作激励",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      }
    +    ],
    +    "num": 1,
    +    "size": 4,
    +    "total": 5391
    +  }
    +}
    +
    `,16),e=[o];function r(c,l){return n(),t("div",null,e)}const i=s(p,[["render",r],["__file","list.html.vue"]]);export{i as default}; diff --git a/assets/list.html-5b7d0fdd.js b/assets/list.html-5b7d0fdd.js new file mode 100644 index 0000000000..69b79badf9 --- /dev/null +++ b/assets/list.html-5b7d0fdd.js @@ -0,0 +1,357 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    笔记列表

    查询稿件私有笔记

    https://api.bilibili.com/x/note/list/archive

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    该接口只能查询私有笔记,无法查询公开笔记

    url参数:

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    noteIdsarray笔记列表无笔记则无此项
    可能后续会允许视频添加多个笔记

    data中的noteIds数组:

    类型内容备注
    0str笔记id

    示例:

    查询视频av970322090的笔记id

    curl 'https://api.bilibili.com/x/note/list/archive' \\
    +--data-urlencode 'oid=970322090' \\
    +--data-urlencode 'oid_type=0' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "noteIds":[
    +            "3809605586518023"
    +        ]
    +    }
    +}
    +

    查询用户私有笔记

    https://api.bilibili.com/x/note/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    psnum每页项数必要
    pnnum页码必要
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    pageobj页面信息

    data中的list数组:

    类型内容备注
    0obj笔记1
    nobj笔记(n+1)按照创建顺序排列
    ……obj…………

    list中的对象:

    字段类型内容备注
    titlestr笔记标题
    summarystr笔记预览文本
    mtimestr提交时间YYYY-MM-DD hh:mm
    arcobj视频信息
    note_idnum笔记id
    audit_statusnum0作用尚不明确
    web_urlstr笔记h5页url
    note_id_strstr笔记id str
    messagestr更新信息"更新于 YYYY-MM-DD hh:mm"
    forbid_note_entrancebool(?)
    likesnum点赞数
    has_likebool是否点赞

    list中的arc中的对象:

    字段类型内容备注
    oidnum目标id
    bvidstr稿件bvid
    picstr稿件封面图片url
    descstr视频简介
    statusnum0
    oid_typenum目标id类型0视频(oid=avid)
    aidnum稿件avid

    data中的page对象:

    字段类型内容备注
    totalnum笔记总数
    sizenum每页项数
    numnum页码

    示例:

    curl 'https://api.bilibili.com/x/note/list' \\
    +--data-urlencode 'ps=10' \\
    +--data-urlencode 'pn=1'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    psnum每页项数必要
    pnnum页码必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray公开笔记列表
    pageobj页面信息
    show_public_notebool
    messagestr

    data中的list数组:

    类型内容备注
    0obj笔记1
    nobj笔记(n+1)按照创建顺序排列
    ……obj…………

    list中的对象:

    字段类型内容备注
    cvidnum公开笔记对应的专栏cvid
    titlestr笔记标题
    summarystr笔记预览
    pubtimestr发布时间YYYY-MM-DD hh:mm
    web_urlstr笔记h5页url
    messagestr更新信息"更新于 YYYY-MM-DD hh:mm"
    authorobj作者信息
    likesnum点赞数
    has_likebool是否点赞需要登录(Cookie)

    list中的对象中的author对象:

    字段类型内容备注
    midnum用户mid
    namestr昵称
    facestr头像url
    levelnum用户等级
    vip_infoobj会员信息
    pendantobj头像框信息

    示例:

    查询视频av338677252的公开笔记列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    psnum每页项数必要
    pnnum页码必要
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    pageobj页面信息

    data中的list数组:

    类型内容备注
    0obj笔记1
    nobj笔记(n+1)按照创建顺序排列
    ……obj…………

    data中的page对象:

    字段类型内容备注
    totalnum笔记总数
    sizenum每页项数
    numnum页码

    示例:

    curl 'https://api.bilibili.com/x/note/publish/list/user' \\
    +--data-urlencode 'ps=10' \\
    +--data-urlencode 'pn=1'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "page": {
    +            "total": 0,
    +            "size": 10,
    +            "num": 1
    +        }
    +    }
    +}
    +
    `,79),e=[o];function r(l,c){return n(),a("div",null,e)}const i=s(p,[["render",r],["__file","list.html.vue"]]);export{i as default}; diff --git a/assets/list.html-679acea5.js b/assets/list.html-679acea5.js new file mode 100644 index 0000000000..885014c3d1 --- /dev/null +++ b/assets/list.html-679acea5.js @@ -0,0 +1,406 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    表情列表

    获取我的表情列表

    https://api.bilibili.com/x/emote/user/panel/web

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    使用登录(Cookie)进行会员专属及已购买表情包的分发,否则全为免费表情包

    url参数:

    参数名类型内容必要性备注
    businessstr使用场景必要reply:评论区
    dynamic:动态

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    packagesarray表情包

    data中的packages数组:

    类型内容备注
    0obj表情包1详情见附表
    nobj表情包(n+1)详情见附表
    ……obj…………

    示例:

    curl -G 'https://api.bilibili.com/x/emote/user/panel/web' \\
    +--data-urlencode 'business=reply' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    businessstr使用场景必要reply:评论区
    dynamic:动态
    idsnums表情包id必要id之间以,隔开

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    信息本体

    data对象:

    字段类型内容备注
    packagesarray表情包

    data中的packages数组:

    类型内容备注
    0obj表情包1详情见附表
    nobj表情包(n+1)详情见附表
    ……obj…………

    示例:

    获取表情包id为93的表情包明细

    curl -G 'https://api.bilibili.com/x/emote/package' \\
    +--data-urlencode 'ids=93' \\
    +--data-urlencode 'business=reply'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    businessstr使用场景必要reply:评论区
    dynamic:动态

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    user_panel_packagesarray用户拥有的表情包
    all_packagesarray所有表情包
    mallobj商城页面

    data对象中的user_panel_packages数组:

    类型内容备注
    0obj用户拥有的表情包1详情见附表
    nobj用户拥有的表情包(n+1)详情见附表
    ……obj…………

    data对象中的all_packages数组:

    类型内容备注
    0obj所有表情包1详情见附表
    nobj所有表情包(n+1)详情见附表
    ……obj…………

    data对象中的mall对象:

    字段类型内容备注
    titlestr商城名称
    urlstr商城页面url

    示例:

    curl -G 'https://api.bilibili.com/x/emote/setting/panel' \\
    +--data-urlencode 'business=reply' \\
    +-b 'SESSDATA=xxx'
    +

    限于篇幅,代码块示例略

    附表-表情包对象

    字段类型内容备注
    idnum表情包id
    textstr表情包名称
    urlstr表情包标志图片url
    mtimenum创建时间时间戳
    typenum表情包类型1:普通
    2:会员专属
    3:购买所得
    4:颜文字
    attrnum???作用尚不明确
    metaobj属性信息
    emotearray表情列表
    flagsobj是否添加标志

    表情包对象中的flags对象:

    字段类型内容备注
    addedbool是否已添加true:已添加
    false:未添加
    需要登录(SESSDATA)
    否则恒为false

    表情包对象中的meta对象:

    字段类型内容备注
    sizenum表情尺寸信息1:小
    2:大
    item_idnum购买物品id
    item_urlnum购买物品页面url无则无此项

    表情包对象中的emote数组:

    类型内容备注
    0obj表情1
    nobj表情(n+1)
    ……obj…………

    emote数组中的对象:

    字段类型内容备注
    idnum表情id
    package_idnum表情包id
    textstr表情转义符颜文字时为该字串
    urlstr表情图片url颜文字时为该字串
    mtimenum创建时间时间戳
    typenum表情类型1:普通
    2:会员专属
    3:购买所得
    4:颜文字
    attrnum???作用尚不明确
    metaobj属性信息
    flagsobj禁用标志无则为空

    emote数组中的对象中的flags对象:

    字段类型内容备注
    no_accessbool是否为禁用true:禁用
    需要登录(SESSDATA)
    否则恒为true

    emote数组中的对象中的meta对象:

    字段类型内容备注
    sizenum表情尺寸信息1:小
    2:大
    aliasstr简写名无则无此项
    `,68),e=[o];function c(l,u){return s(),a("div",null,e)}const i=n(p,[["render",c],["__file","list.html.vue"]]);export{i as default}; diff --git a/assets/list.html-793787fd.js b/assets/list.html-793787fd.js new file mode 100644 index 0000000000..875f6c117a --- /dev/null +++ b/assets/list.html-793787fd.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-724d6800","path":"/docs/album/list.html","title":"相簿列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取画友首页列表","slug":"获取画友首页列表","link":"#获取画友首页列表","children":[]},{"level":2,"title":"获取摄影首页列表","slug":"获取摄影首页列表","link":"#获取摄影首页列表","children":[]},{"level":2,"title":"获取画友列表","slug":"获取画友列表","link":"#获取画友列表","children":[]},{"level":2,"title":"获取摄影列表","slug":"获取摄影列表","link":"#获取摄影列表","children":[]},{"level":2,"title":"获取指定用户的相簿列表","slug":"获取指定用户的相簿列表","link":"#获取指定用户的相簿列表","children":[]}],"git":{},"filePathRelative":"docs/album/list.md"}');export{l as data}; diff --git a/assets/list.html-8ecf20ec.js b/assets/list.html-8ecf20ec.js new file mode 100644 index 0000000000..c6452b40af --- /dev/null +++ b/assets/list.html-8ecf20ec.js @@ -0,0 +1,363 @@ +import{_ as p,r as o,o as e,c as l,a as n,b as s,d as u,w as c,e as a}from"./app-3168cb19.js";const r={},i=a('

    收藏夹内容

    获取收藏夹内容明细列表

    https://api.bilibili.com/x/v3/fav/resource/list

    请求方式:GET

    认证方式:Cookie或APP

    注:查询权限收藏夹时需要相应用户登录

    url参数:

    ',7),d=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),k=n("tr",null,[n("td",null,"media_id"),n("td",null,"num"),n("td",null,"目标收藏夹mlid(完整id)"),n("td",null,"必要"),n("td")],-1),v=n("td",null,"tid",-1),b=n("td",null,"num",-1),q=n("td",null,"分区tid",-1),m=n("td",null,"非必要",-1),y=n("br",null,null,-1),h=n("br",null,null,-1),g=n("tr",null,[n("td",null,"keyword"),n("td",null,"str"),n("td",null,"搜索关键字"),n("td",null,"非必要"),n("td")],-1),f=n("tr",null,[n("td",null,"order"),n("td",null,"str"),n("td",null,"排序方式"),n("td",null,"非必要"),n("td",null,[s("按收藏时间:mtime"),n("br"),s("按播放量: view"),n("br"),s("按投稿时间:pubtime")])],-1),V=n("tr",null,[n("td",null,"type"),n("td",null,"num"),n("td",null,"查询范围"),n("td",null,"非必要"),n("td",null,[s("0:当前收藏夹(对应media_id)"),n("br"),s(" 1:全部收藏夹")])],-1),B=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"每页数量"),n("td",null,"必要"),n("td",null,"定义域:1-20")],-1),_=n("tr",null,[n("td",null,"pn"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"非必要"),n("td",null,"默认为1")],-1),j=n("tr",null,[n("td",null,"platform"),n("td",null,"str"),n("td",null,"平台标识"),n("td",null,"非必要"),n("td",null,"可为web(影响内容列表类型)")],-1),Y=a(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    data有效时:obj
    无效或:null
    信息本体

    data对象:

    字段类型内容备注
    infoobj收藏夹元数据
    mediasarray收藏夹内容
    has_morebool收藏夹是否有下一页
    ttlnum接口返回时间时间戳

    data中的info对象:

    字段类型内容备注
    idnum收藏夹mlid(完整id)收藏夹原始id+创建者mid尾号2位
    fidnum收藏夹原始id
    midnum创建者mid
    attrnum属性0:正常
    1:失效
    titlestr收藏夹标题
    coverstr收藏夹封面图片url
    upperobj创建者信息
    cover_typenum封面图类别(?)
    cnt_infoobj收藏夹状态数
    typenum类型(?)一般是11
    introstr备注
    ctimenum创建时间时间戳
    mtimenum收藏时间时间戳
    statenum状态(?)一般为0
    fav_statenum收藏夹收藏状态已收藏收藏夹:1
    未收藏收藏夹:0
    需要登录
    like_statenum点赞状态已点赞:1
    未点赞:0
    需要登录
    media_countnum收藏夹内容数量

    info中的upper对象:

    字段类型内容备注
    midnum创建者mid
    namestr创建者昵称
    facestr创建者头像url
    followedbool是否已关注创建者
    vip_typenum会员类别0:无
    1:月大会员
    2:年度及以上大会员
    vip_statuenum会员开通状态0:无
    1:有

    info中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    thumb_upnum点赞数
    sharenum分享数

    data中的medias数组:

    类型内容备注
    0obj收藏内容1
    nobj收藏内容(n+1)
    ...obj...

    medias数组中的对象:

    字段类型内容备注
    idnum内容id视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    typenum内容类型2:视频稿件
    12:音频
    21:视频合集
    titlestr标题
    coverstr封面url
    introstr简介
    pagenum视频分P数
    durationnum音频/视频时长
    upperobjUP主信息
    attrnum失效0: 正常;9: up自己删除;1: 其他原因删除
    cnt_infoobj状态数
    linkstr跳转uri
    ctimenum投稿时间时间戳
    pubtimenum发布时间时间戳
    fav_timenum收藏时间时间戳
    bv_idstr视频稿件bvid
    bvidstr视频稿件bvid
    seasonnull(?)

    medias数组中的对象中的upper对象:

    字段类型内容备注
    midnumUP主mid
    namestrUP主昵称
    facestrUP主头像url

    medias数组中的对象中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    danmakunum弹幕数

    示例:

    查询收藏夹id=1052622027,每页5个视频,第1页的内容明细

    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'
    +
    查看响应示例:
    {
    +    "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,
    +        "ttl": 1703349018
    +    }
    +}
    +

    获取收藏夹全部内容id

    https://api.bilibili.com/x/v3/fav/resource/ids

    请求方式:GET

    认证方式:Cookie或APP

    注:查询权限收藏夹时需要相应用户登录

    url参数:

    参数名类型内容必要性备注
    media_idnum目标收藏夹mlid(完整id)必要
    platformstr平台标识非必要可为web(影响内容列表类型)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    data有效时:array
    无效或:null
    内容id列表

    data中的medias数组:

    类型内容备注
    0obj收藏内容id1
    nobj收藏内容id(n+1)
    ...obj...

    medias数组中的对象:

    字段类型内容备注
    idnum内容id视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    typenum内容类型2:视频稿件
    12:音频
    21:视频合集
    bv_idstr视频稿件bvid
    bvidstr视频稿件bvid

    示例:

    查询收藏夹id=1052622027的全部内容id

    curl -G 'https://api.bilibili.com/x/v3/fav/resource/ids' \\
    +--data-urlencode 'media_id=1052622027' \\
    +--data-urlencode 'platform=web' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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"
    +        }
    +    ]
    +}
    +
    `,41);function w(C,A){const t=o("RouterLink");return e(),l("div",null,[i,n("table",null,[d,n("tbody",null,[k,n("tr",null,[v,b,q,m,n("td",null,[s("默认为全部分区"),y,s("0:全部分区"),h,u(t,{to:"/docs/video/video_zone.html"},{default:c(()=>[s("详见说明")]),_:1})])]),g,f,V,B,_,j])]),Y])}const U=p(r,[["render",w],["__file","list.html.vue"]]);export{U as default}; diff --git a/assets/list.html-a602ffd3.js b/assets/list.html-a602ffd3.js new file mode 100644 index 0000000000..52e1529b71 --- /dev/null +++ b/assets/list.html-a602ffd3.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-18cef84e","path":"/docs/note/list.html","title":"笔记列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询稿件私有笔记","slug":"查询稿件私有笔记","link":"#查询稿件私有笔记","children":[]},{"level":2,"title":"查询用户私有笔记","slug":"查询用户私有笔记","link":"#查询用户私有笔记","children":[]},{"level":2,"title":"查询稿件公开笔记","slug":"查询稿件公开笔记","link":"#查询稿件公开笔记","children":[]},{"level":2,"title":"查询用户公开笔记","slug":"查询用户公开笔记","link":"#查询用户公开笔记","children":[]}],"git":{},"filePathRelative":"docs/note/list.md"}');export{l as data}; diff --git a/assets/list.html-a87f31ef.js b/assets/list.html-a87f31ef.js new file mode 100644 index 0000000000..20599c711d --- /dev/null +++ b/assets/list.html-a87f31ef.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-f6d1a5d2","path":"/docs/emoji/list.html","title":"表情列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取我的表情列表","slug":"获取我的表情列表","link":"#获取我的表情列表","children":[]},{"level":2,"title":"获取指定的表情包明细","slug":"获取指定的表情包明细","link":"#获取指定的表情包明细","children":[]},{"level":2,"title":"获取所有表情包列表","slug":"获取所有表情包列表","link":"#获取所有表情包列表","children":[]},{"level":2,"title":"附表-表情包对象","slug":"附表-表情包对象","link":"#附表-表情包对象","children":[]}],"git":{},"filePathRelative":"docs/emoji/list.md"}');export{l as data}; diff --git a/assets/list.html-b3a77f44.js b/assets/list.html-b3a77f44.js new file mode 100644 index 0000000000..71fe90a095 --- /dev/null +++ b/assets/list.html-b3a77f44.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-da455228","path":"/docs/fav/list.html","title":"收藏夹内容","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取收藏夹内容明细列表","slug":"获取收藏夹内容明细列表","link":"#获取收藏夹内容明细列表","children":[]},{"level":2,"title":"获取收藏夹全部内容id","slug":"获取收藏夹全部内容id","link":"#获取收藏夹全部内容id","children":[]}],"git":{},"filePathRelative":"docs/fav/list.md"}');export{l as data}; diff --git a/assets/list.html-bfe00ca6.js b/assets/list.html-bfe00ca6.js new file mode 100644 index 0000000000..fc9ed04102 --- /dev/null +++ b/assets/list.html-bfe00ca6.js @@ -0,0 +1,2163 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    相簿列表

    获取画友首页列表

    https://api.vc.bilibili.com/link_draw/v2/Doc/index

    请求方式:GET

    认证方式:Cookie(SESSDSTA)

    url参数:

    参数名类型内容必要性备注
    typestr排序方式必要recommend:推荐
    hot:最热
    new:最新
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    itemsarray相簿列表
    total_countnum总计条目数

    data中的items数组:

    类型内容备注
    0obj相簿 1
    nobj相簿 (n+1)
    ……obj…………

    data中的items数组中的对象:

    字段类型内容备注
    userobj作者信息
    itemobj相簿信息

    data中的items数组中的对象中的user对象:

    字段类型内容备注
    uidnum作者mid
    head_urlstr头像url
    namestr昵称

    data中的items数组中的对象中的item对象:

    字段类型内容备注
    doc_idnum相簿id
    poster_uidnum作者mid
    picturesarray相簿图片
    titlestr标题
    categorystr子分区名
    upload_timenum投稿时间时间戳
    already_likednum0作用尚不明确
    already_votednum是否已点赞需要登录(Cookie)
    否则恒为0

    item中的pictures数组:

    类型内容备注
    0obj图片 1
    nobj图片 (n+1)
    ……obj…………

    item中的pictures数组中的对象:

    字段类型内容备注
    img_srcstr图片url
    img_widthnum图片宽度
    img_heightnum图片高度

    示例:

    用按热度排序方式获取画友首页列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    typestr排序方式必要recommend:推荐
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    获取画友首页列表中的响应内容

    示例:

    用推荐方式获取画友首页列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    categorystr类型必要all:全部
    illustration:插画
    comic:漫画
    draw:其他
    typestr排序方式必要hot:最热
    new:最新
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    获取画友首页列表中的响应内容

    示例:

    用按热度排序方式获取全部类型的画友列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    categorystr类型必要cos:Cosplay
    sifu:私服
    typestr排序方式必要hot:最热
    new:最新
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    获取画友首页列表中的响应内容

    示例:

    用按热度排序方式获取Cosplay类型的摄影列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    biznum分区非必要0:全部
    1:画友
    2:摄影
    默认为0
    poster_uidnum作者mid必要默认为20
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    total_countstr总计相簿数
    userobj作者信息
    itemsarray相簿列表

    data中的user对象:

    字段类型内容备注
    uidstr作者mid
    head_urlstr头像url
    namestr昵称

    data中的item对象:

    获取画友首页列表中的item对象

    示例:

    获取用户1360010的所有类型相簿

    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'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    `,83),e=[o];function c(l,u){return n(),a("div",null,e)}const r=s(p,[["render",c],["__file","list.html.vue"]]);export{r as default}; diff --git a/assets/list.html-cc87d355.js b/assets/list.html-cc87d355.js new file mode 100644 index 0000000000..12f9ece62a --- /dev/null +++ b/assets/list.html-cc87d355.js @@ -0,0 +1,2983 @@ +import{_ as e,r as l,o as u,c,a as n,d as t,w as p,b as s,g as r,e as o}from"./app-3168cb19.js";const i={},d=n("h1",{id:"评论区明细",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#评论区明细","aria-hidden":"true"},"#"),s(" 评论区明细")],-1),k=n("h2",{id:"获取评论区明细-翻页加载",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#获取评论区明细-翻页加载","aria-hidden":"true"},"#"),s(" 获取评论区明细_翻页加载")],-1),q=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/v2/reply")],-1),v=n("p",null,[n("em",null,"请求方式:GET")],-1),b=n("p",null,"认证方式:Cookie(SESSDATA)或APP",-1),m=n("p",null,[n("strong",null,"url参数:")],-1),y=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),_=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP 登录 Token"),n("td",null,"APP 方式必要"),n("td")],-1),g=n("td",null,"type",-1),h=n("td",null,"num",-1),f=n("td",null,"评论区类型代码",-1),w=n("td",null,"必要",-1),x=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"必要"),n("td")],-1),E=n("tr",null,[n("td",null,"sort"),n("td",null,"num"),n("td",null,"排序方式"),n("td",null,"非必要"),n("td",null,[s("默认为0"),n("br"),s("0:按时间"),n("br"),s("1:按点赞数"),n("br"),s("2:按回复数")])],-1),A=n("tr",null,[n("td",null,"nohot"),n("td",null,"num"),n("td",null,"是否不显示热评"),n("td",null,"非必要"),n("td",null,[s("默认为0"),n("br"),s("1:不显示"),n("br"),s("0:显示")])],-1),j=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"每页项数"),n("td",null,"非必要"),n("td",null,[s("默认为20"),n("br"),s("定义域:1-20")])],-1),B=n("tr",null,[n("td",null,"pn"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"非必要"),n("td",null,"默认为1")],-1),F=o("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    pageobj页信息
    configobj评论区显示控制
    replies禁用时:null
    正常时:array
    评论列表
    hots禁用时:null
    正常时:array
    热评列表
    upperobj置顶评论
    topnull(?)
    notice无效时:null
    有效时:obj
    评论区公告信息
    votenum投票评论?
    blacklistnum(?)
    assistnum(?)
    modenum评论区类型id
    support_modearray评论区支持的类型id
    folderobj折叠相关信息
    lottery_cardnull(?)
    show_bvidbool显示bvid?
    controlobj评论区输入属性

    data中的page对象:

    字段类型内容备注
    numnum当前页码
    sizenum每页项数
    countnum根评论条数
    acountnum总计评论条数

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum(?)
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP 觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的replies数组:

    ",10),S=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),D=n("td",null,"0",-1),T=n("td",null,"obj",-1),P=n("td",null,"评论条目 1",-1),R=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"评论条目 (n+1)"),n("td",null,"按照指定的顺序排列")],-1),z=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),C=n("p",null,[n("code",null,"data"),s("中的"),n("code",null,"hots"),s("数组:")],-1),W=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),U=n("td",null,"0",-1),G=n("td",null,"obj",-1),V=n("td",null,"热评条目 1",-1),N=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"热评条目 (n+1)"),n("td",null,"按照热评热度排列")],-1),Q=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),L=n("p",null,[n("code",null,"data"),s("中的"),n("code",null,"upper"),s("对象:")],-1),H=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),M=n("tr",null,[n("td",null,"mid"),n("td",null,"num"),n("td",null,"UP 主 mid"),n("td")],-1),J=n("td",null,"top",-1),Y=n("td",null,[s("有效时:obj"),n("br"),s("无效时:null")],-1),I=n("td",null,"置顶条目",-1),K=n("tr",null,[n("td",null,"vote"),n("td",null,[s("有效时:obj"),n("br"),s("无效时:null")]),n("td",null,"投票评论?"),n("td")],-1),O=o(`

    data中的notice对象:

    字段类型内容备注
    contentstr公告正文
    idnum公告 id
    linkstr公告页面链接 url
    titlestr公告标题

    data中的folder对象:

    字段类型内容备注
    has_foldedbool评论区是否存在折叠评论
    is_foldedbool是否折叠?
    rulestr相关规则页面 url

    data中的control对象:

    字段类型内容备注
    input_disablebool是否禁止新增评论用户涉及合约争议,锁定该用户所有稿件、动态的评论区,不允许新增评论,root_input_textchild_input_text值为“当前评论区不可新增评论”
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    示例:

    获取视频av2的评论区明细,不显示热评,按照热度排序,每页5项,查看第1页

    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'
    +
    查看响应示例:
    {
    +    "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/wbi/main

    https://api.bilibili.com/x/v2/reply/main

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    `,15),Z=n("p",null,"注: Wbi 签名错误时返回 -403 而非 -352",-1),X=n("p",null,[n("strong",null,"url参数:")],-1),$=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),nn=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP 登录 Token"),n("td",null,"APP 方式必要"),n("td")],-1),sn=n("td",null,"type",-1),an=n("td",null,"num",-1),tn=n("td",null,"评论区类型代码",-1),pn=n("td",null,"必要",-1),on=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"必要"),n("td")],-1),en=n("tr",null,[n("td",null,"mode"),n("td",null,"num"),n("td",null,"排序方式"),n("td",null,"非必要"),n("td",null,[s("默认为 3"),n("br"),s("0 3:仅按热度"),n("br"),s("1:按热度+按时间"),n("br"),s("2:仅按时间")])],-1),ln=n("tr",null,[n("td",null,"pagination_str"),n("td",null,"obj"),n("td",null,"分页信息"),n("td",null,"非必要"),n("td",null,"见下")],-1),un=n("tr",null,[n("td",null,"plat"),n("td",null,"num"),n("td",null,"平台类型"),n("td",null,"非必要"),n("td",null,[s("如 "),n("code",null,"1")])],-1),cn=n("tr",null,[n("td",null,"seek_rpid"),n("td",null,"str"),n("td",null,"空"),n("td",null,"非必要"),n("td",null,"当获取第一页评论时存在")],-1),rn=n("tr",null,[n("td",null,"web_location"),n("td",null,"str"),n("td",null,"1315875"),n("td",null,"非必要"),n("td")],-1),dn=o("

    pagination_str:

    参数名类型内容备注
    offsetstr一个套着字符串皮的 JSON Object上次响应 data.cursor.pagination_reply.next_offset 的值, 获取第一页时为空, 其余见下参考

    pagination_str 中的 offset:

    参数名类型内容备注
    typenum类型当 URL 参数 mode 为 2 时, 此项为 3
    当 URL 参数 mode 为 3 时, 此项为 1
    directionnum1
    dataobj分页数据当 type 为 1 时存在
    Dataobj分页数据当 type 为 3 时存在
    ",4),kn=o("

    offset 中的 data (type=1):

    参数名类型内容备注
    pnnum页码 (上次响应 data.cursor.next 的值)

    offset 中的 Data (type=3):

    参数名类型内容备注
    cursornum上次响应 data.cursor.next 的值

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    ",8),qn=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),vn=n("tr",null,[n("td",null,"cursor"),n("td",null,"obj"),n("td",null,"游标信息"),n("td")],-1),bn=n("tr",null,[n("td",null,"hots"),n("td",null,[s("禁用时:null"),n("br"),s("正常时:array")]),n("td",null,"热评列表"),n("td")],-1),mn=n("tr",null,[n("td",null,"notice"),n("td",null,[s("无效时:null"),n("br"),s("有效时:obj")]),n("td",null,"评论区公告信息"),n("td")],-1),yn=n("tr",null,[n("td",null,"replies"),n("td",null,[s("禁用时:null"),n("br"),s("正常时:array")]),n("td",null,"评论列表"),n("td")],-1),_n=n("tr",null,[n("td",null,"top"),n("td",null,"obj"),n("td",null,"置顶信息"),n("td")],-1),gn=n("td",null,"top_replies",-1),hn=n("td",null,"obj",-1),fn=n("td",null,"置顶评论",-1),wn=n("tr",null,[n("td",null,"lottery_card"),n("td",null,"null"),n("td",null,"抽奖评论"),n("td")],-1),xn=n("tr",null,[n("td",null,"folder"),n("td",null,"obj"),n("td",null,"评论折叠信息"),n("td")],-1),En=n("tr",null,[n("td",null,"up_selection"),n("td",null,"obj"),n("td",null,"(?)"),n("td")],-1),An=n("tr",null,[n("td",null,"cm"),n("td",null,"obj"),n("td",null,"广告"),n("td")],-1),jn=n("tr",null,[n("td",null,"cm_info"),n("td",null,"obj"),n("td",null,"广告控制"),n("td")],-1),Bn=n("tr",null,[n("td",null,"effects"),n("td",null,"obj"),n("td",null,"(?)"),n("td")],-1),Fn=n("tr",null,[n("td",null,"assist"),n("td",null,"num"),n("td",null,"(?)"),n("td")],-1),Sn=n("tr",null,[n("td",null,"blacklist"),n("td",null,"num"),n("td",null,"(?)"),n("td")],-1),Dn=n("tr",null,[n("td",null,"vote"),n("td",null,"num"),n("td",null,"(?)"),n("td")],-1),Tn=n("tr",null,[n("td",null,"lottery"),n("td",null,"num"),n("td",null,"(?)"),n("td")],-1),Pn=n("tr",null,[n("td",null,"config"),n("td",null,"obj"),n("td",null,"评论区显示控制"),n("td")],-1),Rn=n("tr",null,[n("td",null,"upper"),n("td",null,"obj"),n("td",null,"UP主信息"),n("td")],-1),zn=n("tr",null,[n("td",null,"show_bvid"),n("td",null,"bool"),n("td",null,"显示 bvid?"),n("td")],-1),Cn=n("tr",null,[n("td",null,"control"),n("td",null,"obj"),n("td",null,"评论区输入属性"),n("td")],-1),Wn=n("tr",null,[n("td",null,"note"),n("td",null,"num"),n("td",null,"1"),n("td")],-1),Un=n("tr",null,[n("td",null,"esports_grade_card"),n("td",null,"null"),n("td"),n("td")],-1),Gn=n("tr",null,[n("td",null,"callbacks"),n("td",null,"null"),n("td"),n("td")],-1),Vn=n("tr",null,[n("td",null,"context_feature"),n("td",null,"str"),n("td"),n("td")],-1),Nn=o("

    data中的cursor对象:

    字段类型内容备注
    all_countnum全部评论条数
    is_beginbool是否为第一页false:否
    true:是
    prevnum上页页码
    nextnum下页页码
    is_endbool是否为最后页false:否
    true:是
    modenum排序方式
    support_modearray支持的排序方式
    namestr评论区类型名
    pagination_replystr用于下一次请求的偏移信息
    session_idstr

    cursor中的pagination_reply对象:

    字段类型内容备注
    next_offsetstr用于下一次请求的偏移信息
    prev_offsetstr用于本次请求的偏移信息

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP 觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的hots数组:

    ",7),Qn=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Ln=n("td",null,"0",-1),Hn=n("td",null,"obj",-1),Mn=n("td",null,"热评条目 1",-1),Jn=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"热评条目 (n+1)"),n("td",null,"按照热评热度排列")],-1),Yn=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),In=n("p",null,[n("code",null,"data"),s("中的"),n("code",null,"replies"),s("数组:")],-1),Kn=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),On=n("td",null,"0",-1),Zn=n("td",null,"obj",-1),Xn=n("td",null,"评论条目 1",-1),$n=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"评论条目 (n+1)"),n("td",null,"按照指定的顺序排列")],-1),ns=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),ss=n("p",null,[n("code",null,"data"),s("中的"),n("code",null,"top"),s("对象:")],-1),as=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),ts=n("td",null,"admin",-1),ps=n("td",null,[s("有效时:obj"),n("br"),s("无效时:null")],-1),os=n("td",null,"管理员置顶条目",-1),es=n("td",null,"upper",-1),ls=n("td",null,[s("有效时:obj"),n("br"),s("无效时:null")],-1),us=n("td",null,"UP 主置顶条目",-1),cs=n("td",null,"vote",-1),rs=n("td",null,[s("有效时:obj"),n("br"),s("无效时:null")],-1),is=n("td",null,"投票置顶条目",-1),ds=o(`

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid

    data中的notice对象:

    字段类型内容备注
    contentstr公告正文
    idnum公告 id
    linkstr公告页面链接 url
    titlestr公告标题

    data中的folder对象:

    字段类型内容备注
    has_foldedbool评论区是否存在折叠评论
    is_foldedbool是否折叠?
    rulestr相关规则页面 url

    data中的control对象:

    字段类型内容备注
    input_disablebool(?)
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    示例:

    获取视频av2的评论区明细, 按时间排序, 第一页

    curl -G 'https://api.bilibili.com/x/v2/reply/wbi/main' \\
    +--data-urlencode 'oid=2' \\
    +--data-urlencode 'type=1' \\
    +--data-urlencode 'mode=2' \\
    +--data-urlencode 'w_rid=xxx' \\
    +--data-urlencode 'wts=xxx' \\
    +-b 'SESSDATA='
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "cursor": {
    +      "is_begin": true,
    +      "prev": 71880,
    +      "next": 71859,
    +      "is_end": false,
    +      "mode": 2,
    +      "mode_text": "",
    +      "all_count": 86234,
    +      "support_mode": [
    +        2,
    +        3
    +      ],
    +      "name": "最新评论",
    +      "pagination_reply": {
    +        "next_offset": "{\\"type\\":3,\\"direction\\":1,\\"Data\\":{\\"cursor\\":71859}}"
    +      },
    +      "session_id": ""
    +    },
    +    "replies": [
    +      {
    +        "rpid": 237740291920,
    +        "oid": 2,
    +        "type": 1,
    +        "mid": 1201423076,
    +        "root": 0,
    +        "parent": 0,
    +        "dialog": 0,
    +        "count": 0,
    +        "rcount": 0,
    +        "state": 0,
    +        "fansgrade": 0,
    +        "attr": 0,
    +        "ctime": 1723639342,
    +        "mid_str": "1201423076",
    +        "oid_str": "2",
    +        "rpid_str": "237740291920",
    +        "root_str": "0",
    +        "parent_str": "0",
    +        "dialog_str": "0",
    +        "like": 0,
    +        "action": 0,
    +        "member": {
    +          "mid": "1201423076",
    +          "uname": "天堂いyoulin",
    +          "sex": "保密",
    +          "sign": "",
    +          "avatar": "https://i2.hdslb.com/bfs/face/d0925e782198cadc0c400a3ed4fbdf94142357fb.jpg",
    +          "rank": "10000",
    +          "face_nft_new": 0,
    +          "is_senior_member": 0,
    +          "senior": {},
    +          "level_info": {
    +            "current_level": 4,
    +            "current_min": 0,
    +            "current_exp": 0,
    +            "next_exp": 0
    +          },
    +          "pendant": {
    +            "pid": 0,
    +            "name": "",
    +            "image": "",
    +            "expire": 0,
    +            "image_enhance": "",
    +            "image_enhance_frame": "",
    +            "n_pid": 0
    +          },
    +          "nameplate": {
    +            "nid": 0,
    +            "name": "",
    +            "image": "",
    +            "image_small": "",
    +            "level": "",
    +            "condition": ""
    +          },
    +          "official_verify": {
    +            "type": -1,
    +            "desc": ""
    +          },
    +          "vip": {
    +            "vipType": 0,
    +            "vipDueDate": 0,
    +            "dueRemark": "",
    +            "accessStatus": 0,
    +            "vipStatus": 0,
    +            "vipStatusWarn": "",
    +            "themeType": 0,
    +            "label": {
    +              "path": "",
    +              "text": "",
    +              "label_theme": "",
    +              "text_color": "",
    +              "bg_style": 0,
    +              "bg_color": "",
    +              "border_color": "",
    +              "use_img_label": true,
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png"
    +            },
    +            "avatar_subscript": 0,
    +            "nickname_color": ""
    +          },
    +          "fans_detail": null,
    +          "user_sailing": {
    +            "pendant": null,
    +            "cardbg": null,
    +            "cardbg_with_focus": null
    +          },
    +          "user_sailing_v2": {},
    +          "is_contractor": false,
    +          "contract_desc": "",
    +          "nft_interaction": null,
    +          "avatar_item": {
    +            "container_size": {
    +              "width": 1.8,
    +              "height": 1.8
    +            },
    +            "fallback_layers": {
    +              "layers": [
    +                {
    +                  "visible": true,
    +                  "general_spec": {
    +                    "pos_spec": {
    +                      "coordinate_pos": 2,
    +                      "axis_x": 0.9,
    +                      "axis_y": 0.9
    +                    },
    +                    "size_spec": {
    +                      "width": 1,
    +                      "height": 1
    +                    },
    +                    "render_spec": {
    +                      "opacity": 1
    +                    }
    +                  },
    +                  "layer_config": {
    +                    "tags": {
    +                      "AVATAR_LAYER": {}
    +                    },
    +                    "is_critical": true,
    +                    "layer_mask": {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "coordinate_pos": 2,
    +                          "axis_x": 0.9,
    +                          "axis_y": 0.9
    +                        },
    +                        "size_spec": {
    +                          "width": 1,
    +                          "height": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        }
    +                      },
    +                      "mask_src": {
    +                        "src_type": 3,
    +                        "draw": {
    +                          "draw_type": 1,
    +                          "fill_mode": 1,
    +                          "color_config": {
    +                            "day": {
    +                              "argb": "#FF000000"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    }
    +                  },
    +                  "resource": {
    +                    "res_type": 3,
    +                    "res_image": {
    +                      "image_src": {
    +                        "src_type": 1,
    +                        "placeholder": 6,
    +                        "remote": {
    +                          "url": "https://i2.hdslb.com/bfs/face/d0925e782198cadc0c400a3ed4fbdf94142357fb.jpg",
    +                          "bfs_style": "widget-layer-avatar"
    +                        }
    +                      }
    +                    }
    +                  }
    +                }
    +              ],
    +              "is_critical_group": true
    +            },
    +            "mid": "1201423076"
    +          }
    +        },
    +        "content": {
    +          "message": "好多20年和18年的[辣眼睛]",
    +          "members": [],
    +          "emote": {
    +            "[辣眼睛]": {
    +              "id": 2374,
    +              "package_id": 1,
    +              "state": 0,
    +              "type": 1,
    +              "attr": 0,
    +              "text": "[辣眼睛]",
    +              "url": "https://i0.hdslb.com/bfs/emote/35d62c496d1e4ea9e091243fa812866f5fecc101.png",
    +              "meta": {
    +                "size": 1,
    +                "suggest": [
    +                  ""
    +                ]
    +              },
    +              "mtime": 1668688325,
    +              "jump_title": "辣眼睛"
    +            }
    +          },
    +          "jump_url": {},
    +          "max_line": 6
    +        },
    +        "replies": [],
    +        "assist": 0,
    +        "up_action": {
    +          "like": false,
    +          "reply": false
    +        },
    +        "invisible": false,
    +        "reply_control": {
    +          "max_line": 6,
    +          "time_desc": "21分钟前发布",
    +          "location": "IP属地:河北"
    +        },
    +        "folder": {
    +          "has_folded": false,
    +          "is_folded": false,
    +          "rule": ""
    +        },
    +        "dynamic_id_str": "0",
    +        "note_cvid_str": "0",
    +        "track_info": ""
    +      },
    +      // ...
    +      {
    +        "rpid": 237689432448,
    +        "oid": 2,
    +        "type": 1,
    +        "mid": 1647250883,
    +        "root": 0,
    +        "parent": 0,
    +        "dialog": 0,
    +        "count": 0,
    +        "rcount": 0,
    +        "state": 0,
    +        "fansgrade": 0,
    +        "attr": 0,
    +        "ctime": 1723624563,
    +        "mid_str": "1647250883",
    +        "oid_str": "2",
    +        "rpid_str": "237689432448",
    +        "root_str": "0",
    +        "parent_str": "0",
    +        "dialog_str": "0",
    +        "like": 1,
    +        "action": 0,
    +        "member": {
    +          "mid": "1647250883",
    +          "uname": "小烟同学424",
    +          "sex": "保密",
    +          "sign": "墓前玩使命,墓前暑假",
    +          "avatar": "https://i2.hdslb.com/bfs/face/930661ca1bcacf8005efcca499b7380dcd4c2716.jpg",
    +          "rank": "10000",
    +          "face_nft_new": 0,
    +          "is_senior_member": 0,
    +          "senior": {},
    +          "level_info": {
    +            "current_level": 5,
    +            "current_min": 0,
    +            "current_exp": 0,
    +            "next_exp": 0
    +          },
    +          "pendant": {
    +            "pid": 0,
    +            "name": "",
    +            "image": "",
    +            "expire": 0,
    +            "image_enhance": "",
    +            "image_enhance_frame": "",
    +            "n_pid": 0
    +          },
    +          "nameplate": {
    +            "nid": 0,
    +            "name": "",
    +            "image": "",
    +            "image_small": "",
    +            "level": "",
    +            "condition": ""
    +          },
    +          "official_verify": {
    +            "type": -1,
    +            "desc": ""
    +          },
    +          "vip": {
    +            "vipType": 0,
    +            "vipDueDate": 0,
    +            "dueRemark": "",
    +            "accessStatus": 0,
    +            "vipStatus": 0,
    +            "vipStatusWarn": "",
    +            "themeType": 0,
    +            "label": {
    +              "path": "",
    +              "text": "",
    +              "label_theme": "",
    +              "text_color": "",
    +              "bg_style": 0,
    +              "bg_color": "",
    +              "border_color": "",
    +              "use_img_label": true,
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png"
    +            },
    +            "avatar_subscript": 0,
    +            "nickname_color": ""
    +          },
    +          "fans_detail": null,
    +          "user_sailing": {
    +            "pendant": null,
    +            "cardbg": null,
    +            "cardbg_with_focus": null
    +          },
    +          "user_sailing_v2": {},
    +          "is_contractor": false,
    +          "contract_desc": "",
    +          "nft_interaction": null,
    +          "avatar_item": {
    +            "container_size": {
    +              "width": 1.8,
    +              "height": 1.8
    +            },
    +            "fallback_layers": {
    +              "layers": [
    +                {
    +                  "visible": true,
    +                  "general_spec": {
    +                    "pos_spec": {
    +                      "coordinate_pos": 2,
    +                      "axis_x": 0.9,
    +                      "axis_y": 0.9
    +                    },
    +                    "size_spec": {
    +                      "width": 1,
    +                      "height": 1
    +                    },
    +                    "render_spec": {
    +                      "opacity": 1
    +                    }
    +                  },
    +                  "layer_config": {
    +                    "tags": {
    +                      "AVATAR_LAYER": {}
    +                    },
    +                    "is_critical": true,
    +                    "layer_mask": {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "coordinate_pos": 2,
    +                          "axis_x": 0.9,
    +                          "axis_y": 0.9
    +                        },
    +                        "size_spec": {
    +                          "width": 1,
    +                          "height": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        }
    +                      },
    +                      "mask_src": {
    +                        "src_type": 3,
    +                        "draw": {
    +                          "draw_type": 1,
    +                          "fill_mode": 1,
    +                          "color_config": {
    +                            "day": {
    +                              "argb": "#FF000000"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    }
    +                  },
    +                  "resource": {
    +                    "res_type": 3,
    +                    "res_image": {
    +                      "image_src": {
    +                        "src_type": 1,
    +                        "placeholder": 6,
    +                        "remote": {
    +                          "url": "https://i2.hdslb.com/bfs/face/930661ca1bcacf8005efcca499b7380dcd4c2716.jpg",
    +                          "bfs_style": "widget-layer-avatar"
    +                        }
    +                      }
    +                    }
    +                  }
    +                }
    +              ],
    +              "is_critical_group": true
    +            },
    +            "mid": "1647250883"
    +          }
    +        },
    +        "content": {
    +          "message": "还。。。有人吗?",
    +          "members": [],
    +          "jump_url": {},
    +          "max_line": 6
    +        },
    +        "replies": [],
    +        "assist": 0,
    +        "up_action": {
    +          "like": false,
    +          "reply": false
    +        },
    +        "invisible": false,
    +        "reply_control": {
    +          "max_line": 6,
    +          "time_desc": "4小时前发布",
    +          "location": "IP属地:陕西"
    +        },
    +        "folder": {
    +          "has_folded": false,
    +          "is_folded": false,
    +          "rule": ""
    +        },
    +        "dynamic_id_str": "0",
    +        "note_cvid_str": "0",
    +        "track_info": ""
    +      }
    +    ],
    +    "top": {
    +      "admin": null,
    +      "upper": null,
    +      "vote": null
    +    },
    +    "top_replies": [],
    +    "up_selection": {
    +      "pending_count": 0,
    +      "ignore_count": 0
    +    },
    +    "effects": {
    +      "preloading": ""
    +    },
    +    "assist": 0,
    +    "blacklist": 0,
    +    "vote": 0,
    +    "config": {
    +      "showtopic": 1,
    +      "show_up_flag": true,
    +      "read_only": false
    +    },
    +    "upper": {
    +      "mid": 2
    +    },
    +    "control": {
    +      "input_disable": false,
    +      "root_input_text": "你渴望拥有力量吗?评论让力量更强大",
    +      "child_input_text": "你渴望拥有力量吗?评论让力量更强大",
    +      "giveup_input_text": "不发没关系,请继续友善哦~",
    +      "screenshot_icon_state": 1,
    +      "upload_picture_icon_state": 1,
    +      "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!",
    +      "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png",
    +      "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12",
    +      "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6",
    +      "bg_text": "",
    +      "empty_page": null,
    +      "show_type": 1,
    +      "show_text": "",
    +      "web_selection": false,
    +      "disable_jump_emote": false,
    +      "enable_charged": false,
    +      "enable_cm_biz_helper": false,
    +      "preload_resources": null
    +    },
    +    "note": 1,
    +    "esports_grade_card": null,
    +    "callbacks": null,
    +    "context_feature": ""
    +  }
    +}
    +

    获取指定评论的回复

    https://api.bilibili.com/x/v2/reply/reply

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    按照回复顺序排序

    url参数:

    `,18),ks=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),qs=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录 Token"),n("td",null,"APP 方式必要"),n("td")],-1),vs=n("td",null,"type",-1),bs=n("td",null,"num",-1),ms=n("td",null,"评论区类型代码",-1),ys=n("td",null,"必要",-1),_s=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"必要"),n("td")],-1),gs=n("tr",null,[n("td",null,"root"),n("td",null,"num"),n("td",null,"根回复 rpid"),n("td",null,"必要"),n("td")],-1),hs=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"每页项数"),n("td",null,"非必要"),n("td",null,[s("默认为20"),n("br"),s("定义域:1-49 "),n("br"),s(" 但 data_replies 的最大内容数为20,因此设置为49其实也只会有20条回复被返回")])],-1),fs=n("tr",null,[n("td",null,"pn"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"非必要"),n("td",null,"默认为1")],-1),ws=o("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    ",4),xs=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Es=n("tr",null,[n("td",null,"config"),n("td",null,"obj"),n("td",null,"评论区显示控制"),n("td")],-1),As=n("tr",null,[n("td",null,"control"),n("td",null,"obj"),n("td",null,"评论区输入属性"),n("td")],-1),js=n("tr",null,[n("td",null,"page"),n("td",null,"obj"),n("td",null,"页面信息"),n("td")],-1),Bs=n("tr",null,[n("td",null,"replies"),n("td",null,"array"),n("td",null,"评论对话树列表"),n("td",null,"最大内容数为20")],-1),Fs=n("td",null,"root",-1),Ss=n("td",null,"obj",-1),Ds=n("td",null,"根评论信息",-1),Ts=n("tr",null,[n("td",null,"show_bvid"),n("td",null,"bool"),n("td",null,"显示 bvid?"),n("td")],-1),Ps=n("tr",null,[n("td",null,"show_text"),n("td",null,"str"),n("td",null,"(?)"),n("td")],-1),Rs=n("tr",null,[n("td",null,"show_type"),n("td",null,"num"),n("td",null,"(?)"),n("td")],-1),zs=n("tr",null,[n("td",null,"upper"),n("td",null,"obj"),n("td",null,"UP主 mid"),n("td")],-1),Cs=o("

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的control对象:

    字段类型内容备注
    input_disablebool(?)
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    data中的page对象:

    字段类型内容备注
    countnum二级评论数
    numnum当前页码
    sizenum每页项数

    data中的replies数组:

    ",7),Ws=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Us=n("td",null,"0",-1),Gs=n("td",null,"obj",-1),Vs=n("td",null,"对话评论条目 1",-1),Ns=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"对话评论条目 (n+1)"),n("td",null,"按照回复顺序排列")],-1),Qs=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),Ls=o(`

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid

    示例:

    获取视频av201022189下评论rpid=3030790837的回复,每页5项,获取第1页

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    `,12),Hs=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),Ms=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录 Token"),n("td",null,"APP 方式必要"),n("td")],-1),Js=n("td",null,"type",-1),Ys=n("td",null,"num",-1),Is=n("td",null,"评论区类型代码",-1),Ks=n("td",null,"必要",-1),Os=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"必要"),n("td")],-1),Zs=n("tr",null,[n("td",null,"root"),n("td",null,"num"),n("td",null,"根回复 rpid"),n("td",null,"必要"),n("td")],-1),Xs=n("tr",null,[n("td",null,"dialog"),n("td",null,"num"),n("td",null,"对话树根 rpid"),n("td",null,"必要"),n("td")],-1),$s=n("tr",null,[n("td",null,"size"),n("td",null,"num"),n("td",null,"每页最大项数"),n("td",null,"必要"),n("td")],-1),na=n("tr",null,[n("td",null,"min_floor"),n("td",null,"num"),n("td",null,"(?)"),n("td",null,"非必要"),n("td")],-1),sa=o("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    cursorobj页楼层信息
    dialogobj对话楼层信息
    repliesarray评论对话树列表
    assistnum(?)
    blacklistnum(?)
    votenum(?)
    lotterynum(?)
    configobj评论区显示控制
    upperobjUP主 mid
    show_bvidbool显示 bvid?
    controlobj评论区输入属性
    notenum(?)

    data中的cursor对象:

    字段类型内容备注
    min_floornum本页最低对话楼层
    max_floornum本页最高对话楼层
    sizenum本页项数

    data中的dialog对象:

    字段类型内容备注
    min_floornum二级评论最低对话楼层
    max_floornum二级评论最高对话楼层

    data中的replies数组:

    ",10),aa=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),ta=n("td",null,"0",-1),pa=n("td",null,"obj",-1),oa=n("td",null,"对话评论条目 1",-1),ea=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"对话评论条目 (n+1)"),n("td",null,"按照对话链排列")],-1),la=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),ua=o(`

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP 觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid

    data中的control对象:

    字段类型内容备注
    input_disablebool(?)
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    示例:

    获取视频av201022189下评论rpid=3030790837的对话rpid=3030978856,每页最大5项

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    `,16),ca=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),ra=n("tr",null,[n("td",null,"access_key"),n("td",null,"str"),n("td",null,"APP登录 Token"),n("td",null,"APP 方式必要"),n("td")],-1),ia=n("td",null,"type",-1),da=n("td",null,"num",-1),ka=n("td",null,"评论区类型代码",-1),qa=n("td",null,"必要",-1),va=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"必要"),n("td")],-1),ba=n("tr",null,[n("td",null,"root"),n("td",null,"num"),n("td",null,"根回复 rpid"),n("td",null,"必要"),n("td")],-1),ma=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"每页项数"),n("td",null,"非必要"),n("td",null,[s("默认为20"),n("br"),s("定义域:1-49")])],-1),ya=n("tr",null,[n("td",null,"pn"),n("td",null,"num"),n("td",null,"页码"),n("td",null,"非必要"),n("td",null,"默认为1")],-1),_a=o("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    pageobj页面信息
    repliesobj热评列表

    data中的page对象:

    字段类型内容备注
    acountnum总评论数
    countnum热评数
    numnum当前页码
    sizenum每页项数

    data中的replies数组:

    ",8),ga=n("thead",null,[n("tr",null,[n("th",null,"项"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),ha=n("td",null,"0",-1),fa=n("td",null,"obj",-1),wa=n("td",null,"热评条目 1",-1),xa=n("tr",null,[n("td",null,"n"),n("td",null,"obj"),n("td",null,"热评条目 (n+1)"),n("td",null,"按照热评排列")],-1),Ea=n("tr",null,[n("td",null,"……"),n("td",null,"obj"),n("td",null,"……"),n("td",null,"……")],-1),Aa=o(`

    示例:

    获取视频av2的评论区热评,每页5项,查看第1页

    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'
    +
    查看响应示例:
    {
    +    "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": {}
    +            }
    +        ]
    +    }
    +}
    +

    获取指定评论信息

    该接口已经弃用

    `,6),ja=n("summary",null,"点击展开折叠内容:",-1),Ba=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/v2/reply/info")],-1),Fa=n("p",null,[n("em",null,"请求方式:GET")],-1),Sa=n("p",null,[n("strong",null,"url参数:")],-1),Da=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),Ta=n("td",null,"type",-1),Pa=n("td",null,"num",-1),Ra=n("td",null,"评论区类型代码",-1),za=n("td",null,"非必要",-1),Ca=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"非必要"),n("td")],-1),Wa=n("tr",null,[n("td",null,"rpid"),n("td",null,"num"),n("td",null,"目标评论 rpid"),n("td",null,"必要"),n("td")],-1),Ua=n("p",null,[n("strong",null,"json回复:")],-1),Ga=n("p",null,"根对象:",-1),Va=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),Na=n("tr",null,[n("td",null,"code"),n("td",null,"num"),n("td",null,"返回值"),n("td",null,[s("0:成功"),n("br"),s("-400:请求错误"),n("br"),s("-404:无此项")])],-1),Qa=n("tr",null,[n("td",null,"message"),n("td",null,"str"),n("td",null,"错误信息"),n("td",null,"默认为0")],-1),La=n("tr",null,[n("td",null,"ttl"),n("td",null,"num"),n("td",null,"1"),n("td")],-1),Ha=n("td",null,"data",-1),Ma=n("td",null,[s("正确时:obj"),n("br"),s("错误时:null")],-1),Ja=n("td",null,"评论条目",-1),Ya=o(`

    示例:

    获取视频av379743801评论区下rpid=95737567200的信息

    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'
    +
    查看响应示例:
    {
    +    "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": {}
    +    }
    +}
    +
    `,4),Ia=n("h2",{id:"获取评论区评论总数",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#获取评论区评论总数","aria-hidden":"true"},"#"),s(" 获取评论区评论总数")],-1),Ka=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/v2/reply/count")],-1),Oa=n("p",null,[n("em",null,"请求方式:GET")],-1),Za=n("p",null,[n("strong",null,"url参数:")],-1),Xa=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),$a=n("td",null,"type",-1),nt=n("td",null,"num",-1),st=n("td",null,"评论区类型代码",-1),at=n("td",null,"必要",-1),tt=n("tr",null,[n("td",null,"oid"),n("td",null,"num"),n("td",null,"目标评论区 id"),n("td",null,"必要"),n("td")],-1),pt=o(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    countnum评论条数

    示例:

    获取视频av2的评论区总计评论条数

    curl -G 'https://api.bilibili.com/x/v2/reply/count' \\
    +--data-urlencode 'type=1' \\
    +--data-urlencode 'oid=2'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "count": 65521
    +    }
    +}
    +
    `,9);function ot(et,lt){const a=l("RouterLink");return u(),c("div",null,[d,k,q,v,b,m,n("table",null,[y,n("tbody",null,[_,n("tr",null,[g,h,f,w,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])]),x,E,A,j,B])]),F,n("table",null,[S,n("tbody",null,[n("tr",null,[D,T,P,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),R,z])]),C,n("table",null,[W,n("tbody",null,[n("tr",null,[U,G,V,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),N,Q])]),L,n("table",null,[H,n("tbody",null,[M,n("tr",null,[J,Y,I,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),K])]),O,n("p",null,[s("鉴权方式:"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("Wbi 签名")]),_:1})]),Z,X,n("table",null,[$,n("tbody",null,[nn,n("tr",null,[sn,an,tn,pn,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])]),on,en,ln,un,cn,rn])]),dn,r("not typo here"),kn,n("table",null,[qn,n("tbody",null,[vn,bn,mn,yn,_n,n("tr",null,[gn,hn,fn,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),wn,xn,En,An,jn,Bn,Fn,Sn,Dn,Tn,Pn,Rn,zn,Cn,Wn,Un,Gn,Vn])]),Nn,n("table",null,[Qn,n("tbody",null,[n("tr",null,[Ln,Hn,Mn,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),Jn,Yn])]),In,n("table",null,[Kn,n("tbody",null,[n("tr",null,[On,Zn,Xn,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),$n,ns])]),ss,n("table",null,[as,n("tbody",null,[n("tr",null,[ts,ps,os,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),n("tr",null,[es,ls,us,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),n("tr",null,[cs,rs,is,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])])])]),ds,n("table",null,[ks,n("tbody",null,[qs,n("tr",null,[vs,bs,ms,ys,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])]),_s,gs,hs,fs])]),ws,n("table",null,[xs,n("tbody",null,[Es,As,js,Bs,n("tr",null,[Fs,Ss,Ds,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),Ts,Ps,Rs,zs])]),Cs,n("table",null,[Ws,n("tbody",null,[n("tr",null,[Us,Gs,Vs,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),Ns,Qs])]),Ls,n("table",null,[Hs,n("tbody",null,[Ms,n("tr",null,[Js,Ys,Is,Ks,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])]),Os,Zs,Xs,$s,na])]),sa,n("table",null,[aa,n("tbody",null,[n("tr",null,[ta,pa,oa,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),ea,la])]),ua,n("table",null,[ca,n("tbody",null,[ra,n("tr",null,[ia,da,ka,qa,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])]),va,ba,ma,ya])]),_a,n("table",null,[ga,n("tbody",null,[n("tr",null,[ha,fa,wa,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])]),xa,Ea])]),Aa,n("details",null,[ja,Ba,Fa,Sa,n("table",null,[Da,n("tbody",null,[n("tr",null,[Ta,Pa,Ra,za,n("td",null,[n("strong",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])])]),Ca,Wa])]),Ua,Ga,n("table",null,[Va,n("tbody",null,[Na,Qa,La,n("tr",null,[Ha,Ma,Ja,n("td",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1"},{default:p(()=>[s("对象定义见表")]),_:1})])])])]),Ya]),Ia,Ka,Oa,Za,n("table",null,[Xa,n("tbody",null,[n("tr",null,[$a,nt,st,at,n("td",null,[n("strong",null,[t(a,{to:"/docs/comment/#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81"},{default:p(()=>[s("类型代码见表")]),_:1})])])]),tt])]),pt])}const ct=e(i,[["render",ot],["__file","list.html.vue"]]);export{ct as default}; diff --git a/assets/list.html-fecb6b5b.js b/assets/list.html-fecb6b5b.js new file mode 100644 index 0000000000..7a691c12ee --- /dev/null +++ b/assets/list.html-fecb6b5b.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-45137136","path":"/docs/activity/list.html","title":"活动列表","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取活动列表","slug":"获取活动列表","link":"#获取活动列表","children":[]}],"git":{},"filePathRelative":"docs/activity/list.md"}');export{t as data}; diff --git a/assets/live_area.html-356ac7cf.js b/assets/live_area.html-356ac7cf.js new file mode 100644 index 0000000000..3afa434448 --- /dev/null +++ b/assets/live_area.html-356ac7cf.js @@ -0,0 +1,136 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    直播间分区

    获取全部直播间分区列表

    https://api.live.bilibili.com/room/v1/Area/getList

    请求方式:GET

    直播分区共有两级,分别是父分区和子分区

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataarray父分区列表

    data数组:

    类型内容备注
    0obj父分区1
    nobj父分区(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum父分区id
    namename父分区名
    listlist子分区列表

    data数组中的对象中的list数组:

    类型内容备注
    0obj子分区1
    nobj子分区(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idstr子分区id
    parent_idstr父分区id
    old_area_idstr旧分区id
    namestr子分区名
    act_idstr0作用尚不明确
    pk_statusstr???作用尚不明确
    hot_statusnum是否为热门分区0:否
    1:是
    lock_statusstr0作用尚不明确
    picstr子分区标志图片url
    parent_namestr父分区名
    area_typenum

    示例:

    如想在网游父分区下的英雄联盟分区开播,则查到子分区id为86

    curl 'https://api.live.bilibili.com/room/v1/Area/getList'
    +
    查看响应示例:
    {
    +    "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
    +                },
    +                …………
    +            ]
    +        }
    +    ]
    +}
    +
    `,20),e=[o];function u(c,r){return n(),a("div",null,e)}const i=s(p,[["render",u],["__file","live_area.html.vue"]]);export{i as default}; diff --git a/assets/live_area.html-ce157910.js b/assets/live_area.html-ce157910.js new file mode 100644 index 0000000000..2edcefa98e --- /dev/null +++ b/assets/live_area.html-ce157910.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-7dfe7a81","path":"/docs/live/live_area.html","title":"直播间分区","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取全部直播间分区列表","slug":"获取全部直播间分区列表","link":"#获取全部直播间分区列表","children":[]}],"git":{},"filePathRelative":"docs/live/live_area.md"}');export{e as data}; diff --git a/assets/live_stream.html-94a4c09a.js b/assets/live_stream.html-94a4c09a.js new file mode 100644 index 0000000000..7244e958f3 --- /dev/null +++ b/assets/live_stream.html-94a4c09a.js @@ -0,0 +1,63 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    直播间视频流

    根据真实直播间号获取直播视频流

    https://api.live.bilibili.com/room/v1/Room/playUrl

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    cidnum目标真实直播间号必要直播间的room_id(非短号)
    platformstr直播流格式非必要h5:hls方式
    web:http-flv方式
    默认为http-flv方式
    qualitynum画质非必要qnquality任选其一
    2:流畅
    3:高清
    4:原画
    qnstr画质非必要qnquality任选其一
    80:流畅
    150:高清
    400:蓝光
    10000:原画
    20000:4K
    30000:杜比

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:参数错误
    19002003:房间信息不存在
    messagestr错误信息默认为0
    ttlstr1
    dataobj信息本体

    data对象:

    字段类型内容备注
    current_qualitynum当前画质代码qn
    accept_qualityarray可选画质数参数
    current_qnnum当前画质代码quality
    quality_descriptionarray可选画质参数quality
    durlarray直播流url组

    accept_quality数组:

    类型内容备注
    0strqn画质代码1
    nstrqn画质代码(n+1)
    ……str…………

    quality_description数组:

    类型内容备注
    0obj画质代码1
    nobj画质代码(n+1)
    ……obj…………

    quality_description数组中的对象:

    字段类型内容备注
    qnnum画质代码
    descstr该代码对应的画质名称

    durl数组:

    类型内容备注
    0obj主线服务器
    nobj备线n服务器
    ……obj…………

    durl数组中的对象:

    字段类型内容备注
    urlstr直播流urlflv或m3u8格式
    注:带有转义
    lengthnum0作用尚不明确
    ordernum服务器线路序号
    stream_typenum0作用尚不明确
    p2p_typenum0作用尚不明确

    示例:

    查询直播间cid=14073662的直播间信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/playUrl' \\
    +--data-urlencode 'cid=14073662' \\
    +--data-urlencode 'qn=10000' \\
    +--data-urlencode 'platform=web'
    +
    查看响应示例:
    {
    +  "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
    +      }
    +    ]
    +  }
    +}
    +
    `,25),o=[e];function d(r,c){return n(),s("div",null,o)}const i=t(p,[["render",d],["__file","live_stream.html.vue"]]);export{i as default}; diff --git a/assets/live_stream.html-b3d301d8.js b/assets/live_stream.html-b3d301d8.js new file mode 100644 index 0000000000..03348ad7ef --- /dev/null +++ b/assets/live_stream.html-b3d301d8.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-0e792a2e","path":"/docs/live/live_stream.html","title":"直播间视频流","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"根据真实直播间号获取直播视频流","slug":"根据真实直播间号获取直播视频流","link":"#根据真实直播间号获取直播视频流","children":[]}],"git":{},"filePathRelative":"docs/live/live_stream.md"}');export{e as data}; diff --git a/assets/login_info.html-36215953.js b/assets/login_info.html-36215953.js new file mode 100644 index 0000000000..b5a0263d5a --- /dev/null +++ b/assets/login_info.html-36215953.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-3001c1d4","path":"/docs/login/login_info.html","title":"登录基本信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"导航栏用户信息","slug":"导航栏用户信息","link":"#导航栏用户信息","children":[]},{"level":2,"title":"登录用户信息仅部分(已弃用)","slug":"登录用户信息仅部分-已弃用","link":"#登录用户信息仅部分-已弃用","children":[]},{"level":2,"title":"登录用户信息(APP端)","slug":"登录用户信息-app端","link":"#登录用户信息-app端","children":[]},{"level":2,"title":"登录用户状态数(双端)","slug":"登录用户状态数-双端","link":"#登录用户状态数-双端","children":[]},{"level":2,"title":"获取硬币数","slug":"获取硬币数","link":"#获取硬币数","children":[]}],"git":{},"filePathRelative":"docs/login/login_info.md"}');export{l as data}; diff --git a/assets/login_info.html-5c768007.js b/assets/login_info.html-5c768007.js new file mode 100644 index 0000000000..d5ecae386f --- /dev/null +++ b/assets/login_info.html-5c768007.js @@ -0,0 +1,232 @@ +import{_ as o,r as d,o as r,c as l,a as t,b as n,d as a,w as e,e as p}from"./app-3168cb19.js";const c={},u=p('

    登录基本信息

    导航栏用户信息

    https://api.bilibili.com/nav(带有转义) (已失效)

    https://api.bilibili.com/x/web-interface/nav(原始数据)

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    isLoginbool是否已登录false:未登录
    true:已登录
    email_verifiednum是否验证邮箱地址0:未验证
    1:已验证
    facestr用户头像 url
    level_infoobj等级信息
    midnum用户 mid
    mobile_verifiednum是否验证手机号0:未验证
    1:已验证
    moneynum拥有硬币数
    moralnum当前节操值上限为70
    officialobj认证信息
    officialVerifyobj认证信息 2
    pendantobj头像框信息
    scoresnum(?)
    unamestr用户昵称
    vipDueDatenum会员到期时间毫秒 时间戳
    vipStatusnum会员开通状态0:无
    1:有
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度及以上大会员
    vip_pay_typenum会员开通状态0:无
    1:有
    vip_theme_typenum(?)
    vip_labelobj会员标签
    vip_avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    vip_nickname_colorstr会员昵称颜色颜色码
    walletobjB币钱包信息
    has_shopbool是否拥有推广商品false:无
    true:有
    shop_urlstr商品推广页面 url
    allowance_countnum(?)
    answer_statusnum(?)
    is_senior_membernum是否硬核会员0:非硬核会员
    1:硬核会员
    wbi_imgobjWbi 签名实时口令该字段即使用户未登录也存在
    is_jurybool是否风纪委员true:风纪委员
    false:非风纪委员

    data中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级
    current_minnum当前等级经验最低值
    current_expnum当前经验
    next_exp小于6级时:num
    6级时:str
    升级下一等级需达到的经验当用户等级为Lv6时,值为--,代表无穷大

    data中的official对象:

    ',13),i=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),k=t("td",null,"role",-1),b=t("td",null,"num",-1),m=t("td",null,"认证类型",-1),v=t("tr",null,[t("td",null,"title"),t("td",null,"str"),t("td",null,"认证信息"),t("td",null,"无为空")],-1),q=t("tr",null,[t("td",null,"desc"),t("td",null,"str"),t("td",null,"认证备注"),t("td",null,"无为空")],-1),h=t("tr",null,[t("td",null,"type"),t("td",null,"num"),t("td",null,"是否认证"),t("td",null,[n("-1:无"),t("br"),n("0:认证")])],-1),y=p("

    data中的official_verify对象:

    字段类型内容备注
    typenum是否认证-1:无
    0:认证
    descstr认证信息无为空

    data中的pendant对象:

    字段类型内容备注
    pidnum挂件id
    namestr挂件名称
    imagestr挂件图片url
    expirenum(?)

    data中的vip_label对象:

    字段类型内容备注
    pathstr(?)
    textstr会员名称
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员

    data中的wallet对象:

    字段类型内容备注
    midnum登录用户mid
    bcoin_balancenum拥有B币数
    coupon_balancenum每月奖励B币数
    coupon_due_timenum(?)

    data中的wbi_img对象:

    ",9),g=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),_=t("td",null,"img_url",-1),f=t("td",null,"str",-1),x=t("td",null,[n("Wbi 签名参数 "),t("code",null,"imgKey"),n("的伪装 url")],-1),j=t("td",null,"sub_url",-1),w=t("td",null,"str",-1),S=t("td",null,[n("Wbi 签名参数 "),t("code",null,"subKey"),n("的伪装 url")],-1),A=p(`

    示例:

    登录状态:

    curl 'https://api.bilibili.com/x/web-interface/nav' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "isLogin": true,
    +        "email_verified": 1,
    +        "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +        "face_nft": 0,
    +        "face_nft_type": 0,
    +        "level_info": {
    +            "current_level": 6,
    +            "current_min": 28800,
    +            "current_exp": 52689,
    +            "next_exp": "--"
    +        },
    +        "mid": 293793435,
    +        "mobile_verified": 1,
    +        "money": 172.4,
    +        "moral": 70,
    +        "official": {
    +            "role": 0,
    +            "title": "",
    +            "desc": "",
    +            "type": -1
    +        },
    +        "officialVerify": {
    +            "type": -1,
    +            "desc": ""
    +        },
    +        "pendant": {
    +            "pid": 2511,
    +            "name": "初音未来13周年",
    +            "image": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
    +            "expire": 0,
    +            "image_enhance": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
    +            "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png"
    +        },
    +        "scores": 0,
    +        "uname": "社会易姐QwQ",
    +        "vipDueDate": 1707494400000,
    +        "vipStatus": 1,
    +        "vipType": 2,
    +        "vip_pay_type": 0,
    +        "vip_theme_type": 0,
    +        "vip_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"
    +        },
    +        "vip_avatar_subscript": 1,
    +        "vip_nickname_color": "#FB7299",
    +        "vip": {
    +            "type": 2,
    +            "status": 1,
    +            "due_date": 1707494400000,
    +            "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,
    +            "tv_due_date": 1640793600
    +        },
    +        "wallet": {
    +            "mid": 293793435,
    +            "bcoin_balance": 5,
    +            "coupon_balance": 5,
    +            "coupon_due_time": 0
    +        },
    +        "has_shop": true,
    +        "shop_url": "https://gf.bilibili.com?msource=main_station",
    +        "allowance_count": 0,
    +        "answer_status": 0,
    +        "is_senior_member": 1,
    +        "wbi_img": {
    +            "img_url": "https://i0.hdslb.com/bfs/wbi/653657f524a547ac981ded72ea172057.png",
    +            "sub_url": "https://i0.hdslb.com/bfs/wbi/6e4909c702f846728e64f6007736a338.png"
    +        },
    +        "is_jury": false
    +    }
    +}
    +

    未登录状态:

    curl 'https://api.bilibili.com/x/web-interface/nav'
    +
    查看响应示例:
    {
    +    "code": -101,
    +    "message": "账号未登录",
    +    "ttl": 1,
    +    "data": {
    +        "isLogin": false,
    +        "wbi_img": {
    +            "img_url": "https://i0.hdslb.com/bfs/wbi/653657f524a547ac981ded72ea172057.png",
    +            "sub_url": "https://i0.hdslb.com/bfs/wbi/6e4909c702f846728e64f6007736a338.png"
    +        },
    +    }
    +}
    +

    登录用户信息仅部分(已弃用)

    查看折叠内容

    https://account.bilibili.com/home/userInfo

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    带有转义

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    statusbooltrue作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    level_infoobj等级信息
    bCoinsnum拥有B币数
    coinsnum拥有硬币数
    facestr登录用户头像url
    nameplate_currentnull???作用尚不明确
    nameplate_currentstr登录用户勋章url
    pendant_currentstr登录用户头像框url
    unamestr登录用户昵称
    userStatusstr登录用户状态
    vipTypenum大会员类型0:无
    1:月度
    2:年度
    vipStatusnum会员开通状态0:无
    1:有
    official_verifynum是否认证-1:无
    0:认证
    pointBalancenum0作用尚不明确

    data中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级
    current_minnum当前等级经验最低值
    current_expnum当前经验
    next_expnum升级下一等级需达到的经验

    示例:

    curl 'https://account.bilibili.com/home/userInfo' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +	"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_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum用户mid
    namestr用户昵称
    signstr用户签名
    coinsnum拥有硬币数
    birthdaystr用户生日YYYY-MM-DD
    facestr用户头像url
    sexnum用户性别0:私密
    1:男
    2:女
    levelnum用户等级0-6
    ranknum1000作用尚不明确
    silencenum用户是否被封禁0:正常
    1:封禁
    vipobj会员信息
    email_statusnum是否验证邮箱地址0:未验证
    1:已验证
    tel_statusnum是否验证手机号0:未验证
    1:已验证
    officialobj认证信息
    identificationnum1作用尚不明确
    inviteobj
    is_touristnum0作用尚不明确
    pin_promptingnum0作用尚不明确

    data中的vip对象:

    字段类型内容备注
    typenum大会员类型0:无
    1:月度
    2:年度
    statusnum会员开通状态0:无
    1:有
    due_datenum大会员到期时间毫秒 时间戳
    vip_pay_typenum会员开通状态0:无
    1:有
    theme_typenum会员开通状态0:无
    1:有
    labelobj大会员信息
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文字
    label_themestr会员类型

    data中的official对象:

    字段类型内容备注
    rolenum认证类型0:无
    1 2 7:个人认证
    3 4 5 6:机构认证
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum认证备注无为空

    data中的invite对象:

    字段类型内容备注
    invite_remindnum1作用尚不明确
    displaybooltrue作用尚不明确

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体
    字段类型内容备注
    followingnum关注数
    followernum粉丝数
    dynamic_countnum发布动态数

    示例:

    当前登录用户的状态数为粉丝596,关注754,发送的动态252

    Cookie方式:

    curl 'https://api.bilibili.com/x/web-interface/nav/stat' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "following": 754,
    +        "follower": 596,
    +        "dynamic_count": 252
    +    }
    +}
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/web-interface/nav/stat' \\
    +--data-urlencode 'access_key=d907f51122c59599d580ade2315af971'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    statusbooltrue作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    money硬币为正数时:num
    硬币为0时:null
    当前硬币数

    示例:

    curl 'https://account.bilibili.com/site/getCoin' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "status": true,
    +    "data": {
    +        "money": 42.4
    +    }
    +}
    +
    `,63);function P(D,T){const s=d("RouterLink");return r(),l("div",null,[u,t("table",null,[i,t("tbody",null,[t("tr",null,[k,b,m,t("td",null,[n("见"),a(s,{to:"/docs/user/official_role.html"},{default:e(()=>[n("用户认证类型一览")]),_:1})])]),v,q,h])]),y,t("table",null,[g,t("tbody",null,[t("tr",null,[_,f,x,t("td",null,[n("详见文档 "),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})])]),t("tr",null,[j,w,S,t("td",null,[n("详见文档 "),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})])])])]),A])}const F=o(c,[["render",P],["__file","login_info.html.vue"]]);export{F as default}; diff --git a/assets/login_notice.html-7185cdfc.js b/assets/login_notice.html-7185cdfc.js new file mode 100644 index 0000000000..9065a43a9b --- /dev/null +++ b/assets/login_notice.html-7185cdfc.js @@ -0,0 +1,142 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    登录记录

    查询登录记录

    https://api.bilibili.com/x/safecenter/login_notice

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    midnum用户mid必要
    buvidstr设备虚拟id非必要web端为操作登录接口时Cookie中的buvid3
    若登录设备无buvid则留空

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum登录用户mid
    device_namestr登录设备依靠操作登录接口时的UA决定
    login_typestr登录方式根据登录接口决定
    login_timestr登录时间YYYY-MM-DD hh:mm:ss
    locationstr登录位置依靠ip决定
    ipstr登录ip部分用*打码

    示例:

    查询用户293793435设备id为fuck_chenrui的登录记录

    curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \\
    +--data-urlencode 'mid=293793435' \\
    +--data-urlencode 'buvid=fuck_chenrui' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.***.**"
    +    }
    +}
    +

    最近一周的登录情况

    https://api.bilibili.com/x/member/web/login/log

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    jsonpstr回调函数名?非必要默认 jsonp
    web_locationstr网页位置?非必要默认 333.33

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum记录总数
    listarr登录记录列表

    data中的list数组:

    类型内容备注
    0obj登录记录1
    ……obj……
    nobj登录记录(n+1)

    list数组中的对象:

    字段类型内容备注
    ipstr登录 IP末两位以 * 打码
    timenum登录时间UNIX 秒级时间戳
    time_atstr登录时间格式为 yyyy-MM-dd HH:mm:ss
    statusbool是否登录成功?
    typenum登录方式?
    geostr登录地理位置

    示例:

    查询本用户最近一周的登录情况

    curl -G "https://api.bilibili.com/x/member/web/login/log" \\
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "count": 14,
    +    "list": [
    +      {
    +        "ip": "108.181.*.*",
    +        "time": 1722036741,
    +        "time_at": "2024-07-27 07:32:21",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国加利福尼亚州洛杉矶telus.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1722040653,
    +        "time_at": "2024-07-27 08:37:33",
    +        "status": true,
    +        "type": 0,
    +        "geo": "巴西"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721950332,
    +        "time_at": "2024-07-26 07:32:12",
    +        "status": true,
    +        "type": 0,
    +        "geo": "新加坡cloudflare.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721964627,
    +        "time_at": "2024-07-26 11:30:27",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国弗吉尼亚州雷斯顿cloudflare.com"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721861861,
    +        "time_at": "2024-07-25 06:57:41",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721861855,
    +        "time_at": "2024-07-25 06:57:35",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721709514,
    +        "time_at": "2024-07-23 12:38:34",
    +        "status": true,
    +        "type": 0,
    +        "geo": "日本千叶县成田市cloudflare.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721709618,
    +        "time_at": "2024-07-23 12:40:18",
    +        "status": true,
    +        "type": 0,
    +        "geo": "日本千叶县成田市cloudflare.com"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721636125,
    +        "time_at": "2024-07-22 16:15:25",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721636111,
    +        "time_at": "2024-07-22 16:15:11",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721539870,
    +        "time_at": "2024-07-21 13:31:10",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国加利福尼亚州东洛杉矶cloudflare.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721539965,
    +        "time_at": "2024-07-21 13:32:45",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国加利福尼亚州东洛杉矶cloudflare.com"
    +      },
    +      {
    +        "ip": "42.2.*.*",
    +        "time": 1721477962,
    +        "time_at": "2024-07-20 20:19:22",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区pccw.com"
    +      },
    +      {
    +        "ip": "42.2.*.*",
    +        "time": 1721477960,
    +        "time_at": "2024-07-20 20:19:20",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区pccw.com"
    +      }
    +    ]
    +  }
    +}
    +
    `,35),e=[o];function l(u,c){return n(),a("div",null,e)}const i=s(p,[["render",l],["__file","login_notice.html.vue"]]);export{i as default}; diff --git a/assets/login_notice.html-97e2098a.js b/assets/login_notice.html-97e2098a.js new file mode 100644 index 0000000000..166df22eaf --- /dev/null +++ b/assets/login_notice.html-97e2098a.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-ab0078ac","path":"/docs/login/login_notice.html","title":"登录记录","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询登录记录","slug":"查询登录记录","link":"#查询登录记录","children":[]},{"level":2,"title":"最近一周的登录情况","slug":"最近一周的登录情况","link":"#最近一周的登录情况","children":[]}],"git":{},"filePathRelative":"docs/login/login_notice.md"}');export{l as data}; diff --git a/assets/logo-bba15bcf.png b/assets/logo-bba15bcf.png new file mode 100644 index 0000000000000000000000000000000000000000..57fedbddee9348599840402950661954a3be79f2 GIT binary patch literal 257403 zcmcG#cQ~9~_b{sWUP6=@gG7ls7+o+#l;|}&BYN+>#^}8ZqC{`;5S?K35d1JVYG@1+5PG#l*ov z-hl@fzeN7Sb&}U}MM2?W`t?QiDwgy>LBYJX*3@;=RaO!)ceLj+wQw|pa(UT1AxER2 zh)H@mnVQ=|-2i6L*VYc=z=PIKAi&x}9H=9p%%kii1GTc2_i=%0_`K9K_pvn>wg5^> z0K~jRkO1tVZl(Y)dpieL5ifDzZ@41J>tDCIfq>sb+-${xQoj}i=qjrMWE@?f00AyR zPIF#<0RUK-i&qfDFD(2Nz{kTY#LXkb%?sk>6%^s;5#i$l{QUzWS97tj6j6uB{ap+B zOB`tB=H?{A&F$&w$>j;+a&&pk%_}S{%+15c&Bw=y9Kq@8?ciqW#p&S6^e+Sm)YaU@ z+R4q@(E;!aqN$mqyPG%=iRqs$*gO3Ptb^-cG9d}Z?Pco3&CA8}YfJwQR961K54E@d z&uCXSSr6nYfARg_0(RB(c7k%NLtP!+UCg1f9#982rhgZ+F#pe7CwCXS-#fK1=Z4xr z?UBP=k%;mBXDKHuM>j`TE64xCKK}FgKf7@fk#T{Vx;eUNIy&0@%P7@BSAAL3~4{)>XY=Kqmg3rBM#jQ_5Ufy@Otg?LQ`!B8-mR}hM%mW8>9rK5|zDN0!!CG&r?p+8_ft)NJt{}(CwGtAY| z(#_M<1uFF#$&&v@5V`+P_`8~V{C{Ep-w4V7zu5mJuDO+|!)qwg)N%uV?T7o9QToFg z?*BK}en0yk2JGMANUQkk@;~Mn`QtwZ9qNDt?SeGdjE)aQQP8)aynsk)dgbijy{NRC zYkZIEZ$2VCqi@+NmYP1}cvLQWc3*$T_8m~ zA+5knQh=ZNS)R=|A#q66qR-cvqvmDvgn|rS2$tC-@$=e z;@akU5k{Ui{5lK(LrVsfq@fwc{Wv%;MozzoeQZYiYrG+D9I?=L*8_PRc6q4`Sqm&n z6AVjF?k;BFbEbV z)dZzaVbva#u)oqE?QqsBobZyg1~wx1PP6;~uGU`&pbg{Dx&!nc>cNh2Z z8srK4DllX_`rdxRD7NoLk-QE`@rlbuoR@AFkD5>(MGr(UhQ*sxNh%obn&ZjixNGVJ z=bXq{w4E9ZF@KZsmOGn#kRU4MKs8>eR)xppIENp%c1G_JTxgZ*_$c}xMtmetrGJ4| zYBURW6}K9r>i}IINW;n$izGZaUVqQl&U7Uwl z8;Xg(qh1L&(Qx%Xq*;Yi7NqVg|jp(k^-h>o(aXi{2zBr?nHk<|w< zHZkC_INoE)t>Zx{W;%%bZ;OHGx3T3NXb&00D#R+AIy6c<+&i?8!gi7O zSLE!SZTO^!2@p%IzP-+*a}oLe3S|s}=!*#nB((6m)E=#7?#Bi*jM(WG)T>hBt3~=V6Vfxv zEfB;;z0nV!F72g$bHpP-Pdq8hwq#MOJK*u z|B^(}|6WhzRS83PKeY?QrA4<~c9Zx+w{AptQmKp!*Qv5p{V4P=HbGC8oTyv&- zu`UmY&KP3HTpU#TIq%`!@2jvgpzJ2YN7q-TWlIGdKGoz-Q>fY zB@T28i=}DdGhG}~ThMN*L!wXmDs*s;DX(fr0(qpa9uWRZ6UOL)jhCj=F#+5rGEqfb z6NKW6?+a_dU%IAcTO=mV68WdRsuFBizDB8S zbqkGAa9je-M%#Ltdv9ev3R7{wN9)YsBZ!gx@KOt1jB+h^A9n3!_m@(Gh?^z5vZCZF2^LMr}*l*goGEe^pNq)_U^=A`m?=w&)1iXb{C- zF>rfmMY7A-C$G<5zk(yZ``U~F#ztaRdap;->pcARRh=zpK4b3d2nLTQ!>FCH!b4|= z1;5vp{ZW<8i?8rr_SzvK_uVM}h5xll6h{wo4qQ;BtvN>o^d&u9!SWJkVx^%Vb#j%) z3!{Mf1I|$E<49ttLre%Pmr~U$Q$7p|k8AI*Y}HiF+DbVr_F>? zX0f7aobYn|Yl#C1+%0v^;Ey1)%{NPI1GV ztZ<3mTLGs%L~?6%t8wOBY-^|U2^B&Dt<&{T>OTj`trhI()m^eq#EWJfPUhu8ph#?p zehNUnundAZ-E#U!`dR2BZmM>MDj&a6IPtD_`c!)5w2yAu>}X8R$;HJrqtK&ZRve(& zGml$UB;5$Oohlw_O;1y0f5y?nvyNTaWwM5iOd3>SKX&skSUy#n+-SDo)aHuPV|AUw zS5Mm(_q?bHT1M-XYa&lS`ZO^2OT`&5e+zY=_@_k`v@?bs#^OFj|0hf5Hh3-+r4?S{ zk7`P^gehN_=#?S@C@M?PJSb}=+`x;s7E|{n)s@vh*DF{ zXxZ0(3vXKc^K&!2m5{X+`eJH$R8y-asZnF{sLFyL8Dq<}dCWHO*cb(L7#`gz9H6S) zB}gMllLfO!9`o#~g{|{ymxF^s8W*SoLG6a5cY=O0T~SYg2lU+n3(-1idPY%VG4UVB zQCqc*hW(Q#iDwhJr?KZGTM!Z@QQ9FAKv7Z>az-nC{?GMw zj}|j}!h-lp6D#J$+LlJF!x{T$D%5QCvnCq~X8d9b^>led;CbR~_--DhROsjQIP082 za}`PD4PFh)y{G}Eeg<<0xYJOqt`qAKYG^A%K>r&@q;+Ha%`OHI`dE;!fgMIvegT=R zh3%HgNM&K4d~Ar)-ra(svqu;BwwzcOGF5kd-CBt*75~vY-G61r)nBnmzs@mE_inZA z9agDK!fyQZrWk?(48pb`t*ujZ^M5XRDqmV-I|gD5yTP;9WR|C_!w@;x*;dNLcOBCe z9NF3GnMze>EzXx^h#bJ~5^zF2?J}+Eh{BnkTxi4m*L_&;hoPW5ZC&;qb(v8n0NP;& z&8}MxRL@W~Nzes{UGDo<WrP1xQ@MNdPz7G;&mEf`Bo&l?4KD~ zX=(F?px%Kjulx_o@UDx29hhT5t}7#p#(7y8fwlHXRlm2e`sLEyQorcJ+D6-^V~+e1 zp8vYQXLStZIq%iJ$O$O-v9?^hRH7^=I(G4Hi*3zozF`KQ%%dr2+HCT^!JeLNDBJTC zbZmbsWLIwyp4ls{$E7LYN%rR@$Hg*@rsOlj$ z>w3#>r8Yu0ytzc{n=#-j;SdeYKAU3SXCiH;NL;4-*wap5q-BmgdozA1W?y_Fq-xEO z(V${L7H2h4uAOY7F4G?^2|y8?9&(D15LrU^>~gi4{rM6iXnAg@H*_BhYZLZm!QY!fj%!BzdBu+7D8-m7NH~ z^@i(?emE~jQA%8hM6XD@Vxbwl{8EeMEO_DhHDe-}zNhhtiuXg_y)gC9dLPv{BG*-9 zHxf$;)?9Qy!dt}kWsycY@VAk^oh8XfZ`A7AeNJ=Qld;xMbILmg;=PJ&!2^0qoerxH z@u)o9{c?uCqQe+gQ1A-myMbWfOkYN^ExBDm$jWXvus@Vu2_EpNuKx1)^(2}q78XW+W$6oJ$}Laae)qvTcMN|M6I2w)^KLxLL9>h>=AJnO1I!cQaMHS z6pc6B+(&9q9LhDV4nT{h{;D<(*`P_Z4OXOFgbja!t4$!eiPZ6c-`>b2uR2FvcLUZP z>-)>sWzon;p@fK`>87Myr0h)%<{JMPEr;O72-C_5wK;<+ z>IDP(K>wI8`b1q|_?{V~SL-)@g{#F0y@Og}v8MZoy&;B*tW!d#*vn*+Q{a1QvnVn% zAtE~*#g}%wBK&x8OZ9XdM!N9Z_TmB&N(g|N8l~8mmlVS3W(`yZ?Gx zCHdic_mY@t#b!Mvl4NlXZM)zDAzSZMiERGvQDgU)4NA0k_(fkxH6ZKkyPFxBCh%P+ ze#89-FCy8@+9w=EUAQ(_L}CRhh<71F0|ryau_ps9EiBd;TTI-^N~2aB49W z#!M=VFO?TYEfLLjs}$-WjWet}MMP*?YZuRNRU^gK!uSq|6gK6t&5=d$);)RlwmnV@ z`2>|Ei)g^}s-dMan|P3J-ToLCgg$t3i__VayI72(Zux`vp5gQiHj{3rahN_F0g*3- zVR15si^w%rq~Qujwv;Q|O}`{{ZJ_Seec}$MNS6_ctEf7diCkQ z)6gXJVT3OU8fEM~f4wF8E^mSy9WspgfzJsqBFIO>V#>xtUUN z3gbDihm2V+2rU%qE22E9q2*6!-Zb@sG%6T`92Uz)S6FY> zHXdqNg~`h)EePLinfA%wD1KL^U4|M?f=;0Ld@koZ zc|A=GiS1|s;^SB2qm|?n%T}M`Xk<3M#~u$*y%6#us6idsABj@dw&N-`nPb)NdJyc( zx4LIIp|^)Kk3FsP2ygb|#)V4ob$TDBI6!g-g~`NiEbZjJ$R}Z{EG0 zB_hbqb*Q5rIEG2}@HVdqodUEOUwzOzYO(la^O@a3D&;R?^pI;{^;*ebG`q~8g&S&nWcIZ)bqKlq7tK~s8rG{i$VU0+nVs15X1ZXT86m; zqW(9Wpw`dU-=b>aQ1mdq^kMa=H1+c+k2F6%P??8rf0Q_P@qVQy>K>dtuGtIq-o)*z zGyC+bNNnJ7t<2B(m0&mV=FTZpZ1hXa9c`@}l8`Wx59K}$6mE8n=<_Fp$WPDQvt3{a zUByU%jl$dfAwpR^fe%30J~2I+=~ z7yofX%nU6A^E33=nn&1uY~e;C)dDA)5Y5l5VH6YjMb%u%>yL<96TMoW6a@i#soAv0 zdZ^WL7+3ky?F6qbr$)%eY*R48#I_Z4NSmBbCPpm5I^gA}1*ca>@POg1DkNKkGw;s~ z_c2Pk&o)#da6Vw>vR^;7x&*v&dq+lQbU>kzzkHfwXeTVX{9%r$mjbo_7-&{3=t_TA z%d2k2{Df%(ZSE040M7$c`jlB&GpZNpeY zf47884S^Y4xjwRAe~H56@PJyXiYfRVpN#xOtX52h6yGbhK9u)Ssweu3&a6=F?&Bl)0M-6E9b`$ zP5l|VBQ-$E3W)RK>~5K!(ez{n-tpa<%%0Pow<|?lEiBf^Zjh}K>^Pr4;ch{O_$9vs zhyc3`m{OOOrD%?h-iG&>clP$}C$Z6yNo4R=FE2mjBV?XlMB8cB&%m@1$JlVmdLO?f9B2hc@b7E`zck-Gl;>t=h&)k0L_d55 z#vVWfY%4BM96F#@90=WcFwHUy`fqx^z%AYNrbsLe<6!Zt>{UtiBFfba?dAI7=qtF5 z-s7!8r(RXvrwVS_JN}k7w96Y%A?FlsrTY&}gBITNy@TuAnf=+0Z@4Xt6U6k331+z` zjT5-gaCfy)c#Dz0ln~&(qLcO(Uv@O%@$MDHa3l?tXH1aD|!aVhQ`{S}9&#MROf8mob0p)l%v|U^w++0!nwDOLcQkb#wP_qAU2v zrK|zj$(?b+j1o(0eO%IaE7nugS({ZAoEK!Z;)Oqaz|sBq4a2fg!D?GKMw`(i(P3vt z$9Ugz$~liqfold45blatYlr>fRNMAnehFPLVaSns6N>eFC%bmI*0aSp$MMJG>U8Gh*OfA4aPTIv58((xHOq1-lA8x?=a}4 zapFH^mRyxl-jw;$>u>3-&jjCoL038HG<^&r)3A3Kl$h&Ny@{|Nw$*X%~BSRf0R zr0e=nrJylflVh@{v2d9yVEP?XG0cWu>QyDrIOv4`hF^I@*xZPtf|0d6`m;d)2phas zy|B?qGRj1&Y~41Z>C%*`4nM3kG%6>1;9~euJ4zh+$Nf(#R==PTa;@J+ z+~t2^K)OLbedx$`?I?WPyC7Ihv5*c4Q64|{8-`Ce8;ZA_Mi1i)_Q;vVWMpn26=hUu zvX_5MVjNUVp_kp}MlZe^oxu5$Ev}ToyyL3{x|X<){Y>ba1jwdR!frIBFnMB4Ha9X- z==>8Y=w`|mp>Wd$;NQ}EN<4+P;)9k(DpUAYH>lUz=Inl~t*O^A zNGi;v&m2`Q+kDO!PUjf~P3mIq^S=~S0m1Q&I57*#OG|5N<_Q;KroRH#nwT!6wbR02 z&~G{fFJ#Bx8KB1pDTcw4v*VCn?q4@io6mjc6X7A|;SBJ2D$06nGub+4oVYcV-XlT? zA=kG!@cClH{vB=DlzW(F`uWM@F>qEHtT6s`c-R^ z$^T<|p!CW>;pourBV4guO*$46pgo3*syn^ymYWyHfqasQcmafaQ?auOKt%GRlW zgfTTEyId78Z7^f;b5Rjoj>Nq5$WRR?mDxAal->1qs$XdQVOVUY_-IyrX&bH-GJ)CL zieF1*;c_cQc}_b$(<$5b)t}`7m4HXm z3A32UkWKw<(R(26!Z@8IdSe&LzCO$Uh$&-x1b zBmeQ+9RdQ1s&0Pa9uJvaAS0`Wy@}azmM)2CF|CLug%dvx4Iu0p&Gzp17=^*iBObMp zfo6kkHb)W%fgM`#Qbuz)pi{OfJVI-x)1GUeO9h{_OL+wxTtexX zVE*^tN-0v+V@P_|k~yig_w{m5XgM}zxz76*i6HH=m-=77?0suKZN=F4Bx@|_dU!Z{ zq~a`r!bM-Oj)}wmL1P9Se7So)IGr6YaZ`JPQYgc_27Y**oR9>a+FJNISx;=NXWL_bd~=p?0XP8F?8C9HHuD5(YA za2aHW4_h&+RTteKC5R-EVV){>;#bNL&MN1W(qglW``{eWgE;hBn18+Hf$hS?&Yix) ziSFQ+DRVG6ffjsnH68AEo}OnHaOC*Y?qp6y zQoOUH<6Ef>m`@gzyjEN~R4MhE(1vD8R+dD~b4LBCx<*q7Z09%+W|La+LEDMm0K>D4 z+zT$FO2|f6Qei!XV$eL-AgWW|@|&MauYYs3Go89~UXr}Si#mPiVS%)~JDGOpkMCe{ z|78#X`s>%P4a7UvdQ|d`2Dv5Hdh#UJcL!O3-J>U>9k<}|tJ|8+4LB9Ia11uH)HjH9 zjjqQzn8}m-eBTHmyr8tfJCmbk{6P*CBjEaUJpM=x*liqm#l1N$dEL)daGRd@GkVP( zrQ3A{%#x0DbglQl6!sthH--#EH@s8-ghYx_S(NqmaRvFFjW~e&H-fx#2Q{i!?~HKN zzQ2JCHU#M_6mig(#ji|3o!ut@Da|Iuc1T0W4y?!WuaYueUqIuQ6uyCvw%+DejOJ^D zR`YIeJL7il{;6@lM3J9<^CU01b-hXbu1Kc~y9<=?9ML$+5>1&6Ppz*QoqL`q?t4Dj zdAq+mDS2bz>+XLxTW{RybMIrW@nTDkcbFyJg_;=JIX|DBP3zHW*w(%nZk@}7U@Vn; z{>3e0?VmiEN73_k@DF-}mKe@pgU~3L=_h_jDoJPwm(PAd7|BvoHNB&nx! zo5o5%Pq%-@9-PwOZ>48N6b8;TfvT=rr0<6G*fw%9k9&m}sJF!@#rV<_4UV%$oNj&9 z8HhW~zu!KW9jnr*asE?MMV(S8j0dXA+Oer7|@ zo2htU_?-ak&hnzB^U~rZnxTA%wF|51!3HldUZJsG=HWD}hRXQW=G=L5Uf}Hp_x;@X zE!EF+6)=NDfX^fF>TTETXxj85zWZ)k1uKoFh60Tlbj+3K!V0mA7{=;?@Pq*iWG(8* z76Rp>xwSvTsc1vULbxW(2^<>Tx0RH}AjR8N6Ya<_`0m}WGi9O_!vx#!$Ck?C?Hd4C zdw-OFEd8c6ba@fc?5iQWFE-Y6l_ZitjfL{WBiJr{aWQU+Wg*9gFr0)ESx$OZN@~cM z@L;@>N>uw~t4E2g7*r3C8vWp}?$X>djIV|W8V~fpFkS=z^Be+?{Nr@pZEiDITS!wu zNPAJBn5nhj7{7S`9XtMRGB1$d@3=mGvan<(TfSu=;>ym^JWz-Z!_)OiQ}ag7iI`>f zh29CH?W5=|nF)2gsW&y&$YYx^UF-ozeKV9;TMRdsC$WWbn)6cR@)={W7f7 z%^|>H3t4RscR2#r{M@X_GrUW^>i{ETuzS-#DawiCXyTs}-$UBeDm(@kFWhe{+63#t zlS20Ej03BPF2s4)Jwi1ZV=IIfgV4%Y1B)3i!r6k_XY0qC+8Cozz8TA6JFVVw5*dsz zYBZ=|3nTDdmQ?z}+%th-hmxLKyM=hY#oXu}S}NbjBNkvy$M&dMS82i2IU6pHtjw(Y zm(Iv6Be9#E(8cB%a0hI61;Cd+Ceo2?WBH@g0|o8X7RwA7TLHWiTc}W#VVAMw^?{xM6z2Mry4lmvurd+PYSut($5|c z(RpC^EkbhfsEfErTZ35lFR&ZuIpKtAjOpsGFGmM+r2y}1EA#Q$L(*-)IBWoQrjH55 zHu&W}UKW;bOWWKo=9BJXqg!!2{W^hFZe`pnP3yo9GF}p=p>`2JM(57=N7tXkZ&Ro* zw2Or;-|HB^$>v71q^L{IkEFa-C?mADgb&#Xs<=wTtcxM~`Cb-o=M<;Vjfk(rHNPGf zOg9)ADKM{m5b7?Xvoodex|v`?YkCe6&*-z8T*TFvfJR1f_}cRP9aZ3Cb{$|+$Mz3o zFV8*XcYc?j9m;E*l^x&3;Tfo7vp{u>QX-ineKU*5~0 z*%80$>ydZv8O_)h`JAs*d~KWzP$R|uYFg0^4555JyMY>})!R~P(0nt!$|Esu-ociV z9aFwH4|hrlI;Cx7t9#4HT7TRw zwB3Ktp6xSg}K+=dr+M|V$^&krI~x8+KcCI^=Z>Zx4+I~D)5HVz`&qPT2Lg{X*u5@j6x!eE&1OwL% zKBPM0v*1fge=J74%0$oUqY_Q2S+!YNG!&%N6xc>s3gN8C{9oluwl|rf-;!u|i@3O6U>b4a zYFK_#8PQnUXwGT9;u^n#4sJHIF5~f`8l&HCA&iGhwgWw|#IPg`h*W}X%QJoiscs%0 z)oNS&hQ&tZFqv|6Kk&nM*+S4B8YPUyW^5-tCFhf!wl!_|#sry~#)QOg>m}Lh+=OY) z{2@oy_V3#DgqOUO1$TE<>%pEAYM{MC zsCj$osbzT2eHX%^-;26VU8iudoPqHTyBVSR7|6BS+2BO;`J_JYu|d~6C6G2AoPfLX zNX@D|cWxH5MS0vw0u)c{!Zx3TpZmjlaPx^JvW(jRYrFRQ2{w)@^LIP1f8>SXhjB}B zNpMN+rBF3Q^o#;RAEJ3wuD;hXvB>lpmw7=nANzY(@)Yv|YiU#&JG*qkN-+DnZBLeu z?i**eX#tcF7h{*S>xj_xHR`SRTD=cq_P5~CQ$pAv5C=jcd;U>gVHv9$WGc#gP@0uq zh9JtN3@F8nthv%(Xw85dy2lh(kez_;O>os^CdX2(InS6xWJ6G(&F`!cO$pB9F)4@# zA^^Qj`f}(22L~CZ@3cP3jxEdES*%qj$z&5w zj@6HJ$F4}7B?(!FWiyo*G4gHXib03$Ms7yj2DVQ!BxA{|Jw+i!?88%8q8mK;wO^QkR@zslK~omcErC$vWtp1E{8olE7!|aH)Hh@SN+O z6evl03rdK`@D3RW2lnu7oU`)5F^_^;fYnd5rf=|ek2=p99iw$A7@x*d$6e?j_%5q# z4IGfxd8B-R@={UM*?>uE5{deMew}UpAUhZF(W?{2pBu+Hm^&PI6!=bEbmZrM$I&oQ31 zkv_MK?{6L!zFcQ7p2Dimd0_|)dzRm44Ob1fi>dFYhSO_;PBL)c^+}i6&^tl5rnB-> z>_S?j*|it!JuX5N)NmiY$dabIQ52znN~?WqFhQ(&TDTlp(D z(EB03V#Z@1`H__tm7qV{UhFNVxsXoSrk4D~tSh+X{CXFUCNB$ATrn^+%%kA*b-^_`idcCJ!GnOB8eFL7$lbK?W4^z1r@e<`-8sl5E9FG7(UBozcNk3uh98fGqRp8ouf;`iL zggm2|003b_>H@LT?@h|^boS(z7~;|C6T^~lqG95K)>rM~CaHC`--veEgy#|*bzUt$ zsN3_8>pwmu{rX(8>ie~R6{W9guwl3@Wequq2}B+q`PB8Pg@A(NY-Zx=hf|Hol!gLhv4=+reYae!=S8(6Ys z_5Q=1ypC*A8|8R=+?(^f&zm{jfFr5EiZGoFRI;&FOhMHvje|gtN!L!Xs1L=&Bpi7g zGmk$6PerM{UrSpo@lR_TSGpNlbx5%WYY<`P(eX-&vvQSJt6AvXr$Zx+(^vv=OL0CJ zJbJ)LD^B);`2e;=erME+^~H?SOE0%aa>0PT;%wZ}M|YVBMd%yx2ItSJ zoE&Z8cA18U1L~2fa0vkU92KdrdgQ1Qg(cgD$;NKenZdy}wBeEJfRMM~KGrO7DU_h0 zfRl>rSpIMu)&`l4tTirZMU)O=alWsZxD@?e^O(4NEKM)ti_d3P5OSX30cD>m4lL0% z9aCiS$l?KMPEooWIJxqIxZwo-UxzBE*-Rd2NK?c4l8E8khH2K4wwX~|&0e{9P{GWL z%p~P)nKbV_=r<}m_Jo7%x+(NeXwm>L$~-AxFeHUtm&)1jfXURlKMGPdJ*)2@3lVYi zCSaixue(sz-+SCbRsA%X;8E0^&lP$!O2A0Bc)KU%%!LPLDoehi8|eq15yhaa;uS?9 zovMK}xF*j`)Kf*Mhj7O0sF4P}5uIjzOhj+*KK5fGrI-<2w7`8cylS*i{PZr3;5@)F znpbnLdwaeQwA1Ki=bC-^60(hvX3#E;vel*YGHKSP z8a6DnHNotZK?@0rOvHyr4wm!>kKcN_o-K}TK?T|B%P5oiM4{}L80s(Kww2f_rTxB+ z6>iKT1E5$TD%Z=Fg4Q_wIq8;mKGM=;Ecai-6HbT?6_$(?bTbO^UqkdMjx&X zXFg%?UUcYd2mbKS*P*OuC+2#^U}Ask5(A{~*r1_q7;0grQ!RSBeR90q+dD9ji|&i| zaSGKEz^BH#9mhBjG~CejTygp=cA#!`&vj)+vsKDq>5?NW!Ja?B=@(f7DlaFhSVQbc zESG57zazHBigDQ8L#DyKmD#qt8Z&2$ZWl;z&FmbR*1A0&EKW1P_ z8s^Rz8G>`)nOK!FS)3R=@uc@KAJcd!PzovF5=3+Mq)a3;&(Uhwn9C%pr}HQrF*jX; z3b$phd4ayKT238}7TshgT7wh&*Sw#a!F!d%)^t&$^0hJTlqqnYPtb^wKGkxp@PvH- zz7wgQ{ZF?UcUO8#c_pQ);o~??G#%}q6*;=-X`HTN9X0Q-UwlJpd(|k>w%p!*v$fd~ zvnHUM)thiL(N+-s`kd9W?4zFUB;MB|^qL8S3vX;A9&U>opvT6u{%Y+!l`oW!b@+s7 zu0~8zI*+0KShLNS9C5jNf@rwRsF5OKtCr37v1%rnpasAB*uD$7U#-3I(GjwIU8C@$ zSeOB04Dk4akyLDQ|M+6_gI>)u;clvu3vNqbv7I8@HdQz~q{{kfBW z#yxH<$AA2Ii*O`Xf1GR$jsTB4_WX!`i&&;}3v@LJ1YP@qlS_b5!NdX+MNn!@z*m|G z$}+(qNT)8ENVmR!an!7Sq@k?cXi$4RdZ{tyS@KgI;RgJtXw!G^j+4mQTC~mXj0Tn@ zyI<6Q%?iH(RID_8s?$Fblc;B4`G<2_?RlF~jeL6m>1u<^t7RFXZ!|A4j#^%=*@oDS z=8r15i*hb4Khw>c1xDr$%30e*=exa@s^jlX>$h7Rr z>+yRxcx5PTgk4HgnnCm9uY{m8k63(W>&(r}yiV(OM7Fm|T8erLL4iK&Fneu-kj%*?sNkzcSu8A^4 zBuVo~AJbMP2{Ppn*{=}IvnS6SQh6REQre}0S?tw-K}U{y`{`^?HRK~FdjG4-L8#;O z+`+*akB-UJ&sTZ$Qs<@d16w9VdOOLX{lG~HOh5z++4d-hMb z%$a~Jum`eH1uO+Dq*YO0UWz20GJoH($e(Oj(}&w1ejA}gh7kQ)4^Z(n&vq1{F75JZ zn1S9Ij3^g_XvBxfCyH9yk0`Y7sxqERHV=ctt6G<5OsLfSDC(Y4T4~WeU$k9FM{n_R zl9l?gQ@FYD@T**{7ArUCi#CYs+30Ypd_npWn1BvR|6qFGW#>csW*|J(}P&igrd1r6xzZfv)7^gq0{ypwMBvu;M>#F4pS!b z!kCzjk_*xEfS#p;v?g9Ce{o7AP|skWfT_i4btr~s-6BB^;vjok92LM-pcCRTeQ8ob zy6%29I0OduBi|QdC_<*u*TwtZsxpNzt7j{ta0L?w$IEV5<1n&j{j<}5A{O}U$A7 zt?9gn=WJtN-_A4zvJNcg-)8@u`FSUKeHM5Sc*)RqeKV(iAjjgM)!hsb*Sg3kXGK88 zVrsV91JsDl4I-&Rb`kInQ6=-+>oZsHv*Xx>wziXW0_ z4n(HkUi-NniDW&S5>ZbSLAX=a?lD)v*RvjwzJl95*C$dVm$I?@dZ!u^kvdkWY0&nr ze?$ADr>4;|S^jb*yd!&(c5q(j4)MGxezE0ZC0AlgWJ}vn4fK@S5_3{DnNpLDCeGQQ zMbkm+D^_E&y>pUrYuuvY4{Tt!2&P?QCL0~~7H2Ep=gr_9+yqvl8J+0b;tTy%KkmcfvzM^z9&Z+^@E9tQJMjq=xZ>0sBs&&-rm zn~s;k>r|Vja&XYD9A+dgPKjNY8T8m58z%9p2697~qjpvJcaUY0%uM>q*$Biv>7f!N z_df3@@z2$oAnyB_pZ!1K;H;i|2^_L9O}D~=iA7}$Dy;?a_=xYyPmhX8h}3$pp<`6s z0e3dD?Q?MMj%$5m$v~!$H3zq&71{S^(ctUjt39WaW4VK+eYYj3--Af)Cs4S$24)<# zF|b}9<2z2)18zHgh%IHc8kw5es9&n@ghx~jr4Ax|e}3%@`R0TD!5;YKU7~wWL$?oP zsm0;WwTvuJ+rqHzo6y4Ujav_dO&^CQZFlbjp(bwm*)7oGpx$zZKh)RvQ`U=D2UPKb zSUm$0^@Fe8i1CbMi)eej3|pxC`05{sWggF!%FcD7hSQD{8{ z;%FQdE|jJ+yR?R_auo};7J74~B$c6;`W2RUlBD+|kX}`tZlc(xJ=aNL&hYz`W86Mu zHx3uLpaqvvOnv%9z9{TCeoODscC(nk5RxzNS_4_R##IBZB(E-hmUL=OZ2w&UdG(X^ z=O@oA@srJy<#L!qkS6W6KUr!4yQxbyKHNMezNN!A03Q9c)MUC4XvVK#jo>mF=osqwV2xSsQ^{f-}Cg1m@nmt8j7YV-2DANNbH9JWPWxO;omkr>ltCeKl$ zxHAJ);hvBBPMU6gu4>x& zpri0?+#HcbHg6s;Htuu<#{*U3P!dfDHsldg3@pAW5IVa(t>5)*G($Z0(~Y3C2kxY- z%FAWPCLi4s>+FlhBcop_#iM}wdlOmGX4PpGX&gyn-diz@JLcZQrajS?cda`u_l@(+ zYLslvC@+GE?EV(x0&K~b~9-| zFoD9owS?vQ?ghI0-N=`s^;f*?A+t# zv$JqY-BsE@YN`@Zc=@v=_#fA-9Aw{)490F_I_f9d31=C+js%Yc>&4qNU&Y38{}|+@ znk7eNsD_1W!rV%pDa07Q4ZCOLP42%9P3C33a!d-NgTvij`seQF>E{gt-sj%-`{T#v z;P!C1+lh-x9G(dcWn0yYP6B!nssui%!wgRuqct*RAGS*SYaItpKi0~Ena4dRKjU6DsGM=)$YmH@}O6pBGXd8QmJ2p9Q7X$y7wD+ z2{xAlB*3LX1%aM6-v-R8KPi0Py3S#?<%aaB z9bl37eD~Vh9jM;HIWTHR%%lg79N0%$sh23Eu{e>km(VGD zMp=0!8&Cx5Y7p8kU?V>ps(V4w(BtoKX1k;*bFmU6&NzC}ujuqfkdWop{WEVr9HWlt zgVXFrVGYuOh2=H+5*(T;&hxdbuuJe9_0xi1G5*#duk#ts>H#^ioZ`RGdKh%``K%In zaXIt(9Q3;VYAVpa*+qY}3hkunfl5)){{5^AU0jfe8+x7swA>d+p~VQ+mi)f-WU=%t zp-qBjdz2)?$H%{miOp|BIlgPMoVBF@>XqBpCKp#p6|8+(Ix8>*bPF>oEopn#)G_0c z#cxx5-Oj4IpDKObo{4-2@IDeHJ`)l4om z&KF9go@RBC1KfqNjx!2M7l^o}R`Ar@Itv)SH|lq+Z1lpLFl{zy z%fif|H*g9e`k{aJ=yTK?)v2Y8#1&qjlQX>$y>|abA9WSHd9xDXe1Ojnhr(Ggepsw2~c(v#b`8^h6IvX5u~9%ICFx3+v#OHEoGmF1^UT>snAVTu2` zdrR9oo~HuTW9PP9r54{&u^8UKO!>;6+pi0A8(^t@Kq7tz>10jbEivFvma3EJ$8=Oa z^P;p}!(#5V><*39f%n;@r5kGk7#cwbJs|IproHJJJ06cZTrHfhVyC81HX@Y>qjv^> z6N74BI%~Vc$xW$@(V=T+qV#vE;WxsfNs}|xi|rWStW%WdWGOU3%nNq=f#-@1Od|IE zfqGIAdQaSr-40cke*4%5@^HHd=IO6K^p>eDU~Ua91{yNdR43#HV058==|-4MP&7=juA9k5mkgohTG zn=oSy%i}EmQExnKA5!4|w3iVV8CpU9d~NXZvmHQ!Q5j=c7Mlbe#qan9zPp z1K#IqQ)Dg2Zx-%+v;uRTkEHtRQdh^TD|(Y(ba+tfF?=*;+-Sy7P4{}&*4dqiMDYLf zHeZQYKCAhdTN$Sr1PZ7;^RP|P4LOsDUn;~k4(TD}jzsp}0Yw!P17&~IX?>SK^oE>} z?mInc1>dMVpPY;lo669T_JTsKF5gNn;Wm1++Z?)%gmS3M`_YYeTKCsM12Vsgh{4U> zYtCtHt#h_Z6?7j&LAOVmvlskhr;qv1Cz1Clkq?^BgZsyZ+8^|&%n^>a3mbV5+9r6+ zU)3_DhQ3Box%*5*OC|e?0>8rga=Y7~tj>aTThN`SrKeYZxWR5Fh#SwtiR+~GzSI7S z8;5FLfn16zaNcfXE@vOU#uD@D9(OgEsG{ND^GelGv4?Fj^UIPT@6$f|*hJcKN=c!_#RgbKwyZQSpZ?kpg#}Lnem9a+A5F z&$m1qJdP3luSS0ORb~%X_u|n#nGra%7zH#}1BGfA;`+C$V++=>bC&xR#Ed$h6kL45 zoMmcP;y5YRpF;iiBi$JWSNT@zarRzpUI(>X1M@Q0mBI!ibzewH*-LjT)wDYP_ba? z%wvwv@m^NEeRsE>H|ROjp8wlDLuAUWm%VvZ>pT+2&&*0Cn5KXK^Ue6py3c(-I-WV` zrfocJ6DmF!&0JQ*K$+8BXTev+2(GiUCM;8A?2Fa!(t#eTsv= z#oZBDEgOo3cix8G^bw~Kv?CXYcGJrCFhG^7Wr0U<`3Q}LERcuRYB9uYZeLAhiqp?k zDO#MQj?+l@#jMJ#b7(z+!TUd&%)vMcw2!e|$j9+1w+r)XrzMARP3L-J zX*{=b%|g)8=;Rj>oF=#(@-fm~>M^$;ETvYPfnNlTQF$gDvJ)Kq|A!;${^V_mY8rfA zi~h_$w?vu`c5^&Rr!>)$?RfZ6LNVvW56&$#Ud&0YV=zz(KbSjNCO$%Z&hXK&ZZ#R2 z_D!u~PhBh348S&E3Nu_fH!FUNn;aJ`O&A1uRSFismZ<>yxgV;vP{d{kIG?;IzxB!b zv?V>3xlJKE<`Zc#n{m#Azk#{#``DYR54I~cub$>?Ls?<(q>a9g61g_D71!@<`3Z&x2UK8E4?bmd$hXeTd6F( zekgqr=p#f!kW7jls>5RGg5F4ILcXT>M^CxAgq0C2&uldin@MQEO3o2eEJ+r=3R6-_ zN(#PRGUuRoLH^y8TFXL+M)kI+&2h^-1IMfSW?|D-VPmhZ;n40hV_mQIe%PzA#G|Is zFuLM?`O=?h+KD9Shnt+?96Y!|cxjVp5POyR-;AFOj>Fmc4ddxU!|l~YJF`Bh2@dMtY2JpDL`Z{xMe;zwK!;@z-Y_3FEP{nk`z?nX84N#+uF>F2>Du+< zuCPsa+kfMr|860aD|#Z4*XN&Wli@B8o2{uj1-i-ub)itY*;3ha%=cLgaZzV8RrT}P zlKWACg}4i!ylQWyL{6n>V^;QftlJDaa27dB+0sZ2+etwoHrKd@rU`=*YFlB}7JpZ2 zzT$cJ>Vi>EwQqXh%#--CGQ2)GgW47Wk}Dg%P03F&7-k&fPCg?Ti$OS_YUsNcf4Bn%j~(LLK<4wmC(%1PoydFnp3qP`qgRYj4Dk3<;!-L z&i6HwZ>h9KAYo<6SX>C!JJ63y?JT)!7+IfCt7wXmy|=XS#c6C^K|R}VU*^+dHj1x2 z);6@QE)wdrS#}y*?=)ljtZTc6OIlJ9Lf(e_9El{$D>mQz-cte4(S_Mk+u(24s&BO! z5F{lduV7|?{V%mtyO>2kc@1&nh$33Oc{hP29wLw_Pl;JwW0juDFD*8%?kW1JG?YN= zf_c?6R#sqLpbrcy%3TmcgtA%;HSdU0k7Dw~RF*t9W6;_1uU%snP&xdbt3wWB%`v^;VlEgQ_)U`#PfT)V_wZUf8i72c(z_ig>-|2Ns=)!BD< z1kXH4kS-05bLuzk?W}?tKSXURa5Q2Q7fN5kj1c$G&1K{h|gW@$P%=B79_Vu(k) zCl_$u&pVc6)3B9l;fjLS5bNF`Hb?{~|TipZ=-lxDo~Ps0-(WlNYb zHM-Zf&sh$^wLz!I^l)Csss^HpDyh)p_6N!|Oa2|12>z~(QLES<*FVT78gh{@fsh}W z`ywvqR9?d92L}GNnJ6BjAvukU9NfO+y6q;_csZxk>&^q;>`(Va$zF#83k&S#(*Tp=4@Czx>a&2Tkg8xUyI5E$2?(73*cj}0*`5=jZeE`swj$ zAZ0WVU_3(HC5Z3G7)`b{H4f+o8xB#u;4}}x%>%2ssEAkXQ~F19vZY_4eX&kGbG-kF zYp(YPDw4~)nadC_!DN}J)t!jS!RJaAKn}VsvZ}$2=>(^FGsZ8(1#B#S7faO?^C9RSnPSEPKW=pbnmp*55zTb@y8s||zjr`y&;Zwj=PB|PmSO%0>V!)laD_Qh zJtg5cP505?DY9ca5#8**Und$E0e6BU0H5YD@EtNnX z(5~2(g0^HLiOc}3Rg3DGq!Hhk7P~#hU!EW*B7*@?;zou^uEvL4*u$hz6T?Xj7FhnT z^5^3?duUGgO3DoVP7JGFbSr%U1IlUc$hui;S}Ole=j#EwUNU%g5miOs+D8C4TSx=@ z6SddQ?^XpMfzWVziqp$)oL&1FMi5e$?XX0E6EUygCnIcQv(lI+A- zjA`Va8XR4I==(JX0HRj6mU%NkKV&<|)6RdZGa&wzq1S(HVp&O2cO5p2fifhRc|U%i z&8P5EhQNnjF(PtsDr8fMvLqNr2v3a!tyz!R4neYXF1rb2wexIFZ%CP{6ux9=)x*UHFuD4J^ z&_@q>Rge59qwY)3XqzjHT?C%NMKt>cl=>gPMal zFOEmkE^IO{%mL4$nq=h(AB(12o5-7<3}Z4-A}(*%ai0bTAH)aNp(0oZMSq^~`A<(R zOsI|*nG2Q;e#jUM*-dxZO?SGz=v3FME&Ce;x5$jJ{`uPthzot_{j|zN{<&KQ$XFWa zUI?)=LTlADs|2jJUBI+de5+|g6vZ&KxQN{LXk^L&%}F2#)(qV+KYRbBbobpONnH`) zilhASYT)(_QBC_(^W205#bsfu*7K<3bKjl0hy&~OQb#p1R<<3g5Sz*%P1k|?rZaSt zLc;K<6~1;r%}XN3k4YlMuPAL`JxdV#0)`d?Ob$C3ZB(Xvu8E z;bj;c%7MVH5mCS4YPRUe*^BgFnJA*n{u>En{LI#Ik>dEM&2rjF`Z0g!CM27hMVU@I zkHhB=*D~M>ppeX$I~%3(Dl$NvXBMr6e$k_gaH=JKh?6}wL{J+ocZy)b!*DZxie`a6 zp8rhG&3vjV*g5S`|GLCu!+PpW(G~lbVU2F98UmZ(=IP~c$BQ|Gn^7NnFx7&lQ6WA$ zm1R=_9fgedhTuuX<#RIkzkg5^pF%Fzb>_3kq%Tw-3GF-lyw;9W&kJH+abM4RCDgzX zf(pd0H6jXs>&5j;!JWXYXOvR$`qH9TC=4cP6`Lt^F6-F|`4C&{q8dL!`eQVCvcD?C zrw-1CkvK#>Dr{ZhHh=U&&hU zA#;BgbRmV;b1BrPTzGNZvG*Iu;V7L145{~_5u4l~@aX$jMEMG3z%5Xf!Z6A(#_MQ} zVKGjbl5_PkBepLstMyycu2vN=J?gfPZldYBW~%i1RbPmvKXE5!xmP!>`2O-;l=v$( zsm0PjzH&a^ zg_xcYa4TN4ky5s>RfZ z8%uBK9j3Z)ojwxa}J^RRM52JKR5V1!Se?cuM>NOG-a+n=Ii@|h{!c->w#EZ*r9 ze3CNB+KmKuXFoG`#Nx2-U71x8tt`3vwyyfXTH2*tnd{*}gZFQ(2Hz;LaWpAl29k>m z$x%X>Jzx-?&L_Pxqd`d1ELSUeJ%wajC)t-%&qRRj&GQDA8jXN!0vaTBr9qFVjCsMP z*elupK#=9`iqgsCwj$<;H*|I3Xs`8LJ(8)`lGp_B3 zz4jL{1WO%n^`6A0Z{Ha|Gp(v->JXm^FgdpBoNxDK{EgNq9Wj$7Q17vzP7EC*ny$c< z+;h$hkL#XpNH__%&t5hJ{kP|*)theKpKsq8#RfIRqJRcSH-*J2!|&n=(V~bXLPUJW zl!ANg!n^!JyX?YxRrPqtrV4n~k6gA@vHDOIOyYmR1D@olYWOBiy+u0`z^+bZYU!K1e@j;`#JQ0YmaDHX&L*a49mh=6l*ukXMeK5e%?fq)y zs|VvU)a8nmTxmjo+4fGW4nlB~=F#$Km5Tu}Rfn@w!1ZnvRbj9)Hck{TGgldxY_3H0 zgzQGvc1?xAp29D~#^IZtQ50rSNzB=vu4mN}eGOUlFCh8?ycX+B2JUPY<={mx#R;fhQ9si>5s#WI87)$34gj=>xLrO8#TSckW{|G6d#K7!wp z=)cpP>5L07a8KvSblvu3i)0@Ar@E!RKv!_lS6`iWO2$N9SPilwE6f9A6f0kJG^%2C zUxi+oF}&bzQsTF?In47En1WO3&(F~6mk+2aqwB0%hcu!h3chi*X$UA`nl&s)sTjuC z?Q1J0;$s?aaBRgb=N)ROZ7z|ic3|H%79EF{kh9$*-}#P6wI9(7AMy+Bcl!MS=n=O6 zO~d9ls~}mg#_Mk|f9dBh>tD(Vmb$K#t<898iOqxj-Kdqf0-dJOC*dEs zucplWB+!OeV;0*<<^1axV-X-OKb2&=FWrv~UO{ouX3?ke4=zV|Y_d9~?Wh%RwUUn2 zqFw?AU%l|^StggU*$MF(Trp7U2hgtom{b^8Ut)3wToTlW;_6hEs9j;eu8CSz|5R?Q zu^N*b%o{&#)fsxDKad*JJ4=WlPFrCOgSP=9|1IvBMI*^|e=2qL^c-PD{*i$G!{?6; zp$y4rVvfQ{X7^EY4K&ubGxQ&uuAOsF#s5Xv@5C<0)rW2VI8Ccl?5k+|c^w(L(}%xv zHTN5SWPlq|6zs@Co3k!~F4E`K!GKDRL-UxD!`3eB%m=F56wpnLu7g41uu(z}qJi6F z`pSK0_o*mJ_^IPrTvZh;0vjxvwJqDQn&iOAc<4+hHZ}S=-D{~?Td{}Oj!qAXKD#hh3Y8n$?r+%-0j1¨bxee%v+ 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 装扮/收藏集搜索API

    https://api.bilibili.com/x/garb/v2/mall/home/search

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    keywordstr关键词不必要
    psint每页返回数据的最大值不必要
    pnint当前页数不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj返回数据

    data 对象:

    字段类型内容备注
    listarray返回数据若无则为 null
    psint每页返回数据的最大值默认为20
    pnint当前页数默认为1
    totalint查询到数据的总个数

    data 中的 list 数组中的对象:

    字段类型内容备注
    item_idint装扮对应的id收藏集均为0,需要在properties获取
    namestr装扮/收藏集名称
    group_idint?分类的id
    group_namestr?分类的名称
    part_idint类型id装扮为6 收藏集为0
    statestr当前状态默认为“active”
    propertiesobj见下方
    current_activityobj见下方
    next_activityint?下次活动的时间
    current_sourcesint?活动开始时间
    finish_sourcesint?活动结束时间
    sale_left_timeint?销售剩余时间
    sale_time_endint?销售结束时间
    sale_surplusint未知
    sale_count_descstr销售量显示文本
    total_count_descstr总量显示文本
    tagstr当前状态标签
    jump_linkstr跳转链接
    sales_modeint?销售状态

    list 数组中的对象中的 properties 对象:

    共有字段:

    字段类型内容备注
    image_coverstr图片封面
    sale_bp_forever_rawstr价格以0.01B币为单位
    typestr类型收藏集为dlc_act, 装扮为ip

    装扮特有:

    字段类型内容备注
    descstr介绍文本仅装扮
    fan_descstr装扮名称仅装扮
    fan_item_idsstr未知仅装扮
    fan_midstr该up的uid仅装扮
    fan_no_colorstr十六进制颜色仅装扮
    fan_recommend_descstr装备说明仅装扮
    fan_recommend_jump_typestr跳转类型仅装扮
    fan_recommend_jump_valuestr跳转值仅装扮
    fan_share_imagestr分享时的背景图仅装扮
    gray_rulestr未知仅装扮
    gray_rule_typestr未知仅装扮
    image_cover_colorstr?图片封面纯色背景仅装扮
    is_hidestr是否隐藏仅装扮
    item_id_cardstr装扮背景卡片id仅装扮
    item_id_emojistr装扮表情包id仅装扮
    item_id_thumbupstr装扮点赞动画id仅装扮
    open_platform_vip_discountstr是否有大会员减免仅装扮
    owner_uidstrUID默认为虚拟主播衍生品小货架, 仅装扮
    rank_investor_showstr未知仅装扮
    realname_authstr?是否需要实名认证仅装扮
    sale_bp_pm_rawstr该装扮基础套餐价格以0.01B币为单位, 仅装扮
    sale_buy_num_limitstr购买限额仅装扮
    sale_quantitystr该装扮粉丝专属套餐限额仅装扮
    sale_quantity_limitstr该装扮粉丝专属套餐是否限额仅装扮
    sale_region_ip_limitstr该装扮限制购买地区仅装扮
    sale_reserve_switchstr未知仅装扮
    sale_time_beginstr开始售卖时的时间戳仅装扮
    sale_typestr售卖类型默认为pay, 仅装扮
    suit_card_typestr仅装扮

    收藏集特有:

    字段类型内容备注
    book_amountstr购买总数仅收藏集
    dlc_act_idstr收藏集活动id仅收藏集
    dlc_act_statusstr收藏集活动状态仅收藏集
    dlc_is_freestr收藏集抽奖是否免费仅收藏集
    dlc_lottery_idstr收藏集抽奖id仅收藏集
    dlc_lottery_sale_quantitystr购买总数仅收藏集
    dlc_lottery_typestr?抽奖类型仅收藏集
    dlc_sale_end_timestr收藏集抽奖结束时间仅收藏集
    dlc_sale_modestr未知仅收藏集
    dlc_sale_start_timestr收藏集抽奖开始时间仅收藏集
    dlc_surplus_stockstr未知仅收藏集

    list 数组中的对象中的 current_activity 对象:

    字段类型内容备注
    typestr当前永久价格活动类型装扮一般是open_platform_vip_discount, 收藏集一般是first_draw_discount
    time_limitbool是否存在时间限制
    time_leftint剩余时间
    tagstr显示标签
    price_bp_foreverint永久价格以0.01B币为单位
    price_bp_monthint一个月的价格以0.01B币为单位
    type_monthstr当前一个月的价格活动类型仅装扮
    tag_monthstr显示标签仅装扮
    time_limit_monthbool是否存在时间限制仅装扮
    time_left_monthint剩余时间仅装扮

    示例:

    搜索关键词为 2233, 然而没有结果:

    curl -G 'https://api.bilibili.com/x/garb/v2/mall/home/search' \\
    +--data-urlencode 'keyword=2233' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": null,
    +    "pn": 1,
    +    "ps": 20,
    +    "total": 0
    +  }
    +}
    +

    收藏集信息API

    https://api.bilibili.com/x/vas/dlc_act/lottery_home_detail

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    act_idint收藏集活动id必要
    lottery_idint收藏集抽奖id不必要但缺了不返回数据

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj返回数据

    data 对象:

    字段类型内容备注
    lottery_idint收藏集抽奖id
    namestr收藏集抽奖名称
    item_listarray可抽出的物品列表
    collect_listobj见下方
    button_bubblenull未知
    guide_infonull未知
    is_bookedint未知
    total_book_cntint未知
    is_fissionint未知
    physical_exchangeint未知

    data 中的 item_list 数组中的对象:

    字段类型内容备注
    item_typeint物品类型目前只拿到个1, 其他值未知
    card_infoobj见下方

    item_list 数组中的对象中的 card_info 对象:

    字段类型内容备注
    card_type_idint该卡片id
    card_namestr该卡片名称
    card_imgstr该卡片图片无水印
    card_typeintint未知
    video_listarray该卡片动态视频无水印
    is_physical_orientationint该卡片旋转方向
    card_scarcityint该卡片稀有度
    is_muteint该卡片是否静音
    widthint该卡片像素宽度
    heightint该卡片像素高度
    card_ext_textstr?该卡片文件名字符串
    card_img_downloadstr该卡片图片有水印
    video_list_downloadarray该卡片动态视频有水印
    subtitles_url未知
    playnull未知
    tagnull未知
    card_sub_typeint未知
    is_new_tagint未知
    is_up_tagint未知
    is_limited_cardint未知
    stock_infonull未知

    data 中的 collect_list 对象:

    字段类型内容备注
    collect_infosarray见下方
    collect_chainnull未知

    collect_list 中的 collect_infos 数组中的对象:

    字段类型内容备注
    collect_idint收集品id
    start_timeint开始时间
    end_timeint结束时间
    redeem_textstr兑换条件
    redeem_item_typeint兑换物类型
    redeem_item_idstr兑换物id
    redeem_item_namestr兑换物名称
    redeem_item_imagestr兑换物预览图片
    owned_item_amountint拥有的数量
    require_item_amountint需要的数量
    has_redeemed_cntint兑换次数
    effective_foreverint是否永久有效
    redeem_item_image_downloadstr未知
    card_itemobj见下方有时为 null
    jump_urlstr?跳转链接
    redeem_cond_typestr当前兑换状态
    remain_stockint当前库存
    total_stockint总库存
    lottery_idint抽奖id
    reward_tagstr奖励显示标签
    redeem_detail_imagestr兑换详情图片
    redeem_detail_videosnull未知
    sortint排序
    redeem_items_optionalnull未知
    unlock_conditionobj见下方

    collect_infos 数组中的对象中的 card_item 对象:

    字段类型内容备注
    card_type_infonull
    card_asset_infonull
    playnull
    tagnull

    collect_infos 数组中的对象中的 unlock_condition 对象:

    字段类型内容备注
    unlockedbool是否解锁
    lock_typeint解锁类型
    expire_atint过期与
    unlocked_atint解锁于
    unlock_thresholdint?解锁起点
    current_thresholdint?当前起点

    示例:

    curl -G --url 'https://api.bilibili.com/x/vas/dlc_act/lottery_home_detail' \\
    +--url-query 'act_id=111' \\
    +--url-query 'lottery_id=15'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "lottery_id": 15,
    +    "name": "夏日萌菜",
    +    "item_list": [
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700903,
    +          "card_name": "水中嬉戏·隐藏",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/d41acfc3bfcc9032a9759fbd9e64147a6d9a24b0.png",
    +          "card_type": 2,
    +          "video_list": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/2b/y2/_000008vnv2ddoooah248hqoyz2gy22b-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=d22ca6102adb9ffe257f702047be6ef2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=753ff946c9e4b3813eb72c744ed3a399ba9a225fe4767a7a03835890fcbe4b8a&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 40,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1862,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/d38c42b6f1151298888da5902bca5a41e14f67e1.png",
    +          "video_list_download": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/ib/30/_00003d7cuie74gr9z2322d7js5b30ib-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=hw&upsig=24512302cfa3b1f762f3ad08a0a2f5fe&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=5dc3cdfca31fca94c29a2ec945589ff319e97c3291dec2685184ec4083616cc2&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700902,
    +          "card_name": "轻纱花语·隐藏",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/e4721d06a5c435be216b5011f0604c9e07d5e4af.png",
    +          "card_type": 2,
    +          "video_list": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/jb/4u/_00001f04wekkvpmr92osvwpej1e4ujb-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=ad574839c71e5327783acf248b552b3d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=49276ec1afce1a8f571e257fb6d2ab7488f623aa50c2c3b7252258be72315c5e&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 30,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1862,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/0e49e7c8108a98944a96bfa594cf7f74c72398cf.png",
    +          "video_list_download": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/nb/58/_000007ovzgblf574s1ywvm7inwx58nb-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=ec9de21147240e94494d736f277dfb64&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=2370473349a25fae0ea023f65f1e09c70b45d086831eef5f4727b8443acdf9f5&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700904,
    +          "card_name": "甜心女仆",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/e1f9c56a8f49910d07852f2bd648fee910f36ff6.png",
    +          "card_type": 2,
    +          "video_list": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/gb/j6/_000015vmteklku8oj1ypmp1yjijj6gb-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=c7412fe7b155deecbfea939f7c3d1b21&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=8989673c367aa0ffbe747cdc66129a6d1698f1c2b60ace24861ad62127cdd6da&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 20,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1862,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/e6c69329d843603166fac8d41682c3489fd137d4.png",
    +          "video_list_download": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/zb/eq/_000018oi0e68wv4id2vkrk9ovpteqzb-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=hw&upsig=f972e8cd996d058deb4e0ffb1d57671e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=99054c626717b4ba61c01bbb0fe59f67feac394b89e19e4bbf95290d3a425f94&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700901,
    +          "card_name": "约会憧憬",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/924ef9a71bf39010935b4a43845bec13c8a2022c.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/40a9ff949ca7a50dbce146ad28fbb567c2583261.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700900,
    +          "card_name": "夏日小憩",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/0eddbfc70200f16bef06acc88ef132eb25ede52d.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/61e26e17705e06ecdfdb9ff97befb19c702cf81e.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700899,
    +          "card_name": "微风校园",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/bbeaf7993566684e328e74d8ef7c47e6242869a2.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/8ac61045334699d621363ccac87153a7128ef0c3.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700898,
    +          "card_name": "萌宠幻想",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/f93f200ec862b4520b30e8f03219fbaca91a2089.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/93e59f3080f6b8070b0d0621496e4ed6cb20cf8f.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700897,
    +          "card_name": "空中环游",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/fc0c020091c0a9fb1778c420bc4f9773a72ea7ba.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/c1c6c9ca84b584bf5f2b0e1ec7d239eb935e4d44.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      }
    +    ],
    +    "collect_list": {
    +      "collect_infos": [
    +        {
    +          "collect_id": 0,
    +          "start_time": 1685372400,
    +          "end_time": 2114406245,
    +          "redeem_text": "1抽必得勋章,可应用为评论背景&动态卡片",
    +          "redeem_item_type": 1001,
    +          "redeem_item_id": "",
    +          "redeem_item_name": "夏日萌菜勋章",
    +          "redeem_item_image": "http://i0.hdslb.com/bfs/archive/b3d915c6ad88609fb658393585f018459a7e620d.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 1,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": null,
    +          "jump_url": "",
    +          "redeem_cond_type": "",
    +          "remain_stock": 0,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "",
    +          "redeem_detail_image": "",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 172,
    +          "start_time": 1691640000,
    +          "end_time": 2114406245,
    +          "redeem_text": "抽出任意5张不同卡牌,即可领取,单UID仅可领取一次",
    +          "redeem_item_type": 5,
    +          "redeem_item_id": "56658",
    +          "redeem_item_name": "夏日萌菜个性主题",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/48f755d6d08d96bfebcadee0be4bc34ce42421de.jpg",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 5,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/48f755d6d08d96bfebcadee0be4bc34ce42421de.jpg",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 51,
    +          "start_time": 1685372400,
    +          "end_time": 2114406245,
    +          "redeem_text": "抽出任意1张隐藏卡牌,即可领取,单UID仅可领取一次",
    +          "redeem_item_type": 3,
    +          "redeem_item_id": "53199",
    +          "redeem_item_name": "夏日萌菜头像框",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/item/9fcb99ccfd057c5eac165832d71fb63f07f26097.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 1,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/item/9fcb99ccfd057c5eac165832d71fb63f07f26097.png",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 50,
    +          "start_time": 1685372400,
    +          "end_time": 2114406245,
    +          "redeem_text": "抽出任意3张不同卡牌,即可领取,单UID仅可领取一次",
    +          "redeem_item_type": 2,
    +          "redeem_item_id": "53178",
    +          "redeem_item_name": "夏日萌菜表情包",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/462ae9b5735fef4bb9ed87a6d6467a4768b06006.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 3,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/462ae9b5735fef4bb9ed87a6d6467a4768b06006.png",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 366,
    +          "start_time": 1694768400,
    +          "end_time": 1696953600,
    +          "redeem_text": "抽齐全部8张卡牌领取,直接获得全图鉴进度条标记,10月28日前人工发放头像",
    +          "redeem_item_type": 5,
    +          "redeem_item_id": "59374",
    +          "redeem_item_name": "水中嬉戏·隐藏出框头像",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/ff981dbdca5c6b539e22596674265ef1cb110c9c.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 8,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 0,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/ff981dbdca5c6b539e22596674265ef1cb110c9c.png",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        }
    +      ],
    +      "collect_chain": null
    +    },
    +    "button_bubble": null,
    +    "guide_info": null,
    +    "is_booked": 0,
    +    "total_book_cnt": 0,
    +    "is_fission": 0,
    +    "physical_exchange": 0
    +  }
    +}
    +
    `,50);function k(m,b){const t=p("ExternalLinkIcon");return o(),e("div",null,[d,n("p",null,[s("由 "),n("a",u,[s("#1080"),r(t)]),s(" 提供")]),i])}const q=a(c,[["render",k],["__file","lottery.html.vue"]]);export{q as default}; diff --git a/assets/manage.html-7d0ae503.js b/assets/manage.html-7d0ae503.js new file mode 100644 index 0000000000..88d1eaa383 --- /dev/null +++ b/assets/manage.html-7d0ae503.js @@ -0,0 +1,139 @@ +import{_ as e,r as o,o as d,c as p,a as t,b as s,d as r,w as l,e as n}from"./app-3168cb19.js";const i={},c=n(`

    直播间管理

    开通直播间

    https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    platformstr客户端?必要默认值web
    visit_idstr未知默认空
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1531193016:已经创建直播间~
    -400:请求错误
    ttlstr错误信息默认为1
    messagestr错误信息默认为0
    dataarray信息本体

    data对象:

    字段类型内容备注
    roomIDstr直播间房间号创建成功返回直播间号

    示例:

    开通直播间

    curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \\
    +--data-urlencode 'platform=web' \\
    +--data-urlencode 'visit_id=' \\
    +--data-urlencode 'csrf=xxx' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +-b 'SESSDATA=xxx;bili_jct=xx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "roomID": "1234"
    +  }
    +}
    +
    {
    +  "code": 1531193016,
    +  "message": "已经创建直播间~",
    +  "ttl": 1,
    +  "data": {
    +    "roomID": ""
    +  }
    +}
    +

    更新直播间标题

    https://api.live.bilibili.com/room/v1/Room/update

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idnum直播间id必要必须为自己的直播间id
    titlestr直播间标题最大20字符
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    msgstr错误信息默认为ok
    messagestr错误信息默认为ok
    dataarray

    示例:

    修改直播间10352053标题为测试

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    `,38),u=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),k=t("tr",null,[t("td",null,"room_id"),t("td",null,"num"),t("td",null,"直播间id"),t("td",null,"必要"),t("td",null,"必须为自己的直播间id")],-1),v=t("td",null,"area_v2",-1),b=t("td",null,"num",-1),m=t("td",null,"直播分区id(子分区id)",-1),h=t("td",null,"必要",-1),q=t("tr",null,[t("td",null,"platform"),t("td",null,"str"),t("td",null,"直播平台"),t("td",null,"必要"),t("td",null,[s("web端:"),t("br"),s("bililink:android_link")])],-1),g=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"必要"),t("td")],-1),y=n(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    60009:分区不存在
    60024: 目标分区需要人脸认证
    60013:非常抱歉,您所在的地区受实名认证限制无法开播
    (其他错误码有待补充)
    msgstr错误信息默认为空
    messagestr错误信息默认为空
    dataobj信息本体

    data对象:

    字段类型内容备注
    changenum是否改变状态0:未改变
    1:改变
    statusstrLIVE
    room_typenum0作用尚不明确
    rtmpobjRTMP推流地址信息
    protocolsarray???作用尚不明确
    try_timestr???作用尚不明确
    live_keystr???作用尚不明确
    noticeobj???作用尚不明确

    data中的rtmp对象:

    字段类型内容备注
    addrstrRTMP推流(发送)地址重要
    codestrRTMP推流参数(密钥)重要
    new_linkstr获取CDN推流ip地址重定向信息的url没啥用
    providerstr???作用尚不明确

    data中的protocols数组:

    类型内容备注
    0obj???作用尚不明确

    data中的protocols数组中的对象:

    字段类型内容备注
    protocolstrrtmp作用尚不明确
    addrstrRTMP推流(发送)地址
    codestrRTMP推流参数(密钥)
    new_linkstr获取CDN推流ip地址重定向信息的url
    providerstrtxy作用尚不明确

    data中的notice对象:

    字段类型内容备注
    typenum1作用尚不明确
    statusnum0作用尚不明确
    titlestr作用尚不明确
    msgstr作用尚不明确
    button_textstr作用尚不明确
    button_urlstr作用尚不明确

    示例:

    27作为分区id开播直播间10352053

    其中"data"."rtmp"."addr"为推流地址

    "data"."rtmp"."code"为推流参数

    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'
    +
    查看响应示例:
    {
    +    "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_idnum直播间id必要必须为自己的直播间id
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    -400:没有权限
    (其他错误码有待补充)
    msgstr错误信息默认为空
    messagestr错误信息默认为空
    dataobj信息本体

    data对象:

    字段类型内容备注
    changenum是否改变状态0:未改变
    1:改变
    statusstrPREPARING

    示例:

    关闭直播间10352053的直播

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "",
    +    "message": "",
    +    "data": {
    +        "change": 1,
    +        "status": "PREPARING"
    +    }
    +}
    +

    更新直播间公告

    https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idnum直播间id必要必须为自己的直播间id
    uidnum用户id必要
    contentstr公告内容必要最大60个字符,可以为空
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    dataarray
    messagestr错误信息默认为ok
    ttlnum1作用尚不明确

    示例:

    修改直播间11996900公告为测试修改公告

    curl 'https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews' \\
    +--data-urlencode 'room_id=11996900' \\
    +--data-urlencode 'uid=306903238' \\
    +--data-urlencode 'content=测试修改公告' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx;bili_jct=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {}
    +}
    +

    编辑直播间标签

    https://api.live.bilibili.com/room/v1/Room/update

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idnum直播间id必要必须为自己的直播间id
    add_tagstr要添加的标签必要最大10个字符
    del_tagstr要删除的标签必要
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    dataobj
    messagestr错误信息默认为ok
    msgstr错误信息默认为ok

    data对象:

    字段类型内容备注
    audit_infoobj
    sub_session_keystr

    data中的audit_info对象:

    字段类型内容备注
    audit_title_reasonstr
    audit_title_statusnum0
    update_titlestr

    示例:

    给直播间11996900添加一个标签为测试标签

    curl 'https://api.live.bilibili.com/room/v1/Room/update' \\
    +--data-urlencode 'room_id=11996900' \\
    +--data-urlencode 'add_tag=测试标签' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx;bili_jct=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "ok",
    +    "message": "ok",
    +    "data": {
    +        "sub_session_key": "",
    +        "audit_info": {
    +            "audit_title_reason": "",
    +            "update_title": "",
    +            "audit_title_status": 0
    +        }
    +    }
    +}
    +

    给直播间11996900删除内容为测试标签的标签

    curl 'https://api.live.bilibili.com/room/v1/Room/update' \\
    +--data-urlencode 'room_id=11996900' \\
    +--data-urlencode 'del_tag=测试标签' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx;bili_jct=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "ok",
    +    "message": "ok",
    +    "data": {
    +        "sub_session_key": "",
    +        "audit_info": {
    +            "audit_title_reason": "",
    +            "update_title": "",
    +            "audit_title_status": 0
    +        }
    +    }
    +}
    +
    `,70);function _(x,f){const a=o("RouterLink");return d(),p("div",null,[c,t("table",null,[u,t("tbody",null,[k,t("tr",null,[v,b,m,h,t("td",null,[s("详见"),r(a,{to:"/docs/live/live_area.html"},{default:l(()=>[s("直播分区")]),_:1})])]),q,g])]),y])}const j=e(i,[["render",_],["__file","manage.html.vue"]]);export{j as default}; diff --git a/assets/manage.html-eebfa53f.js b/assets/manage.html-eebfa53f.js new file mode 100644 index 0000000000..8c63d0993f --- /dev/null +++ b/assets/manage.html-eebfa53f.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-6acf15ec","path":"/docs/live/manage.html","title":"直播间管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"开通直播间","slug":"开通直播间","link":"#开通直播间","children":[]},{"level":2,"title":"更新直播间标题","slug":"更新直播间标题","link":"#更新直播间标题","children":[]},{"level":2,"title":"开始直播","slug":"开始直播","link":"#开始直播","children":[]},{"level":2,"title":"关闭直播","slug":"关闭直播","link":"#关闭直播","children":[]},{"level":2,"title":"更新直播间公告","slug":"更新直播间公告","link":"#更新直播间公告","children":[]},{"level":2,"title":"编辑直播间标签","slug":"编辑直播间标签","link":"#编辑直播间标签","children":[]}],"git":{},"filePathRelative":"docs/live/manage.md"}');export{l as data}; diff --git a/assets/medals.html-7443ffc7.js b/assets/medals.html-7443ffc7.js new file mode 100644 index 0000000000..eeff36f592 --- /dev/null +++ b/assets/medals.html-7443ffc7.js @@ -0,0 +1,712 @@ +import{_ as p,r as o,o as e,c as l,g as r,a as n,b as s,d as c,w as u,e as a}from"./app-3168cb19.js";const i={},k=n("h1",{id:"所有粉丝勋章",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#所有粉丝勋章","aria-hidden":"true"},"#"),s(" 所有粉丝勋章")],-1),d=n("h2",{id:"指定用户的所有粉丝勋章信息",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#指定用户的所有粉丝勋章信息","aria-hidden":"true"},"#"),s(" 指定用户的所有粉丝勋章信息")],-1),q=n("blockquote",null,[n("p",null,"https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall")],-1),v=n("p",null,[n("em",null,"请求方法: GET")],-1),m=n("p",null,"认证方式: Cookie (SESSDATA)",-1),b=a("

    URL参数:

    参数名类型内容必要性备注
    target_idnum目标 mid必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体失败时不存在

    data 对象:

    字段类型内容备注
    listarray勋章列表
    countnum勋章数
    close_space_medalnum关闭空间粉丝勋章显示?0: 否
    only_show_wearingnum只显示当前佩戴的?0: 否
    namestr目标用户名
    iconstr目标用户头像 URL
    uidnum目标用户 mid
    levelnum目标用户等级

    data 对象中 list 数组中的对象:

    ",8),_=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),y=n("tr",null,[n("td",null,"medal_info"),n("td",null,"obj"),n("td",null,"勋章信息"),n("td")],-1),g=n("tr",null,[n("td",null,"target_name"),n("td",null,"str"),n("td",null,"主播名称"),n("td")],-1),h=n("tr",null,[n("td",null,"target_icon"),n("td",null,"str"),n("td",null,"主播头像 URL"),n("td")],-1),f=n("tr",null,[n("td",null,"link"),n("td",null,"str"),n("td",null,"主播主页 URL"),n("td")],-1),F=n("tr",null,[n("td",null,"live_status"),n("td",null,"num"),n("td",null,"直播状态"),n("td",null,[s("0: 未直播"),n("br"),s("1: 正在直播"),n("br"),s("2: 轮播中")])],-1),x=n("td",null,"offical",-1),A=n("td",null,"num",-1),w=n("td",null,"主播认证类型",-1),j=n("tr",null,[n("td",null,"uinfo_medal"),n("td",null,"str"),n("td",null,"用户勋章信息"),n("td")],-1),C=a(`

    list 数组中的对象中的 medal_info 对象:

    字段类型内容备注
    target_idnum主播 mid
    levelnum勋章等级
    medal_namestr勋章名称
    medal_color_startnum勋章开始颜色十进制(自行转换为16进制)
    medal_color_endnum勋章结束颜色同上
    medal_color_bordernum勋章边框颜色同上
    guard_levelnum守护等级?
    wearing_statusnum佩戴状态0: 未佩戴
    1: 佩戴中
    medal_idnum勋章 ID
    intimacynum当前亲密度
    next_intimacynum下一等级所需亲密度
    today_feednum今日已获得亲密度
    day_limitnum亲密度每日上限?
    guard_iconstr守护徽章图标 URL?
    honor_iconstr荣誉徽章图标 URL?

    list 数组中的对象中的 uinfo_medal 对象:

    字段类型内容备注
    namestr勋章名称
    levelnum勋章等级
    color_startnum勋章开始颜色十进制(自行转换为16进制)
    color_endnum勋章结束颜色同上
    color_bordernum勋章边框颜色同上
    colornum勋章文本色?同上
    idnum勋章 ID
    typnum勋章类型?
    is_lightnum勋章亮色?
    ruidnum主播 mid
    guard_levelnum守护等级?
    scorenum勋章分数?
    guard_iconstr守护徽章图标 URL?
    honor_iconstr荣誉徽章图标 URL?
    v2_medal_color_startstr勋章开始颜色16进制
    v2_medal_color_endstr勋章结束颜色同上
    v2_medal_color_borderstr勋章边框颜色同上
    v2_medal_color_textstr勋章文本色同上
    v2_medal_color_levelstr勋章等级颜色同上
    user_receive_countnum勋章已获得数量?

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall' \\
    +--url-query 'target_id=293793435' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "medal_info": {
    +          "target_id": 178429408,
    +          "level": 3,
    +          "medal_name": "滑稽果",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 1,
    +          "medal_id": 113190,
    +          "intimacy": 248,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "老弟一号",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg",
    +        "link": "https://space.bilibili.com/178429408",
    +        "live_status": 2,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "滑稽果",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 113190,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 178429408,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 15858903,
    +          "level": 9,
    +          "medal_name": "二技猿",
    +          "medal_color_start": 9272486,
    +          "medal_color_end": 9272486,
    +          "medal_color_border": 9272486,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 159670,
    +          "intimacy": 168,
    +          "next_intimacy": 1900,
    +          "today_feed": 0,
    +          "day_limit": 3000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "暮光小猿wzt",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/4113913241f83b03301c316fec6e4c3923bef64e.jpg",
    +        "link": "https://space.bilibili.com/15858903",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "二技猿",
    +          "level": 9,
    +          "color_start": 9272486,
    +          "color_end": 9272486,
    +          "color_border": 9272486,
    +          "color": 0,
    +          "id": 159670,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 15858903,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#596FE099",
    +          "v2_medal_color_end": "#596FE099",
    +          "v2_medal_color_border": "#596FE099",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 24022863,
    +          "level": 7,
    +          "medal_name": "粉丝团",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 233401,
    +          "intimacy": 1499,
    +          "next_intimacy": 1600,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "黄禄轩电脑专用账号",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/a70ec7d2a3822980a915ef4b30371af0cbc79132.jpg",
    +        "link": "https://space.bilibili.com/24022863",
    +        "live_status": 2,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "粉丝团",
    +          "level": 7,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 233401,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 24022863,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 1347373376,
    +          "level": 6,
    +          "medal_name": "Geek范",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 658512,
    +          "intimacy": 999,
    +          "next_intimacy": 1500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "GeekLogic",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/fc4ba4087efa80dce11dfdd1c2bc07d84fb603b9.jpg",
    +        "link": "https://space.bilibili.com/1347373376",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "Geek范",
    +          "level": 6,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 658512,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 1347373376,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 451664,
    +          "level": 5,
    +          "medal_name": "粉丝团",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 408689,
    +          "intimacy": 799,
    +          "next_intimacy": 1000,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "刘师兄_liujun",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/90665d1613cc5501a3f7bbc79b5dc83bcc30667d.jpg",
    +        "link": "https://space.bilibili.com/451664",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "粉丝团",
    +          "level": 5,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 408689,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 451664,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 89240844,
    +          "level": 5,
    +          "medal_name": "六零",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 306526,
    +          "intimacy": 799,
    +          "next_intimacy": 1000,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "A60_OnE",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/483513f7b0533d666fdf7eff96a70b69992056fd.jpg",
    +        "link": "https://space.bilibili.com/89240844",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "六零",
    +          "level": 5,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 306526,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 89240844,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 1850091,
    +          "level": 5,
    +          "medal_name": "観測者",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 118910,
    +          "intimacy": 98,
    +          "next_intimacy": 1000,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "Jannchie见齐",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/983034448f81f45f05956d0455a86fe0639d6a36.jpg",
    +        "link": "https://space.bilibili.com/1850091",
    +        "live_status": 2,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "観測者",
    +          "level": 5,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 118910,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 1850091,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 4911405,
    +          "level": 4,
    +          "medal_name": "毛狐狸",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 18887,
    +          "intimacy": 658,
    +          "next_intimacy": 700,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "粉毛变态老狐狸",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/5924e9201ac87066e76534472303b636a9961647.jpg",
    +        "link": "https://space.bilibili.com/4911405",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "毛狐狸",
    +          "level": 4,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 18887,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 4911405,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 130914376,
    +          "level": 3,
    +          "medal_name": "江草",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 166326,
    +          "intimacy": 463,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "江灵夏草",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/63eb615514fddbc6024a34ddcacfb0bc6103d019.jpg",
    +        "link": "https://space.bilibili.com/130914376",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "江草",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 166326,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 130914376,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 316568752,
    +          "level": 3,
    +          "medal_name": "SEAL",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 312420,
    +          "intimacy": 428,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "马督工",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/1c56737dfc0deffffc31c78e0cefb0c3ecf7e000.jpg",
    +        "link": "https://space.bilibili.com/316568752",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "SEAL",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 312420,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 316568752,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 633003,
    +          "level": 3,
    +          "medal_name": "器材党",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 57027,
    +          "intimacy": 198,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "和光Channel",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/c34413202f3f4ab6c7955a2c9ca5a9ac8e86d8c2.jpg",
    +        "link": "https://space.bilibili.com/633003",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "器材党",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 57027,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 633003,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 5760446,
    +          "level": 2,
    +          "medal_name": "花泪",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 32283,
    +          "intimacy": 298,
    +          "next_intimacy": 300,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "花儿不哭",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/4f220d57ca877167f3efdc60e40d0cb53ca58b72.jpg",
    +        "link": "https://space.bilibili.com/5760446",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "花泪",
    +          "level": 2,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 32283,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 5760446,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 3644545,
    +          "level": 2,
    +          "medal_name": "东方狗",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 249059,
    +          "intimacy": 98,
    +          "next_intimacy": 300,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "白倉カナ",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/ae839f221a5812683fe0a3967f4a612dd65a05d2.jpg",
    +        "link": "https://space.bilibili.com/3644545",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "东方狗",
    +          "level": 2,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 249059,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 3644545,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 614801,
    +          "level": 1,
    +          "medal_name": "神油",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 627,
    +          "intimacy": 119,
    +          "next_intimacy": 201,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "神游八方",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/98f8e0f609ff2403cc086f7254f388336b6f5366.jpg",
    +        "link": "https://space.bilibili.com/614801",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "神油",
    +          "level": 1,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 627,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 614801,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 12246,
    +          "level": 1,
    +          "medal_name": "纯色派",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 5171,
    +          "intimacy": 99,
    +          "next_intimacy": 201,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "囧仙",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/b7ee967282a33a59908218df5b240b45f51afda8.jpg",
    +        "link": "https://space.bilibili.com/12246",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "纯色派",
    +          "level": 1,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 5171,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 12246,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      }
    +    ],
    +    "count": 15,
    +    "close_space_medal": 0,
    +    "only_show_wearing": 0,
    +    "name": "社会易姐QwQ",
    +    "icon": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +    "uid": 645769214,
    +    "level": 6
    +  }
    +}
    +
    `,7);function B(L,E){const t=o("RouterLink");return e(),l("div",null,[k,d,q,v,m,r(`{ + "gh": [425] +}`),b,n("table",null,[_,n("tbody",null,[y,g,h,f,F,n("tr",null,[x,A,w,n("td",null,[s("参见 "),c(t,{to:"/docs/user/offical_role.html"},{default:u(()=>[s("用户认证类型一览")]),_:1})])]),j])]),C])}const S=p(i,[["render",B],["__file","medals.html.vue"]]);export{S as default}; diff --git a/assets/medals.html-d0d88f47.js b/assets/medals.html-d0d88f47.js new file mode 100644 index 0000000000..9fd33a72b3 --- /dev/null +++ b/assets/medals.html-d0d88f47.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-1f4b69b4","path":"/docs/user/medals.html","title":"所有粉丝勋章","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"指定用户的所有粉丝勋章信息","slug":"指定用户的所有粉丝勋章信息","link":"#指定用户的所有粉丝勋章信息","children":[]}],"git":{},"filePathRelative":"docs/user/medals.md"}');export{e as data}; diff --git a/assets/member_center.html-6f18a7bd.js b/assets/member_center.html-6f18a7bd.js new file mode 100644 index 0000000000..7c13716e64 --- /dev/null +++ b/assets/member_center.html-6f18a7bd.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-586ee8e0","path":"/docs/login/member_center.html","title":"个人中心","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取我的信息","slug":"获取我的信息","link":"#获取我的信息","children":[]},{"level":2,"title":"查询每日奖励状态","slug":"查询每日奖励状态","link":"#查询每日奖励状态","children":[]},{"level":2,"title":"查询每日投币获得经验数","slug":"查询每日投币获得经验数","link":"#查询每日投币获得经验数","children":[]},{"level":2,"title":"查询大会员状态","slug":"查询大会员状态","link":"#查询大会员状态","children":[]},{"level":2,"title":"查询账号安全情况","slug":"查询账号安全情况","link":"#查询账号安全情况","children":[]},{"level":2,"title":"查询账号实名认证状态","slug":"查询账号实名认证状态","link":"#查询账号实名认证状态","children":[]},{"level":2,"title":"查询实名认证详细信息","slug":"查询实名认证详细信息","link":"#查询实名认证详细信息","children":[]},{"level":2,"title":"查询硬币变化情况","slug":"查询硬币变化情况","link":"#查询硬币变化情况","children":[]},{"level":2,"title":"修改个人签名","slug":"修改个人签名","link":"#修改个人签名","children":[]},{"level":2,"title":"最近一周的经验记录","slug":"最近一周的经验记录","link":"#最近一周的经验记录","children":[]},{"level":2,"title":"最近一周的节操记录","slug":"最近一周的节操记录","link":"#最近一周的节操记录","children":[]}],"git":{},"filePathRelative":"docs/login/member_center.md"}');export{l as data}; diff --git a/assets/member_center.html-df93d06f.js b/assets/member_center.html-df93d06f.js new file mode 100644 index 0000000000..92d125ac73 --- /dev/null +++ b/assets/member_center.html-df93d06f.js @@ -0,0 +1,272 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},p=a(`

    个人中心

    获取我的信息

    https://api.bilibili.com/x/member/web/account

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum我的mid
    unamestr我的昵称
    useridstr我的用户名
    signstr我的签名
    birthdaystr我的生日YYYY-MM-DD
    sexstr我的性别男 女 保密
    nick_freebool是否未设置昵称false:设置过昵称
    true:未设置昵称
    rankstr我的会员等级

    示例:

    curl 'https://api.bilibili.com/x/member/web/account' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    loginbool每日登录false:未完成
    true:已完成
    完成奖励5经验
    watchbool每日观看false:未完成
    true:已完成
    完成奖励5经验
    coinsnum每日投币所奖励的经验上限为50
    注:该值更新存在延迟
    另外一个专门API
    sharebool每日分享false:未完成
    true:已完成
    完成奖励5经验
    emailbool绑定邮箱false:未完成
    true:已完成
    首次完成奖励20经验
    telbool绑定手机号false:未完成
    true:已完成
    首次完成奖励100经验
    safe_questionbool设置密保问题false:未完成
    true:已完成
    首次完成奖励30经验
    identify_cardbool实名认证false:未完成
    true:已完成
    首次完成奖励50经验

    示例:

    curl 'https://api.bilibili.com/x/member/web/exp/reward' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    numbernum每日投币所奖励的经验上限为50<br

    示例:

    curl 'https://www.bilibili.com/plus/account/exp.php' \\
    +-b 'SESSDATA=xxx;DedeUserID=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "number": 20
    +}
    +

    查询大会员状态

    https://api.bilibili.com/x/vip/web/user/info

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum我的mid
    vip_typenum大会员类型0:无
    1:月度
    2:年度
    vip_statusnum大会员状态1:正常
    2:由于IP地址更换过于频繁,服务被冻结
    3:你的大会员账号风险过高,大会员功能已被锁定
    vip_due_datenum大会员到期时间时间戳 毫秒
    vip_pay_typenum是否已购买大会员0:未购买
    1:已购买
    theme_typenum0作用尚不明确

    示例:

    curl 'https://api.bilibili.com/x/vip/web/user/info' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    account_infoobj账号绑定信息
    account_safeobj密码安全信息
    account_snsobj互联登录绑定信息
    account_otherobj

    data中的account_info对象:

    字段类型内容备注
    hide_telstr绑定的手机号星号隐藏部分信息
    hide_mailstr绑定的邮箱星号隐藏部分信息
    bind_telbool是否绑定手机号false:未绑定
    true:已绑定
    bind_mailbool是否绑定邮箱false:未绑定
    true:已绑定
    tel_verifybool是否验证手机号false:未验证
    true:已验证
    mail_verifybool是否验证邮箱false:未验证
    true:已验证
    unneeded_checkbool是否未设置密码false:已设置
    true:未设置
    realname_certifiedbool是否实名认证false:未认证
    true:已认证

    data中的account_safe对象:

    字段类型内容备注
    Scorenum账号安全等级0-100
    已弃用?
    score_newnum新版账号安全等级0-100
    pwd_levelnum当前密码强度等级1:弱
    2:中
    3:强
    securitybool当前密码是否安全false:不安全
    true:安全

    data中的account_sns对象:

    字段类型内容备注
    weibo_bindnum是否绑定微博0:未绑定
    1:已绑定
    qq_bindnum是否绑定qq0:未绑定
    1:已绑定
    wechat_bindnum是否绑定微信0:未绑定
    1:已绑定

    data中的account_other对象:

    字段类型内容备注
    skipVerifyboolfalse作用尚不明确

    示例:

    curl 'https://passport.bilibili.com/web/site/user/info' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    statusnum实名认证状态0:未认证
    1:已认证

    示例:

    当前状态为已认证

    curl 'https://api.bilibili.com/x/member/realname/status' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "status": 1
    +    }
    +}
    +

    查询实名认证详细信息

    https://api.bilibili.com/x/member/realname/apply/status

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    statusnum认证状态1:已认证
    3:未认证
    remarkstr驳回信息默认为空
    realnamestr实名姓名星号隐藏完全信息
    cardstr证件号码星号隐藏部分信息
    card_typenum证件类型代码0:身份证
    2:港澳居民来往内地通行证
    3:台湾居民来往大陆通行证
    4:护照(中国签发)
    5:外国人永久居留证
    6:其他国家或地区身份证明
    curl 'https://api.bilibili.com/x/member/realname/apply/status' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "status": 1,
    +        "remark": "",
    +        "realname": "***",
    +        "card": "6****************7",
    +        "card_type": 0
    +    }
    +}
    +

    查询硬币变化情况

    https://api.bilibili.com/x/member/web/coin/log

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    仅能查询最近一周的情况

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    listarray变化记录条目列表
    countnum变化记录条目数

    data中的list数组:

    类型内容备注
    0obj变化记录条目1
    nobj变化记录条目(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    timestr变化时间YYYY-MM-DD HH:MM:SS
    deltanum变化量正值为收入,负值为支出
    reasonstr变化说明

    示例:

    curl 'https://api.bilibili.com/x/member/web/coin/log' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    user_signstr要设置的签名内容非必要删除签名留空或省去即可
    最多支持70个字符
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    40015:签名包含敏感词
    40021:签名不能包含表情图片
    40022:签名过长
    messagestr错误信息默认为0
    ttlnum1

    示例:

    更新个人标签为高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    最近一周的经验记录

    https://api.bilibili.com/x/member/web/exp/log

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    jsonpstr回调函数名?非必要默认 jsonp
    web_locationstr网页位置?非必要默认 333.33

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    listarray经验记录条目列表
    countnum经验记录条目数

    data中的list数组:

    类型内容备注
    0obj记录1
    ……obj…………
    nobj记录(n+1)

    list数组中的对象:

    字段类型内容备注
    deltanum经验值
    timestr记录时间格式为 yyyy-MM-dd HH:mm:ss
    reasonstr记录原因

    示例:

    curl -G "https://api.bilibili.com/x/member/web/exp/log" \\
    +-b "SESSDATA=xxx
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "delta": 5,
    +        "time": "2024-07-27 15:08:23",
    +        "reason": "分享视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-27 08:28:21",
    +        "reason": "登录奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-27 08:28:21",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-26 12:44:19",
    +        "reason": "登录奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-26 12:44:19",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 20,
    +        "time": "2024-07-25 06:58:49",
    +        "reason": "视频投币奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-25 06:58:30",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-25 06:58:30",
    +        "reason": "登录奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-23 18:47:48",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-23 18:47:48",
    +        "reason": "登录奖励"
    +      }
    +    ],
    +    "count": 10
    +  }
    +}
    +

    最近一周的节操记录

    https://api.bilibili.com/x/member/web/moral/log

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    jsonpstr回调函数名?非必要默认 jsonp
    web_locationstr网页位置?非必要默认 333.33

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    moralnum节操值
    listarray记录条目列表
    countnum记录条目数

    data中的list数组:

    类型内容备注
    0obj记录1
    ……obj…………
    nobj记录(n+1)

    list数组中的对象:

    表现良好暂时没有记录, 欢迎封号斗罗前来补充

    示例:

    curl -G "https://api.bilibili.com/x/member/web/moral/log" \\
    +-b "SESSDATA=xxx
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "moral": 70,
    +    "list": [],
    +    "count": 0
    +  }
    +}
    +
    `,173),o=[p];function d(r,l){return s(),n("div",null,o)}const i=t(e,[["render",d],["__file","member_center.html.vue"]]);export{i as default}; diff --git a/assets/message_stream.html-748c2caf.js b/assets/message_stream.html-748c2caf.js new file mode 100644 index 0000000000..d4b2817605 --- /dev/null +++ b/assets/message_stream.html-748c2caf.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-1c439f0e","path":"/docs/live/message_stream.html","title":"直播间信息流","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取信息流认证秘钥","slug":"获取信息流认证秘钥","link":"#获取信息流认证秘钥","children":[]},{"level":2,"title":"数据包格式","slug":"数据包格式","link":"#数据包格式","children":[]},{"level":2,"title":"数据包","slug":"数据包","link":"#数据包","children":[{"level":3,"title":"认证包","slug":"认证包","link":"#认证包","children":[]},{"level":3,"title":"认证包回复","slug":"认证包回复","link":"#认证包回复","children":[]},{"level":3,"title":"心跳包","slug":"心跳包","link":"#心跳包","children":[]},{"level":3,"title":"心跳包回复(人气值)","slug":"心跳包回复-人气值","link":"#心跳包回复-人气值","children":[]},{"level":3,"title":"普通包","slug":"普通包","link":"#普通包","children":[]}]}],"git":{},"filePathRelative":"docs/live/message_stream.md"}');export{l as data}; diff --git a/assets/message_stream.html-de3e2486.js b/assets/message_stream.html-de3e2486.js new file mode 100644 index 0000000000..302d5cc357 --- /dev/null +++ b/assets/message_stream.html-de3e2486.js @@ -0,0 +1,1278 @@ +import{_ as t,o as a,c as p,g as s,e as n}from"./app-3168cb19.js";const e={},o=n(`

    直播间信息流

    获取信息流认证秘钥

    https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    idnum直播间真实id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    60009:分区不存在
    (其他错误码有待补充)
    messagestr错误信息默认为空
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    groupstrlive
    business_idnum0
    refresh_row_factornum0.125
    refresh_ratenum100
    max_delaynum5000
    tokenstr认证秘钥
    host_listarray信息流服务器节点列表

    host_list数组中的对象:

    字段类型内容备注
    hoststr服务器域名
    portnumtcp端口
    wss_portnumwss端口
    ws_portnumws端口

    示例:

    获得直播间22824550的信息流认证秘钥

    curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \\
    +--data-urlencode 'id=22824550'
    +
    查看响应示例:
    {
    +  "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
    +      }
    +    ]
    +  }
    +}
    +

    注:最终URI格式为: host+对应port+"/sub",例如以上示例中一个可行的ws连接URI应当为tx-sh-live-comet-02.chat.bilibili.com:2244/sub

    数据包格式

    数据包为MQ(Message Queue,消息队列)使用Websocket或TCP连接作为通道,具体格式为头部数据+正文数据

    操作流程:

    发送认证包->接收认证包回应->接收普通包&(每30秒发送心跳包->接收心跳回应)

    头部格式:

    偏移量长度类型含义
    04uint32封包总大小(头部大小+正文大小)
    42uint16头部大小(一般为0x0010,16字节)
    62uint16协议版本:
    0普通包正文不使用压缩
    1心跳及认证包正文不使用压缩
    2普通包正文使用zlib压缩
    3普通包正文使用brotli压缩,解压为一个带头部的协议0普通包
    84uint32操作码(封包类型)
    124uint32sequence,每次发包时向上递增

    操作码:

    代码含义
    2心跳包
    3心跳包回复(人气值)
    5普通包(命令)
    7认证包
    8认证包回复

    普通包可能包含多条命令,每个命令有一个头部,指示该条命令的长度等信息

    数据包

    认证包

    方式:(上行)

    连接成功后5秒内发送,否则强制断开连接

    正文:

    json格式

    字段类型内容必要性备注
    uidnum用户mid非必要uid为0即为游客登录
    roomidnum加入房间的id必要直播间真实id
    protovernum协议版本非必要3
    platformstr平台标识非必要"web"
    typenum2非必要
    keystr认证秘钥非必要

    示例:

    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格式

    字段类型内容备注
    codenum返回值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格式

    字段类型内容备注
    cmdstr"DANMU_MSG"如果是弹幕消息,内容则是"DANMU_MSG"
    infoarray这条弹幕的用户、内容与粉丝勋章等各种信息待调查其中每个数据的含义
    `,73),d=n(`
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"DM_INTERACTION"如果是进入直播间或关注消息,内容则是"INTERACT_WORD"
    dataobj进入直播间的用户的信息

    data字段

    字段类型内容备注
    idnum事件ID
    statusnum状态
    typenum事件类型
    datastr事件数据

    连续发送弹幕事件的data.data字段

    字段类型内容备注
    comboarray连续发送弹幕事件信息
    merge_intervalnum合并弹幕时间间隔
    card_appear_intervalnum弹窗出现时间间隔
    send_intervalnum发送时间间隔

    连续发送弹幕事件的data.data.combo字段

    字段类型内容备注
    idnum时间ID
    statusnum状态
    contentstr重复的弹幕内容
    cntnum重复数量
    guidestr标题词"他们都在说:"
    left_durationnum左移时长
    fade_durationnum淡化时长
    查看消息示例:
    {
    +    '': 6785480089600,
    +    'status': 4,
    +    'type': 102,
    +    'data': '{
    +        "combo":[{
    +            "id":6785480089600,
    +            "status":4,
    +            "content":"晚安",
    +            "cnt":3,
    +            "guide":"他们都在说:",
    +            "left_duration":20000,
    +            "fade_duration":60000}],
    +        "merge_interval":1000,
    +        "card_appear_interval":1000,
    +        "send_interval":1000}'
    +}
    +

    进场或关注消息

    有用户进入直播间或关注主播时触发

    json格式

    字段类型内容备注
    cmdstr"INTERACT_WORD"如果是进入直播间或关注消息,内容则是"INTERACT_WORD"
    dataobj进入直播间的用户的信息

    data字段

    字段类型内容备注
    contributionobj待调查
    dmscorenum待调查
    fans_medalobj粉丝勋章
    identitiesnum待调查
    is_spreadnum待调查
    msg_typenum1为进场,2为关注
    roomidnum房间号
    is_spreadnum待调查
    is_spreadnum待调查
    scorenum待调查
    spread_descstr待调查
    spread_infostr待调查
    tail_iconnum待调查
    timestampnum时间戳
    trigger_timenum触发时间
    uidnum用户ID
    unamestr用户名称
    uname_colorstr用户名称颜色
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"GUARD_BUY"用户购买舰长 / 提督 / 总督,内容则是"GUARD_BUY"
    dataobj上舰人uid & 昵称、上舰信息

    data字段

    字段类型内容备注
    uidnum用户ID
    usernamestr用户名称
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    numnum数量
    pricenum待调查
    gift_idnum礼物id
    gift_namestr礼物名称
    start_timenum待调查
    end_timenum待调查
    查看消息示例:
    {
    +  "cmd": "GUARD_BUY",
    +  "data": {
    +    "uid": 14225357,
    +    "username": "妙妙喵喵妙妙喵O_O",
    +    "guard_level": 3,
    +    "num": 1,
    +    "price": 198000,
    +    "gift_id": 10003,
    +    "gift_name": "舰长",
    +    "start_time": 1677069316,
    +    "end_time": 1677069316
    +  }
    +}
    +

    用户庆祝消息

    json格式

    字段类型内容备注
    cmdstr"USER_TOAST_MSG"用户购买舰长 / 提督 / 总督后的庆祝消息,内容包含用户陪伴天数
    dataobj上舰人uid & 昵称、上舰信息

    data字段

    字段类型内容备注
    anchor_showbool是否显示
    colorstr颜色
    dmscorenum待调查
    effect_idnum待调查
    face_effect_idnum待调查
    gift_idnum礼物id
    group_namestr待调查
    group_op_typenum待调查
    group_role_namestr待调查
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    is_groupnum待调查
    is_shownum待调查
    numnum上舰个数
    op_typenum待调查
    payflow_idstr待调查
    pricenum价格
    role_namestr身份名称
    room_effect_idnum待调查
    room_group_effect_idnum待调查
    start_timenum待调查
    svga_blocknum待调查
    target_guard_countstr庆祝消息正文
    toast_msgnum待调查
    uidnum上舰人UID
    unitstr购买身份时间单位
    user_showbool待调查
    usernamestr上舰人用户名
    查看消息示例:
    {
    +    'anchor_show': True,
    +    'color': '#00D1F1',
    +    'dmscore': 90,
    +    'effect_id': 397,
    +    'end_time': 1702580687,
    +    'face_effect_id': 44,
    +    'gift_id': 10003,
    +    'group_name': '',
    +    'group_op_type': 0,
    +    'group_role_name': '',
    +    'guard_level': 3,
    +    'is_group': 0,
    +    'is_show': 0,
    +    'num': 1,
    +    'op_type': 1,
    +    'payflow_id':'2312150304155852173446521',
    +    'price': 138000,
    +    'role_name': '舰长',
    +    'room_effect_id': 590,
    +    'room_group_effect_id': 1337,
    +    'start_time': 1702580687,
    +    'svga_block': 0,
    +    'target_guard_count': 146,
    +    'toast_msg': '<%无光之日%> 在主播Mia米娅-的直播间开通了舰长,今天是TA陪伴主播的第1天',
    +    'uid': 79667344,
    +    'unit': '月',
    +    'user_show': True,
    +    'username': '无光之日'}
    +

    醒目留言

    json格式

    字段类型内容备注
    cmdstr"SUPER_CHAT_MESSAGE"用户发送醒目留言,内容则是"SUPER_CHAT_MESSAGE"
    dataobj醒目留言内容、发送者信息等
    roomidnum直播间房间号(非短号

    data字段

    字段类型内容备注
    background_bottom_colorstr待调查
    background_colorstr待调查
    background_color_endstr待调查
    background_color_startstr待调查
    background_iconstr待调查
    background_imagestr待调查
    background_price_colorstr待调查
    color_pointnum待调查
    dmscorenum待调查
    end_timenum待调查
    giftobj礼物信息
    idnum待调查
    is_rankednum待调查
    is_send_auditnum待调查
    medal_infoobjSC发送用户佩戴的粉丝牌信息
    messagestrsc内容
    message_font_colorstrSC文本颜色
    message_transstr机翻sc内容
    pricenumsc金额
    ratenum待调查
    start_timenum待调查
    timenumsc持续时间
    tokennum待调查
    trans_marknum待调查
    tsnum待调查
    uidnum发送用户uid
    user_infoobj发送用户信息

    gift字段

    字段类型内容备注
    gift_idnum礼物id
    gift_namestr礼物名称一般均为"醒目留言"
    numnum数量

    medal_info字段

    字段类型内容备注
    anchor_roomidnum房间号包含短号
    anchor_unamestr主播昵称
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    icon_idnum待调查
    is_lightednum待调查
    medal_colorstr待调查
    medal_color_bordernum待调查
    medal_color_endnum待调查
    medal_color_startnum待调查
    medal_levelnum粉丝牌等级
    medal_namestr粉丝牌名称
    specialstr待调查
    target_idnum粉丝牌对应的主播uid

    user_info字段

    字段类型内容备注
    facenum用户头像
    face_framenum头像边框
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    is_main_vipnum待调查
    is_svipnum待调查
    is_vipnum待调查
    level_colorstr待调查
    managernum待调查
    name_colorstr待调查
    titlestr待调查
    unamestr用户名称
    user_levelnum待调查
    查看消息示例:
    {
    +  "cmd": "SUPER_CHAT_MESSAGE",
    +  "data": {
    +    "background_bottom_color": "#2A60B2",
    +    "background_color": "#EDF5FF",
    +    "background_color_end": "#405D85",
    +    "background_color_start": "#3171D2",
    +    "background_icon": "",
    +    "background_image": "https://i0.hdslb.com/bfs/live/a712efa5c6ebc67bafbe8352d3e74b820a00c13e.png",
    +    "background_price_color": "#7497CD",
    +    "color_point": 0.7,
    +    "dmscore": 120,
    +    "end_time": 1677069095,
    +    "gift": {
    +      "gift_id": 12000,
    +      "gift_name": "醒目留言",
    +      "num": 1
    +    },
    +    "id": 6522809,
    +    "is_ranked": 1,
    +    "is_send_audit": 0,
    +    "medal_info": {
    +      "anchor_roomid": 732,
    +      "anchor_uname": "Asaki大人",
    +      "guard_level": 3,
    +      "icon_id": 0,
    +      "is_lighted": 1,
    +      "medal_color": "#1a544b",
    +      "medal_color_border": 6809855,
    +      "medal_color_end": 5414290,
    +      "medal_color_start": 1725515,
    +      "medal_level": 21,
    +      "medal_name": "ASAKI",
    +      "special": "",
    +      "target_id": 194484313
    +    },
    +    "message": "猪播完美预测自己第一个死,这就是鹅鸭杀高玩吗",
    +    "message_font_color": "#A3F6FF",
    +    "message_trans": "",
    +    "price": 30,
    +    "rate": 1000,
    +    "start_time": 1677069035,
    +    "time": 60,
    +    "token": "7BED5681",
    +    "trans_mark": 0,
    +    "ts": 1677069035,
    +    "uid": 294094150,
    +    "user_info": {
    +      "face": "https://i1.hdslb.com/bfs/face/7a11b48e0a3055e220fa8b4c7d938cd4bcac2577.jpg",
    +      "face_frame": "https://i0.hdslb.com/bfs/live/80f732943cc3367029df65e267960d56736a82ee.png",
    +      "guard_level": 3,
    +      "is_main_vip": 1,
    +      "is_svip": 0,
    +      "is_vip": 0,
    +      "level_color": "#969696",
    +      "manager": 0,
    +      "name_color": "#00D1F1",
    +      "title": "0",
    +      "uname": "界原虚",
    +      "user_level": 6
    +    }
    +  },
    +  "roomid": 6154037
    +}
    +

    送礼

    json格式

    字段类型内容备注
    cmdstr"SEND_GIFT"投喂礼物等,内容则是"SEND_GIFT"
    dataobj礼物投喂人、礼物信息、礼物数量等

    data字段

    字段类型内容备注
    actionstr礼物操作,一般为"投喂"
    batch_combo_idstr待调查有时为空字符串
    batch_combo_sendobj待调查有时为null
    beatIdstr待调查
    biz_sourcestr待调查
    blind_gift待调查
    broadcast_idnum待调查
    coin_typestr待调查
    combo_resources_idnum待调查
    combo_send待调查
    comber_stay_timenum待调查
    combo_total_coinnum待调查
    crit_probnum待调查
    demarcationnum待调查
    discount_pricenum待调查
    dmscorenum待调查
    drawnum待调查
    effectnum待调查
    effect_blocknum待调查
    facestr礼物投喂者的头像URL
    face_effect_idnum待调查
    face_effect_typenum待调查
    float_sc_resource_idnum待调查
    giftIdnum礼物ID
    giftNamestr礼物名称
    giftTypenum待调查
    goldnumber待调查
    guard_levelnum待调查
    is_firstbool待调查
    is_join_receiverbool待调查
    is_namingbool待调查
    is_special_batchnum待调查
    magnificationnum待调查
    medal_infoobj礼物投喂者粉丝奖牌信息
    name_colorstr待调查
    numnumber该次投喂的礼物数量
    original_gift_namestr待调查
    pricenum待调查
    rcostnum待调查
    receive_user_infoobj礼物接收者信息,一般是主播
    remainnum待调查
    rndnum礼物发送时的时间戳,以及后面9位未知数字
    send_master待调查
    silvernum待调查
    supernum待调查
    super_batch_gift_numnum待调查
    super_gift_numnum待调查
    svga_blocknum待调查
    switchbool待调查
    tag_imagestr待调查
    tidnum礼物发送时的时间戳,以及后面9位未知数字似乎与rnd字段相同
    timestampnum礼物发送时的时间戳
    top_list待调查
    total_coinnum待调查
    uidnum礼物投喂者的UID
    unamestr礼物投喂者的名称

    batch_combo_send字段

    字段类型内容备注
    actionstr礼物操作,一般为"投喂"
    batch_combo_idstr待调查
    batch_combo_numnum待调查
    blind_gift待调查
    gift_idnum待调查
    gift_namestr投喂的礼物名称待调查
    gift_numnum投喂礼物数量待调查
    send_master待调查
    uidnum礼物投喂者的UID
    unamestr礼物投喂者的名称

    medal_info字段

    字段类型内容备注
    anchor_roomidnum待调查
    anchor_unamestr待调查
    guard_levelnum待调查
    icon_idnum待调查
    is_lightednum待调查
    medal_colornum礼物投喂者的粉丝奖牌颜色十六进制颜色值转为了十进制表示
    medal_border_colornum礼物投喂者的粉丝奖牌边框颜色十六进制颜色值的十进制表示
    medal_color_endnum待调查
    medal_color_startnum待调查
    medal_levelnum礼物投喂者的粉丝奖牌等级
    medal_namestr礼物投喂者的粉丝奖牌名称
    specialstr待调查
    target_idnum待调查

    receive_user_info字段

    字段类型内容备注
    uidnum礼物接收者的UID一般为主播的UID
    unamestr礼物接收者的名称一般为主播的名称
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"GIFT_STAR_PROCESS"主播的礼物星球其一点亮之后,则内容为"GIFT_STAR_PROCESS"
    dataobj消息文本

    data字段

    字段类型内容备注
    statusnum待调查
    tipstr点亮礼物星球的消息文本
    查看消息示例:
    {
    +    "cmd": "GIFT_STAR_PROCESS",
    +    "data": {
    +        "status": 1,
    +        "tip": "情书已点亮"
    +    }
    +}
    +

    礼物连击

    json格式

    字段类型内容备注
    cmdstr"COMBO_SEND"
    dataobj礼物投喂者、礼物信息等

    data字段

    字段类型内容备注
    actionstr礼物操作,一般为"投喂"
    batch_combo_idstr待调查
    batch_combo_numnum连击礼物数量
    combo_idstr待调查
    combo_numstr连击礼物数量
    combo_total_coinnum待调查
    dmscorenum待调查
    gift_idnum待调查
    gift_namestr连击礼物的名称
    gift_numnum0
    is_join_receiverbool待调查
    is_namingbool待调查
    is_shownum待调查
    medal_infoobj礼物投喂者的粉丝勋章信息
    name_colorstr待调查
    r_unamestr主播的名称
    receive_user_infoobj主播的UID和名称
    ruidnum主播的UID
    send_master待调查
    total_numnum连击礼物数量
    uidnum礼物投喂者的UID
    unamestr礼物投喂者的名称

    receive_user_info字段

    字段类型内容备注
    uidnumber礼物接收者的UID一般为主播的UID
    unamestring礼物接收者的名称一般为主播的名称
    查看消息示例:
    {
    +    "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"
    +    }
    +}
    +
    `,69),r=n(`

    通知消息

    json格式

    字段类型内容备注
    cmdstr"NOTICE_MSG"通知消息,内容则是"NOTICE_MSG"
    idnum待调查
    fullobj待调查
    halfobj待调查
    sideobj待调查
    roomidnum目标直播间短号
    real_roomidnum目标直播间真实ID
    msg_commonstr显示的消息内容
    msg_selfstr消息内容本身剔除额外文本
    link_relstr通知消息跳转的URL
    msg_typenum待调查
    shield_uidnum待调查
    business_idstr待调查
    scatterobj待调查
    marquee_idstr待调查
    notice_typenum待调查
    查看消息示例:
    {
    +    "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
    +}
    +
    {
    +    "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格式

    字段类型内容备注
    cmdstr"PREPARING"
    roundnum轮播状态:
    1正在轮播
    0未轮播
    roomidnum直播间ID未知是真实ID还是短号
    查看消息示例:
    {
    +    "cmd": "PREPARING",
    +    "round": 1,
    +    "roomid": "8618057"
    +}
    +

    直播开始

    主播信息更新

    json格式

    字段类型内容备注
    cmdstr"ROOM_REAL_TIME_MESSAGE_UPDATE"
    dataobj房间ID、主播粉丝数等

    data字段

    字段类型内容备注
    roomidnum直播间ID未知是真实ID还是短号
    fansnum主播当前粉丝数
    red_noticenum待调查
    fans_clubnum主播粉丝团人数
    查看消息示例:
    {
    +    "cmd": "ROOM_REAL_TIME_MESSAGE_UPDATE",
    +    "data": {
    +        "roomid": 8618057,
    +        "fans": 136,
    +        "red_notice": -1,
    +        "fans_club": 8
    +    }
    +}
    +

    直播间高能榜

    json格式

    字段类型内容备注
    cmdstr"ONLINE_RANK_V2"直播间高能用户数据刷新,内容则是"ONLINE_RANK_V2"
    dataobj直播间高能用户数据

    data字段

    字段类型内容备注
    listarray在直播间高能用户中的用户信息
    rank_typestr待调查

    list数组中的对象

    字段类型内容备注
    uidnum用户UID
    facestr用户头像URL
    scorestr该用户的贡献值
    unamestr用户名称
    ranknum该用户在高能榜中的排名
    guard_levelnum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"ONLINE_RANK_COUNT"直播间高能用户数,内容是"ONLINE_RANK_COUNT"
    dataobj直播间高能用户数量

    data字段

    字段类型内容备注
    countnum直播间高能用户数量
    查看消息示例:
    {
    +    "cmd": "ONLINE_RANK_COUNT",
    +    "data": {
    +        "count": 4
    +    }
    +}
    +

    用户到达直播间高能榜前三名的消息

    json格式

    字段类型内容备注
    cmdstr"ONLINE_RANK_TOP3"
    dataobj消息内容、高能榜排名等

    data字段

    字段类型内容备注
    dmscorenum待调查
    listarray消息内容和高能榜排名

    list数组中的对象

    字段类型内容备注
    msgstr消息内容
    ranknum该用户的高能榜排名
    查看消息示例:
    {
    +    "cmd": "ONLINE_RANK_TOP3",
    +    "data": {
    +        "dmscore": 112,
    +        "list": [
    +            {
    +                "msg": "恭喜 <%你干嘛哈哈哎哟%> 成为高能用户",
    +                "rank": 1
    +            }
    +        ]
    +    }
    +}
    +

    直播间在人气榜的排名改变

    json格式

    字段类型内容备注
    cmdstr"POPULAR_RANK_CHANGED"
    dataobj直播间的人气榜排名信息

    data字段

    字段类型内容备注
    uidnum主播UID
    ranknum人气榜排名
    countdownnum人气榜下轮结算剩余时长
    timestampnum触发时的Unix时间戳
    timestampstr待调查
    查看消息示例:
    {
    +    'cmd': 'POPULAR_RANK_CHANGED',
    +    'data': {
    +        'uid': 780791,
    +        'rank': 36,
    +        'countdown': 1927,
    +        'timestamp': 1702578474,
    +        'cache_key': 'rank_change:91a4e81ba3034ae894d61e432aa13081'
    +            }
    +}
    +

    直播间用户点赞

    json格式

    字段类型内容备注
    cmdstr"LIKE_INFO_V3_CLICK"若直播间被赞,则内容是"LIKE_INFO_V3_CLICK"
    dataobj点赞的用户的信息

    data字段

    字段类型内容备注
    show_areanum待调查
    msg_typenum待调查
    like_iconstr点赞图标的URL
    uidnum点赞的用户的UID
    like_textstr点赞文本
    unamestr点赞的用户的名称
    uname_colorstr点赞的用户的名称颜色
    identitiesarray待调查
    fans_medalobj点赞的用户的粉丝勋章信息
    contribution_infoobj待调查
    dmscorenum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"LIKE_INFO_V3_UPDATE"若直播间点赞数更新,则内容是"LIKE_INFO_V3_UPDATE"
    dataobj直播间点赞数

    data字段

    字段类型内容备注
    click_countnum直播间点赞数
    查看消息示例:
    {
    +    "cmd": "LIKE_INFO_V3_UPDATE",
    +    "data": {
    +        "click_count": 3227
    +    }
    +}
    +

    直播间发红包弹幕

    json格式

    字段类型内容备注
    cmdstr"POPULARITY_RED_POCKET_START"
    dataobj送红包的老板的信息、里面的礼物信息

    data字段

    字段类型内容备注
    lot_idnum发送的红包的ID
    sender_uidnum发送者的UID
    sender_namestr发送者的名称
    sender_facestr发送者的头像的URL
    join_requirementnum待调查
    danmustr用户参与红包时自动发送的弹幕内容
    current_timenum服务器发送数据包的Unix时间戳
    start_timenum可以开始抢红包的Unix时间戳
    end_timenum抢红包的结束时间Unix时间戳
    last_timenum红包的持续时间(秒)start_time - end_time
    remove_timenum待调查
    replace_timenum待调查
    lot_statusnum待调查
    h5_urlstr红包页面的URL
    user_statusnum用户参与状态,但是不知道是哪个用户1已参与
    2未参与
    awardsarray红包内包含的礼物的信息
    lot_config_idnum待调查
    total_pricenum红包总价格
    wait_numnum待调查

    awards数组中的对象

    字段类型内容备注
    gift_idnum礼物ID
    gift_namestr礼物名称
    gift_picstr礼物图标URL
    numnum该礼物的数量
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"POPULARITY_RED_POCKET_NEW"与“直播间发红包弹幕”不同
    那个是发红包的弹幕信息
    这个则和“送礼”的信息相似,但也有前者的一些字段
    dataobj发送者信息和红包(礼物)信息

    data字段

    字段类型内容备注
    lot_idnum发送的红包的ID
    start_timenum开始抢红包的Unix时间戳
    current_timenum服务器发送数据包的Unix时间戳
    wait_numnum待调查
    unamestr发送者的名称
    uidnum发送者的UID
    actionstr礼物操作
    numnum礼物数量
    gift_namestr"红包"
    gift_idnum礼物ID
    pricenum待调查
    name_colorstr发送者的名称的颜色
    medal_infoobj发送者的粉丝勋章信息
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"POPULARITY_RED_POCKET_WINNER_LIST"
    dataobj抢到红包的用户信息、红包内的礼物信息

    data字段

    字段类型内容备注
    lot_idnum该红包的ID
    total_numnum该红包内所有礼物的总数
    winner_infoarray抢到红包的用户的信息
    抢到的礼物ID等
    awardsobj该红包内的礼物信息
    versionnum待调查

    winner_info数组中的数组

    索引类型内容备注
    0num该抢到红包的用户的UID
    1str该抢到红包的用户的名称
    2num待调查
    3num该用户抢到的礼物的ID

    awards字段

    字段类型内容备注
    礼物IDobj礼物信息
    ...obj

    礼物ID 对象

    字段类型内容备注
    award_typenum待调查
    award_namestr该礼物的名称
    award_picstr该礼物的图标URL
    award_big_picstr该礼物的高分辨率图标URL
    award_pricenum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"WATCHED_CHANGE"若直播间看过人数更新,则内容是"WATCHED_CHANGE"
    dataobj直播间看过人数

    data字段

    字段类型内容备注
    numnum
    text_smallstr
    text_largestr
    查看消息示例:
    {
    +    "cmd": "WATCHED_CHANGE",
    +    "data": {
    +        "num": 17903,
    +        "text_small": "1.7万",
    +        "text_large": "1.7万人看过"
    +    }
    +}
    +

    用户进场特效

    json格式

    字段类型内容备注
    cmdstr"ENTRY_EFFECT"有进场特效的用户进入直播间,则内容是"ENTRY_EFFECT"
    dataobj进场用户、进场特效信息

    data字段

    字段类型内容备注
    idnum待调查
    uidnum进场用户的UID
    target_idnum主播的UID?
    mock_effectnum待调查
    facestr进场用户的头像URL
    privilege_typenum待调查
    copy_writingstr进场欢迎文本
    copy_colorstr进场欢迎文本的十六进制颜色值
    highlight_colorstr待调查
    prioritynum待调查
    basemap_urlstr进场特效背景图片URLAPP端使用该URL
    show_avatarnum是否显示用户头像1显示
    0不显示
    web_basemap_urlstr进场特效背景图片URL网页端使用该URL
    web_effective_timenum进场特效生存时间网页端
    web_effect_closenum待调查
    web_close_timenum待调查
    businessnum待调查
    copy_writing_v2str进场欢迎文本的复制?
    icon_listarray待调查
    max_delay_timenum待调查
    trigger_timenum触发的Unix时间戳,以及后面9位未知数字
    identitiesnum待调查
    effect_silent_timenum待调查
    effective_time_newnum待调查
    web_dynamic_url_webpstr待调查
    web_dynamic_url_apngstr待调查
    mobile_dynamic_url_webpstr待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"AREA_RANK_CHANGED"若直播间在所属分区的排名改变,则内容是"AREA_RANK_CHANGED"
    dataobj直播间在所属分区的排名信息

    data字段

    字段类型内容备注
    conf_idnum待调查
    rank_namestr排行榜名称
    uidnum主播的UID
    ranknum直播间在分区的排名若没有上榜则为0
    icon_url_bluestr蓝色排名图标URL
    icon_url_pinkstr粉色排名图标URL
    icon_url_greystr灰色排名图标URL
    action_typenum待调查
    timestampnum触发时的Unix时间戳
    msg_idstr待调查
    jump_url_linkstr排行榜跳转链接APP端页面
    jump_url_pcstr排行榜跳转链接APP端页面
    jump_url_pinkstr排行榜跳转链接APP端页面
    jump_url_webstr排行榜跳转链接APP端页面
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"COMMON_NOTICE_DANMAKU"例如提示“恭喜主播 时雨ioo 成为手游航海当前第5名”,
    ,则内容是"COMMON_NOTICE_DANMAKU"
    dataobj直播间在所属分区排名提升的祝福的信息

    data字段

    字段类型内容备注
    biz_idnum待调查
    content_segmentsarray文本分段
    danmaku_styleobj文本样式信息
    danmaku_urlstr待调查
    dmscorenum待调查
    terminalsarray待调查

    content_segments数组中的对象

    字段类型内容备注
    font_colorstrtext字段的十六进制颜色值
    font_color_darkstrtext字段的十六进制颜色值APP端设置为深色模式时使用
    textstr祝贺文本
    typenum待调查

    danmaku_style字段

    字段类型内容备注
    background_colorstr文本背景颜色的十六进制颜色值
    background_color_darkstr文本背景颜色的十六进制颜色值APP端设置为深色模式时使用
    查看消息示例:

    第一条数据:

    {
    +    "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
    +        ]
    +    }
    +}
    +

    第二条数据:

    {
    +    "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
    +        ]
    +    }
    +}
    +

    第三条数据:

    {
    +    "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格式

    字段类型内容备注
    cmdstr"ROOM_CHANGE"例如直播间标题更改、直播间分区更改
    dataobj

    data字段

    字段类型内容备注
    titlestr直播间标题
    area_idnum当前直播间所属分区的ID
    parent_area_idnum待调查
    area_namestr当前直播间所属分区的名称
    parent_area_namestr待调查
    live_keystr待调查
    sub_session_keystr待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"SUPER_CHAT_ENTRANCE"不知道有什么意义
    dataobj醒目留言按钮的信息
    roomidnum直播间ID未知是短号还是真实ID

    data字段

    字段类型内容备注
    statusnum待调查
    jump_urlstr按下“醒目留言”按钮后弹出小窗的页面URL
    iconstr“醒目留言”按钮图标的URL
    broadcast_typenum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"WIDGET_BANNER"
    dataobj横幅信息

    data字段

    字段类型内容备注
    timestampnum服务器发送数据包时的Unix时间戳
    widget_listobj横幅信息待调查

    widget_list字段

    字段类型内容备注
    横幅IDobj横幅信息
    ...obj

    横幅ID 字段

    字段类型内容备注
    idnum横幅ID
    titlestr待调查
    coverstr待调查
    web_coverstr待调查
    tip_textstr待调查
    tip_text_colorstr待调查
    tip_bottom_colorstr待调查
    jump_urlstr点击横幅后出现小窗的页面的URL
    urlstr待调查
    stay_timenum待调查
    sitenum待调查
    platform_inarray待调查
    typenum待调查
    band_idnum待调查
    sub_keystr待调查
    sub_datastr横幅数据
    is_addbool待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"STOP_LIVE_ROOM_LIST"
    dataobj下播的直播间ID列表

    data字段

    字段类型内容备注
    room_id_listarray下播的直播间ID

    room_id_list数组中的数字

    类型内容备注
    num下播的直播间ID未知是真实ID还是短号
    num...
    查看消息示例:
    {
    +    "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:

    {
    +    "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

    {
    +    "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
    +    }
    +}
    +
    `,148);function u(l,c){return a(),p("div",null,[o,s(` info字段 + +| 索引 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | -------- | +| 0 | array | 弹幕信息 | | +| 1 | str | 弹幕文本 | | +| 2 | array | 发送者信息 | | +| 3 | array | 发送者粉丝勋章信息 | 若没有粉丝勋章则为空数组 | +| 4 | array | 发送者UL等级信息 | | +| 5 | array | 待调查 | | +| 6 | num | 待调查 | | +| 7 | num | 待调查 | | +| 8 | | 待调查 | | +| 9 | obj | 弹幕发送的Unix时间戳 | | +| 10 | num | 待调查 | | +| 11 | num | 待调查 | | +| 12 | | 待调查 | | +| 13 | | 待调查 | | +| 14 | num | 待调查 | | +| 15 | num | 待调查 | | + +0索引 + +| 索引 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | -------- | +| 0 | num | 待调查 | | +| 1 | num | 弹幕模式 | 弹幕的mode字段 | +| 2 | num | 弹幕字体大小 | 弹幕的fontsize字段 | +| 3 | num | 弹幕颜色 | 弹幕的color字段
    十六进制颜色值的十进制数字 | +| 4 | num | 待调查 | | +| 5 | num | 弹幕发送时的Unix时间戳 | 弹幕的rnd字段 | +| 6 | num | 待调查 | | +| 7 | str | 待调查 | | +| 8 | num | 待调查 | | +| 9 | num | 待调查 | | +| 10 | num | 待调查 | | +| 11 | str | 待调查 | | +| 12 | num | 待调查 | | +| 13 | str | 待调查 | | +| 14 | str | 待调查 | | +| 15 | obj | 弹幕信息 | | +| 16 | obj | 待调查 | | + +0索引的15索引 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | -------- | +| mode | num | 待调查 | | +| show_player_type | num | 待调查 | | +| extra | str | 弹幕信息 | | + +0索引的16索引 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | -------- | +| activity_identity | str | 待调查 | | +| activity_source | num | 待调查 | | +| not_show | num | 待调查 | | `),d,s(` +#### 欢迎加入房间 + +#### 欢迎房管加入房间 +`),r])}const k=t(e,[["render",u],["__file","message_stream.html.vue"]]);export{k as default}; diff --git a/assets/monthly.html-2d7b3991.js b/assets/monthly.html-2d7b3991.js new file mode 100644 index 0000000000..3a9d493c3f --- /dev/null +++ b/assets/monthly.html-2d7b3991.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-48cd1983","path":"/docs/electric/monthly.html","title":"包月充电","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取包月充电列表","slug":"获取包月充电列表","link":"#获取包月充电列表","children":[]},{"level":2,"title":"UP主包月充电详情","slug":"up主包月充电详情","link":"#up主包月充电详情","children":[]},{"level":2,"title":"与UP主的包月充电关系","slug":"与up主的包月充电关系","link":"#与up主的包月充电关系","children":[]},{"level":2,"title":"包月充电用户排名","slug":"包月充电用户排名","link":"#包月充电用户排名","children":[]}],"git":{},"filePathRelative":"docs/electric/monthly.md"}');export{l as data}; diff --git a/assets/monthly.html-34428be2.js b/assets/monthly.html-34428be2.js new file mode 100644 index 0000000000..f662729f3a --- /dev/null +++ b/assets/monthly.html-34428be2.js @@ -0,0 +1,172 @@ +import{_ as t}from"./battery-100-5a4d9900.js";import{_ as n,o as s,c as a,e}from"./app-3168cb19.js";const p={},d=e('

    包月充电

    获取包月充电列表

    https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    pagenum页码必要
    typenum充电状态必要1:使用中
    2:已过期

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    25100004:参数错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    list有内容时:array
    无内容时:null
    包月充电UP主列表最多10个
    pagenum当前页数
    page_sizenum当前分页大小一般为10
    total_pagenum总页数
    total_numnum用户总数
    is_morenum是否有更多用户0:否
    1:是

    data中的list数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    up_uidnum充电UP主mid
    user_namestr充电UP主昵称
    user_facestr充电UP主头像url
    itemarray充电详情
    startnum开始充电时间时间戳

    数组list中的对象中的item数组:

    类型内容备注
    0obj充电详情套了个娃

    数组item中的对象:

    字段类型内容备注
    privilege_typenum10(?)作用尚不明确
    iconstr充电图标
    namestr包月充电
    expire_timenum充电过期时间时间戳
    renew开启自动续费时:obj
    关闭自动续费时:null
    充电自动续费详情

    数组item中的对象中的renew对象:

    字段类型内容备注
    uidnum自己的mid
    ruidnumUP主的mid
    goods_idnum充电类型172:一个月
    173:连续包月
    174:连续包年
    statusnum充电状态1
    next_execute_timenum下次续费时间时间戳
    signed_timenum签约时间时间戳
    signed_pricenum下次续费金额单位为千分之一元人民币
    pay_channelnum签约平台2:微信支付
    4:支付宝
    periodnum下次充电天数

    示例:

    获取自己正在使用的包月充电的列表

    curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \\
    +--data-urlencode 'page=1' \\
    +--data-urlencode 'type=1' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "up_uid": 2233,
    +                "user_name": "2233",
    +                "user_face": "https://i0.hdslb.com/bfs/face/noface.jpg",
    +                "item": [
    +                    {
    +                        "privilege_type": 10,
    +                        "icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
    +                        "name": "包月充电",
    +                        "expire_time": 1703519999,
    +                        "renew": {
    +                            "uid": 425503913,
    +                            "ruid": 2233,
    +                            "goods_id": 174,
    +                            "status": 1,
    +                            "next_execute_time": 1703174400,
    +                            "signed_time": 1671618921,
    +                            "signed_price": 36000,
    +                            "pay_channel": 2,
    +                            "period": 366
    +                        }
    +                    }
    +                ],
    +                "start": 1669183804
    +            },
    +            {
    +                "up_uid": 293793435,
    +                "user_name": "社会易姐QwQ",
    +                "user_face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +                "item": [
    +                    {
    +                        "privilege_type": 10,
    +                        "icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
    +                        "name": "包月充电",
    +                        "expire_time": 1681401599,
    +                        "renew": {
    +                            "uid": 425503913,
    +                            "ruid": 293793435,
    +                            "goods_id": 173,
    +                            "status": 1,
    +                            "next_execute_time": 1680364800,
    +                            "signed_time": 1677760921,
    +                            "signed_price": 5000,
    +                            "pay_channel": 4,
    +                            "period": 31
    +                        }
    +                    }
    +                ],
    +                "start": 1676033795
    +            }
    +        ],
    +        "page": 1,
    +        "page_size": 10,
    +        "total_page": 3,
    +        "total_num": 22,
    +        "is_more": 1
    +    }
    +}
    +

    表示自己从2022-11-23 14:10:04开始给“2233”包月充电,并且在2022-12-21 18:35:21在微信开通了连续包年充电,在2023-12-22 00:00:00的时候会自动续费36元,并继续充电366天;

    自己从2023-02-10 20:56:35开始给“社会易姐QwQ”包月充电,并且在2023-03-02 20:42:01在支付宝开通了连续包月充电,在2023-04-02 00:00:00的时候会自动续费5元,并继续充电31天。

    UP主包月充电详情

    https://api.bilibili.com/x/upower/item/detail

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    203101:UP主未开通包月充电功能
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    upower_rankobj充电详情
    itemobj充电欢迎语
    user_cardobjUP主信息

    data中的upower_rank对象:

    字段类型内容备注
    totalnum充电用户总数
    total_descstr充电总数文字说明示例:“1+”
    listarray充电用户列表最多展示30个

    upower_rank中的list数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)按照充电时间排序
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    ranknum充电用户索引
    midnum充电用户mid
    nicknamestr充电用户昵称
    avatarstr充电用户头像url

    data中的item对象:

    字段类型内容备注
    intro_video_aidstr充电介绍视频AV号
    welcomesstr充电介绍语

    data中的user_card对象:

    字段类型内容备注
    avatarstrUP主头像url
    nicknamestrUP主昵称

    示例:

    获取mid=293793435的包月充电详情

    curl 'https://api.bilibili.com/x/upower/item/detail' \\
    +--data-urlencode 'up_mid=293793435' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "upower_rank": {
    +            "total": 1,
    +            "total_desc": "1+",
    +            "list": [
    +                {
    +                    "rank": 1,
    +                    "mid": 425503913,
    +                    "nickname": "wuziqian211",
    +                    "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png"
    +                }
    +            ]
    +        },
    +        "item": {
    +            "intro_video_aid": "",
    +            "welcomes": "哈喽b站的小伙伴们,我的充电计划升级啦! 感兴趣就多多支持我吧~(゜-゜)つロ"
    +        },
    +        "user_card": {
    +            "avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "nickname": "社会易姐QwQ"
    +        }
    +    }
    +}
    +

    与UP主的包月充电关系

    https://api.bilibili.com/x/upower/charge/follow/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    daysnum已保持多少天包月充电状态
    up_cardobjUP主信息
    user_cardobj自己的信息
    remain_daysnum剩余天数未处于包月充电状态为-1
    remain_less_1daynum剩余的天数小于1天0:否
    1:是
    未处于包月充电状态为0
    upower_rankobj充电详情
    upower_iconstr充电图标url仅在处于包月充电状态时有内容

    data中的up_card对象:

    字段类型内容备注
    nicknamestrUP主昵称
    official_titlestrUP主认证信息
    avatarstrUP主头像url

    data中的user_card对象:

    字段类型内容备注
    avatarstr用户头像url
    nicknamestr用户昵称

    data中的upower_rank对象:

    字段类型内容备注
    totalnum充电用户总数
    total_descstr充电总数文字说明示例:“1+”
    listarray充电用户列表最多展示6个

    upower_rank中的list数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)按照充电时间排序
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    ranknum充电用户索引
    midnum充电用户mid
    nicknamestr充电用户昵称
    avatarstr充电用户头像url

    示例:

    获取与mid=293793435的包月充电关系

    curl 'https://api.bilibili.com/x/upower/charge/follow/info' \\
    +--data-urlencode 'up_mid=293793435' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "days": 17,
    +        "up_card": {
    +            "nickname": "社会易姐QwQ",
    +            "official_title": "",
    +            "avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
    +        },
    +        "user_card": {
    +            "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png",
    +            "nickname": "wuziqian211"
    +        },
    +        "remain_days": 15,
    +        "remain_less_1day": 0,
    +        "upower_rank": {
    +            "total": 1,
    +            "total_desc": "1+",
    +            "list": [
    +                {
    +                    "rank": 1,
    +                    "mid": 425503913,
    +                    "nickname": "wuziqian211",
    +                    "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png"
    +                }
    +            ]
    +        },
    +        "upower_icon": "https://i0.hdslb.com/bfs/garb/item/33e2e72d9a0c855f036b4cb55448f44af67a0635.png"
    +    }
    +}
    +

    表示自己已保持17天对“社会易姐QwQ”的包月充电,剩余15天过期。

    包月充电用户排名

    https://api.bilibili.com/x/upower/up/member/rank/v2

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要
    psnum每页项数非必要默认为20
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    up_infoobjUP主信息
    rank_infoarray充电用户排名
    user_infoobj自己的信息
    member_totalnum充电用户总数

    data中的up_info对象:

    字段类型内容备注
    midnumUP主mid
    nicknamestrUP主昵称
    avatarstrUP主头像url
    typenumUP主认证类型-1:无
    0:UP主认证
    1:机构认证
    titlestrUP主认证信息

    data中的rank_info数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)按照充电排名排列
    ……obj…………

    数组rank_info中的对象:

    字段类型内容备注
    midnum充电用户mid
    nicknamestr充电用户昵称
    avatarstr充电用户头像url
    ranknum充电用户排名
    daynum包月充电天数
    expire_atnum包月充电过期时间恒为0
    remain_daysnum剩余天数恒为0

    data中的user_info对象:

    字段类型内容备注
    midnum用户mid
    nicknamestr用户昵称
    avatarstr用户头像url
    ranknum包月充电排名不在包月充电用户列表里为-1
    daynum包月充电天数
    expire_atnum包月充电过期时间时间戳,若从未给UP主包月充电为0
    remain_daysnum未过期时:剩余天数
    已过期且之前给UP主包月充电过:自过期以来的天数

    示例:

    获取给mid=293793435包月充电的用户排名

    curl 'https://api.bilibili.com/x/upower/up/member/rank/v2' \\
    +--data-urlencode 'up_mid=293793435' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "up_info": {
    +            "mid": 293793435,
    +            "nickname": "社会易姐QwQ",
    +            "avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "type": -1,
    +            "title": ""
    +        },
    +        "rank_info": [
    +            {
    +                "mid": 425503913,
    +                "nickname": "wuziqian211",
    +                "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png",
    +                "rank": 1,
    +                "day": 31,
    +                "expire_at": 0,
    +                "remain_days": 0
    +            }
    +        ],
    +        "user_info": {
    +            "mid": 425503913,
    +            "nickname": "wuziqian211",
    +            "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png",
    +            "rank": 1,
    +            "day": 31,
    +            "expire_at": 1678723199,
    +            "remain_days": 15
    +        },
    +        "member_total": 1
    +    }
    +}
    +
    `,102),o=[d];function r(c,l){return s(),a("div",null,o)}const k=n(p,[["render",r],["__file","monthly.html.vue"]]);export{k as default}; diff --git a/assets/movie-693cc994.svg b/assets/movie-693cc994.svg new file mode 100644 index 0000000000..5f691a4d94 --- /dev/null +++ b/assets/movie-693cc994.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/msg.html-01fe066d.js b/assets/msg.html-01fe066d.js new file mode 100644 index 0000000000..0e79626dd6 --- /dev/null +++ b/assets/msg.html-01fe066d.js @@ -0,0 +1,22 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    通知消息

    未读消息数

    https://api.bilibili.com/x/msgfeed/unread https://api.vc.bilibili.com/x/im/web/msgfeed/unread (新接口)

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    buildnum0不必要从新接口发现, 作用尚不明确
    mobi_appstrweb不必要从新接口发现, 作用尚不明确

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    atnum未读at数
    chatnum0作用尚不明确
    coinnum未读投币数
    danmunum未读弹幕数
    favoritenum未读收藏数?
    likenum未读点赞数
    recv_likenum未读点赞数
    recv_replynum未读回复数
    replynum未读回复数
    sys_msgnum未读系统通知数
    sys_msg_stylenum1仅新接口, 作用尚不明确
    upnumUP主助手信息数

    示例:

    以下信息代表了未读点赞数为10,未读回复数为4,未读at消息数为3,未读系统通知数为2,UP主助手信息数为1

    curl 'https://api.vc.bilibili.com/x/im/web/msgfeed/unread' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"at": 3,
    +		"chat": 0,
    +		"coin": 0,
    +		"danmu": 0,
    +		"favorite": 0,
    +		"like": 10,
    +		"recv_like": 10,
    +		"recv_reply": 4,
    +		"reply": 4,
    +		"sys_msg": 2,
    +		"sys_msg_style": 1,
    +		"up": 1
    +	}
    +}
    +
    `,16),p=[d];function o(r,l){return s(),n("div",null,p)}const u=t(e,[["render",o],["__file","msg.html.vue"]]);export{u as default}; diff --git a/assets/msg.html-3c183e1d.js b/assets/msg.html-3c183e1d.js new file mode 100644 index 0000000000..1e8614226a --- /dev/null +++ b/assets/msg.html-3c183e1d.js @@ -0,0 +1,24 @@ +import{_ as t,o as s,c as a,e as n}from"./app-3168cb19.js";const e={},d=n(`

    客服消息

    心跳

    https://customerservice.bilibili.com/x/custom/session_svr/v1/heart_beat

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    shop_idnum0非必要
    shop_father_idnum0非必要
    buildnum客户端版本非必要web: 0
    mobi_appstr客户端类型非必要web

    JSON回复:

    字段类型内容备注
    codenum返回值0: 成功
    msgstrok失败时不存在
    messagestr错误信息成功时为 ok
    ttlnum1

    示例:

    curl -G "https://customerservice.bilibili.com/x/custom/session_svr/v1/heart_beat" \\
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "ok",
    +  "message": "ok",
    +  "ttl": 1
    +}
    +

    上传文件

    https://customerservice.bilibili.com/x/custom/msg_svr/v1/upload

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    注: 上传的文件 15 分钟内有效, 过期后下载会返回 HTTP 403

    正文参数 (multipart/form-data):

    参数名类型内容必要性备注
    filefile文件内容必要
    filenamestr文件名必要
    midnum用户 mid必要
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    1000011: 仅支持上传300M内的文件
    1200201: 获取用户信息失败
    messagestr错误信息成功时为 ok
    ttlnum1
    dataobj上传结果

    data 对象:

    字段类型内容备注
    keystr文件名
    urlstr文件 URL注意转义

    示例:

    上传文件 ./headers/xx-out.xcf, 文件名 ihavenoname

    curl -X POST "https://customerservice.bilibili.com/x/custom/msg_svr/v1/upload" \\
    +-F 'file=@./headers/xx-out.xcf' \\
    +-F 'filename=ihavenoname' \\
    +-F 'mid=1070915568' \\
    +-F 'csrf=xxx' \\
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "ok",
    +  "ttl": 1,
    +  "data": {
    +    "key": "1a0c88d240852155a111e4cc6893be39.xcf",
    +    "url": "https://jssz-boss.hdslb.com/customer-video-upload/1a0c88d240852155a111e4cc6893be39.xcf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=f9TxwsagojnE1DWM%2F20240803%2Fjssz%2Fs3%2Faws4_request&X-Amz-Date=20240803T115447Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=cef962c8e503c6ff564fd485bdef1079df1b4a7e38f4fbd9c21a5667207f406e"
    +  }
    +}
    +
    `,28),o=[d];function r(p,i){return s(),a("div",null,o)}const l=t(e,[["render",r],["__file","msg.html.vue"]]);export{l as default}; diff --git a/assets/msg.html-4c0114f9.js b/assets/msg.html-4c0114f9.js new file mode 100644 index 0000000000..b06a766487 --- /dev/null +++ b/assets/msg.html-4c0114f9.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-116820eb","path":"/docs/customerservice/msg.html","title":"客服消息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"心跳","slug":"心跳","link":"#心跳","children":[]},{"level":2,"title":"上传文件","slug":"上传文件","link":"#上传文件","children":[]}],"git":{},"filePathRelative":"docs/customerservice/msg.md"}');export{e as data}; diff --git a/assets/msg.html-4cf1c080.js b/assets/msg.html-4cf1c080.js new file mode 100644 index 0000000000..32648c9ab3 --- /dev/null +++ b/assets/msg.html-4cf1c080.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-02292a0a","path":"/docs/message/msg.html","title":"通知消息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"未读消息数","slug":"未读消息数","link":"#未读消息数","children":[]}],"git":{},"filePathRelative":"docs/message/msg.md"}');export{e as data}; diff --git a/assets/music-1d6aa097.svg b/assets/music-1d6aa097.svg new file mode 100644 index 0000000000..408c93ce12 --- /dev/null +++ b/assets/music-1d6aa097.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/music_list.html-02cb5f36.js b/assets/music_list.html-02cb5f36.js new file mode 100644 index 0000000000..db513930f5 --- /dev/null +++ b/assets/music_list.html-02cb5f36.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-54373be6","path":"/docs/audio/music_list.html","title":"歌单&音频收藏夹详细信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询自己创建的歌单","slug":"查询自己创建的歌单","link":"#查询自己创建的歌单","children":[]},{"level":2,"title":"查询音频收藏夹(默认歌单)信息","slug":"查询音频收藏夹-默认歌单-信息","link":"#查询音频收藏夹-默认歌单-信息","children":[]},{"level":2,"title":"查询热门歌单","slug":"查询热门歌单","link":"#查询热门歌单","children":[]},{"level":2,"title":"查询热门榜单","slug":"查询热门榜单","link":"#查询热门榜单","children":[]}],"git":{},"filePathRelative":"docs/audio/music_list.md"}');export{l as data}; diff --git a/assets/music_list.html-948014df.js b/assets/music_list.html-948014df.js new file mode 100644 index 0000000000..1d66e113b1 --- /dev/null +++ b/assets/music_list.html-948014df.js @@ -0,0 +1,423 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    歌单&音频收藏夹详细信息

    查询自己创建的歌单

    https://www.bilibili.com/audio/music-service-c/web/collections/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    url参数:

    参数名类型内容必要性备注
    pnnum页码必要
    psnum每页项数必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    curPagenum当前页码
    pageCountnum总计页数
    totalSizenum总计收藏夹数
    pageSizenum当前页面项数
    dataarray歌单列表

    data中的data数组:

    类型内容备注
    0obj音频收藏夹mlid1
    nobj音频收藏夹mlid(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum音频收藏夹mlid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr歌单标题
    typenum收藏夹属性0:普通收藏夹
    1:默认收藏夹
    publishednum是否公开0:不公开
    1:公开
    coverstr歌单封面图片url
    ctimenum歌单创建时间时间戳
    songnum歌单中的音乐数量
    descstr歌单备注信息
    sidsarray歌单中的音乐
    menuIdnum音频收藏夹对应的歌单amid
    statisticobj歌单状态数信息

    data中的sids数组:

    类型内容备注
    0num收藏的音频auid1
    nnum收藏的音频auid(n+1)按照歌单顺序排列
    ……num…………

    data中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum播放数
    collectnum收藏数
    commentnull评论数
    sharenum分享数

    示例:

    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;'
    +

    共计创建了两个歌单,如下

    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频收藏夹mlid必要必须为默认收藏夹mlid

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    idnum音频收藏夹mlid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr默认歌单恒为默认歌单
    typenum1恒为1
    publishednum是否公开0:不公开
    1:公开
    coverstr歌单封面图片url
    ctimenum歌单创建时间时间戳
    songnum歌单中的音乐数量
    descstr恒为空
    sidsarray歌单中的音乐
    menuIdnum音频收藏夹对应的歌单amid与普通歌单不同通用
    statisticobj歌单状态数信息

    data中的sids数组:

    类型内容备注
    0num收藏的音频auid1
    nnum收藏的音频auid(n+1)按照歌单顺序排列
    ……num…………

    data中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum0
    collectnum0
    commentnull-
    sharenum0

    示例:

    查询我的默认歌单,id为15967839

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/info' \\
    +--data-urlencode 'sid=15967839 ' \\
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码必要
    psnum每页项数必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    curPagenum当前页码
    pageCountnum总计页数
    totalSizenum总计收藏夹数
    pageSizenum当前页面项数
    dataarray歌单列表

    data中的data数组:

    类型内容备注
    0obj音频收藏夹mlid1
    nobj音频收藏夹mlid(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    menuIdnum音频收藏夹对应的歌单amid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr歌单标题
    coverstr歌单封面图片url
    introstr歌单介绍
    typenum歌单属性1:普通歌单
    2:置顶歌单
    5:PGC歌单
    offnum歌单是否公开0:公开
    1:私密
    ctimenum歌单创建时间时间戳
    curtimenum当前时间时间戳
    statisticobj歌单状态数信息
    snumnum歌单包含歌曲个数

    data中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum播放数
    collectnum收藏数
    commentnum评论数
    sharenum分享数

    示例:

    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

    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码必要
    psnum每页项数必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    curPagenum当前页码
    pageCountnum总计页数
    totalSizenum总计收藏夹数
    pageSizenum当前页面项数
    dataarray歌单列表

    data中的data数组:

    类型内容备注
    0obj音频收藏夹mlid1
    nobj音频收藏夹mlid(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    menuIdnum音频收藏夹对应的歌单amid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr歌单标题
    coverstr歌单封面图片url
    introstr歌单介绍
    typenum歌单属性1:普通歌单
    2:置顶歌单
    5:PGC歌单
    offnum歌单是否公开0:公开
    1:私密
    ctimenum歌单创建时间时间戳
    curtimenum当前时间时间戳
    statisticobj歌单状态数信息
    snumnum歌单包含歌曲个数
    audiosarray歌单中的音乐信息(部分)

    data数组中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum收藏数
    collectnum点赞数
    commentnum评论数
    sharenum分享数

    data数组中的audios数组:

    类型内容备注
    0obj音频1
    nobj音频(n+1)
    ……obj…………

    audios数组中的audios对象:

    字段类型内容备注
    idnum音频id
    titlestr音频标题
    durationnum音频时长单位:秒(s)

    示例:

    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

    查看响应示例:
    {
    +    "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
    +            }]
    +        }]
    +    }
    +}
    +
    `,89),e=[o];function c(u,r){return s(),a("div",null,e)}const d=n(p,[["render",c],["__file","music_list.html.vue"]]);export{d as default}; diff --git a/assets/musicstream_url.html-0b86e281.js b/assets/musicstream_url.html-0b86e281.js new file mode 100644 index 0000000000..e12435eb5c --- /dev/null +++ b/assets/musicstream_url.html-0b86e281.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-3b0c2e90","path":"/docs/audio/musicstream_url.html","title":"音频流URL","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"音质qn参数定义","slug":"音质qn参数定义","link":"#音质qn参数定义","children":[]},{"level":2,"title":"获取音频流URL(web端)","slug":"获取音频流url-web端","link":"#获取音频流url-web端","children":[]},{"level":2,"title":"获取音频流URL(可获取付费音频)","slug":"获取音频流url-可获取付费音频","link":"#获取音频流url-可获取付费音频","children":[]},{"level":2,"title":"音频流的获取","slug":"音频流的获取","link":"#音频流的获取","children":[]}],"git":{},"filePathRelative":"docs/audio/musicstream_url.md"}');export{l as data}; diff --git a/assets/musicstream_url.html-8d4fb03d.js b/assets/musicstream_url.html-8d4fb03d.js new file mode 100644 index 0000000000..f329ab5989 --- /dev/null +++ b/assets/musicstream_url.html-8d4fb03d.js @@ -0,0 +1,92 @@ +import{_ as s}from"./download-d77df227.js";import{_ as t,o as n,c as a,e}from"./app-3168cb19.js";const o={},p=e('

    音频流URL

    音质qn参数定义

    音质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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    7201006:未找到或已下架
    72000000:请求错误
    msgstr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    sidnum音频auid
    typenum音质标识-1:试听片段(192K)
    1:192K
    infostr作用尚不明确
    timeoutnum有效时长单位为秒
    一般为3h
    sizenum文件大小单位为字节
    type为-1时size为0
    cdnsarray音频流url
    qualitiesnull-
    titlenull-
    covernull-

    data对象的cdns数组:

    类型内容备注
    0str音频流url
    1str备用音频流url

    示例:

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \\
    +--data-urlencode 'sid=sid=15664'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    songidnum音频auid必要
    qualitynum音质代码必要详情见上表
    privilegenum必须为2必要
    midnum当前用户mid必要可为任意值
    platformstr平台标识必要可为任意值

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    7201006:未找到或已下架
    72000000:请求错误
    msgstr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    sidnum音频auid
    typenum音质标识-1:试听片段(192K)
    0:128K
    1:192K
    2:320K
    3:FLAC
    infostr作用尚不明确
    timeoutnum有效时长单位为秒
    一般为3h
    sizenum文件大小单位为字节
    type为-1时size为0
    cdnsarray音频流url
    qualitiesarray音质列表
    titlestr音频标题
    coverstr音频封面url

    data对象的cdns数组:

    类型内容备注
    0str音频流url
    1str备用音频流url

    data对象的qualities数组:

    类型内容备注
    0obj音质1音质由高向低顺序
    nobj音质(n+1)

    qualities数组中的对象:

    字段类型内容备注
    typenum音质代码详情见上表
    descstr音质名称
    sizenum该音质的文件大小单位为字节
    bpsstr比特率标签
    tagstr音质标签
    requirenum是否需要会员权限0:不需要
    1:需要
    requiredescstr会员权限标签

    示例:

    获取音频au682118的音频流url,音质为3(无损)

    Cookie方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +    "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为例:

    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文件

    `,55),d=[p];function r(c,l){return n(),a("div",null,d)}const k=t(o,[["render",r],["__file","musicstream_url.html.vue"]]);export{k as default}; diff --git a/assets/nav.html-ed72f33d.js b/assets/nav.html-ed72f33d.js new file mode 100644 index 0000000000..f5dd4b0bc9 --- /dev/null +++ b/assets/nav.html-ed72f33d.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-4e377d61","path":"/docs/dynamic/nav.html","title":"获取导航栏动态","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取导航栏动态列表","slug":"获取导航栏动态列表","link":"#获取导航栏动态列表","children":[]}],"git":{},"filePathRelative":"docs/dynamic/nav.md"}');export{e as data}; diff --git a/assets/nav.html-edb82272.js b/assets/nav.html-edb82272.js new file mode 100644 index 0000000000..8052ca7478 --- /dev/null +++ b/assets/nav.html-edb82272.js @@ -0,0 +1,1103 @@ +import{_ as p,r as o,o as e,c as l,a as s,b as n,d as u,w as c,e as a}from"./app-3168cb19.js";const r={},i=a('

    获取导航栏动态

    获取导航栏动态列表

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/nav

    请求方式: GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    update_baselinenum更新基线非必要获取新动态时使用
    offsetnum分页偏移量非必要翻页时使用

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    has_morebool是否有更多数据
    itemsarray数据数组
    offsetstr偏移量等于items中最后一条记录的id
    获取下一页时使用
    update_baselinestr更新基线等于items中第一条记录的id_str
    update_numnum本次获取获取到了多少条新动态在更新基线以上的动态条数

    data对象中items数组中的对象:

    ',13),k=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),d=s("td",null,"author",-1),q=s("td",null,"obj",-1),v=s("td",null,"UP主",-1),b=s("tr",null,[s("td",null,"cover"),s("td",null,"str"),s("td",null,"封面URL"),s("td")],-1),m=s("tr",null,[s("td",null,"id_str"),s("td",null,"str"),s("td",null,"动态id"),s("td")],-1),y=s("tr",null,[s("td",null,"pub_time"),s("td",null,"str"),s("td",null,"发布时间"),s("td",null,"文字表述的相对时间")],-1),_=s("tr",null,[s("td",null,"rid"),s("td",null,"num"),s("td",null,"关联id"),s("td",null,"视频即aid")],-1),g=s("tr",null,[s("td",null,"title"),s("td",null,"str"),s("td",null,"标题"),s("td")],-1),h=s("tr",null,[s("td",null,"type"),s("td",null,"num"),s("td",null,"动态类型"),s("td",null,"8: 视频")],-1),f=s("tr",null,[s("td",null,"visible"),s("td",null,"bool"),s("td",null,"是否可见"),s("td",null,[n("true:可见"),s("br"),n("false:不可见")])],-1),F=a(`

    示例:

    获取导航栏动态列表

    curl "https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/nav" \\
    +  -b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "has_more": true,
    +    "items": [
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg",
    +          "jump_url": "//space.bilibili.com/485703766/dynamic",
    +          "mid": 485703766,
    +          "name": "英伟达GeForce",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "英伟达GeForce官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 2000563200000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +              "label_theme": "ten_annual_vip",
    +              "path": "",
    +              "text": "十年大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 7,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 1
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/d38b239af580eb199b4bbe55d2388cb603f6e917.jpg",
    +        "id_str": "954636836111646759",
    +        "jump_url": "//www.bilibili.com/video/BV181421k7bu/",
    +        "pub_time": "1小时前",
    +        "rid": 1556082150,
    +        "title": "《异环》首曝丨即将支持 NVIDIA DLSS & 光线追踪技术",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/a220f26856924287c9dc4fa59c67ff38a2fcd20c.jpg",
    +        "id_str": "954616624230433048",
    +        "jump_url": "//www.bilibili.com/video/BV1RW421R7pE/",
    +        "pub_time": "2小时前",
    +        "rid": 1856122369,
    +        "title": "【夏色祭×可波】《カタオモイ》请感受这份传达给你的心意【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/1b7e4eaf6696038bb96ff38c6d13a6b3778d6a7c.jpg",
    +        "id_str": "954616624230432996",
    +        "jump_url": "//www.bilibili.com/video/BV15Z421u7MX/",
    +        "pub_time": "2小时前",
    +        "rid": 1156047704,
    +        "title": "Ready for my show!中日16位实力舞见高燃开场《唱》【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/5f22e930d0683b5e8d7a81f75b48fdb0c3a0f2e7.jpg",
    +        "id_str": "954616624229384275",
    +        "jump_url": "//www.bilibili.com/video/BV1hz421q7xP/",
    +        "pub_time": "2小时前",
    +        "rid": 1356132445,
    +        "title": "阿梓×尔东和小明倾情演出《暁の車》带你重温高达经典旋律【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/04b46154e833ea1349c3302f9b9c188a45b016e9.jpg",
    +        "id_str": "954616624228335667",
    +        "jump_url": "//www.bilibili.com/video/BV1LS421R7sr/",
    +        "pub_time": "2小时前",
    +        "rid": 1506089543,
    +        "title": "【Vox Akuma】声之恶魔低音爵士,深情演绎世界名曲【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/819d73ca191235e89a03c62889073d526b552fc2.jpg",
    +        "id_str": "954616624033300612",
    +        "jump_url": "//www.bilibili.com/video/BV1qM4m127wD/",
    +        "pub_time": "2小时前",
    +        "rid": 1306194854,
    +        "title": "【RAB】全 部 逮 捕!萝 莉 控 的 末 日【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/01dd21a65db17705479ee4ee550a79856847264e.jpg",
    +        "id_str": "954616624020717623",
    +        "jump_url": "//www.bilibili.com/video/BV1rZ421K7yT/",
    +        "pub_time": "2小时前",
    +        "rid": 1156076206,
    +        "title": "【可波×夏色祭】对你一见钟情啦!《5201314》开启绝赞告白【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/d79b28afc3273d5edb211d03ddc70c45999d57f7.jpg",
    +        "fold": {
    +          "ids": [
    +            "954616624019669009"
    +          ],
    +          "statement": "展开1条相关动态",
    +          "type": 3,
    +          "users": []
    +        },
    +        "id_str": "954616624019669032",
    +        "jump_url": "//www.bilibili.com/video/BV1oE421c7XV/",
    +        "pub_time": "2小时前",
    +        "rid": 1656233700,
    +        "title": "【洛天依】来自2024的《霜雪千年》还记否这一曲喜悲霜雪【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/93b809e050e639c9d8e8e379da96a4c2216ae755.jpg",
    +          "jump_url": "//space.bilibili.com/36081646/dynamic",
    +          "mid": 36081646,
    +          "name": "洛天依",
    +          "official": {
    +            "desc": "",
    +            "role": 2,
    +            "title": "2023年度原创音乐、洛天依官方账号",
    +            "type": 0
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1764777600000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/d79b28afc3273d5edb211d03ddc70c45999d57f7.jpg",
    +        "id_str": "954616624019669009",
    +        "jump_url": "//www.bilibili.com/video/BV1oE421c7XV/",
    +        "pub_time": "2小时前",
    +        "rid": 1656233700,
    +        "title": "【洛天依】来自2024的《霜雪千年》还记否这一曲喜悲霜雪【BML2024单品】",
    +        "type": 8,
    +        "visible": false
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/cbbbb6e35c7680261a8a1fb3f582e04de14cbb50.jpg",
    +        "id_str": "954616624002891844",
    +        "jump_url": "//www.bilibili.com/video/BV1Fb421H7YQ/",
    +        "pub_time": "2小时前",
    +        "rid": 1806140865,
    +        "title": "【ChiliChill】《我的悲伤是水做的》,描绘雨天的淡蓝色心情【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/b1f8744db9bad8a4a89bd9fa3fab0d128b347edb.jpg",
    +        "id_str": "954616623998697505",
    +        "jump_url": "//www.bilibili.com/video/BV12m421g759/",
    +        "pub_time": "2小时前",
    +        "rid": 1606234911,
    +        "title": "成为挣脱《Cage》的小鸟,露米Lumi深情吟唱人类希望之歌【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/52e82dc68f3cbbb598d27437c33e996718e07924.jpg",
    +        "id_str": "954616623995552002",
    +        "jump_url": "//www.bilibili.com/video/BV181421k74U/",
    +        "pub_time": "2小时前",
    +        "rid": 1556081716,
    +        "title": "型月组曲优雅串烧《若能看到明月》🌙🌙🌙【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/8558fe6746c43182b25f6a590f47b9673d47ba67.jpg",
    +        "id_str": "954616623994503209",
    +        "jump_url": "//www.bilibili.com/video/BV1jW421d7ce/",
    +        "pub_time": "2小时前",
    +        "rid": 1856192192,
    +        "title": "Finana Ryugu超甜演绎童年回忆《プレパレード》最清纯的恋爱预演~【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/1ebd8cbd38eb9db9451df9978b20bee445d8fea0.jpg",
    +        "id_str": "954616623993454708",
    +        "jump_url": "//www.bilibili.com/video/BV1cw4m1Y7Zs/",
    +        "pub_time": "2小时前",
    +        "rid": 1106145687,
    +        "title": "元气补给站《MORE!JUMP!MORE!》在BML舞台起跳!【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/bc1de2b7e27a5385e3e913fc552b86b744b49fb8.jpg",
    +        "id_str": "954616623990308904",
    +        "jump_url": "//www.bilibili.com/video/BV1QH4y1w7hC/",
    +        "pub_time": "2小时前",
    +        "rid": 1056107813,
    +        "title": "【星瞳】华丽演绎《迷宮バタフライ》🦋一曲重温童年之梦【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/63617f9210ab2e996f75e8e2fb46c5dc73aeed35.jpg",
    +        "id_str": "954616623980871832",
    +        "jump_url": "//www.bilibili.com/video/BV1L1421b7XJ/",
    +        "pub_time": "2小时前",
    +        "rid": 1556117158,
    +        "title": "奏响《葬送的破阵曲》,按捺不住战斗的心了!【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/c3c470e309acef1d8c8f2ce79ed753f9bca50879.jpg",
    +        "id_str": "954616623979823254",
    +        "jump_url": "//www.bilibili.com/video/BV1uy411B7Ca/",
    +        "pub_time": "2小时前",
    +        "rid": 1956028036,
    +        "title": "【猫MEME】转生成只能用MEME讲话的平凡上班族【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +          "jump_url": "//space.bilibili.com/407045223/dynamic",
    +          "mid": 407045223,
    +          "name": "二次元的中科院物理所",
    +          "official": {
    +            "desc": "",
    +            "role": 6,
    +            "title": "中国科学院物理研究所官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1745769600000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 1626364800,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/056db2ac79801d853bebcd41c247788d8ccdb795.jpg",
    +        "id_str": "954609313946533894",
    +        "jump_url": "//www.bilibili.com/video/BV1Wz421q7n5/",
    +        "pub_time": "3小时前",
    +        "rid": 1356075945,
    +        "title": "暑期不失约!第六季《科学公开课》震撼来袭!",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +          "jump_url": "//space.bilibili.com/686127/dynamic",
    +          "mid": 686127,
    +          "name": "籽岷",
    +          "official": {
    +            "desc": "",
    +            "role": 1,
    +            "title": "2023百大UP主、知名游戏UP主",
    +            "type": 0
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 4845196800000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +              "label_theme": "hundred_annual_vip",
    +              "path": "",
    +              "text": "百年大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 15,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 1692288000,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 1
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/170237c4589a086afd7d62823765de1cc7306555.jpg",
    +        "id_str": "954478850029387784",
    +        "jump_url": "//www.bilibili.com/video/BV1Jz421q7JH/",
    +        "pub_time": "11小时前",
    +        "rid": 1356097140,
    +        "title": "我的世界 冷门原版生物娘化 材质包",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i0.hdslb.com/bfs/face/22e6b4f3c9199b6f4397f0d8df916872d677557b.jpg",
    +          "jump_url": "//space.bilibili.com/625267185/dynamic",
    +          "mid": 625267185,
    +          "name": "零度解说",
    +          "official": {
    +            "desc": "",
    +            "role": 0,
    +            "title": "",
    +            "type": -1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {}
    +            },
    +            "avatar_subscript": 0,
    +            "avatar_subscript_url": "",
    +            "due_date": 0,
    +            "label": {
    +              "bg_color": "",
    +              "bg_style": 0,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +              "label_theme": "",
    +              "path": "",
    +              "text": "",
    +              "text_color": "",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "",
    +            "role": 0,
    +            "status": 0,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 0,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/6f0397b546ba4da15fcd9a2e06cbcc1f68e5545c.jpg",
    +        "id_str": "954376956212674594",
    +        "jump_url": "//www.bilibili.com/video/BV141421b7sf/",
    +        "pub_time": "昨天 20:30",
    +        "rid": 1556122058,
    +        "title": "快速提升上网速度!免费又好用,适用 Windows 10 /11,非常简单!!(2024) | 零度解说",
    +        "type": 8,
    +        "visible": true
    +      }
    +    ],
    +    "offset": "954376956212674594",
    +    "update_baseline": "954659517801431040",
    +    "update_num": 0
    +  }
    +}
    +
    `,4);function B(j,w){const t=o("RouterLink");return e(),l("div",null,[i,s("table",null,[k,s("tbody",null,[s("tr",null,[d,q,v,s("td",null,[n("参见"),u(t,{to:"/docs/dynamic/all.html#data%E5%AF%B9%E8%B1%A1---items%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E5%AF%B9%E8%B1%A1---modules%E5%AF%B9%E8%B1%A1---module_author%E5%AF%B9%E8%B1%A1"},{default:c(()=>[n("module_author对象")]),_:1})])]),b,m,y,_,g,h,f])]),F])}const M=p(r,[["render",B],["__file","nav.html.vue"]]);export{M as default}; diff --git a/assets/official_role.html-59ee6d6a.js b/assets/official_role.html-59ee6d6a.js new file mode 100644 index 0000000000..c984afd160 --- /dev/null +++ b/assets/official_role.html-59ee6d6a.js @@ -0,0 +1 @@ +import{_ as t,o as d,c as r,e}from"./app-3168cb19.js";const a={},o=e('

    用户认证类型一览

    ID认证类型详细类型
    0
    1个人认证知名UP主
    2个人认证大V达人
    3机构认证企业
    4机构认证组织
    5机构认证媒体
    6机构认证政府
    7个人认证高能主播
    9个人认证社会知名人士
    ',2),c=[o];function h(_,i){return d(),r("div",null,c)}const n=t(a,[["render",h],["__file","official_role.html.vue"]]);export{n as default}; diff --git a/assets/official_role.html-7ca2f8f7.js b/assets/official_role.html-7ca2f8f7.js new file mode 100644 index 0000000000..0b511f4421 --- /dev/null +++ b/assets/official_role.html-7ca2f8f7.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-b5df8b90","path":"/docs/user/official_role.html","title":"用户认证类型一览","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"docs/user/official_role.md"}');export{e as data}; diff --git a/assets/online.html-1b0dccef.js b/assets/online.html-1b0dccef.js new file mode 100644 index 0000000000..c179aeac29 --- /dev/null +++ b/assets/online.html-1b0dccef.js @@ -0,0 +1,33 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const d={},e=a(`

    视频在线人数

    获取视频在线人数_web端

    https://api.bilibili.com/x/player/online/total

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    cidnum视频cid必要用于选择目标分P

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    totalstr所有终端总计人数例如10万+
    countstrweb端实时在线人数
    show_switchobj数据显示控制

    data中的show_switch对象:

    字段类型内容备注
    totalbool展示所有终端总计人数
    countbool展示web端实时在线人数

    示例:

    查询视频av759949922/BV1y64y1q757中1P(392402545)的在线人数

    curl -G 'https://api.bilibili.com/x/player/online/total' \\
    +--data-urlencode 'aid=759949922' \\
    +--data-urlencode 'cid=392402545'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要
    appkeystrAPP密钥APP方式必要
    cidnum视频cid必要用于选择目标分P
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    onlineobj所有终端总计人数

    data中的show_switch对象:

    字段类型内容备注
    onlinestr所有终端总计人数例如10万+人在看

    示例:

    查询视频av759949922/BV1y64y1q757中1P(392402545)的在线人数

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "online": {
    +            "total_text": "8.8万+人在看"
    +        }
    +    }
    +}
    +
    `,33),o=[e];function p(r,l){return n(),s("div",null,o)}const c=t(d,[["render",p],["__file","online.html.vue"]]);export{c as default}; diff --git a/assets/online.html-400a48bb.js b/assets/online.html-400a48bb.js new file mode 100644 index 0000000000..ae6edcba11 --- /dev/null +++ b/assets/online.html-400a48bb.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-11f54637","path":"/docs/video/online.html","title":"视频在线人数","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取视频在线人数_web端","slug":"获取视频在线人数-web端","link":"#获取视频在线人数-web端","children":[]},{"level":2,"title":"获取视频在线人数_APP端","slug":"获取视频在线人数-app端","link":"#获取视频在线人数-app端","children":[]}],"git":{},"filePathRelative":"docs/video/online.md"}');export{e as data}; diff --git a/assets/password.html-56ccacec.js b/assets/password.html-56ccacec.js new file mode 100644 index 0000000000..6f5ce686a3 --- /dev/null +++ b/assets/password.html-56ccacec.js @@ -0,0 +1,250 @@ +import{_ as o,r as l,o as d,c,a as s,b as n,d as t,w as e,e as p}from"./app-3168cb19.js";const i={},r=p(`

    密码登录

    密码登录流程(伪代码)

    账号 = '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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hashstr密码盐值有效时间为 20s
    恒为 16 字符
    需要拼接在明文密码之前
    keystrrsa 公钥PEM 格式编码
    加密密码时需要使用

    示例:

    curl 'https://passport.bilibili.com/x/passport-login/web/key'
    +
    查看响应示例:
    {
    +    "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):

    `,21),u=s("thead",null,[s("tr",null,[s("th",null,"参数名"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"必要性"),s("th",null,"备注")])],-1),k=s("tr",null,[s("td",null,"username"),s("td",null,"str"),s("td",null,"用户登录账号"),s("td",null,"必要"),s("td",null,"手机号或邮箱地址")],-1),b=s("tr",null,[s("td",null,"password"),s("td",null,"str"),s("td",null,"加密后的带盐密码"),s("td",null,"必要"),s("td",null,"base64 格式")],-1),h=s("tr",null,[s("td",null,"keep"),s("td",null,"num"),s("td",null,"0"),s("td",null,"必要"),s("td")],-1),m=s("td",null,"token",-1),v=s("td",null,"str",-1),g=s("td",null,"登录 token",-1),y=s("td",null,"必要",-1),x=s("td",null,"challenge",-1),q=s("td",null,"str",-1),f=s("td",null,"极验 challenge",-1),w=s("td",null,"必要",-1),_=s("tr",null,[s("td",null,"validate"),s("td",null,"str"),s("td",null,"极验 result"),s("td",null,"必要"),s("td",null,"极验验证后得到")],-1),E=s("tr",null,[s("td",null,"seccode"),s("td",null,"str"),s("td",null,[n("极验 result +"),s("code",null,"|jordan")]),s("td",null,"必要"),s("td",null,"极验验证后得到")],-1),A=s("tr",null,[s("td",null,"go_url"),s("td",null,"str"),s("td",null,"跳转 url"),s("td",null,"非必要"),s("td",null,"默认为 https://www.bilibili.com")],-1),S=s("tr",null,[s("td",null,"source"),s("td",null,"str"),s("td",null,"登录来源"),s("td",null,"非必要"),s("td",null,[s("code",null,"main_web"),n(":独立登录页"),s("br"),s("code",null,"main_mini"),n(":小窗登录")])],-1),j=p(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -105:验证码错误
    -400:请求错误
    -629:账号或密码错误
    -653:用户名或密码不能为空
    -662:提交超时,请重新提交
    -2001:缺少必要的的参数
    -2100:需验证手机号或邮箱
    2400:登录秘钥错误
    2406:验证极验服务出错
    86000:RSA解密失败
    messagestr错误信息
    data成功时:obj
    失败时:null
    数据本体

    data 对象:

    字段类型内容备注
    messagestr扫码状态信息若提示 本次登录环境存在风险, 需使用手机号进行验证或绑定, 参见 手机号验证
    refresh_tokenstr刷新refresh_token
    statusnum0
    timestampnum登录时间未登录为0
    时间戳 单位为毫秒
    urlstr游戏分站跨域登录 url

    示例:

    例如用户账号为12345678900,加密后的密码为xxx,登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行验证登录操作

    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'
    +
    查看响应示例:
    {
    +    "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/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回复:

    根对象:

    字段类型内容备注
    hashstr密码盐值有效时间为 20s
    恒为 16 字符
    需要拼接在明文密码之前
    keystrrsa 公钥PEM 格式编码
    加密密码时需要使用

    示例:

    curl 'https://passport.bilibili.com/login?act=getkey'
    +
    查看响应示例:
    {
    +    "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):

    `,29),D=s("thead",null,[s("tr",null,[s("th",null,"参数名"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"必要性"),s("th",null,"备注")])],-1),C=s("tr",null,[s("td",null,"captchaType"),s("td",null,"num"),s("td",null,"6"),s("td",null,"必要"),s("td",null,[n("必须为"),s("code",null,"6")])],-1),P=s("tr",null,[s("td",null,"username"),s("td",null,"str"),s("td",null,"用户登录账号"),s("td",null,"必要"),s("td",null,"手机号或邮箱地址")],-1),T=s("tr",null,[s("td",null,"password"),s("td",null,"str"),s("td",null,"加密后的带盐密码"),s("td",null,"必要"),s("td",null,"base64 格式")],-1),B=s("tr",null,[s("td",null,"keep"),s("td",null,"bool"),s("td",null,"是否记住登录"),s("td",null,"必要"),s("td",null,[s("code",null,"true"),n(":记住登录"),s("br"),s("code",null,"false"),n(":不记住登录")])],-1),F=s("td",null,"key",-1),I=s("td",null,"str",-1),U=s("td",null,"登录 token",-1),M=s("td",null,"必要",-1),G=s("td",null,"challenge",-1),K=s("td",null,"str",-1),N=s("td",null,"极验 challenge",-1),X=s("td",null,"必要",-1),Q=s("tr",null,[s("td",null,"validate"),s("td",null,"str"),s("td",null,"极验 result"),s("td",null,"必要"),s("td",null,"极验验证后得到")],-1),O=s("tr",null,[s("td",null,"seccode"),s("td",null,"str"),s("td",null,[n("极验 result +"),s("code",null,"|jordan")]),s("td",null,"必要"),s("td",null,"极验验证后得到")],-1),Y=p(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -629:账号或密码错误
    -653:用户名或密码不能为空
    -662:提交超时,请重新提交
    -2001:缺少必要的的参数
    -2100:需验证手机号或邮箱
    2400:登录秘钥错误
    2406:验证极验服务出错
    86000:RSA解密失败
    tsnum当前时间戳成功时无此项
    messagestr错误信息默认为0
    dataobj数据本体成功时有此项

    data对象:

    未登录时:

    字段类型内容备注
    redirectUrlstr游戏分站跨域登录 url

    已登录时:

    字段类型内容备注
    isLoginbooltrue
    goUrlstrhttps://www.bilibili.com

    需验证手机号或邮箱时

    字段类型内容备注
    midnum用户 mid
    telstr绑定的手机号星号隐藏部分信息
    emailstr绑定的邮箱星号隐藏部分信息
    sorcenum0作用尚不明确
    keeptimenum1作用尚不明确
    goUrlstrhttps://www.bilibili.com

    示例:

    例如用户账号为12345678900,加密后的密码为xxx,登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行验证登录操作

    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'
    +
    查看响应示例:
    {
    +    "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/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 ):

    参数名类型内容必要性备注
    appkeystrAPP密钥APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    hashstr密码盐值有效时间为 20s
    恒为 16 字符
    需要拼接在明文密码之前
    keystrrsa 公钥PEM 格式编码
    加密密码时需要使用

    示例:

    curl 'https://passport.bilibili.com/api/oauth2/getKey' \\
    +--data-urlencode 'appkey=1d8b6e7d45233436' \\
    +--data-urlencode 'sign=17004c193f688f0b5665c1068e733aff'
    +
    查看响应示例:
    {
    +    "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 备用

    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 加密

    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 编码

    import base64
    +b64Password = base64.b64encode(encryptedPassword).decode()
    +print('result =', b64Password)
    +

    以下为最终加密结果,可直接向 API 请求体传参以登录:

    因为 RSA 公钥加密的无法解密性,故无法本地验证,仅可请求 API 验证(略...

    result = fZzUzYiSp96F26tt19MIAkB4b4Wk4RHQb4ADLiTIbL66O/7upyj4U5UekTA2pB3Pjr6NlEGGc/kiEgwTNbu84d4bkAkpUOupj1hZXYMYgWYKOtvhvugeuhwgRDhkfUIX+YrwaScxpcQFJqo7bvh7oDL/Wc5sVdWvikpL3PFAvJM=
    +

    以下为密码加密的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);
    +  }
    +}
    +
    +

    手机号验证

    简述

    有时 登录操作(web端) (APP 端可能也有类似操作) 会返回如下内容, 此时需要进行手机号验证或绑定

    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "is_new": false,
    +    "status": 2,
    +    "message": "本次登录环境存在风险, 需使用手机号进行验证或绑定",
    +    "url": "https://passport.bilibili.com/h5-app/passport/risk/verify?tmp_token=imtmptk&request_id=imreqid&source=risk",
    +    "refresh_token": "",
    +    "timestamp": 0,
    +    "hint": "",
    +    "in_reg_audit": 0
    +  }
    +}
    +

    获取 captcha

    https://passport.bilibili.com/x/safecenter/captcha/pre

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    sourcestrrisk不必要

    JSON 回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    recaptcha_typestr验证码类型目前仅 geetest
    recaptcha_tokenstr验证码 token
    gee_challengestr极验 challenge
    gee_gtstr极验 gt

    示例:

    curl -X POST 'https://passport.bilibili.com/x/safecenter/captcha/pre'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "recaptcha_type": "geetest",
    +    "recaptcha_token": "8a418aa9eebe411599d759fc318d55e1",
    +    "gee_challenge": "4e5353e7ab9f9aef0c97fa5a5b1ad101",
    +    "gee_gt": "ac597a4506fee079629df5d8b66dd4fe"
    +  }
    +}
    +

    发送验证码

    https://passport.bilibili.com/x/safecenter/common/sms/send

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    tmp_codestrurl query 中的 tmp_code必要参见 简述 中 JSON 示例中的 url
    sms_typestrloginTelCheck必要
    recaptcha_tokenstr验证码 token必要参见 获取 captcha
    gee_challengestr极验 challenge必要参见 获取 captcha
    gee_validatestr极验 validate必要验证后获得
    gee_seccodestr极验 seccode必要验证后获得

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    captcha_keystr验证码 key

    示例:

    假设 tmp_codeimtmptk, recaptcha_tokenkfc, gee_challengecrazythursday, gee_validatevivo50, gee_seccodevivo50|jordan

    curl -X POST 'https://passport.bilibili.com/x/safecenter/common/sms/send' \\
    +--data-urlencode 'tmp_code=imtmptk' \\
    +--data-urlencode 'sms_type=loginTelCheck' \\
    +--data-urlencode 'recaptcha_token=kfc' \\
    +--data-urlencode 'gee_challenge=crazythursday' \\
    +--data-urlencode 'gee_validate=vivo50' \\
    +--data-urlencode 'gee_seccode=vivo50|jordan'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "captcha_key": "42403fb08ed2cd97afff14edefbae482"
    +  }
    +}
    +

    验证手机验证码

    https://passport.bilibili.com/x/safecenter/login/tel/verify

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    tmp_codestrurl query 中的 tmp_code必要参见 简述 中 JSON 示例中的 url
    captcha_keystr验证码 key必要参见 发送验证码
    typestrloginTelCheck必要
    codenum接收到的验证码必要
    request_idstrurl query 中的 request_id必要参见 简述 中 JSON 示例中的 url
    sourcestrrisk必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    codestr交换代码用于后面 交换 Cookie

    示例:

    假设 tmp_codeimtmptk, captcha_key42403fb08ed2cd97afff14edefbae482, code114514, request_idimreqid

    curl -X POST 'https://passport.bilibili.com/x/safecenter/login/tel/verify' \\
    +--data-urlencode 'tmp_code=imtmptk' \\
    +--data-urlencode 'captcha_key=42403fb08ed2cd97afff14edefbae482' \\
    +--data-urlencode 'type=loginTelCheck' \\
    +--data-urlencode 'code=114514' \\
    +--data-urlencode'request_id=imreqid' \\
    +--data-urlencode'source=risk'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "code": "6eadf783c55a387b143773282b217682"
    +  }
    +}
    +

    https://passport.bilibili.com/x/passport-login/web/exchange_cookie

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    sourcestrrisk必要
    codestr交换代码必要参见 验证手机验证码

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    urlstr游戏分站跨域登录 url
    refresh_tokenstr刷新 token

    示例:

    假设 code6eadf783c55a387b143773282b217682

    curl -X POST 'https://passport.bilibili.com/x/passport-login/web/exchange_cookie' \\
    +--data-urlencode 'code=6eadf783c55a387b143773282b217682' \\
    +--data-urlencode'source=risk'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "url": "https://passport.biligame.com/x/passport-login/web/crossDomain?DedeUserID=645769214&DedeUserID__ckMd5=653409864bf9e200&Expires=1739265009&SESSDATA=11d97d2a,1739265009,928d7*82CjCKOhDRm5gROpSfgQ7B2axGVMWm5LuwNTkNDK2vjeGl7xvAsfsCINKmczXvO_Z45FsSVlJ1NHdlYlpSei1lYjdqUXRMaUpuRk9GbjVPS0psc3ZTcDFGRjhnNGhIbHRlZ0ZQRWQ1MUlUY2pnQ0lkTVRYNjlabmlUWGxHcVdkV3hrcElpa0ZEZEZRIIEC&bili_jct=3cdee5b84eb48d4f08bcfd57b58cf40b&gourl=https%3A%2F%2Fwww.bilibili.com%2F&first_domain=.bilibili.com",
    +    "refresh_token": "43de156ad241864640f9d9721656a682"
    +  }
    +}
    +
    查看响应头部示例:
    HTTP/2 200 OK
    +date: Thu, 15 Aug 2024 09:10:09 GMT
    +content-type: application/json; charset=utf-8
    +access-control-allow-credentials: true
    +access-control-allow-methods: GET,POST,PUT,DELETE
    +access-control-allow-origin: https://passport.bilibili.com
    +bili-status-code: 0
    +bili-trace-id: 175262647666bdc5
    +set-cookie: SESSDATA=xxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT; HttpOnly; Secure
    +set-cookie: bili_jct=xxxxxxxxxxxxxxxxxxxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +set-cookie: DedeUserID=114514191; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +set-cookie: DedeUserID__ckMd5=0123456789abcdef; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +set-cookie: sid=xxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +vary: Origin
    +x-bili-trace-id: 60f0305e2abc511d175262647666bdc5
    +access-control-allow-headers: Origin,No-Cache,X-Requested-With,If-Modified-Since,Pragma,Last-Modified,Cache-Control,Expires,Content-Type,Access-Control-Allow-Credentials,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Cache-Webcdn,x-bilibili-key-real-ip,x-backend-bili-real-ip,x-risk-header
    +cross-origin-resource-policy: cross-origin
    +access-control-expose-headers: X-Bili-Gaia-Vvoucher,X-Bili-Trace-Id
    +expires: Thu, 15 Aug 2024 09:10:08 GMT
    +cache-control: no-cache
    +x-cache-webcdn: BYPASS from blzone01
    +content-encoding: br
    +X-Firefox-Spdy: h2
    +
    `,110);function L(R,V){const a=l("RouterLink");return d(),c("div",null,[r,s("table",null,[u,s("tbody",null,[k,b,h,s("tr",null,[m,v,g,y,s("td",null,[n("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[n("申请 captcha 验证码")]),_:1}),n("接口处获取")])]),s("tr",null,[x,q,f,w,s("td",null,[n("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[n("申请 captcha 验证码")]),_:1}),n("接口处获取")])]),_,E,A,S])]),j,s("table",null,[D,s("tbody",null,[C,P,T,B,s("tr",null,[F,I,U,M,s("td",null,[n("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[n("申请 captcha 验证码")]),_:1}),n("接口处获取")])]),s("tr",null,[G,K,N,X,s("td",null,[n("在"),t(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[n("申请 captcha 验证码")]),_:1}),n("接口处获取")])]),Q,O])]),Y])}const J=o(i,[["render",L],["__file","password.html.vue"]]);export{J as default}; diff --git a/assets/password.html-dbfc4745.js b/assets/password.html-dbfc4745.js new file mode 100644 index 0000000000..3f3d83a2e1 --- /dev/null +++ b/assets/password.html-dbfc4745.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-5424b67c","path":"/docs/login/login_action/password.html","title":"密码登录","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"密码登录流程(伪代码)","slug":"密码登录流程-伪代码","link":"#密码登录流程-伪代码","children":[]},{"level":2,"title":"web端密码登录","slug":"web端密码登录","link":"#web端密码登录","children":[{"level":3,"title":"获取公钥&盐(web端)","slug":"获取公钥-盐-web端","link":"#获取公钥-盐-web端","children":[]},{"level":3,"title":"登录操作(web端)","slug":"登录操作-web端","link":"#登录操作-web端","children":[]}]},{"level":2,"title":"web端密码登录-旧版","slug":"web端密码登录-旧版","link":"#web端密码登录-旧版","children":[{"level":3,"title":"获取公钥&盐(web端-旧版)","slug":"获取公钥-盐-web端-旧版","link":"#获取公钥-盐-web端-旧版","children":[]},{"level":3,"title":"登录操作(web端-旧版)","slug":"登录操作-web端-旧版","link":"#登录操作-web端-旧版","children":[]}]},{"level":2,"title":"APP端密码登录","slug":"app端密码登录","link":"#app端密码登录","children":[{"level":3,"title":"获取公钥&盐(APP端)","slug":"获取公钥-盐-app端","link":"#获取公钥-盐-app端","children":[]},{"level":3,"title":"登录操作(APP端)","slug":"登录操作-app端","link":"#登录操作-app端","children":[]}]},{"level":2,"title":"登录密码的加密实例","slug":"登录密码的加密实例","link":"#登录密码的加密实例","children":[]},{"level":2,"title":"手机号验证","slug":"手机号验证","link":"#手机号验证","children":[{"level":3,"title":"简述","slug":"简述","link":"#简述","children":[]},{"level":3,"title":"获取 captcha","slug":"获取-captcha","link":"#获取-captcha","children":[]},{"level":3,"title":"发送验证码","slug":"发送验证码","link":"#发送验证码","children":[]},{"level":3,"title":"验证手机验证码","slug":"验证手机验证码","link":"#验证手机验证码","children":[]},{"level":3,"title":"交换 Cookie","slug":"交换-cookie","link":"#交换-cookie","children":[]}]}],"git":{},"filePathRelative":"docs/login/login_action/password.md"}');export{l as data}; diff --git a/assets/pbp.html-01c4795b.js b/assets/pbp.html-01c4795b.js new file mode 100644 index 0000000000..6347e51b66 --- /dev/null +++ b/assets/pbp.html-01c4795b.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-0919deac","path":"/docs/video/pbp.html","title":"高能进度条","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取弹幕趋势顶点列表","slug":"获取弹幕趋势顶点列表","link":"#获取弹幕趋势顶点列表","children":[]}],"git":{},"filePathRelative":"docs/video/pbp.md"}');export{e as data}; diff --git a/assets/pbp.html-725c7aae.js b/assets/pbp.html-725c7aae.js new file mode 100644 index 0000000000..83536aa72c --- /dev/null +++ b/assets/pbp.html-725c7aae.js @@ -0,0 +1,11 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},e=t(`

    高能进度条

    高能进度条反应了在时域上,单位时间内弹幕发送量的变化趋势

    并用曲线顶点表示在进度条上,实现可视化

    获取弹幕趋势顶点列表

    https://bvc.bilivideo.com/pbp/data

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    cidnum视频cid必要
    aidnum稿件avid非必要
    bvidnum稿件bvid非必要

    json回复:

    根对象:

    字段类型内容备注
    step_secnum采样间隔时间单位为秒
    由视频时长决定
    tagstrstr???作用尚不明确
    eventsobj数据本体
    debugstr调试信息json字串

    events对象:

    字段类型内容备注
    defaultarray顶点值列表

    events对象中的数组:

    类型内容备注
    0num顶点1
    nnum顶点(n+1)顶点个数由视频时长和采样时间决定
    ……num…………

    示例:

    获取视频cid=3724723的获取弹幕趋势顶点列表

    curl -G 'https://api.bilibili.com/pbp/data' \\
    +--data-urlencode 'cid=3724723'
    +
    查看响应示例:
    {
    +	"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}"
    +}
    +
    `,19),o=[e];function c(u,l){return s(),a("div",null,o)}const d=n(p,[["render",c],["__file","pbp.html.vue"]]);export{d as default}; diff --git a/assets/picture.html-c263cc7f.js b/assets/picture.html-c263cc7f.js new file mode 100644 index 0000000000..d69cce889b --- /dev/null +++ b/assets/picture.html-c263cc7f.js @@ -0,0 +1 @@ +import{_ as s,r as a,o as r,c as o,a as t,b as e,d as p,e as d}from"./app-3168cb19.js";const b={},i=d('

    图片格式化

    已知 *.hdslb.com archive.biliimg.com 等域名作用等效, 对于请求头 Referer 要求留空或在 .bilibili.com 等 B 站域名下

    对于以上域名的 /bfs/ 下的图片文件都可以使用以下可选格式化参数

    使用 @ 开始参数 (无论格式如何, 无论是否有参数, 通过计算 HASH 发现, 使用 @ 均会导致返回图片不同), 多个参数以 _ 分隔, 图片格式无需分隔且必须放在最后

    ',4),n={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/191",target:"_blank",rel:"noopener noreferrer"},f=d('

    注: jpg 即 jpeg, 二者等效. 网页端常用 AVIF, WebP.

    参数格式含义备注
    w${int}w图片最大限制宽度范围 [1, 9223372036854775807]
    h${int}h图片最大限制高度范围 [1, 9223372036854775807]
    s${int}s作用尚不明确不影响输出结果, 范围 [1, 9223372036854775807]
    e${int}e改变大小0: 保留比例取其小, 1: 保留比例取其大, 2: 不保留原比例
    p${int}p缩放倍数默认100, 范围 [1, 1000]
    o${int}o作用尚不明确不影响输出结果 范围 [0, 1]
    q${int}q图片质量百分比仅限webp/jpeg/avif
    c${int}c裁切图片(如果宽高允许)0: 不裁切但会修改图片, 1: 上传时的预设规则(若无则右下), 2: 左上, 3: 右上
    f${int}f作用尚不明确[0, 1]: 不改变图片, 2: 会改变图片
    progressiveprogressive图片编码方式仅限 jpeg(无: baseline, 有: progressive)/png(无:non-interlaced, 有: interlaced)
    !!${str}加载来源web-home-carousel-cover, header, web-dynamic, web-avatar-space-header, ...
    ..${str}图片格式仅限 png/jpeg/webp/avif/avg_color

    示例:

    查看示例:

    原始图片

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg

    高度限制为100

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100h

    宽度限制为100

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100w

    转换格式为webp

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.webp

    转换为webp图片质量为1%

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp

    avg_color格式说明

    当图片格式化输出格式为avg_color

    *.hdslb.com/bfs/*/*.*@*.avg_color

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    RGBstr平均颜色值HEX

    示例:

    获取 https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg 的平均颜色值

    curl 'https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.avg_color'\n
    查看响应示例:
    {\n    "RGB": "#7d6f6c"\n}\n
    ',15);function l(h,g){const c=a("ExternalLinkIcon");return r(),o("div",null,[i,t("p",null,[e("参见: "),t("a",n,[e("#191"),p(c)])]),f])}const v=s(b,[["render",l],["__file","picture.html.vue"]]);export{v as default}; diff --git a/assets/picture.html-f91aec82.js b/assets/picture.html-f91aec82.js new file mode 100644 index 0000000000..83797ad155 --- /dev/null +++ b/assets/picture.html-f91aec82.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-673bee43","path":"/docs/misc/picture.html","title":"图片格式化","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"avg_color格式说明","slug":"avg-color格式说明","link":"#avg-color格式说明","children":[]}],"git":{},"filePathRelative":"docs/misc/picture.md"}');export{e as data}; diff --git a/assets/player.html-5366c33c.js b/assets/player.html-5366c33c.js new file mode 100644 index 0000000000..bdcc369ca4 --- /dev/null +++ b/assets/player.html-5366c33c.js @@ -0,0 +1,68 @@ +import{_ as l,r as i,o,c as u,a as t,b as d,d as e,w as a,e as n}from"./app-3168cb19.js";const r={},c=n('

    播放器

    web 播放器信息

    web 播放器的信息接口,提供正常播放需要的元数据,包括:智能防挡弹幕、字幕、章节看点等。

    https://api.bilibili.com/x/player/wbi/v2

    请求方式:GET

    url 参数:

    参数名类型内容必要性备注
    aidnum稿件 avid必要 (可选)aid 与 bvid 任选
    bvidstr稿件 bvid必要 (可选)aid 与 bvid 任选
    cidnum稿件 cid必要
    w_ridstrWBI 签名不必要
    wtsnum当前 unix 时间戳不必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    aidnum视频 aid
    bvidstr视频 bvid
    cidnum视频 cid
    dm_maskobjwebmask 信息(如果没有这一项,说明这个视频没有防挡功能)
    subtitleobj字幕信息(需要登录,不登录此项内容为 []
    view_pointsarray章节看点信息
    其他...主要是观看记录、使用者等级权限、背景音乐等信息

    dm_mask对象(如果有):

    字段类型内容备注
    cidnum视频 cid
    platnum未知
    fpsnumwebmask 取样 fps
    timenum未知
    mask_urlstrwebmask 资源 url
    ',14),b=n(`

    subtitle对象:

    字段类型内容备注
    allow_submitbooltrue
    lanstr""
    lan_docstr""
    subtitlesarray不登录为 []

    subtitles 数组内的元素:

    字段类型内容备注
    ai_statusnum
    ai_typenum
    idnum
    id_strstr和 id 不一样
    is_lockbool
    lanstr语言类型英文字母缩写
    lan_docstr语言类型中文名称
    subtitle_urlstr资源 url 地址
    typenum0

    view_point 数组内的元素:

    字段类型内容备注
    contentnum章节名
    fromnum
    tonum
    typenum
    imgUrlstr图片资源地址
    logoUrlstr""

    示例:

    curl -G "https://api.bilibili.com/x/player/wbi/v2?aid=515345690&cid=825851971"
    +
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "aid": 515345690,
    +        "bvid": "BV1Fg411D7Jy",
    +        ... // 省略
    +        "dm_mask": {
    +            "cid": 825851971,
    +            "plat": 0,
    +            "fps": 30,
    +            "time": 0,
    +            "mask_url": "//upos-sz-staticcos-cmask.bilivideo.com/cmaskboss/825851971_30_0.webmask?trid=219266863a1442baa05086b4285ba923B&orderid=0,1&logo=00000000"
    +        },
    +        "view_points": [
    +            {
    +                "type": 2,
    +                "from": 0,
    +                "to": 27,
    +                "content": "狗啃的",
    +                "imgUrl": "http://i0.hdslb.com/bfs/vchapter/825851971_0.jpg",
    +                "logoUrl": ""
    +            },
    +            {
    +                "type": 2,
    +                "from": 27,
    +                "to": 63,
    +                "content": "椒牌泡菜",
    +                "imgUrl": "http://i0.hdslb.com/bfs/vchapter/825851971_27.jpg",
    +                "logoUrl": ""
    +            }, ... // 省略
    +        ],
    +        "subtitle": {
    +            "allow_submit": true,
    +            "lan": "",
    +            "lan_doc": "",
    +            "subtitles": [], // 未登录,下面是登录的版本
    +            "subtitles":[
    +                {
    +                    "id": 1042985852759993300,
    +                    "lan": "ai-zh",
    +                    "lan_doc": "中文(自动生成)",
    +                    "is_lock": false,
    +                    "subtitle_url": "//aisubtitle.hdslb.com/bfs/ai_subtitle/prod/5153456908258519712094280c7c2884b77929bab82f64530f?auth_key=1714795727-a8eb254b60bc4a73bc8662da51005340-0-1c305894e48e959979b163636461fb8f",
    +                    "type": 1,
    +                    "id_str": "1042985852759993344",
    +                    "ai_type": 0,
    +                    "ai_status": 2
    +                }
    +            ]
    +        }
    +    }
    +}
    +

    播放反馈

    https://app.bilibili.com/x/resource/laser2

    请求方式: POST

    注: 该接口不传 Cookie

    URL参数:

    `,14),p=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),v=t("tr",null,[t("td",null,"mid"),t("td",null,"num"),t("td",null,"当前用户 mid"),t("td",null,"不必要"),t("td",null,"未登录为空")],-1),m=t("tr",null,[t("td",null,"buvid"),t("td",null,"str"),t("td",null,"BUVID (APP) 或 buvid3 (Web)"),t("td",null,"必要"),t("td",null,"可为任意非空字符串")],-1),h=t("tr",null,[t("td",null,"app_key"),t("td",null,"str"),t("td",null,"APP 密钥"),t("td",null,"必要"),t("td",null,[d("Web: web_player"),t("br"),d("可为任意非空字符串")])],-1),q=t("td",null,"url",-1),_=t("td",null,"str",-1),k=t("td",null,"日志 URL",-1),y=t("td",null,"非必要",-1),g=t("tr",null,[t("td",null,"task_type"),t("td",null,"num"),t("td",null,"任务类型"),t("td",null,"非必要"),t("td",null,[d("300: 播放卡顿"),t("br"),d("301: 进度条君无法调戏"),t("br"),d("354: 校园网无法访问"),t("br"),d("303: 弹幕无法显示"),t("br"),d("553: 跳过首尾时间有误"),t("br"),d("304: 出现浮窗广告"),t("br"),d("305: 无限小电视"),t("br"),d("302: 音画不同步"),t("br"),d("306: 黑屏"),t("br"),d("307: 其他")])],-1),f=n(`

    JSON回复:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    task_idnum任务 ID?

    示例:

    播放反馈无限小电视, 不登录, 不传文件, buvid 为 chenrui-in-icu

    curl -X POST "https://app.bilibili.com/x/resource/laser2" \\
    +--data-urlencode "buvid=chenrui-in-icu" \\
    +--data-urlencode "app_key=web_player" \\
    +--data-urlencode "task_type=305"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "task_id": 850448532
    +  }
    +}
    +
    `,8);function w(x,j){const s=i("RouterLink");return o(),u("div",null,[c,t("p",null,[d("解析 webmask 请看 "),e(s,{to:"/docs/danmaku/webmask.html"},{default:a(()=>[d("智能防挡弹幕")]),_:1})]),b,t("table",null,[p,t("tbody",null,[v,m,h,t("tr",null,[q,_,k,y,t("td",null,[d("从 "),e(s,{to:"/docs/creativecenter/upload.html#%E4%B8%8A%E4%BC%A0%E6%8E%A5%E5%8F%A3"},{default:a(()=>[d("上传接口")]),_:1}),d(" 得到的 upos 协议 URL")])]),g])]),f])}const B=l(r,[["render",w],["__file","player.html.vue"]]);export{B as default}; diff --git a/assets/player.html-cf523e40.js b/assets/player.html-cf523e40.js new file mode 100644 index 0000000000..2e6e2aa9e1 --- /dev/null +++ b/assets/player.html-cf523e40.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-17800a69","path":"/docs/video/player.html","title":"播放器","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"web 播放器信息","slug":"web-播放器信息","link":"#web-播放器信息","children":[]},{"level":2,"title":"播放反馈","slug":"播放反馈","link":"#播放反馈","children":[]}],"git":{},"filePathRelative":"docs/video/player.md"}');export{e as data}; diff --git a/assets/ploading-a19ded76.gif b/assets/ploading-a19ded76.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a8c97d0443b2b3f17ffa6b91ad8395c939bff2f GIT binary patch literal 4610 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 E3(>4PcK`qY literal 0 HcmV?d00001 diff --git a/assets/point_shop.html-40ba9a23.js b/assets/point_shop.html-40ba9a23.js new file mode 100644 index 0000000000..7e1a96bc14 --- /dev/null +++ b/assets/point_shop.html-40ba9a23.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-9dc00f84","path":"/docs/manga/point_shop.html","title":"积分商城","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取当前持有点数","slug":"获取当前持有点数","link":"#获取当前持有点数","children":[]},{"level":2,"title":"获取兑换奖品列表","slug":"获取兑换奖品列表","link":"#获取兑换奖品列表","children":[]},{"level":2,"title":"兑换物品","slug":"兑换物品","link":"#兑换物品","children":[]},{"level":2,"title":"获取兑换历史记录","slug":"获取兑换历史记录","link":"#获取兑换历史记录","children":[]},{"level":2,"title":"获取玩法说明","slug":"获取玩法说明","link":"#获取玩法说明","children":[]}],"git":{},"filePathRelative":"docs/manga/point_shop.md"}');export{l as data}; diff --git a/assets/point_shop.html-7a438cfd.js b/assets/point_shop.html-7a438cfd.js new file mode 100644 index 0000000000..ac88ec30e2 --- /dev/null +++ b/assets/point_shop.html-7a438cfd.js @@ -0,0 +1,208 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    积分商城

    :积分商城由web页面提供功能,地址为 https://manga.bilibili.com/eden/credits-exchange.html

    获取当前持有点数

    https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    pointstr点数不登录时为0

    示例:

    curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "point": "66666"
    +  }
    +}
    +

    获取兑换奖品列表

    https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct

    请求方式:POST

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataarray奖品列表

    data数组:

    类型内容备注
    0obj奖品1
    nobj奖品(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum物品id
    typenum物品类型0:商城相关
    3:限免券
    7:福利券
    titlestr物品名
    imagestr显示的图像福利券为空
    amountnum库存总量
    costnum兑换所需点数(原价)
    real_costnum兑换所需点数(现价)
    remain_amountnum库存剩余数
    comic_idnum相关漫画id
    limitsarray限定使用范围(漫画)限免券所适用的漫画
    discountnum(?)目前恒为0
    product_typenum物品类型1:限免券、福利券
    4:商城满99立减10元券、商城5元无门槛券
    5:商城5魔晶
    pendant_urlstr(?)
    pendant_expirenum(?)0:限免券、福利券
    7:商城满99立减10元券、商城5元无门槛券、商城5魔晶
    exchange_limitnum兑换次数限制
    address_deadlinestr(?)
    act_typenum(?)目前恒为0
    has_exchangedbool是否兑换过该物品
    main_coupon_deadlinestr兑换后使用截止时间
    deadlinestr兑换后使用截止时间
    pointstr(?)目前恒为0

    示例:

    curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct'
    +
    查看响应示例:
    {
    +  "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_idstr物品id必要
    product_numnum兑换个数必要
    pointnum物品所需点数必要现价(real_cost)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:兑换成功
    1:积分不足
    1:您点的太快了~
    2:库存不足
    3:product point mismatch(point填写错误)
    3:超过用户最大可兑换数量
    4:现在抢票的人太多啦,再点一下有机会优先上车喔 ε=ε=(ノ≧∇≦)ノ
    messagestr错误信息

    示例:

    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'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": ""
    +}
    +

    获取兑换历史记录

    https://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数( application/x-www-form-urlencoded 或 application/json):

    参数名类型内容必要性备注
    act_idnum固定值:90018必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    prizesobj兑换记录
    addrobj(?)

    data中的prizes对象:

    字段类型内容备注
    user_prize_idstr兑换id?
    prize_idnum兑换的物品id
    ctimestr兑换时间
    addrnull(?)
    deadlinestr过期时间
    typenum类型1:限免券、福利券
    8:商城5魔晶
    namestr物品名

    示例:

    curl 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList' \\
    +--data-urlencode 'act_id=90018' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    rulestr玩法说明

    示例:

    curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetExchangeRule'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "rule": "日常兑换说明:\\n1、赛季积分达到一定数量可兑换积分商城内相应的商品;\\n2、日常兑换奖品的刷新时间为每日中午12点,每天可兑换的奖品总数有限(具体可见商品页面展示),请尽快兑换。\\n3、兑换的福利券&限免卡奖品有效期详见兑换框内显示或卡券包内详情说明哦,请及时在有效期内使用。\\n4、赛季积分有效期为当前赛季时长(每期赛季时长详见福利中心页面倒计时显示),请及时在有效期内进行使用。\\n5、赛季积分可在福利中心完成特定任务获取,具体详情可至福利中心查看(部分活动也可获取赛季积分,可随时关注活动信息哦)。"
    +  }
    +}
    +
    `,66),e=[o];function r(l,c){return s(),a("div",null,e)}const i=n(p,[["render",r],["__file","point_shop.html.vue"]]);export{i as default}; diff --git a/assets/popular.html-2b3dbd59.js b/assets/popular.html-2b3dbd59.js new file mode 100644 index 0000000000..6c0f0444ce --- /dev/null +++ b/assets/popular.html-2b3dbd59.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-3c77c350","path":"/docs/video_ranking/popular.html","title":"热门视频","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取当前热门视频列表","slug":"获取当前热门视频列表","link":"#获取当前热门视频列表","children":[]},{"level":2,"title":"每周必看全部列表","slug":"每周必看全部列表","link":"#每周必看全部列表","children":[]},{"level":2,"title":"每周必看选期详细信息","slug":"每周必看选期详细信息","link":"#每周必看选期详细信息","children":[]}],"git":{},"filePathRelative":"docs/video_ranking/popular.md"}');export{l as data}; diff --git a/assets/popular.html-d45fd54b.js b/assets/popular.html-d45fd54b.js new file mode 100644 index 0000000000..353141ece0 --- /dev/null +++ b/assets/popular.html-d45fd54b.js @@ -0,0 +1,1120 @@ +import{_ as e,r as c,o as l,c as u,a as p,b as n,d as t,w as o,e as s}from"./app-3168cb19.js";const r={},i=s('

    热门视频

    获取当前热门视频列表

    https://api.bilibili.com/x/web-interface/popular

    请求方式:GET

    注: 当携带Cookie时返回的数据的排行是个性化的

    参数名类型内容必要性备注
    pnnum页码非必要默认为 1
    psnum每页项数非必要默认为 20

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray视频列表
    no_morebool是否有更多数据false:下页还有数据
    true:下页没有数据

    data中的list数组:

    类型内容备注
    0obj视频1
    nobj视频(n+1)
    ……obj…………

    data中的list数组中的对象:

    ',14),k=s(`

    示例:

    获取当前热门视频列表(不携带 Cookie)

    curl -G 'https://api.bilibili.com/x/web-interface/popular' \\
    +--data-urlencode 'ps=2' \\
    +--data-urlencode 'pn=1' \\
    +-A 'qwq'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "aid": 1356452135,
    +        "videos": 1,
    +        "tid": 250,
    +        "tname": "出行",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/5c3a47b7189caa84965c03b08007635a3c2e0405.jpg",
    +        "title": "《抬您上泰山》",
    +        "pubdate": 1722060600,
    +        "ctime": 1722018603,
    +        "desc": "转型的第一次尝试\\n大家觉得还可以的话多多支持\\n有什么意见请一定要提!\\n谢谢观众老师们!!!",
    +        "state": 0,
    +        "duration": 138,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 1339110285,
    +          "name": "赵峰山西四人行",
    +          "face": "https://i0.hdslb.com/bfs/face/6dfc87876cc8e6a0b81f113a5b3c1b473f48cb7a.jpg"
    +        },
    +        "stat": {
    +          "aid": 1356452135,
    +          "view": 2465053,
    +          "danmaku": 8467,
    +          "reply": 4426,
    +          "favorite": 46567,
    +          "coin": 168267,
    +          "share": 23180,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 403250,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2465053
    +        },
    +        "dynamic": "更新了xdm 转型之作大家多多支持",
    +        "cid": 1628605145,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1tz421i7zb",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n240727sa1qmofe0nqz3he18b11gotmv_firsti.jpg",
    +        "pub_location": "山东",
    +        "cover43": "",
    +        "bvid": "BV1tz421i7zb",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": {
    +          "content": "百万播放",
    +          "corner_mark": 0
    +        }
    +      },
    +      {
    +        "aid": 1906472398,
    +        "videos": 1,
    +        "tid": 221,
    +        "tname": "野生动物",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/1aecafe48c53f8033bda883aad4e18f6a737e6b3.jpg",
    +        "title": "杭州居然有科普展贩卖保护动物???",
    +        "pubdate": 1722176718,
    +        "ctime": 1722176718,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 278,
    +        "mission_id": 4016856,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "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": 14309659,
    +          "name": "凛某人",
    +          "face": "https://i1.hdslb.com/bfs/face/53a4bed97980363ed9cf5802d811c41a608f36ee.jpg"
    +        },
    +        "stat": {
    +          "aid": 1906472398,
    +          "view": 406829,
    +          "danmaku": 786,
    +          "reply": 2203,
    +          "favorite": 5698,
    +          "coin": 20079,
    +          "share": 2052,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 81327,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 406829
    +        },
    +        "dynamic": "",
    +        "cid": 1630483865,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1MU411S7Cc",
    +        "up_from_v2": 9,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n240728sa1eky6tk8i78rs1xtdt7pgyd_firsti.jpg",
    +        "pub_location": "浙江",
    +        "cover43": "",
    +        "bvid": "BV1MU411S7Cc",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": {
    +          "content": "6万点赞",
    +          "corner_mark": 0
    +        }
    +      }
    +    ],
    +    "no_more": false
    +  }
    +}
    +

    每周必看全部列表

    https://api.bilibili.com/x/web-interface/popular/series/list

    请求方式: GET

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -352: 请求被风控
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray全部信息列表套了个娃

    data对象中list数组:

    类型内容备注
    0obj第 n+1 期
    1obj第 n 期
    2obj第 n-1 期
    ……obj…………
    nobj第 1 期

    list数组中的对象:

    字段类型内容备注
    numbernum期数
    subjectstr主题
    statusnum状态2: 已结束
    namestr名称yyyy第n期 MM.dd - MM.dd

    示例:

    curl -G 'https://api.bilibili.com/x/web-interface/popular/series/list' \\
    +-A ''
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "number": 279,
    +        "subject": "身残志坚钻石大盗",
    +        "status": 2,
    +        "name": "2024第279期 07.19 - 07.25"
    +      },
    +      {
    +        "number": 278,
    +        "subject": "中国诸神最强简史",
    +        "status": 2,
    +        "name": "2024第278期 07.12 - 07.18"
    +      },
    +      {
    +        "number": 277,
    +        "subject": "不用脚的射门大赛",
    +        "status": 2,
    +        "name": "2024第277期 07.05 - 07.11"
    +      },
    +      {
    +        "number": 276,
    +        "subject": "火柴人VS几何",
    +        "status": 2,
    +        "name": "2024第276期 06.28 - 07.04"
    +      },
    +      {
    +        "number": 275,
    +        "subject": "重磅自制三体动画",
    +        "status": 2,
    +        "name": "2024第275期 06.21 - 06.27"
    +      },
    +      /// ...
    +      {
    +        "number": 42,
    +        "subject": "【英雄联盟】——战士",
    +        "status": 2,
    +        "name": "2020第42期 01.03 - 01.09"
    +      },
    +      {
    +        "number": 41,
    +        "subject": "2019年度鬼畜回顾",
    +        "status": 2,
    +        "name": "2019第41期 12.27 - 01.02"
    +      },
    +      // ...
    +      {
    +        "number": 2,
    +        "subject": "噬元兽大战哥斯拉",
    +        "status": 2,
    +        "name": "2019第2期 03.29 - 04.04"
    +      },
    +      {
    +        "number": 1,
    +        "subject": "神仙爱情",
    +        "status": 2,
    +        "name": "2019第1期 03.22 - 03.28"
    +      }
    +    ]
    +  }
    +}
    +

    每周必看选期详细信息

    https://api.bilibili.com/x/web-interface/popular/series/one

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    numbernum期数必要默认为 1

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -352: 请求被风控
    -404: 啥都木有
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    configobj选期信息
    reminderstr提醒
    listarray选期视频列表

    data对象中的config对象:

    字段类型内容备注
    idnum选期ID
    typestr选期类型
    numbernum期数
    subjectstr主题
    stimenum开始时间
    etimenum结束时间
    statusnum状态2: 已结束
    namestr名称yyyy第n期 MM.dd - MM.dd
    labelstr标题
    hintstr提示
    colornum颜色?
    coverstr封面
    share_titlestr分享标题
    share_subtitlestr分享副标题
    media_idnum媒体ID?

    data对象中的list数组:

    类型内容备注
    0obj第 1 个视频
    1obj第 2 个视频
    ……obj…………
    nobj第 n 个视频

    list数组中的对象:

    `,34),d=s(`

    示例:

    查看小破站第 3 期每周必看详细信息

    curl -G 'https://api.bilibili.com/x/web-interface/popular/series/one' \\
    +--data-urlencode 'number=3'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "config": {
    +      "id": 3,
    +      "type": "weekly_selected",
    +      "number": 3,
    +      "subject": "人类首张黑洞照片",
    +      "stime": 1554393600,
    +      "etime": 1554998399,
    +      "status": 2,
    +      "name": "2019第3期 04.05 - 04.11",
    +      "label": "第3期(0412更新)",
    +      "hint": "本周热词:",
    +      "color": 2,
    +      "cover": "http://i0.hdslb.com/bfs/archive/c10fe5913a1e503bcd68db69158605df2bf54424.jpg",
    +      "share_title": "人类首张黑洞照片  | B站每周必看2019年第3期",
    +      "share_subtitle": "和B站小伙伴一起见证历史!黑洞到底长啥样?",
    +      "media_id": 448239988
    +    },
    +    "reminder": "每周五晚18:00更新",
    +    "list": [
    +      {
    +        "aid": 48918074,
    +        "videos": 1,
    +        "tid": 201,
    +        "tname": "科学科普",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/a2cbee9c1e2e854e161f1bddc04d657baf6e95f5.jpg",
    +        "title": "人类第一张黑洞照片,来了!",
    +        "pubdate": 1554904794,
    +        "ctime": 1554904794,
    +        "desc": "联合出品:中国科学技术协会、中国科学院计算机网络信息中心\\n制作:中国科普博览\\n科学审核:中国科学院国家天文台 苟利军\\n实习生沈慧慧、李哲欣对本视频亦有贡献",
    +        "state": 0,
    +        "duration": 89,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 407045223,
    +          "name": "二次元的中科院物理所",
    +          "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +        },
    +        "stat": {
    +          "aid": 48918074,
    +          "view": 1594796,
    +          "danmaku": 23255,
    +          "reply": 16022,
    +          "favorite": 23084,
    +          "coin": 26411,
    +          "share": 10095,
    +          "now_rank": 0,
    +          "his_rank": 7,
    +          "like": 62712,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1594796
    +        },
    +        "dynamic": "#趣味科普人文##科学##中科院#",
    +        "cid": 85668198,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Nb411M7r8",
    +        "cover43": "",
    +        "bvid": "BV1Nb411M7r8",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "和B站小伙伴一起见证历史!黑洞到底长啥样?错过直播的你还不快点进来。"
    +      },
    +      {
    +        "aid": 48678913,
    +        "videos": 1,
    +        "tid": 161,
    +        "tname": "手工",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/8cda8b937795081c5620b95a06670fd15ed5f768.jpg",
    +        "title": "破釜沉舟跑步机",
    +        "pubdate": 1554694435,
    +        "ctime": 1554694435,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 138,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 280793434,
    +          "name": "手工耿",
    +          "face": "http://i1.hdslb.com/bfs/face/b8a75ae7d2a0e2af1d36ca9f1084d850eebb28e3.jpg"
    +        },
    +        "stat": {
    +          "aid": 48678913,
    +          "view": 12760040,
    +          "danmaku": 20334,
    +          "reply": 14432,
    +          "favorite": 58473,
    +          "coin": 179999,
    +          "share": 146849,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 436988,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 12760040
    +        },
    +        "dynamic": "#手工##创意##自制#",
    +        "cid": 85243779,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1eb411u7Pz",
    +        "up_from_v2": 9,
    +        "cover43": "",
    +        "bvid": "BV1eb411u7Pz",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "脑洞发明家手工耿最新力作!如果你恨一个人,就送他这台破釜沉舟跑步机吧。"
    +      },
    +      {
    +        "aid": 48316018,
    +        "videos": 1,
    +        "tid": 22,
    +        "tname": "鬼畜调教",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/90a5f41351f7d8622f5c5e0aa163933e05830bd3.jpg",
    +        "title": "【名师rap】游戏不打不成才",
    +        "pubdate": 1554431709,
    +        "ctime": 1554415633,
    +        "desc": "欢迎收看由各位名师带来的精彩育儿饶舌讲座,教育孩子最科学的方法就是督促孩子打游戏,你学到了吗?\\n如果想学习更多相关课程,可以收看名师讲堂·下一讲:如何让孩子爱上♂学习?(av2274779)",
    +        "state": 0,
    +        "duration": 156,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 375375,
    +          "name": "伊丽莎白鼠",
    +          "face": "https://i0.hdslb.com/bfs/face/6c36ec15f6d7ddd9bdb558511521bd0256779e1c.jpg"
    +        },
    +        "stat": {
    +          "aid": 48316018,
    +          "view": 8560735,
    +          "danmaku": 25131,
    +          "reply": 24307,
    +          "favorite": 206726,
    +          "coin": 382539,
    +          "share": 88084,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 476744,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 8560735
    +        },
    +        "dynamic": "没想到吧,时隔4年的名师rap居然有续作!快点赞投币收藏,素质3连是我更新的最大动力!",
    +        "cid": 84631475,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Yb411g7Mu",
    +        "cover43": "",
    +        "bvid": "BV1Yb411g7Mu",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "爷爷,你关注的鬼畜UP主终终终终于更新啦!还是熟悉的全明星阵容,还是曾经的味道。"
    +      },
    +      {
    +        "aid": 48823532,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/7cb8e384d34946564453a22131c50aa4eb308dfc.jpg",
    +        "title": "随机理发!太丢人了!!早知道这样我还不如女装!",
    +        "pubdate": 1554888608,
    +        "ctime": 1554817240,
    +        "desc": "太羞耻了!不能我一个受罪!收藏过2W就抽一个员工理跟我一样的发型!\\n发现生活,改变自己\\n体验世界的点点滴滴!\\nav48289549 和UP主以物换物,最后竟然换到了中国boy的...!\\nav48120567 赤身拳击!干翻拳击教练需要几拳?\\nav47677645 精子捐献是怎样的体验?\\nav47479428 名媛养成指南!\\nav47006491 和“少爷”up主互换身份\\nav46265017 200万粉UP主在上海开公司到底要花多少钱?\\nav45061698 第一次去夜店是怎样的体验?",
    +        "state": 0,
    +        "duration": 347,
    +        "mission_id": 11230,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 808171,
    +          "name": "吃素的狮子",
    +          "face": "https://i1.hdslb.com/bfs/face/dd773c9572494338ada15aa10262a510f161baf1.jpg"
    +        },
    +        "stat": {
    +          "aid": 48823532,
    +          "view": 1523181,
    +          "danmaku": 13043,
    +          "reply": 4401,
    +          "favorite": 37835,
    +          "coin": 186720,
    +          "share": 5163,
    +          "now_rank": 0,
    +          "his_rank": 3,
    +          "like": 161974,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1523181
    +        },
    +        "dynamic": "太羞耻了!不能我一个受罪!收藏过2W就抽一个员工理跟我一样的发型!",
    +        "cid": 85496423,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1ib411T7bt",
    +        "cover43": "",
    +        "bvid": "BV1ib411T7bt",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "男人就要对自己狠一点,狮子的这个新发型说实话还有点小帅呢!"
    +      },
    +      {
    +        "aid": 48880868,
    +        "videos": 1,
    +        "tid": 76,
    +        "tname": "美食制作",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/8fd09f285109fc105a3427745329b0bdb055cc6d.jpg",
    +        "title": "这个水果长得真漂亮,不如做成【水果奶酪三明治】吧~嘻嘻",
    +        "pubdate": 1554897659,
    +        "ctime": 1554880873,
    +        "desc": "记得挑松软的吐司面包,吃起来是有点像甜点的口感!\\nBGM:野餐面包 - Happy by Mikki Aglaganov",
    +        "state": 0,
    +        "duration": 192,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 17409016,
    +          "name": "爱做饭的芋头SAMA",
    +          "face": "http://i1.hdslb.com/bfs/face/2182d21ff5ae520f392f55b59022bc17f43b4943.jpg"
    +        },
    +        "stat": {
    +          "aid": 48880868,
    +          "view": 2231330,
    +          "danmaku": 3383,
    +          "reply": 3870,
    +          "favorite": 52784,
    +          "coin": 102138,
    +          "share": 9293,
    +          "now_rank": 0,
    +          "his_rank": 8,
    +          "like": 147138,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2231330
    +        },
    +        "dynamic": "还有什么能比美丽的三明治更让人心情大好吗?emm…吃掉它!",
    +        "cid": 85602013,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV19b411T7a7",
    +        "cover43": "",
    +        "bvid": "BV19b411T7a7",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "这世上还有什么比新鲜的水果三明治更美好的吗?那就是一颗善良的心。"
    +      },
    +      {
    +        "aid": 48220814,
    +        "videos": 1,
    +        "tid": 183,
    +        "tname": "影视剪辑",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/d4fc8471e6fe3bcdf1de4df43fabffaad74646b4.jpg",
    +        "title": "【七代小丑/踩点/混剪/高燃】前方高能!欢乐与惊悚的踩点视觉盛宴!希斯莱杰诞辰40周年纪念。",
    +        "pubdate": 1554368448,
    +        "ctime": 1554341020,
    +        "desc": "BGM:《Lock Me Up》 - The Cab\\n            《Holocene》 - Bon Iver \\n推荐耳机食用,从筹备到剪辑完成断断续续花了一个月,希望我的用心剪辑可以被更多的人看到。\\n一直都想做个DC小丑群像剪辑,把所有我喜欢的银幕小丑都剪到一起,\\n届时烦请各位小伙伴理性发言。不要在评论区和弹幕引战、人身攻击和散布演员谣言\\n谢谢配合!\\n要是喜欢这期的话,求点赞、收藏和硬币。\\n做视频实属不易,小伙伴们的支持与鼓励是我继续做视频的动力!",
    +        "state": 0,
    +        "duration": 343,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 27259842,
    +          "name": "迪亚瓦尔Diaval",
    +          "face": "https://i0.hdslb.com/bfs/face/ade2291e23d48050c1617dbaf3583b98d46be0dc.jpg"
    +        },
    +        "stat": {
    +          "aid": 48220814,
    +          "view": 23693530,
    +          "danmaku": 45208,
    +          "reply": 10213,
    +          "favorite": 833645,
    +          "coin": 789760,
    +          "share": 136694,
    +          "now_rank": 0,
    +          "his_rank": 3,
    +          "like": 1085389,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 23693530
    +        },
    +        "dynamic": "#希斯莱杰##自杀小队##小丑#",
    +        "cid": 517786039,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "season_id": 3223,
    +        "short_link_v2": "https://b23.tv/BV1Jb411W7dH",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220227qn1sayugogts51k3m0m2cihw0_firsti.jpg",
    +        "cover43": "",
    +        "bvid": "BV1Jb411W7dH",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "感谢希斯·莱杰为我们带来如此经典的银幕形象,愿你安好。"
    +      },
    +      {
    +        "aid": 48956942,
    +        "videos": 1,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/564e938ae040831fa1620981b2e6e33a51b72ffd.jpg",
    +        "title": "【敖厂长】沙雕游戏主角死法超级华丽",
    +        "pubdate": 1554957465,
    +        "ctime": 1554957466,
    +        "desc": "500万粉丝达成 收藏充电硬币庆祝一波!",
    +        "state": 0,
    +        "duration": 785,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 122879,
    +          "name": "敖厂长",
    +          "face": "https://i2.hdslb.com/bfs/face/71d85b84b0b2aa59009cd6af09b53aac309c3461.jpg"
    +        },
    +        "stat": {
    +          "aid": 48956942,
    +          "view": 5272672,
    +          "danmaku": 28520,
    +          "reply": 9614,
    +          "favorite": 51080,
    +          "coin": 234581,
    +          "share": 7342,
    +          "now_rank": 0,
    +          "his_rank": 1,
    +          "like": 238148,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 5272672
    +        },
    +        "dynamic": "#敖厂长#新视频庆祝500万粉丝达成!沙雕游戏主角死法超级华丽!",
    +        "cid": 85738601,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1bb411M7G2",
    +        "cover43": "",
    +        "bvid": "BV1bb411M7G2",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "恶意满满的摩托赛车游戏,制作组的重点完全放在了花式死法上啊喂→_→"
    +      },
    +      {
    +        "aid": 48949609,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/970b7377cddc309b1793c0d7daace2a2a86e42a3.jpg",
    +        "title": "探秘印度医药,真的有牛尿做的药吗?",
    +        "pubdate": 1554951398,
    +        "ctime": 1554951398,
    +        "desc": "印度真有牛尿做的药吗?喝一口是什么味道?",
    +        "state": 0,
    +        "duration": 375,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 176037767,
    +          "name": "我是郭杰瑞",
    +          "face": "http://i2.hdslb.com/bfs/face/6182455e4d61159121c223ddc7a3a381f2d4d056.jpg"
    +        },
    +        "stat": {
    +          "aid": 48949609,
    +          "view": 1517839,
    +          "danmaku": 13115,
    +          "reply": 3538,
    +          "favorite": 3016,
    +          "coin": 16410,
    +          "share": 2337,
    +          "now_rank": 0,
    +          "his_rank": 16,
    +          "like": 46687,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1517839
    +        },
    +        "dynamic": "印度有牛尿做的药吗?我不是药神!",
    +        "cid": 85723703,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Lb411M7B9",
    +        "cover43": "",
    +        "bvid": "BV1Lb411M7B9",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "继续跟随郭杰瑞走进印度。什么?你居然敢把印度神药当水喝w(゚Д゚)w"
    +      },
    +      {
    +        "aid": 48227749,
    +        "videos": 1,
    +        "tid": 222,
    +        "tname": "小宠异宠",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/f42431037088b5ddceae79ca62df24cc78575eff.jpg",
    +        "title": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪",
    +        "pubdate": 1554375629,
    +        "ctime": 1554375634,
    +        "desc": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪",
    +        "state": 0,
    +        "duration": 151,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 250858633,
    +          "name": "华农兄弟",
    +          "face": "https://i1.hdslb.com/bfs/face/bac504655c69ab937b0be4557e27535f794b0c66.jpg"
    +        },
    +        "stat": {
    +          "aid": 48227749,
    +          "view": 1743011,
    +          "danmaku": 6544,
    +          "reply": 3757,
    +          "favorite": 2755,
    +          "coin": 17290,
    +          "share": 2027,
    +          "now_rank": 0,
    +          "his_rank": 10,
    +          "like": 57675,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1743011
    +        },
    +        "dynamic": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪",
    +        "cid": 84476924,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1pb411W7iY",
    +        "pub_location": "江西",
    +        "cover43": "",
    +        "bvid": "BV1pb411W7iY",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "刚出生小香猪超可爱啊,好想抱一只回家,再过几个月就可以....( ‵▽′)ψ"
    +      },
    +      {
    +        "aid": 48882824,
    +        "videos": 1,
    +        "tid": 182,
    +        "tname": "影视杂谈",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/51e06a15b1a02478d7106931cd8bddda8c2c67ab.jpg",
    +        "title": "电影最TOP 123: 难以超越的奇幻史诗巨制《指环王》三部曲",
    +        "pubdate": 1554899413,
    +        "ctime": 1554899415,
    +        "desc": "本期咱来聊聊彼得•杰克逊执导的魔幻史诗巨著《指环王》三部曲。",
    +        "state": 0,
    +        "duration": 4632,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 17819768,
    +          "name": "电影最TOP",
    +          "face": "http://i2.hdslb.com/bfs/face/6b2ade215ea603b495648875c925172a863d16d4.jpg"
    +        },
    +        "stat": {
    +          "aid": 48882824,
    +          "view": 3771761,
    +          "danmaku": 56684,
    +          "reply": 6959,
    +          "favorite": 73050,
    +          "coin": 202173,
    +          "share": 12895,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 164801,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3771761
    +        },
    +        "dynamic": "#魔戒##指环王##史诗#",
    +        "cid": 85605834,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1db411T7He",
    +        "cover43": "",
    +        "bvid": "BV1db411T7He",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "一小时重温影史经典《指环王》系列。不论再看多少遍,感动与震撼依旧。"
    +      },
    +      {
    +        "aid": 48473798,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c0eff150f8ba32fefdb14cf8de4e39a0a4982640.jpg",
    +        "title": "和日本妹子结婚要花多少钱?日本的收入情况up听到后惊呆了。。。",
    +        "pubdate": 1554536915,
    +        "ctime": 1554536915,
    +        "desc": "记得关注我豆奶子呀~谢谢您嘞!\\n→av40409086 日本妹子为什么这么瘦\\n→av42806782 日本妹子为啥冬天光腿\\n→av43240232 日本妹子吃超难吃中国菜的反应\\n→av40892710 日本妹子为啥牙齿不太好看\\n→av42064376 日本妹子为啥胸大\\n→av41491192 片尾曲 日语版念诗之王\\n有什么疑问请弹幕留言!豆奶为您倾情解惑!",
    +        "state": 0,
    +        "duration": 350,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 6574487,
    +          "name": "纳豆奶奶",
    +          "face": "https://i2.hdslb.com/bfs/face/0a8638b34173708fcf979bd1166fbb7fdb1110a4.jpg"
    +        },
    +        "stat": {
    +          "aid": 48473798,
    +          "view": 4564805,
    +          "danmaku": 21747,
    +          "reply": 9727,
    +          "favorite": 44873,
    +          "coin": 175160,
    +          "share": 7102,
    +          "now_rank": 0,
    +          "his_rank": 6,
    +          "like": 256532,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 4564805
    +        },
    +        "dynamic": "#日本文化##科普##吐槽#身边的男性友人看完这期表示非常喜欢,女性朋友更是爱不释手!结婚?日本收入?这些你最关心的问题都在这里!",
    +        "cid": 84891041,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1pb411373L",
    +        "cover43": "",
    +        "bvid": "BV1pb411373L",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "日本妹子坦露择偶标准,和你想象的一样吗?不过这和我又有什么关系呢_(:з」∠)_"
    +      },
    +      {
    +        "aid": 48138432,
    +        "videos": 1,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/89baecb3461b6bfaa4a969c812282161a27ebc0d.jpg",
    +        "title": "【老番茄】史上最骚杀手(第三集)",
    +        "pubdate": 1554436829,
    +        "ctime": 1554258253,
    +        "desc": "第一集:av45629276 ; 第二集:av46295706\\n如果收藏到4w会继续做下去的!\\n这次请了好朋友Chimera君配音!没看过他视频的一定要去看一看!超级厉害!我特别崇拜的UP主!\\nP.S.视频中对原剧情进行了部分改编。如:给女公关写情书的并非里科·戴尔加多,而是他的弟弟赫克托·戴尔加多。为了简化剧情,在视频中说成是里科所写。",
    +        "state": 0,
    +        "duration": 624,
    +        "mission_id": 11225,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "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": 48138432,
    +          "view": 19624690,
    +          "danmaku": 58471,
    +          "reply": 8593,
    +          "favorite": 453185,
    +          "coin": 1213654,
    +          "share": 26329,
    +          "now_rank": 0,
    +          "his_rank": 1,
    +          "like": 1232305,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 19624690
    +        },
    +        "dynamic": "这个杀手真的太骚了!",
    +        "cid": 84597412,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "season_id": 14014,
    +        "short_link_v2": "https://b23.tv/BV1Nb411W7uN",
    +        "cover43": "",
    +        "bvid": "BV1Nb411W7uN",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "职业杀手(雾)大光头这次来到了哥伦比亚村庄,他会以怎样奇葩的方式达成目标呢?"
    +      },
    +      {
    +        "aid": 48871442,
    +        "videos": 1,
    +        "tid": 182,
    +        "tname": "影视杂谈",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c917f4d21543461dcffe0230e0614abef4b54483.jpg",
    +        "title": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!",
    +        "pubdate": 1554890417,
    +        "ctime": 1554890426,
    +        "desc": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!",
    +        "state": 0,
    +        "duration": 435,
    +        "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": 7487399,
    +          "name": "努力的Lorre",
    +          "face": "http://i2.hdslb.com/bfs/face/c63ebeed7d49967e2348ef953b539f8de90c5140.jpg"
    +        },
    +        "stat": {
    +          "aid": 48871442,
    +          "view": 1694250,
    +          "danmaku": 2799,
    +          "reply": 1588,
    +          "favorite": 7199,
    +          "coin": 15416,
    +          "share": 1089,
    +          "now_rank": 0,
    +          "his_rank": 18,
    +          "like": 49430,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1694250
    +        },
    +        "dynamic": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!",
    +        "cid": 85584748,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1072,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1wb411M73A",
    +        "cover43": "",
    +        "bvid": "BV1wb411M73A",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "看完《沙赞》是不是还有些意犹未尽?来了解一下DC漫画中的真反派吧。"
    +      }
    +    ]
    +  }
    +}
    +
    `,4);function v(q,b){const a=c("RouterLink");return l(),u("div",null,[i,p("p",null,[n("基本同"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AFweb%E7%AB%AF"},{default:o(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的data对象")]),k,p("p",null,[n("基本同"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AFweb%E7%AB%AF"},{default:o(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的data对象")]),d])}const y=e(r,[["render",v],["__file","popular.html.vue"]]);export{y as default}; diff --git a/assets/precious_videos.html-5631067f.js b/assets/precious_videos.html-5631067f.js new file mode 100644 index 0000000000..c8e3dc9be2 --- /dev/null +++ b/assets/precious_videos.html-5631067f.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-7d2bb9de","path":"/docs/video_ranking/precious_videos.html","title":"入站必刷视频","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取入站必刷视频","slug":"获取入站必刷视频","link":"#获取入站必刷视频","children":[]}],"git":{},"filePathRelative":"docs/video_ranking/precious_videos.md"}');export{e as data}; diff --git a/assets/precious_videos.html-9a30c052.js b/assets/precious_videos.html-9a30c052.js new file mode 100644 index 0000000000..d563a5f088 --- /dev/null +++ b/assets/precious_videos.html-9a30c052.js @@ -0,0 +1,84 @@ +import{_ as n,r as d,o as u,c as s,a as o,b as t,d as a,w as l,e as i}from"./app-3168cb19.js";const v={},r=i('

    入站必刷视频

    获取入站必刷视频

    https://api.bilibili.com/x/web-interface/popular/precious

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray视频列表

    data 字段:

    字段类型内容备注
    titlestr标题入站必刷
    media_idnummedia_id
    explainstr解释(概括)我不允许还有人没看过这??个宝藏视频!
    listarray列表

    data中的list数组中的对象:

    ',10),c=i(`

    示例:

    curl -G 'https://api.bilibili.com/x/web-interface/popular/precious'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "title": "入站必刷",
    +    "media_id": 496307088,
    +    "explain": "我不允许还有人没看过这98个宝藏视频!",
    +    "list": [
    +      // ...
    +      {
    +        "aid": 706,
    +        "videos": 1,
    +        "tid": 47,
    +        "tname": "同人·手书",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/753453a776fca838165a52c7511e8557857b61ea.jpg",
    +        "title": "【東方】Bad Apple!! PV【影絵】",
    +        "pubdate": 1256995125,
    +        "ctime": 1497344829,
    +        "desc": "sm8628149 2011/9/25追记:大家如果看到空耳字幕请果断举报,净化弹幕环境,你我有责,感谢。",
    +        "state": 0,
    +        "duration": 219,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 0,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 37,
    +          "name": "折射",
    +          "face": "http://i1.hdslb.com/bfs/face/49d19d3d9cc4b3938128cacd650859ac612156a1.gif"
    +        },
    +        "stat": {
    +          "aid": 706,
    +          "view": 11329388,
    +          "danmaku": 82247,
    +          "reply": 544932,
    +          "favorite": 502984,
    +          "coin": 195079,
    +          "share": 95877,
    +          "now_rank": 0,
    +          "his_rank": 88,
    +          "like": 480388,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 11329388
    +        },
    +        "dynamic": "",
    +        "cid": 3724723,
    +        "dimension": {
    +          "width": 480,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "season_id": 879555,
    +        "short_link_v2": "https://b23.tv/BV1xx411c79H",
    +        "cover43": "",
    +        "bvid": "BV1xx411c79H",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "achievement": "东方project标志性视频"
    +      },
    +      // ...
    +    ]
    +  }
    +}
    +
    `,3);function q(m,b){const e=d("RouterLink");return u(),s("div",null,[r,o("p",null,[t("基本同"),a(e,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AFweb%E7%AB%AF"},{default:l(()=>[t("获取视频详细信息(web端)")]),_:1}),t("中的data对象")]),c])}const h=n(v,[["render",q],["__file","precious_videos.html.vue"]]);export{h as default}; diff --git a/assets/private_msg.html-009e81c7.js b/assets/private_msg.html-009e81c7.js new file mode 100644 index 0000000000..7715c997f2 --- /dev/null +++ b/assets/private_msg.html-009e81c7.js @@ -0,0 +1,126 @@ +import{_ as e,r as p,o,c as d,a as n,b as s,d as c,e as t}from"./app-3168cb19.js";const r={},l=t(`

    私信

    未读私信数

    https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    注: 该接口默认每 2 分钟请求一次

    URL参数:

    参数名类型内容必要性备注
    buildnum0不必要?
    mobi_appstrweb不必要?
    unread_typenum0不必要?

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为ok
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    unfollow_unreadnum未关注用户未读私信数
    follow_unreadnum已关注用户未读私信数
    unfollow_push_msgnum未关注用户推送消息数?
    dustbin_push_msgnum已拦截的推送消息数?
    dustbin_unreadnum已拦截的未读消息数?
    biz_msg_unfollow_unreadnum未订阅的未读系统通知数?
    biz_msg_follow_unreadnum已订阅的未读系统通知数?
    custom_unreadnum自定义未读消息数?

    示例:

    以下信息代表了为未关注用户未读私信数为1条,已关注用户未读私信数为6

    curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "ok",
    +    "message": "ok",
    +    "data": {
    +        "unfollow_unread": 1,
    +        "follow_unread": 6,
    +        "unfollow_push_msg": 0,
    +        "dustbin_push_msg": 0,
    +        "dustbin_unread": 0,
    +        "biz_msg_unfollow_unread": 0,
    +        "biz_msg_follow_unread": 1,
    +        "custom_unread": 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]num1必要固定为1
    msg[msg_type]num消息类型必要1:发送文字
    2:发送图片
    5:撤回消息
    msg[msg_status]num0非必要
    msg[dev_id]string372778FD-E359-461D-86A3-EA2BCC6FF52A必要获取方式在下面
    msg[timestamp]num时间戳(秒)必要
    msg[new_face_version]num表情包版本非必要详见下表
    msg[content]发送文字时:str
    撤回消息时:num
    消息内容必要详见下表
    csrfstrCSRF Token(位于cookie)必要

    dev_id的获取

    以JS为例:

    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()
    +}));
    +
    `,27),u={href:"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",target:"_blank",rel:"noopener noreferrer"},i=t(`

    以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序列字串

    根对象:

    字段类型内容备注
    contentstr私信内容

    当发送图片时(msg[msg_type]=2):

    该参数为json序列字串

    根对象:

    字段类型内容备注
    urlstr图片url默认为B站相簿图片上传通道
    也可用三方图床
    widthnum图片的宽单位:像素(非必要)
    heightnum图片的高单位:像素(非必要)
    typestr图片格式(非必要)
    originalnum1作用未知(非必要)
    sizenum文件大小单位:千字节(非必要)
    向上取整

    当撤回消息时(msg[msg_type]=5):

    该参数为数值,为目标消息的msg_key

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为ok
    ttlnum默认为1
    dataobj主体出错时为空

    data对象:

    字段类型内容备注
    msg_keynum消息唯一id
    msg_contentstr发送的消息
    key_hit_infosobj作用尚不明确

    示例:

    给目标用户mid=1发一条文字私信:

    up主你好,

    催更[doge]

    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'
    +
    查看响应示例:
    {"code":0,
    +"message":"0",
    +"ttl":1,
    +"data":{"msg_key":6984393491767669026,
    +	"msg_content":"up主你好,\\n催更[doge]",
    +	"key_hit_infos":{}}}
    +

    给目标用户mid=1发一条图片私信:

    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'
    +
    查看响应示例:
    {
    +    "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_idnum发送者设备可选1
    talker_idnum聊天对象的UID必要--------------
    session_typenum聊天对象的类型必要1为用户,2为粉丝团
    sizenum列出消息条数可选默认是20,最大为200
    buildnum未知可选默认是0
    mobi_appstr设备可选web
    begin_seqnonum开始的序列号可选默认0为全部
    end_seqnonum结束的序列号可选默认0为全部

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    msgstr错误信息默认为0
    messagestr错误信息默认为0
    ttlnum1
    dataarray数据列表

    data数组:

    类型内容备注
    messagesarray聊天记录列表
    has_morenum0
    min_seqnonum所有消息最小的序列号(最早)
    max_seqnonum所有消息最大的序列号(最晚)
    e_infosarray聊天表情列表

    messages数组:

    类型内容备注
    sender_uidnum发送者uid注意名称是sender_uid
    receiver_typenum与session_type对应1为用户,2为粉丝团
    receiver_idnum接收者uid注意名称是receiver_id
    msg_typenum消息类型1:文字消息
    2:图片消息
    5:撤回的消息
    12、13:通知
    contentstr消息内容此处存在设计缺陷
    msg_seqnonum消息序列号,保证按照时间顺序从小到大
    timestampnum消息发送时间戳
    at_uidsarray未知
    msg_keynum未知
    msg_statusnum消息状态0
    notify_codestr未知
    new_face_versionnum表情包版本0或者没有是旧版,此时b站会自动转换成新版表情包,例如[doge] -> [tv_doge];1是新版

    e_infos数组:

    类型内容备注
    textstr表情名称
    uristr表情链接
    sizenum表情尺寸1

    示例:

    获取与目标用户mid=123私信记录:

    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'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    `,48);function k(m,b){const a=p("ExternalLinkIcon");return o(),d("div",null,[l,n("p",null,[s("代码来自 "),n("a",u,[s("andywang425/BLTH"),c(a)])]),i])}const h=e(r,[["render",k],["__file","private_msg.html.vue"]]);export{h as default}; diff --git a/assets/private_msg.html-634b92fa.js b/assets/private_msg.html-634b92fa.js new file mode 100644 index 0000000000..ba69c06a13 --- /dev/null +++ b/assets/private_msg.html-634b92fa.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-0d924737","path":"/docs/message/private_msg.html","title":"私信","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"未读私信数","slug":"未读私信数","link":"#未读私信数","children":[]},{"level":2,"title":"发送私信(web端)","slug":"发送私信-web端","link":"#发送私信-web端","children":[]},{"level":2,"title":"私信消息记录","slug":"私信消息记录","link":"#私信消息记录","children":[]}],"git":{},"filePathRelative":"docs/message/private_msg.md"}');export{e as data}; diff --git a/assets/publish.html-22e9a0f5.js b/assets/publish.html-22e9a0f5.js new file mode 100644 index 0000000000..fe5f4d0b1f --- /dev/null +++ b/assets/publish.html-22e9a0f5.js @@ -0,0 +1,373 @@ +import{_ as p,r as d,o as l,c as i,a as t,b as n,d as e,w as o,e as s}from"./app-3168cb19.js";const c={},r=s(`

    发布动态

    为图片动态上传图片

    https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    注意:非日常类型像素宽高必须大于420

    正文参数 (multipart/form-data):

    参数名类型内容必要性备注
    file_upfile需要上传的图片文件必要格式仅支持jpg png gif
    categorystr图片类型必要daily:日常(动态)
    draw:绘画(画友)
    cos:摄影(COSPLAY)
    bizstr
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -1:未添加图片
    -2:参数错误
    -3:图片尺寸过小
    -4:账号未登录
    -7:图片信息错误
    messagestr错误信息默认为success
    dataobj信息本体仅在正确时既code=0时为有效信息

    data对象:

    字段类型内容备注
    image_urlstr已上传图片url
    image_widthnum已上传图片宽度像素
    image_heightnum已上传图片高度像素

    示例:

    上传了一张图片test.png类型为日常

    curl 'https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs' \\
    +-F 'file_up=@test.png' \\
    +-F 'category=daily'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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项选项投票图片非必要
    csrfstrCSRF Token(位于cookie)非必要头次见非必要的csrf

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    5100001: 参数错误
    msgstr错误信息成功为空
    messagestr错误信息跟上面那个一模一样
    dataobj信息本体仅在正确时既code=0时为有效信息

    data对象:

    字段类型内容备注
    vote_idnum投票id
    _gt_num0

    示例:

    创建一个标题为是否自愿开学持续七天的纯文本投票

    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'
    +
    查看响应示例:
    {
    +    "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_idnum0必要
    typenum4必要
    ridnum0必要
    contentstr动态内容必要
    up_choose_commentnum0非必要
    up_close_commentnum0非必要
    extensionjson位置信息非必要
    at_uidsstr动态中 at 到的用户的 uid非必要使用逗号,分隔
    ctrlarray特殊格式控制 (如 at 别人时的蓝字体和链接)非必要
    csrf_tokenstrCSRF Token (位于 cookie)非必要
    csrfstrCSRF Token (位于 cookie)非必要

    extension参数值:

    {
    +    "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单个对象(注意用的时候是数组出现):

    参数名类型内容
    locationnum从全文第几个字开始变蓝
    typenum1 (可能1代表链接到用户uid)
    lengthnum这一段变蓝多少字
    datastr链接目标(被at人的uid)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为空
    dataobj数据本体

    data对象:

    字段类型内容备注
    resultnum0
    errmsgstr像是服务器日志一样的东西
    dynamic_idnum动态 id
    create_resultnum1
    dynamic_id_strstr动态 id字符串格式
    _gt_num0
    查看示例(纯文本)
    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=******'
    +
    {
    +  "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

    [
    +  { "location": 11, "type": 1, "length": 9, "data": "15858903" },
    +  { "location": 20, "type": 1, "length": 9, "data": "293793435" }
    +]
    +

    命令

    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参数

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)必要

    正文参数(application/json):

    参数名类型内容必要性备注
    dyn_reqobj请求本体必要

    dyn_req对象:

    参数名类型内容必要性备注
    attach_cardobj特殊卡片非必要如直播预约等
    contentobj动态内容必要
    metaobj元信息非必要大概是来源信息
    scenenum动态类型?必要纯文本: 1
    带图: 2
    picsarray携带图片非必要最多九个
    topicobj话题非必要
    optionobj互动设置非必要没有此项时默认开启评论区
    upload_idstr客户端生成的非必要内容为发送人mid+当前秒级时间戳+四位随机整数,中间用_隔开

    dyn_req对象的meta对象,大概是来源信息,很简单就不详细列表了:

    {
    +    "app_meta": {
    +        "from": "create.dynamic.web", 
    +        "mobi_app": "web"
    +    }
    +}
    +

    dyn_req对象的content对象:

    参数名类型内容必要性备注
    contentsarray动态组件对象有序数组必要

    contents数组内每一个动态组件对象:

    {
    +    "raw_text": "ui上直接显示的字符串",
    +    "type": 组件类型id,
    +    "biz_id": "动态组件的内容id转字符串,比如投票id"
    +}
    +

    动态组件类型:

    组件名typebiz_id含义
    纯文本1
    AT人2AT人的mid
    表情9
    投票4投票id

    dyn_req对象的topic对象

    参数名类型内容必要性备注
    from_sourcestr来源id?必要网页版直接选为dyn.web.list
    from_topic_idnum0必要
    idnum话题id必要
    namestr话题名必要

    dyn_req对象的pics数组的每一项对象:

    参数名类型内容必要性备注
    img_heightnum图片高非必要这个东西会直接原封不动传到前端,比如你都写0在网页上就看不见了,但是还会加载
    img_widthnum图片宽非必要同上
    img_sizefloat图片文件大小(KB)非必要
    img_srcstr图片bfs链接必要

    dyn_req对象的option对象:

    参数名类型内容必要性备注
    up_choose_commentnum精选评论flag非必要1: 开启
    close_commentnum关闭评论flag非必要同上,与上二选一

    dyn_req对象的topic对象:

    参数名类型内容必要性备注
    from_sourcestrdyn.web.list非必要作用不明
    from_topic_idnum0非必要作用不明
    idnum话题id必要
    namestr话题名非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为空
    dataobj数据本体

    data对象:

    当Cookie中含有任意的buvid3时,比较干净简洁:

    字段类型内容备注
    resultnum0
    messagestr错误信息
    dyn_idnum动态 id
    dyn_id_strstr动态 id字符串格式
    dyn_typenum动态类型不带图片: 4
    带图片: 2
    其他请参考 get_dynamic_detail.md
    _gt_num0

    警告:下面的内容又乱又杂,而且绝大多数情况用不到,我建议大家用这个接口的时候随便带一个buvid3的cookie屏蔽掉它们算了.

    当Cookie中不含有buvid3时,较上述字段多出一个fake_card对象,大概是移动端用的卡片:

    字段类型内容备注
    fake_cardobj0又多又乱又杂

    fake_card对象:

    `,86),u=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),k=t("td",null,"card_type",-1),v=t("td",null,"num",-1),b=t("td",null,"卡片类型",-1),m=t("br",null,null,-1),q=t("br",null,null,-1),h=t("tr",null,[t("td",null,"modules"),t("td",null,"array"),t("td",null,"卡片组件列表"),t("td")],-1),y=t("tr",null,[t("td",null,"extend"),t("td",null,"obj"),t("td",null,"其他杂项信息"),t("td")],-1),g=s("

    fake_card对象的modules数组中每一项对象:

    字段类型内容备注
    module_typenum组件类型1: 作者信息
    3: 动态内容
    其他有待发现
    ModuleItemobj卡片组件

    ModuleItem对象与module_type对应关系:

    module_typeModuleItem含有的唯一一个key备注
    1module_author作者信息
    3module_desc动态内容
    4module_dynamic携带图片等
    9module_stat不明,貌似一直都是空对象

    ModuleItemmodule_author:

    ",5),_=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),f=t("tr",null,[t("td",null,"mid"),t("td",null,"num"),t("td",null,"发送者mid"),t("td")],-1),x=t("tr",null,[t("td",null,"ptime_label_text"),t("td",null,"str"),t("td",null,"发送时间(人类可读形式)肯定是刚刚"),t("td")],-1),j=t("td",null,"author",-1),w=t("td",null,"obj",-1),S=t("td",null,"作者详细信息",-1),T=s("

    ModuleItemmodule_desc:

    字段类型内容备注
    descarray动态组件列表
    textstr动态纯文本形式

    module_descdesc数组:

    类型备注
    0obj第0个动态组件
    nobj第n+1个动态组件组件
    ...obj...

    desc数组的每一项:

    字段类型内容备注
    textstr该组件对外显示的纯文本对应请求时该组件的raw_text
    typenum组件类型对应请求时该组件的type
    ridstr组件内容的id,例如@人的mid根据需要出现,比如纯文本就没有
    uristrb站自定义bilibili://协议链接,用于@人点击跳转等根据需要出现,比如纯文本就没有

    ModuleItemmodule_dynamic:

    字段类型内容备注
    typenum不知道是什么的类型5: 图片
    其他未知
    ModuleItemobj组件?怎么还有套娃的?

    module_dynamictype字段为5时:

    module_dynamicModuleItem有唯一keydyn_draw:

    ",10),A=t("thead",null,[t("tr",null,[t("th",null,"字段"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),C=t("tr",null,[t("td",null,"items"),t("td",null,"array"),t("td",null,"图片数组"),t("td",null,[n("与请求部分"),t("code",null,"dyn_req.pics"),n("一致")])],-1),z=t("td",null,"id",-1),I=t("td",null,"num",-1),M=t("td",null,[n("这条图片动态所对应的相簿"),t("code",null,"doc_id")],-1),P=s(`

    fake_cardextend对象:

    字段类型内容备注
    dyn_id_strstr动态id字符串形式
    business_idstr未知根据情况出现
    orif_img_urlstr封面图url(如果有)
    share_typestr一般为3未知
    share_scenestr一般为dynamic未知
    is_fast_sharebool一般为true未知
    dyn_typenum动态类型不带图片: 4
    带图片: 2
    其他待探索
    uidnum发送者mid
    card_urlstrb站自定义bilibili://协议链接,指向该条动态
    descarray动态组件列表,重复了一遍module_desc的desc数组
    replyobj评论区相关

    extendreply对象:

    字段类型内容备注
    uristrb站自定义bilibili://协议链接,指向该条动态评论区
    paramsarray未知
    查看示例(不带\`buvid3\`)
    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
    +    }
    +}'
    +

    响应:

    {
    +  "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

    然后关闭评论区

    命令

    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
    +    }
    +}'
    +

    响应:

    {
    +  "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_idfile定时动态(草稿)id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体正常为空对象
    messagestr错误消息正常为"0"
    ttlnum1不明
    查看示例
    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;'
    +
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{}
    +}
    +
    `,16);function E(D,O){const a=d("RouterLink");return l(),i("div",null,[r,t("table",null,[u,t("tbody",null,[t("tr",null,[k,v,b,t("td",null,[n("不带图片: 4"),m,n("带图片: 2"),q,n("其他请参考 "),e(a,{to:"/docs/dynamic/get_dynamic_detail.html"},{default:o(()=>[n("获取特定动态卡片信息")]),_:1})])]),h,y])]),g,t("table",null,[_,t("tbody",null,[f,x,t("tr",null,[j,w,S,t("td",null,[n("请参考"),e(a,{to:"/docs/user/info.html"},{default:o(()=>[n("用户基本信息")]),_:1}),n(",不再赘述..")])])])]),T,t("table",null,[A,t("tbody",null,[C,t("tr",null,[z,I,M,t("td",null,[n("可以参考本文档的"),e(a,{to:"/docs/album/info.html"},{default:o(()=>[n("相簿基本信息")]),_:1})])])])]),P])}const F=p(c,[["render",E],["__file","publish.html.vue"]]);export{F as default}; diff --git a/assets/publish.html-d8d80fa5.js b/assets/publish.html-d8d80fa5.js new file mode 100644 index 0000000000..fab9f095fc --- /dev/null +++ b/assets/publish.html-d8d80fa5.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-264d8116","path":"/docs/dynamic/publish.html","title":"发布动态","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"为图片动态上传图片","slug":"为图片动态上传图片","link":"#为图片动态上传图片","children":[]},{"level":2,"title":"创建投票","slug":"创建投票","link":"#创建投票","children":[]},{"level":2,"title":"发表纯文本动态","slug":"发表纯文本动态","link":"#发表纯文本动态","children":[]},{"level":2,"title":"发表复杂动态","slug":"发表复杂动态","link":"#发表复杂动态","children":[]},{"level":2,"title":"立即发布定时动态","slug":"立即发布定时动态","link":"#立即发布定时动态","children":[]}],"git":{},"filePathRelative":"docs/dynamic/publish.md"}');export{l as data}; diff --git a/assets/railgun.html-3eebb2b8.js b/assets/railgun.html-3eebb2b8.js new file mode 100644 index 0000000000..d370d3d40d --- /dev/null +++ b/assets/railgun.html-3eebb2b8.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-3228cc8a","path":"/docs/creativecenter/railgun.html","title":"电磁力相关","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取电磁力等级(web端)","slug":"获取电磁力等级-web端","link":"#获取电磁力等级-web端","children":[]},{"level":2,"title":"(失效)获取电磁力详细数值(双端)","slug":"失效-获取电磁力详细数值-双端","link":"#失效-获取电磁力详细数值-双端","children":[]},{"level":2,"title":"获取电磁力数值历史变化(双端)","slug":"获取电磁力数值历史变化-双端","link":"#获取电磁力数值历史变化-双端","children":[]}],"git":{},"filePathRelative":"docs/creativecenter/railgun.md"}');export{e as data}; diff --git a/assets/railgun.html-65db39d5.js b/assets/railgun.html-65db39d5.js new file mode 100644 index 0000000000..f9bd51d193 --- /dev/null +++ b/assets/railgun.html-65db39d5.js @@ -0,0 +1,85 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const e={},p=a(`

    电磁力相关

    电磁力每周日下午刷新

    获取电磁力等级(web端)

    https://api.bilibili.com/studio/up-rating/v3/rating/info

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum当前用户mid
    levelnum电磁力等级
    scorenum电磁力分数
    creditnum信用分
    statenum?一直是2

    示例:

    curl 'https://member.bilibili.com/x/web/elec/user' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "mid": ***,
    +        "level": 4,
    +        "score": 326,
    +        "credit": 100,
    +        "state": 2,
    +        "update_date": 1694966400
    +    }
    +}
    +

    (失效)获取电磁力详细数值(双端)

    https://api.bilibili.com/studio/up-rating/rating/summary

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    datestr数据刷新时间YYYY-MM-DD
    levelobj电磁力等级
    creativeobj创作力
    influenceobj影响力
    creditobj信用分

    data中的level creative influence credit对象:

    字段类型内容备注
    datanum数值
    prevnum???作用尚不明确
    descstr描述
    datenum刷新时间时间戳

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/studio/up-rating/rating/summary' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/studio/up-rating/rating/summary' \\
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1创作力
    2影响力
    3信用分

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    datearray数据记录时间每周更新
    scorearray电磁力等级每周更新

    data中的date数组:

    类型内容备注
    0str1周前的日期MM-DD
    nstr(n+1)周前的日期与数值一一对应
    ……str…………
    7str8周前的日期最后一条

    data中的score数组:

    类型内容备注
    0num1周前的数值
    nnum(n+1)周前的数值与日期一一对应
    ……num…………
    7num8周前的数值最后一条

    示例:

    查询创作力的历史变化

    Cookie方式:

    curl -G 'https://api.bilibili.com/studio/up-rating/rating/history' \\
    +--data-urlencode 'type=1' \\
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/studio/up-rating/rating/history' \\
    +--data-urlencode 'type=1' \\
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        ]
    +    }
    +}
    +
    `,57),d=[p];function o(r,l){return n(),s("div",null,d)}const c=t(e,[["render",o],["__file","railgun.html.vue"]]);export{c as default}; diff --git a/assets/rank.html-19652baf.js b/assets/rank.html-19652baf.js new file mode 100644 index 0000000000..f5dc3abec7 --- /dev/null +++ b/assets/rank.html-19652baf.js @@ -0,0 +1,912 @@ +import{_ as o,r as e,o as c,c as u,a as n,b as s,d as t,e as p}from"./app-3168cb19.js";const l={},r=p(`

    音频榜单

    以下接口均来自页面 https://music.bilibili.com/pc/rank

    获取音频榜单每期列表

    https://api.bilibili.com/x/copyright-music-publicity/toplist/all_period

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    list_typenum榜单类型必要1:热榜
    2:原创榜
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj年份索引

    data中的list对象:

    字段类型内容备注
    {年份}array对应年份索引的每期信息
    ……array……

    list中的{年份}数组:

    类型内容备注
    0obj该年中的单期数据
    ……obj…………

    {年份}数组中的对象:

    字段类型内容备注
    IDnum榜单 id
    priodnum榜单期数
    publish_timenum发布时间秒时间戳

    示例:

    curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/all_period' \\
    +	--data-urlencode 'list_type=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": {
    +            "2022": [
    +                {
    +                    "ID": 38,
    +                    "priod": 29,
    +                    "publish_time": 1672394399
    +                },
    +                {
    +                    "ID": 36,
    +                    "priod": 28,
    +                    "publish_time": 1671789599
    +                },
    +                {
    +                    "ID": 34,
    +                    "priod": 27,
    +                    "publish_time": 1671184800
    +                },
    +                {
    +                    "ID": 32,
    +                    "priod": 26,
    +                    "publish_time": 1670579999
    +                },
    +                {
    +                    "ID": 30,
    +                    "priod": 25,
    +                    "publish_time": 1669976540
    +                },
    +                {
    +                    "ID": 28,
    +                    "priod": 24,
    +                    "publish_time": 1669370757
    +                },
    +                {
    +                    "ID": 26,
    +                    "priod": 23,
    +                    "publish_time": 1668766987
    +                },
    +                {
    +                    "ID": 22,
    +                    "priod": 22,
    +                    "publish_time": 1668163419
    +                },
    +                {
    +                    "ID": 21,
    +                    "priod": 21,
    +                    "publish_time": 1667558276
    +                },
    +                {
    +                    "ID": 20,
    +                    "priod": 20,
    +                    "publish_time": 1666951199
    +                },
    +                {
    +                    "ID": 19,
    +                    "priod": 19,
    +                    "publish_time": 1666346399
    +                },
    +                {
    +                    "ID": 18,
    +                    "priod": 18,
    +                    "publish_time": 1665741599
    +                },
    +                {
    +                    "ID": 17,
    +                    "priod": 17,
    +                    "publish_time": 1665136799
    +                },
    +                {
    +                    "ID": 16,
    +                    "priod": 16,
    +                    "publish_time": 1664531999
    +                },
    +                {
    +                    "ID": 15,
    +                    "priod": 15,
    +                    "publish_time": 1663927199
    +                },
    +                {
    +                    "ID": 14,
    +                    "priod": 14,
    +                    "publish_time": 1663322399
    +                },
    +                {
    +                    "ID": 13,
    +                    "priod": 13,
    +                    "publish_time": 1662717599
    +                },
    +                {
    +                    "ID": 12,
    +                    "priod": 12,
    +                    "publish_time": 1662113559
    +                },
    +                {
    +                    "ID": 11,
    +                    "priod": 11,
    +                    "publish_time": 1661508657
    +                },
    +                {
    +                    "ID": 10,
    +                    "priod": 10,
    +                    "publish_time": 1660903199
    +                },
    +                {
    +                    "ID": 9,
    +                    "priod": 9,
    +                    "publish_time": 1660298400
    +                },
    +                {
    +                    "ID": 8,
    +                    "priod": 8,
    +                    "publish_time": 1659693599
    +                },
    +                {
    +                    "ID": 7,
    +                    "priod": 7,
    +                    "publish_time": 1659088799
    +                },
    +                {
    +                    "ID": 6,
    +                    "priod": 6,
    +                    "publish_time": 1658483999
    +                },
    +                {
    +                    "ID": 5,
    +                    "priod": 5,
    +                    "publish_time": 1657879200
    +                },
    +                {
    +                    "ID": 4,
    +                    "priod": 4,
    +                    "publish_time": 1657274399
    +                },
    +                {
    +                    "ID": 3,
    +                    "priod": 3,
    +                    "publish_time": 1656669600
    +                },
    +                {
    +                    "ID": 2,
    +                    "priod": 2,
    +                    "publish_time": 1656064800
    +                },
    +                {
    +                    "ID": 1,
    +                    "priod": 1,
    +                    "publish_time": 1655460091
    +                }
    +            ],
    +            "2023": [
    +                {
    +                    "ID": 76,
    +                    "priod": 48,
    +                    "publish_time": 1683885696
    +                },
    +                {
    +                    "ID": 74,
    +                    "priod": 47,
    +                    "publish_time": 1683281010
    +                },
    +                {
    +                    "ID": 72,
    +                    "priod": 46,
    +                    "publish_time": 1682675999
    +                },
    +                {
    +                    "ID": 70,
    +                    "priod": 45,
    +                    "publish_time": 1682071442
    +                },
    +                {
    +                    "ID": 68,
    +                    "priod": 44,
    +                    "publish_time": 1681466400
    +                },
    +                {
    +                    "ID": 66,
    +                    "priod": 43,
    +                    "publish_time": 1680861599
    +                },
    +                {
    +                    "ID": 64,
    +                    "priod": 42,
    +                    "publish_time": 1680256799
    +                },
    +                {
    +                    "ID": 62,
    +                    "priod": 41,
    +                    "publish_time": 1679652088
    +                },
    +                {
    +                    "ID": 60,
    +                    "priod": 40,
    +                    "publish_time": 1679047199
    +                },
    +                {
    +                    "ID": 58,
    +                    "priod": 39,
    +                    "publish_time": 1678442399
    +                },
    +                {
    +                    "ID": 56,
    +                    "priod": 38,
    +                    "publish_time": 1677837600
    +                },
    +                {
    +                    "ID": 54,
    +                    "priod": 37,
    +                    "publish_time": 1677232800
    +                },
    +                {
    +                    "ID": 52,
    +                    "priod": 36,
    +                    "publish_time": 1676628000
    +                },
    +                {
    +                    "ID": 50,
    +                    "priod": 35,
    +                    "publish_time": 1676023199
    +                },
    +                {
    +                    "ID": 48,
    +                    "priod": 34,
    +                    "publish_time": 1675418399
    +                },
    +                {
    +                    "ID": 46,
    +                    "priod": 33,
    +                    "publish_time": 1674813599
    +                },
    +                {
    +                    "ID": 44,
    +                    "priod": 32,
    +                    "publish_time": 1674208799
    +                },
    +                {
    +                    "ID": 42,
    +                    "priod": 31,
    +                    "publish_time": 1673603999
    +                },
    +                {
    +                    "ID": 40,
    +                    "priod": 30,
    +                    "publish_time": 1672999199
    +                }
    +            ]
    +        }
    +    }
    +}
    +

    查询音频榜单单期信息

    https://api.bilibili.com/x/copyright-music-publicity/toplist/detail

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    list_idnum榜单 id必要获取音频榜单每期列表
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    `,30),i=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),d=n("tr",null,[n("td",null,"listen_fid"),n("td",null,"num"),n("td",null,"畅听版歌单收藏夹原始 id"),n("td",null,[s("非真实收藏夹 mlid"),n("br"),s("需要在后方拼接用户 mid 的后两位,如"),n("code",null,"16484498"),s("->"),n("code",null,"1648449844")])],-1),k=n("tr",null,[n("td",null,"all_fid"),n("td",null,"num"),n("td",null,"完整版歌单收藏夹原始 id"),n("td",null,[s("非真实收藏夹 mlid"),n("br"),s("算法同上")])],-1),v=n("td",null,"fav_mid",-1),q=n("td",null,"num",-1),m=n("td",null,"绑定收藏夹用户的 mid",-1),b=n("code",null,"1164440244",-1),y={href:"https://space.bilibili.com/1164440244",target:"_blank",rel:"noopener noreferrer"},_=n("tr",null,[n("td",null,"cover_url"),n("td",null,"str"),n("td",null,"榜单封面 url"),n("td")],-1),h=n("tr",null,[n("td",null,"is_subscribe"),n("td",null,"bool"),n("td",null,"是否已订阅榜单"),n("td",null,[n("code",null,"true"),s(":已订阅"),n("br"),n("code",null,"false"),s(":未订阅"),n("br"),s("需要登录(Cookie 或 APP),未登录恒为"),n("code",null,"false")])],-1),g=n("tr",null,[n("td",null,"listen_count"),n("td",null,"num"),n("td",null,"平台有版权音频的数量"),n("td")],-1),f=n("p",null,[n("strong",null,"示例:")],-1),E={href:"https://music.bilibili.com/pc/rank?list_id=76",target:"_blank",rel:"noopener noreferrer"},j=p(`
    curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/detail' \\
    +	--data-urlencode 'list_id=76'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "listen_fid": 23317138,
    +        "all_fid": 23672948,
    +        "fav_mid": 1164440244,
    +        "cover_url": "http://i0.hdslb.com/bfs/music-publicity/d8509dc6ee94dd5cc4658a2cbca4f525b4396df5.png",
    +        "is_subscribe": false,
    +        "listen_count": 5
    +    }
    +}
    +

    获取音频榜单单期内容

    https://api.bilibili.com/x/copyright-music-publicity/toplist/music_list

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    list_idnum榜单 id必要获取音频榜单每期列表
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray内容列表

    data中的list数组:

    类型内容备注
    0obj榜单内容 1
    nobj榜单内容 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    music_idstr音频 MAID例如MA409252256362326366
    music_titlestr音频标题
    singerstr音频作者
    albumstr音频专辑
    mv_aidnum音频 MV 的 avid若该音频无 MV 则该字段为 0
    mv_bvidstr音频 MV 的 bvid
    mv_coverstr音频封面 url
    heatnum热度值
    ranknum排序值1 为最高排序,DESC 方式
    can_listenbool平台是否有版权true:平台有版权
    false:平台无版权
    recommendationstr(?)
    creation_aidnum关联稿件 avid
    creation_bvidstr关联稿件 bvid
    creation_coverstr关联稿件封面 url
    creation_titlestr关联稿件标题
    creation_upnum关联稿件 UP 主 mid
    creation_nicknamestr关联稿件 UP 主昵称
    creation_durationnum关联稿件时长单位为秒
    creation_playnum关联稿件播放量
    creation_reasonstr关联稿件二级分区名
    achievementsarray获得成就
    material_idnum(?)
    material_use_numnum(?)
    material_durationnum(?)
    material_shownum(?)
    song_typenum(?)

    list数组中的对象中的achievements数组:

    类型内容备注
    0str成就文案 1
    nstr成就文案 (n+1)
    ……str…………

    示例:

    `,19),I={href:"https://music.bilibili.com/pc/rank?list_id=76",target:"_blank",rel:"noopener noreferrer"},D=p(`
    curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/music_list' \\
    +	--data-urlencode 'list_id=76'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "music_id": "MA409252256362326366",
    +                "music_title": "極楽浄土",
    +                "singer": "GARNiDELiA",
    +                "album": "約束 -Promise code-",
    +                "mv_aid": 28361833,
    +                "mv_bvid": "BV1us41137Fd",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/07e0d9826c574e37df25387cab6df062.jpg",
    +                "heat": 5328979,
    +                "rank": 1,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 910787823,
    +                "creation_bvid": "BV1HM4y1b79Z",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/5780a05437ec9880301ed093537d6af97b0f8bdb.jpg",
    +                "creation_title": "【MARiA】乘风2023初舞台!《极乐净土》,虽迟但到!",
    +                "creation_up": 110352985,
    +                "creation_nickname": "GARNiDELiA",
    +                "creation_duration": 100,
    +                "creation_play": 13487670,
    +                "creation_reason": "官方现场",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA456045402056087707",
    +                "music_title": "アイドル",
    +                "singer": "YOASOBI",
    +                "album": "アイドル",
    +                "mv_aid": 227499491,
    +                "mv_bvid": "BV17h411u7sb",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/4bf2fe90e9d2361c3c4ddf59064c6e69.jpg",
    +                "heat": 1856277,
    +                "rank": 2,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 952765045,
    +                "creation_bvid": "BV1Ws4y1A7fS",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/8326350bab039ffee9274d7e1f94240d170fa096.jpg",
    +                "creation_title": "【中文字幕】我推的孩子「アイドル」官方MV(4K 60帧/Hi-Res)",
    +                "creation_up": 11585165,
    +                "creation_nickname": "爱莉丝青贝尔克",
    +                "creation_duration": 226,
    +                "creation_play": 3742892,
    +                "creation_reason": "音乐MV",
    +                "achievements": [
    +                    "本期排名持平",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA458652518440821364",
    +                "music_title": "野火wildfire",
    +                "singer": "HOYO- Mix,Jonathan Steingard",
    +                "album": "雪融于烬",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/e0825a2cfee22ce77f02d4d80826a1d9.jpg",
    +                "heat": 1767135,
    +                "rank": 3,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 355732312,
    +                "creation_bvid": "BV1ZX4y117Dx",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/c98bd629876e8b7b4c056d39bcfeaabe7327e996.jpg",
    +                "creation_title": "这首“野火”神曲,我还能再听亿遍!!!",
    +                "creation_up": 394861137,
    +                "creation_nickname": "Hanserのcece",
    +                "creation_duration": 219,
    +                "creation_play": 2158925,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "本期排名↑1",
    +                    "最高排名3"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA459088929228874460",
    +                "music_title": "不问别离",
    +                "singer": "指尖笑",
    +                "album": "不问别离",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/b1507c1649500a0dcf0295b4b68e4b15.jpg",
    +                "heat": 1576823,
    +                "rank": 4,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 740818022,
    +                "creation_bvid": "BV1Sk4y1E7qH",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/5301b2fee7ad520c8946b5eb92888cf8be563a80.jpg",
    +                "creation_title": "日推歌单 | \\"我叹那春花秋月不问别离 长风起孤城笛声里全是你\\" |《不问ciaga》",
    +                "creation_up": 550445292,
    +                "creation_nickname": "peach63",
    +                "creation_duration": 164,
    +                "creation_play": 274898,
    +                "creation_reason": "音乐MV",
    +                "achievements": [
    +                    "本期排名↑10",
    +                    "最高排名4"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA459819223808501000",
    +                "music_title": "Spicy",
    +                "singer": "aespa",
    +                "album": "MY WORLD - The 3rd Mini Album",
    +                "mv_aid": 570920682,
    +                "mv_bvid": "BV1qz4y1a7m8",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6455687e7d72dd838ffd2aa753fd7761.jpg",
    +                "heat": 1441365,
    +                "rank": 5,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 570920682,
    +                "creation_bvid": "BV1qz4y1a7m8",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/cd5456735bd645343a51b8df9b4a91236b08e657.jpg",
    +                "creation_title": "aespa《Spicy》MV",
    +                "creation_up": 3493085782739496,
    +                "creation_nickname": "SMTOWN",
    +                "creation_duration": 205,
    +                "creation_play": 2363321,
    +                "creation_reason": "官方MV",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名5"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA458946536466866804",
    +                "music_title": "UNFORGIVEN (feat. Nile Rodgers)",
    +                "singer": "LE SSERAFIM,Nile Rodgers",
    +                "album": "UNFORGIVEN",
    +                "mv_aid": 528370662,
    +                "mv_bvid": "BV1LM41137Pc",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/47e6685cfe44185ec4daab5e765e3b26.jpg",
    +                "heat": 1362593,
    +                "rank": 6,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 698312930,
    +                "creation_bvid": "BV1wm4y1y76i",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/4f097f5067fc3408118f7d59b2c36d8278660dd9.jpg",
    +                "creation_title": "假如让金采源唱全曲......",
    +                "creation_up": 496743369,
    +                "creation_nickname": "YuueFriloeyyy_",
    +                "creation_duration": 183,
    +                "creation_play": 319267,
    +                "creation_reason": "歌曲演唱",
    +                "achievements": [
    +                    "本期排名↑3",
    +                    "最高排名6"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA451591354456234292",
    +                "music_title": "雪 Distance",
    +                "singer": "Capper,罗言",
    +                "album": "Uniconfication",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/5899008cea7ed157b8bdb6f9b89dd7ff.jpg",
    +                "heat": 1233174,
    +                "rank": 7,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 355903423,
    +                "creation_bvid": "BV1QX4y127jq",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/e3542cf8d7cf7cc58268c840d845bb12d4c52662.jpg",
    +                "creation_title": "⚡️“可是雪啊,埋进土里”⚡️",
    +                "creation_up": 22169833,
    +                "creation_nickname": "寒了个羽",
    +                "creation_duration": 158,
    +                "creation_play": 2622705,
    +                "creation_reason": "音乐创作",
    +                "achievements": [
    +                    "本期排名↓1",
    +                    "最高排名3"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA460246447678301091",
    +                "music_title": "Ghost Face (鬼脸) (LIVE版)",
    +                "singer": "法老",
    +                "album": "中国说唱巅峰对决2023 第一期",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/0d4050feb7cac1a568849832d5fa9f67.jpg",
    +                "heat": 1163291,
    +                "rank": 8,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 355995337,
    +                "creation_bvid": "BV1qX4y1y78r",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/f5e7a51dbe1f48441042dad1e45148c400a3f9fe.jpg",
    +                "creation_title": "【法老Pharaoh】虽迟但到!说唱巅峰对决《Ghost Face》live",
    +                "creation_up": 12807175,
    +                "creation_nickname": "法老爷爷",
    +                "creation_duration": 79,
    +                "creation_play": 885856,
    +                "creation_reason": "官方现场",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名8"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA458974797167092444",
    +                "music_title": "F*ck My Life",
    +                "singer": "SEVENTEEN",
    +                "album": "SEVENTEEN 10th Mini Album 'FML'",
    +                "mv_aid": 313423265,
    +                "mv_bvid": "BV1tP41117mv",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6723df38fcca9b2ab85b564e3809426e.jpg",
    +                "heat": 735517,
    +                "rank": 9,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 313423265,
    +                "creation_bvid": "BV1tP41117mv",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/38377552bd74cc32851d6466343dc3a26983c3b6.jpg",
    +                "creation_title": "SEVENTEEN 'F*ck My Life' Official MV",
    +                "creation_up": 692206640,
    +                "creation_nickname": "SEVENTEEN",
    +                "creation_duration": 220,
    +                "creation_play": 1008830,
    +                "creation_reason": "官方MV",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名9"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA460247474041267107",
    +                "music_title": "Control's Wishes",
    +                "singer": "Steven Grove,塞壬唱片-MSR",
    +                "album": "孤星OST",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6068f2c64c6796f68b8dae7772f891ac.jpg",
    +                "heat": 628233,
    +                "rank": 10,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 740625544,
    +                "creation_bvid": "BV1ck4y1E7KJ",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/11381997120391d655c91b19bc08e110ca8201e5.jpg",
    +                "creation_title": "【小提琴/钢琴】明日方舟四周年孤星PV曲《Control's Wishes》",
    +                "creation_up": 2016022052,
    +                "creation_nickname": "-桑榆墨景-",
    +                "creation_duration": 193,
    +                "creation_play": 37881,
    +                "creation_reason": "器乐演奏",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名10"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA459266635128138957",
    +                "music_title": "花园种花(在小小的花园里种小小的花)",
    +                "singer": "桃子老师花开富贵",
    +                "album": "花园种花",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/fb1d6a44bb8337edf6c9d32c421e9c89.jpg",
    +                "heat": 623604,
    +                "rank": 11,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 398216313,
    +                "creation_bvid": "BV1uo4y1x7UF",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/9562b126010376f7dcfedf0397170696eb1a19c5.jpg",
    +                "creation_title": "姬子老师:开拓者家长们,路上有点堵车,这节挖呀挖呀挖课来晚了",
    +                "creation_up": 391636983,
    +                "creation_nickname": "动漫跳舞姬",
    +                "creation_duration": 33,
    +                "creation_play": 566777,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名11"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA455203227252613620",
    +                "music_title": "Cupid",
    +                "singer": "FIFTY FIFTY",
    +                "album": "The Beginning: Cupid",
    +                "mv_aid": 226830843,
    +                "mv_bvid": "BV1sh41137rs",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/e91891c4e2573f4d4ada329db9a86b30.jpg",
    +                "heat": 562273,
    +                "rank": 12,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 485862497,
    +                "creation_bvid": "BV19T411b7nE",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/ece27463e3eb13f9fbbcb799436375495a795e3c.jpg",
    +                "creation_title": "挑战在cp29和一百位coser比心!",
    +                "creation_up": 1477074,
    +                "creation_nickname": "菌儿rikushi",
    +                "creation_duration": 148,
    +                "creation_play": 1216246,
    +                "creation_reason": "COSPLAY创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名12"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA457806074590836885",
    +                "music_title": "星间旅行",
    +                "singer": "HOYO-MiX,茶理理理子",
    +                "album": "崩坏星穹铁道-星间旅行 Interstellar Journ",
    +                "mv_aid": 612992200,
    +                "mv_bvid": "BV1rh4y1n77f",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/20ddff696bbbd7f00fc8b76f7b5334f7.jpg",
    +                "heat": 515238,
    +                "rank": 13,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 995418876,
    +                "creation_bvid": "BV1vs4y197gt",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/2d6997320bd2bb20f50b363a894033f325fed871.jpg",
    +                "creation_title": "《星穹铁道玩家现状》",
    +                "creation_up": 551188239,
    +                "creation_nickname": "企鹅带带北极熊",
    +                "creation_duration": 88,
    +                "creation_play": 1570181,
    +                "creation_reason": "音乐创作",
    +                "achievements": [
    +                    "本期排名↓10",
    +                    "最高排名2"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA434298821720206219",
    +                "music_title": "可愛くてごめん (feat. かぴ)",
    +                "singer": "HoneyWorks,かぴ",
    +                "album": "告白実行委員会 -FLYING SONGS- 恋してる",
    +                "mv_aid": 779733306,
    +                "mv_bvid": "BV1iy4y1Z7Ri",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/45ce3f52d31386741589a3a5ca9a420c.jpg",
    +                "heat": 438720,
    +                "rank": 14,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 862702118,
    +                "creation_bvid": "BV1gG4y117nV",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/38d94515fe5f6294bf7712d8b26eb049ec3cf627.jpg",
    +                "creation_title": "这么可爱真是抱歉!❤️(*/∇\*)天台宅舞",
    +                "creation_up": 434476793,
    +                "creation_nickname": "优联酱uu",
    +                "creation_duration": 140,
    +                "creation_play": 1199819,
    +                "creation_reason": "舞蹈创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名2"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA440555130794857381",
    +                "music_title": "阳光开朗大男孩",
    +                "singer": "卦者灵风",
    +                "album": "阳光开朗大男孩",
    +                "mv_aid": 421697247,
    +                "mv_bvid": "BV1z341187Y9",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/220c674ca22acb91114f6e0705d0f426.jpg",
    +                "heat": 371851,
    +                "rank": 15,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 995281134,
    +                "creation_bvid": "BV1as4y1d7QR",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/4628837eb5baf879a2be79b16836c90e0466dd6c.jpg",
    +                "creation_title": "【灵能手书】阳光开朗大男孩",
    +                "creation_up": 8504036,
    +                "creation_nickname": "kipoki",
    +                "creation_duration": 81,
    +                "creation_play": 627123,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA406539170333366962",
    +                "music_title": "此生不换",
    +                "singer": "青鸟飞鱼",
    +                "album": "仙剑奇侠传三 电视剧原声带",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/450bd04688ef6a691b1adb816ace6155.jpg",
    +                "heat": 361410,
    +                "rank": 16,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 545438082,
    +                "creation_bvid": "BV1Cq4y1J7Ge",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/1b8b80f7ba9dccaf648cfb641b40e1d38965a4a4.jpg",
    +                "creation_title": "开口爷青回!男生宿舍回忆向翻唱仙剑3插曲《此生不换》|我和室友的翻唱日常.",
    +                "creation_up": 346782115,
    +                "creation_nickname": "陈家淇_B11",
    +                "creation_duration": 258,
    +                "creation_play": 2976435,
    +                "creation_reason": "歌曲演唱",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名15"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA444928930235832050",
    +                "music_title": "太空电梯",
    +                "singer": "阿鲲",
    +                "album": "流浪地球2电影原声大碟",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/c64c10b911ace04ae45b3172abe3a1d8.jpg",
    +                "heat": 352572,
    +                "rank": 17,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 269421756,
    +                "creation_bvid": "BV1ic41157cc",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/39a27b9d804750325b260f6bc69a3afa8c01a1dc.jpg",
    +                "creation_title": "都说是涂装问题了,看,这战斗力不就上来了吗!",
    +                "creation_up": 478832800,
    +                "creation_nickname": "大刀王五EP",
    +                "creation_duration": 87,
    +                "creation_play": 706377,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA400017093531020491",
    +                "music_title": "兰亭序",
    +                "singer": "周杰伦",
    +                "album": "魔杰座",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/a03f7d174c3b01e4c6b3907a115c5434.jpg",
    +                "heat": 347017,
    +                "rank": 18,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 825572396,
    +                "creation_bvid": "BV1kg4y1L7v6",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/59e8436511ff45402e3d5dcf2c01feeb94897103.jpg",
    +                "creation_title": "无关风月我题序等你回《兰亭序》",
    +                "creation_up": 628615890,
    +                "creation_nickname": "qqq还在梦里",
    +                "creation_duration": 125,
    +                "creation_play": 522133,
    +                "creation_reason": "歌曲演唱",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名6"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA457811156946443719",
    +                "music_title": "I'll Do It",
    +                "singer": "Heidi Montag",
    +                "album": "Superficial",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/e1d95f62257da69db1dc36e949f789f5.jpg",
    +                "heat": 345773,
    +                "rank": 19,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 313275936,
    +                "creation_bvid": "BV1XP411y7UD",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/c42e54074a50ee1eaddbd5495091c2152aad8ecf.jpg",
    +                "creation_title": "“嗨,老婆” 【崩坏星穹铁道】",
    +                "creation_up": 14158002,
    +                "creation_nickname": "Ishi丶",
    +                "creation_duration": 61,
    +                "creation_play": 103542,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "本期排名↓12",
    +                    "最高排名6"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA409255441550338398",
    +                "music_title": "失恋阵线联盟",
    +                "singer": "草蜢",
    +                "album": "失恋阵线联盟",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/5d6b27035d5f7c0e7781b779871aca04.jpg",
    +                "heat": 337176,
    +                "rank": 20,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 415864088,
    +                "creation_bvid": "BV1QV411b7CT",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/8735563d73f86ef7073ed580a41e12c409bd2a5b.jpg",
    +                "creation_title": "年会舞蹈《失恋阵线联盟》完整版",
    +                "creation_up": 451425930,
    +                "creation_nickname": "舞大师舞蹈工作室",
    +                "creation_duration": 135,
    +                "creation_play": 5336890,
    +                "creation_reason": "舞蹈创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名20"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            }
    +        ]
    +    }
    +}
    +

    订阅或退订榜单

    https://api.bilibili.com/x/copyright-music-publicity/toplist/subscribe/update

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    statenum操作代码必要1:订阅
    2:退订
    list_idnum榜单 id非必要获取音频榜单每期列表
    csrfstrCSRF Token(位于cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 验证失败
    400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/copyright-music-publicity/toplist/subscribe/update' \\
    +	--data-urlencode 'state=1' \\
    +	--data-urlencode 'state=76' \\
    +	--data-urlencode 'csrf=xxx' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,14);function A(V,M){const a=e("ExternalLinkIcon");return c(),u("div",null,[r,n("table",null,[i,n("tbody",null,[d,k,n("tr",null,[v,q,m,n("td",null,[s("例如"),b,s("("),n("a",y,[s("音乐热榜bot"),t(a)]),s("账号)")])]),_,h,g])]),f,n("p",null,[s("查询 "),n("a",E,[s("第 48 期音频榜单"),t(a)]),s("(id=76) 信息")]),j,n("p",null,[s("查询 "),n("a",I,[s("第 48 期音频榜单"),t(a)]),s("(id=76) 榜单内容列表")]),D])}const x=o(l,[["render",A],["__file","rank.html.vue"]]);export{x as default}; diff --git a/assets/rank.html-4e3c963c.js b/assets/rank.html-4e3c963c.js new file mode 100644 index 0000000000..f2bdbdeb4f --- /dev/null +++ b/assets/rank.html-4e3c963c.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-f650fc4e","path":"/docs/audio/rank.html","title":"音频榜单","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取音频榜单每期列表","slug":"获取音频榜单每期列表","link":"#获取音频榜单每期列表","children":[]},{"level":2,"title":"查询音频榜单单期信息","slug":"查询音频榜单单期信息","link":"#查询音频榜单单期信息","children":[]},{"level":2,"title":"获取音频榜单单期内容","slug":"获取音频榜单单期内容","link":"#获取音频榜单单期内容","children":[]},{"level":2,"title":"订阅或退订榜单","slug":"订阅或退订榜单","link":"#订阅或退订榜单","children":[]}],"git":{},"filePathRelative":"docs/audio/rank.md"}');export{l as data}; diff --git a/assets/ranking-dab90b6f.svg b/assets/ranking-dab90b6f.svg new file mode 100644 index 0000000000..c827ff1b3a --- /dev/null +++ b/assets/ranking-dab90b6f.svg @@ -0,0 +1,4 @@ + + + diff --git a/assets/ranking.html-59b4f152.js b/assets/ranking.html-59b4f152.js new file mode 100644 index 0000000000..8d86f43d82 --- /dev/null +++ b/assets/ranking.html-59b4f152.js @@ -0,0 +1,891 @@ +import{_ as e,r as c,o as u,c as l,a as n,b as s,d as t,w as o,e as a}from"./app-3168cb19.js";const r="/bilibili-API-collect/assets/ranking-dab90b6f.svg",i={},k=a('

    视频排行榜


    获取分区视频排行榜列表

    https://api.bilibili.com/x/web-interface/ranking/v2

    请求方式:GET

    获取稿件内容质量,近期的数据前100个稿件,动态更新。

    url参数:

    ',9),d=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),q=n("td",null,"tid",-1),v=n("td",null,"num",-1),b=n("td",null,"目标分区tid",-1),m=n("td",null,"非必要",-1),y=n("tr",null,[n("td",null,"type"),n("td",null,"str"),n("td",null,"未知"),n("td",null,"非必要"),n("td",null,"默认为:all,且为目前唯一已知值。怀疑为稿件类型,但没有找到其他值佐证。")],-1),h=a("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray视频列表

    data对象:

    字段类型内容备注
    notestr“根据稿件内容质量、近期的数据综合展示,动态更新”目前恒为此结果
    listlist视频列表暂无

    list列表:

    类型内容备注
    0obj排行榜第1名
    nobj排行榜第(n+1)名
    ……obj…………
    99obj排行榜第100名

    data列表中的对象:

    ",8),g=a(`

    示例:

    获取tid=1(动画)分区中所有稿件排行榜排行榜

    curl -G 'https://api.bilibili.com/x/web-interface/ranking/v2' \\
    +--data-urlencode 'tid=1' \\
    +--data-urlencode 'type=all'
    +
    因本API返回对象过多(100个),故不全部展示,使用者可自行尝试。查看响应示例:
    {
    +  "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琦薇:\uFEFF@楼倾司  \\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
    +      },
    +    ]
    +  }
    +}
    +
    `,4);function _(f,w){const p=c("RouterLink");return u(),l("div",null,[k,n("table",null,[d,n("tbody",null,[n("tr",null,[q,v,b,m,n("td",null,[s("可参考"),t(p,{to:"/docs/video/video_zone.html#%E8%A7%86%E9%A2%91%E5%88%86%E5%8C%BA%E4%B8%80%E8%A7%88"},{default:o(()=>[s("视频分区一览")]),_:1}),s(",只支持主分区")])]),y])]),h,n("p",null,[s("可参考"),t(p,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:o(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的data对象。本API对象中所有字段,均可在链接对象中找到。")]),g])}const V=e(i,[["render",_],["__file","ranking.html.vue"]]);export{V as default}; diff --git a/assets/ranking.html-a8249ce4.js b/assets/ranking.html-a8249ce4.js new file mode 100644 index 0000000000..705a32bfa6 --- /dev/null +++ b/assets/ranking.html-a8249ce4.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-7eae971b","path":"/docs/video_ranking/ranking.html","title":"视频排行榜","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取分区视频排行榜列表","slug":"获取分区视频排行榜列表","link":"#获取分区视频排行榜列表","children":[]}],"git":{},"filePathRelative":"docs/video_ranking/ranking.md"}');export{e as data}; diff --git a/assets/recommend.html-17187d4f.js b/assets/recommend.html-17187d4f.js new file mode 100644 index 0000000000..5a444895c9 --- /dev/null +++ b/assets/recommend.html-17187d4f.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-66cc282c","path":"/docs/video/recommend.html","title":"视频推荐","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取单视频推荐列表(web端)","slug":"获取单视频推荐列表-web端","link":"#获取单视频推荐列表-web端","children":[]},{"level":2,"title":"获取首页视频推荐列表(web端)","slug":"获取首页视频推荐列表-web端","link":"#获取首页视频推荐列表-web端","children":[]},{"level":2,"title":"获取短视频模式视频列表","slug":"获取短视频模式视频列表","link":"#获取短视频模式视频列表","children":[]}],"git":{},"filePathRelative":"docs/video/recommend.md"}');export{e as data}; diff --git a/assets/recommend.html-713ec7a6.js b/assets/recommend.html-713ec7a6.js new file mode 100644 index 0000000000..da10dd492d --- /dev/null +++ b/assets/recommend.html-713ec7a6.js @@ -0,0 +1,1345 @@ +import{_ as e,r as l,o as u,c,a as n,b as s,d as t,w as p,e as o}from"./app-3168cb19.js";const r={},i=o('

    视频推荐

    获取单视频推荐列表(web端)

    https://api.bilibili.com/x/web-interface/archive/related

    请求方式:GET

    最多获取40条推荐视频

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray推荐列表

    data数组:

    类型内容备注
    0obj推荐视频1
    nobj推荐视频(n+1)
    ……obj…………
    39obj推荐视频40

    data数组中的对象:

    ',13),k=o(`

    示例:

    查询视频av7/BV1xx411c7m9的推荐视频列表

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/related' \\
    +--data-urlencode 'aid=7'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/related' \\
    +--data-urlencode 'bvid=BV1xx411c7m9'
    +
    查看响应示例:
    {
    +	"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": ""
    +	},
    +	…………
    +	]
    +}
    +

    获取首页视频推荐列表(web端)

    https://api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    最多获取30条推荐视频,直播及推荐边栏

    url参数:

    `,13),d=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),v=n("tr",null,[n("td",null,"fresh_type"),n("td",null,"num"),n("td",null,"相关性"),n("td",null,"非必要"),n("td",null,[s("默认为 4 "),n("br"),s(" 值越大推荐内容越相关")])],-1),q=n("tr",null,[n("td",null,"ps"),n("td",null,"num"),n("td",null,"单页返回的记录条数"),n("td",null,"非必要"),n("td",null,"默认为 12, 留空即最大值为 30")],-1),b=n("tr",null,[n("td",null,"fresh_idx"),n("td",null,"num"),n("td",null,"当前翻页号"),n("td",null,"非必要"),n("td",null,"以 1 开始")],-1),m=n("tr",null,[n("td",null,"fresh_idx_1h"),n("td",null,"num"),n("td",null,"当前翻页号(一小时前?)"),n("td",null,"非必要"),n("td",null,"以 1 开始, 默认与 fresh_idx 内容相同")],-1),y=n("tr",null,[n("td",null,"brush"),n("td",null,"num"),n("td",null,"刷子?"),n("td",null,"非必要"),n("td",null,"以 1 开始, 默认与 fresh_idx 内容相同")],-1),_=n("tr",null,[n("td",null,"fetch_row"),n("td",null,"num"),n("td",null,"本次抓取的最后一行行号"),n("td",null,"非必要"),n("td",null,"1 递归加上本次抓取总行数")],-1),g=n("tr",null,[n("td",null,"web_location"),n("td",null,"num"),n("td",null,"网页位置"),n("td",null,"非必要"),n("td",null,"主页为 1430650")],-1),h=n("tr",null,[n("td",null,"y_num"),n("td",null,"num"),n("td",null,"普通列数"),n("td",null,"非必要"),n("td",null,"一行中视频,直播及广告数")],-1),f=n("tr",null,[n("td",null,"last_y_num"),n("td",null,"num"),n("td",null,"总列数"),n("td",null,"非必要"),n("td",null,"普通列数 + 边栏列数")],-1),w=n("tr",null,[n("td",null,"feed_version"),n("td",null,"str"),n("td",null,"V8"),n("td",null,"非必要"),n("td",null,"作用尚不明确")],-1),C=n("tr",null,[n("td",null,"homepage_ver"),n("td",null,"num"),n("td",null,"1"),n("td",null,"非必要"),n("td",null,"首页版本")],-1),j=n("tr",null,[n("td",null,"screen"),n("td",null,"str"),n("td",null,"浏览器视口大小"),n("td",null,"非必要"),n("td",null,"水平在前垂直在后以减号分割")],-1),x=n("tr",null,[n("td",null,"seo_info"),n("td",null,"str"),n("td",null,"空"),n("td",null,"非必要"),n("td",null,"作用尚不明确")],-1),D=n("tr",null,[n("td",null,"last_showlist"),n("td",null,"str"),n("td",null,"上次抓取的视频av号列表"),n("td",null,"非必要"),n("td",null,"av与数字间用下划线分隔, 若视频UP主已关注则中间再插入n")],-1),A=n("tr",null,[n("td",null,"uniq_id"),n("td",null,"str"),n("td",null,"???"),n("td",null,"非必要"),n("td",null,"作用尚不明确")],-1),B=n("td",null,"w_rid",-1),E=n("td",null,"str",-1),V=n("td",null,"WBI 签名",-1),N=n("td",null,"非必要",-1),F=n("td",null,"wts",-1),U=n("td",null,"num",-1),X=n("td",null,"UNIX 时间戳",-1),z=n("td",null,"非必要",-1),P=o("

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj

    data对象:

    字段类型内容备注
    business_cardnull
    floor_infonull
    itemarray推荐列表
    midnum用户mid未登录为0
    preload_expose_pctnum0.5用于预加载?
    preload_floor_expose_pctnum0.5用于预加载?
    side_bar_columnarray边栏列表?可参考字段 item 及对应功能文档
    user_featurenull

    data对象中item数组中的对象:

    ",6),I=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),T=n("tr",null,[n("td",null,"av_feature"),n("td",null,"null"),n("td"),n("td")],-1),S=n("tr",null,[n("td",null,"business_info"),n("td",null,"obj"),n("td",null,"商业推广信息"),n("td",null,"无为null, 此处无参考意义")],-1),G=n("tr",null,[n("td",null,"bvid"),n("td",null,"str"),n("td",null,"视频bvid"),n("td")],-1),R=n("tr",null,[n("td",null,"cid"),n("td",null,"num"),n("td",null,"稿件cid"),n("td")],-1),M=n("tr",null,[n("td",null,"dislike_switch"),n("td",null,"num"),n("td",null,"1"),n("td",null,"显示不感兴趣开关?")],-1),J=n("tr",null,[n("td",null,"dislike_switch_pc"),n("td",null,"num"),n("td",null,"0"),n("td",null,"显示不感兴趣开关(PC)?")],-1),L=n("tr",null,[n("td",null,"duraion"),n("td",null,"num"),n("td",null,"视频时长"),n("td")],-1),Z=n("tr",null,[n("td",null,"enable_vt"),n("td",null,"num"),n("td",null,"0"),n("td",null,"作用尚不明确")],-1),H=n("tr",null,[n("td",null,"goto"),n("td",null,"num"),n("td",null,"目标类型"),n("td",null,[s("av: 视频"),n("br"),s("ogv: 边栏"),n("br"),s("live: 直播")])],-1),Q=n("tr",null,[n("td",null,"duraion"),n("td",null,"num"),n("td",null,"视频时长"),n("td")],-1),O=n("tr",null,[n("td",null,"id"),n("td",null,"num"),n("td",null,"视频aid / 直播间id"),n("td")],-1),W=n("tr",null,[n("td",null,"is_followed"),n("td",null,"num"),n("td",null,"已关注"),n("td",null,[s("0: 未关注"),n("br"),s("1: 已关注")])],-1),K=n("tr",null,[n("td",null,"is_stock"),n("td",null,"num"),n("td",null,"0"),n("td",null,"作用尚不明确")],-1),Y=n("tr",null,[n("td",null,"ogv_info"),n("td",null,"null"),n("td"),n("td")],-1),$=n("tr",null,[n("td",null,"owner"),n("td",null,"obj"),n("td",null,"UP主"),n("td")],-1),nn=n("tr",null,[n("td",null,"pic"),n("td",null,"str"),n("td",null,"封面"),n("td")],-1),sn=n("tr",null,[n("td",null,"pic_4_3"),n("td",null,"str"),n("td",null,"封面(4:3)"),n("td")],-1),an=n("tr",null,[n("td",null,"pos"),n("td",null,"num"),n("td",null,"0"),n("td",null,"位置?")],-1),tn=n("tr",null,[n("td",null,"pubdate"),n("td",null,"num"),n("td",null,"发布时间"),n("td")],-1),pn=n("tr",null,[n("td",null,"rcmd_reason"),n("td",null,"obj"),n("td",null,"推荐理由"),n("td",null,"直播等为null")],-1),on=n("tr",null,[n("td",null,"room_info"),n("td",null,"obj"),n("td",null,"直播间信息"),n("td",null,[s("普通视频等为null, 参见"),n("a",{href:"../live"},"直播")])],-1),en=n("tr",null,[n("td",null,"show_info"),n("td",null,"num"),n("td",null,"展示信息"),n("td",null,[s("1: 普通视频"),n("br"),s("0: 直播")])],-1),ln=n("td",null,"stat",-1),un=n("td",null,"obj",-1),cn=n("td",null,"视频状态信息",-1),rn=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"标题"),n("td")],-1),kn=n("tr",null,[n("td",null,"track_id"),n("td",null,"str"),n("td",null,"跟踪标识?"),n("td")],-1),dn=n("tr",null,[n("td",null,"uri"),n("td",null,"str"),n("td",null,"目标页 URI"),n("td")],-1),vn=n("tr",null,[n("td",null,"vt_display"),n("td",null,"str"),n("td",null,"空"),n("td",null,"作用尚不明确")],-1),qn=o(`

    item数组中的对象中的owner对象:

    | 字段 | 类型 | 内容 | 备注 | | face | str | 头像URL | | | mid | num | UP主mid | | | name | str | UP昵称 | |

    item数组中的对象中的rcmd_reason对象:

    | 字段 | 类型 | 内容 | 备注 | | reason_type | num | 原因类型 | 0: 无
    1: 已关注
    3: 高点赞量 | | content | str | 原因描述 | 当 reason_type 为 3 时存在 |

    示例:

    获取新版web端首页推荐视频列表

    curl -G 'https://api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd' \\
    +--data-urlencode 'fresh_type=4' \\
    +--data-urlencode 'ps=12' \\
    +--data-urlencode 'fresh_idx=5' \\
    +--data-urlencode 'fresh_idx_1h=5' \\
    +--data-urlencode 'fetch_row=16'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "item": [
    +            {
    +                "id": 1354614895,
    +                "bvid": "BV1Dz42117GZ",
    +                "cid": 1548835687,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1Dz42117GZ",
    +                "pic": "http://i1.hdslb.com/bfs/archive/b47154987b4c0f40a39779c09a9d485176d1238f.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/archive/b47154987b4c0f40a39779c09a9d485176d1238f.jpg",
    +                "title": "做数学题总是抄错 | 看错 | 算错 怎么破?决定高考分数的这个非智力因素不容忽视",
    +                "duration": 882,
    +                "pubdate": 1715946937,
    +                "owner": {
    +                    "mid": 374484802,
    +                    "name": "数学阮禾老师",
    +                    "face": "https://i1.hdslb.com/bfs/face/4df57e4b48b04206bce7572831688741580ca0e1.jpg"
    +                },
    +                "stat": {
    +                    "view": 48250,
    +                    "like": 2959,
    +                    "danmaku": 433,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1255924089,
    +                "bvid": "BV1DJ4m1u7Mp",
    +                "cid": 1600833978,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1DJ4m1u7Mp",
    +                "pic": "http://i0.hdslb.com/bfs/archive/5068d860e8bbc37679ece933aa8e6d8428cfb5c1.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-07-01-1145021255924089_1612_gener.jpg",
    +                "title": "人类这种生物,看到按钮就会按下去。",
    +                "duration": 326,
    +                "pubdate": 1719805500,
    +                "owner": {
    +                    "mid": 5616993,
    +                    "name": "马夫鱼33",
    +                    "face": "https://i0.hdslb.com/bfs/face/4c2af23046147e91ce5a4af3375464fdcf1956e6.jpg"
    +                },
    +                "stat": {
    +                    "view": 667067,
    +                    "like": 28529,
    +                    "danmaku": 483,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "content": "2万点赞",
    +                    "reason_type": 3
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1306020278,
    +                "bvid": "BV1rM4m117Ry",
    +                "cid": 1608959606,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1rM4m117Ry",
    +                "pic": "http://i0.hdslb.com/bfs/archive/49f62c70f17d0afe00e5e620dd366c68149c780e.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/archive/49f62c70f17d0afe00e5e620dd366c68149c780e.jpg",
    +                "title": "Axios 前后端对接教程|HTTP",
    +                "duration": 352,
    +                "pubdate": 1720440325,
    +                "owner": {
    +                    "mid": 260736087,
    +                    "name": "三分钟实验室",
    +                    "face": "https://i0.hdslb.com/bfs/face/6172aa089ed0b26ffffb72018422eb4280d4da41.jpg"
    +                },
    +                "stat": {
    +                    "view": 7527,
    +                    "like": 365,
    +                    "danmaku": 1,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1755972439,
    +                "bvid": "BV1g4421D7qn",
    +                "cid": 1597039275,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1g4421D7qn",
    +                "pic": "http://i2.hdslb.com/bfs/archive/35ee2ffaab4206d17893a3f48cdf512b4f028fdc.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-26-21354756381755972439_16_12_5326_crop.jpg",
    +                "title": "《我爱发明》里那些抽象发明 歹徒兴奋床!",
    +                "duration": 659,
    +                "pubdate": 1719408945,
    +                "owner": {
    +                    "mid": 348989367,
    +                    "name": "沫子瞪片",
    +                    "face": "https://i0.hdslb.com/bfs/face/a2131d38a2ea73f16ff25e61dbeb40377233f552.jpg"
    +                },
    +                "stat": {
    +                    "view": 1540767,
    +                    "like": 65409,
    +                    "danmaku": 5383,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1055953358,
    +                "bvid": "BV1jH4y1w7A6",
    +                "cid": 1598484848,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1jH4y1w7A6",
    +                "pic": "http://i1.hdslb.com/bfs/archive/accdb655b4f2bef665e6fdedb4de28de2feda078.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-28-12560692491055953358_16_12_2438_crop.jpg",
    +                "title": "为什么一个数的5次方个位数是自己!",
    +                "duration": 327,
    +                "pubdate": 1719550565,
    +                "owner": {
    +                    "mid": 483522694,
    +                    "name": "火星课堂",
    +                    "face": "https://i1.hdslb.com/bfs/face/fe751f0d7062c8e8adcef501390d48330fac0514.jpg"
    +                },
    +                "stat": {
    +                    "view": 244673,
    +                    "like": 5406,
    +                    "danmaku": 210,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": {
    +                    "id": 0,
    +                    "contract_id": "",
    +                    "res_id": 1055953358,
    +                    "asg_id": 0,
    +                    "pos_num": 0,
    +                    "name": "",
    +                    "pic": "",
    +                    "litpic": "",
    +                    "url": "",
    +                    "style": 0,
    +                    "agency": "",
    +                    "label": "",
    +                    "intro": "",
    +                    "creative_type": 0,
    +                    "request_id": "1721098961752q172a25a216a162q1363",
    +                    "src_id": 5637,
    +                    "area": 0,
    +                    "is_ad_loc": true,
    +                    "ad_cb": "",
    +                    "title": "",
    +                    "server_type": 0,
    +                    "cm_mark": 0,
    +                    "stime": 0,
    +                    "mid": "",
    +                    "activity_type": 0,
    +                    "epid": 0,
    +                    "sub_title": "",
    +                    "ad_desc": "",
    +                    "adver_name": "",
    +                    "null_frame": false,
    +                    "pic_main_color": "",
    +                    "card_type": 0,
    +                    "business_mark": null,
    +                    "inline": {
    +                        "inline_use_same": 0,
    +                        "inline_type": 0,
    +                        "inline_url": "",
    +                        "inline_barrage_switch": 0
    +                    },
    +                    "operater": "",
    +                    "jump_target": 0,
    +                    "show_urls": null,
    +                    "click_urls": null
    +                },
    +                "is_stock": 1,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1763571437,
    +                "bvid": "",
    +                "cid": 0,
    +                "goto": "live",
    +                "uri": "https://live.bilibili.com/1763571437",
    +                "pic": "http://i0.hdslb.com/bfs/live/new_room_cover/f1787ef2ce4a2a031fb4a6a63b62d15493268d71.jpg",
    +                "pic_4_3": "",
    +                "title": "【新V】今天不要再把自己笨哭了",
    +                "duration": 0,
    +                "pubdate": 0,
    +                "owner": {
    +                    "mid": 3546712666802274,
    +                    "name": "伊柒璇儿_鹤熙冠",
    +                    "face": "https://i0.hdslb.com/bfs/face/3e0ff3d7d53b9ac1a2d90ea563e22d3f70ad28cc.jpg"
    +                },
    +                "stat": null,
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": null,
    +                "show_info": 0,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": {
    +                    "room_id": 1763571437,
    +                    "uid": 3546712666802274,
    +                    "live_status": 1,
    +                    "show": {
    +                        "short_id": 0,
    +                        "title": "【新V】今天不要再把自己笨哭了",
    +                        "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/f1787ef2ce4a2a031fb4a6a63b62d15493268d71.jpg",
    +                        "keyframe": "http://i0.hdslb.com/bfs/live-key-frame/keyframe07161101001763571437k9l40v.jpg",
    +                        "popularity_count": 8539,
    +                        "tag_list": null,
    +                        "live_start_time": 0,
    +                        "live_id": 0,
    +                        "hidden_online": false
    +                    },
    +                    "area": {
    +                        "area_id": 0,
    +                        "area_name": "虚拟日常",
    +                        "parent_area_id": 9,
    +                        "parent_area_name": "虚拟主播",
    +                        "old_area_id": 0,
    +                        "old_area_name": "",
    +                        "old_area_tag": "",
    +                        "area_pk_status": 0,
    +                        "is_video_room": false
    +                    },
    +                    "watched_show": {
    +                        "switch": true,
    +                        "num": 168,
    +                        "text_small": "168",
    +                        "text_large": "168人看过",
    +                        "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
    +                        "icon_location": "",
    +                        "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png"
    +                    }
    +                },
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1855792572,
    +                "bvid": "BV16s421T7CU",
    +                "cid": 1587596195,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV16s421T7CU",
    +                "pic": "http://i2.hdslb.com/bfs/archive/1b9d9799260a075b094212bf79e3d7ccb9e04087.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-19-14044883851855792572_16_12_7260_crop.jpg",
    +                "title": "压缩蚊件.zip",
    +                "duration": 66,
    +                "pubdate": 1718777086,
    +                "owner": {
    +                    "mid": 173947574,
    +                    "name": "好奇五先生",
    +                    "face": "https://i2.hdslb.com/bfs/face/1c69fff12a2d0d50e71931cef0486ab919a818a2.jpg"
    +                },
    +                "stat": {
    +                    "view": 951633,
    +                    "like": 22930,
    +                    "danmaku": 932,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1405866842,
    +                "bvid": "BV11r421F7E8",
    +                "cid": 1589772517,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV11r421F7E8",
    +                "pic": "http://i2.hdslb.com/bfs/archive/50b1bb8d227d17a3b6195e80128ab295d152d3be.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-20-2148551405866842_1612_gener.jpg",
    +                "title": "【音游推荐】暑期音游推荐,不同基础都可入坑",
    +                "duration": 311,
    +                "pubdate": 1718891332,
    +                "owner": {
    +                    "mid": 592146708,
    +                    "name": "Qc天水",
    +                    "face": "https://i0.hdslb.com/bfs/face/2998a9e762aa07559b2acf54234f07979c959ffe.jpg"
    +                },
    +                "stat": {
    +                    "view": 278997,
    +                    "like": 6698,
    +                    "danmaku": 303,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1055540151,
    +                "bvid": "BV1in4y197U4",
    +                "cid": 1582190043,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1in4y197U4",
    +                "pic": "http://i2.hdslb.com/bfs/archive/9a366971fadd6e4dfd1813c42b180c8779038627.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-15-18004087071055540151_16_12_7856_crop.jpg",
    +                "title": "我把裁判罚下场了",
    +                "duration": 217,
    +                "pubdate": 1718445600,
    +                "owner": {
    +                    "mid": 475304452,
    +                    "name": "生姜蛋包饭",
    +                    "face": "https://i1.hdslb.com/bfs/face/40feee36c71f7f53931854fc54c88d530360b1a7.jpg"
    +                },
    +                "stat": {
    +                    "view": 678085,
    +                    "like": 62171,
    +                    "danmaku": 832,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "content": "6万点赞",
    +                    "reason_type": 3
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1505823466,
    +                "bvid": "BV1vS421d7No",
    +                "cid": 1596567774,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1vS421d7No",
    +                "pic": "http://i2.hdslb.com/bfs/archive/b2b19b067cdbf7dd93be5fc01009e72c20572184.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-26-1241021505823466_1612_gener.jpg",
    +                "title": "AI 视频:两小儿辩日",
    +                "duration": 138,
    +                "pubdate": 1719376858,
    +                "owner": {
    +                    "mid": 589397373,
    +                    "name": "宝玉xp",
    +                    "face": "https://i0.hdslb.com/bfs/face/c2c29f6e1bb9b0860241f0df4d2cdea8242ab5d2.jpg"
    +                },
    +                "stat": {
    +                    "view": 1216188,
    +                    "like": 54839,
    +                    "danmaku": 194,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1055744039,
    +                "bvid": "BV1Zn4y1Q7zj",
    +                "cid": 1575814128,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1Zn4y1Q7zj",
    +                "pic": "http://i0.hdslb.com/bfs/archive/5288cf0830e49de414084c4168b11033b08f8507.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-09-17404720501055744039_16_12_294_crop.jpg",
    +                "title": "【诺子】重新“看见”世界是一种什么样的感觉?",
    +                "duration": 579,
    +                "pubdate": 1717926045,
    +                "owner": {
    +                    "mid": 10276136,
    +                    "name": "诺子喵呜",
    +                    "face": "https://i2.hdslb.com/bfs/face/7e6846ed5619b945c888b8f8db5000469f6353ff.jpg"
    +                },
    +                "stat": {
    +                    "view": 1016467,
    +                    "like": 97886,
    +                    "danmaku": 979,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1706215690,
    +                "bvid": "BV1tT421k7By",
    +                "cid": 1611364587,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1tT421k7By",
    +                "pic": "http://i1.hdslb.com/bfs/archive/cd3308109e8726fe4147dd25ed7ca0dbeeda1dc1.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-07-11-00194836761706215690_16_12_3934_crop.jpg",
    +                "title": "谷歌翻译20遍《河中石兽》泌尿系统",
    +                "duration": 145,
    +                "pubdate": 1720628387,
    +                "owner": {
    +                    "mid": 1030835113,
    +                    "name": "象哥嘎",
    +                    "face": "https://i1.hdslb.com/bfs/face/aa0ae89fa72dab7b8bc082433769b1768f51c3dc.jpg"
    +                },
    +                "stat": {
    +                    "view": 78600,
    +                    "like": 3437,
    +                    "danmaku": 328,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            }
    +        ],
    +        "side_bar_column": [
    +            {
    +                "id": 25502,
    +                "goto": "comic",
    +                "track_id": "",
    +                "pos": 1,
    +                "card_type": "漫画",
    +                "card_type_en": "comic",
    +                "cover": "http://i0.hdslb.com/bfs/manga-static/5e410bf6f73ff87f87b543e4b918de5f024652e8.jpg",
    +                "url": "https://manga.bilibili.com/detail/mc25502",
    +                "title": "头文字D",
    +                "sub_title": "",
    +                "duration": 0,
    +                "stats": null,
    +                "room_info": null,
    +                "styles": [
    +                    "游戏竞技"
    +                ],
    +                "comic": {
    +                    "comic_id": 25502,
    +                    "title": "头文字D",
    +                    "horizontal_cover": "http://i0.hdslb.com/bfs/manga-static/5e410bf6f73ff87f87b543e4b918de5f024652e8.jpg",
    +                    "square_cover": "http://i0.hdslb.com/bfs/manga-static/da660f6274730af82d557f21a6247d4f6b1e300b.jpg",
    +                    "vertical_cover": "http://i0.hdslb.com/bfs/manga-static/64df8b860d2bf6bf2edd0426b4aefbff25b51386.jpg",
    +                    "is_finish": 1,
    +                    "status": 0,
    +                    "last_ord": 724,
    +                    "total": 724,
    +                    "release_time": "",
    +                    "last_short_title": "番外05",
    +                    "discount_type": 0,
    +                    "recommendation": "秋名山下坡最快的AE86神话!",
    +                    "last_read_ep_id": 0,
    +                    "latest_ep_short_title": "",
    +                    "style": [
    +                        "游戏竞技"
    +                    ],
    +                    "author_name": [
    +                        "重野秀一 ",
    +                        "讲谈社"
    +                    ],
    +                    "allow_wait_free": false,
    +                    "type": 0,
    +                    "rank": null,
    +                    "operate_cover": "",
    +                    "rookie_type": 0
    +                },
    +                "producer": null,
    +                "source": "",
    +                "av_feature": null,
    +                "is_rec": 0,
    +                "is_finish": 0,
    +                "is_started": 0,
    +                "is_play": 0,
    +                "enable_vt": 0,
    +                "vt_display": ""
    +            },
    +            {
    +                "id": 47800,
    +                "goto": "ogv",
    +                "track_id": "",
    +                "pos": 2,
    +                "card_type": "番剧",
    +                "card_type_en": "bangumi",
    +                "cover": "https://i0.hdslb.com/bfs/bangumi/image/1c61f75b571fffb8c5a2bd0396b49ce3529776f4.png",
    +                "url": "https://www.bilibili.com/bangumi/play/ss47800",
    +                "title": "铁甲小宝 重制版 中文配音",
    +                "sub_title": "童年经典回归!",
    +                "duration": 1382000,
    +                "stats": {
    +                    "follow": 116644,
    +                    "view": 10864687,
    +                    "danmaku": 42428,
    +                    "reply": 11448,
    +                    "coin": 18904,
    +                    "series_follow": 209046,
    +                    "series_view": 17474247,
    +                    "likes": 61376,
    +                    "favorite": 116644
    +                },
    +                "room_info": null,
    +                "new_ep": {
    +                    "id": 824212,
    +                    "index_show": "更新至第30话",
    +                    "cover": "http://i0.hdslb.com/bfs/archive/e185c054588945a1de6648ff7fb5001852df39f4.png",
    +                    "title": "30",
    +                    "long_title": "巨大机器来袭!!",
    +                    "pub_time": "2024-07-15 18:00:01",
    +                    "duration": 1382000,
    +                    "day_of_week": 1
    +                },
    +                "styles": [
    +                    "日常",
    +                    "热血",
    +                    "搞笑",
    +                    "原创",
    +                    "特摄"
    +                ],
    +                "comic": null,
    +                "producer": [
    +                    {
    +                        "mid": 928123,
    +                        "name": "哔哩哔哩番剧",
    +                        "type": 3,
    +                        "is_contribute": 1
    +                    }
    +                ],
    +                "source": "",
    +                "av_feature": null,
    +                "is_rec": 0,
    +                "is_finish": 0,
    +                "is_started": 1,
    +                "is_play": 1,
    +                "horizontal_cover_16_9": "https://i0.hdslb.com/bfs/bangumi/image/ec5065dc0e88417abd4792d5caa96dacc99d1d51.png",
    +                "horizontal_cover_16_10": "https://i0.hdslb.com/bfs/bangumi/image/5cc132e336cc72e6521bba928d8a0e50bd5a6d34.png",
    +                "enable_vt": 0,
    +                "vt_display": ""
    +            },
    +            {
    +                "id": 48020,
    +                "goto": "ogv",
    +                "track_id": "",
    +                "pos": 3,
    +                "card_type": "国创",
    +                "card_type_en": "guochuang",
    +                "cover": "https://i0.hdslb.com/bfs/bangumi/image/fcb176fcbf5a66fd122fa99f9fdf2cabf22468bb.png",
    +                "url": "https://www.bilibili.com/bangumi/play/ss48020",
    +                "title": "不白吃古诗词漫游记 第二季",
    +                "sub_title": "古诗词这动人的浪漫",
    +                "duration": 179000,
    +                "stats": {
    +                    "follow": 2173495,
    +                    "view": 325366,
    +                    "danmaku": 110,
    +                    "reply": 208,
    +                    "coin": 443,
    +                    "series_follow": 2208624,
    +                    "series_view": 3322752487,
    +                    "likes": 8794,
    +                    "favorite": 2173495
    +                },
    +                "room_info": null,
    +                "new_ep": {
    +                    "id": 830238,
    +                    "index_show": "更新至第7话",
    +                    "cover": "http://i0.hdslb.com/bfs/archive/6db74bc8ab2670181562314a24abe525cebb7c76.jpg",
    +                    "title": "7",
    +                    "long_title": "王维当个官怎么还郁闷了?",
    +                    "pub_time": "2024-07-15 19:00:00",
    +                    "duration": 179000,
    +                    "day_of_week": 1
    +                },
    +                "styles": [
    +                    "少儿",
    +                    "历史",
    +                    "原创",
    +                    "古风"
    +                ],
    +                "comic": null,
    +                "producer": [],
    +                "source": "",
    +                "av_feature": null,
    +                "is_rec": 0,
    +                "is_finish": 0,
    +                "is_started": 1,
    +                "is_play": 1,
    +                "horizontal_cover_16_9": "https://i0.hdslb.com/bfs/bangumi/image/f19013ddd7f87b0e03df10feccc4a61a3a43774a.png",
    +                "horizontal_cover_16_10": "https://i0.hdslb.com/bfs/bangumi/image/966553b199829aae7e47882edbe053463ee85276.png",
    +                "enable_vt": 0,
    +                "vt_display": ""
    +            }
    +        ],
    +        "business_card": null,
    +        "floor_info": null,
    +        "user_feature": null,
    +        "preload_expose_pct": 0.5,
    +        "preload_floor_expose_pct": 0.5,
    +        "mid": 645769214
    +    }
    +}
    +

    获取短视频模式视频列表

    https://app.bilibili.com/x/v2/feed/index

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    有大量不明意义的参数 备注仅供参考

    参数名类型内容必要性备注
    fnvalnum视频流格式标识非必要默认为272
    fnvernum视频流版本标识非必要恒为1
    force_hostnum源url类型非必要0:无限制 1:使用http 2:使用https
    fourknum是否允许 4K 视频非必要画质最高 1080P:0(默认)
    画质最高 4K:1
    guidancenum0非必要
    https_url_reqnum0非必要
    inline_danmunum2非必要
    inline_soundnum1非必要
    interest_idnum0非必要
    login_eventnum登录状态非必要0为登录 1为未登录
    mobi_appnumandroid非必要设备类型
    networknumwifi非必要网络类型
    open_eventnum非必要
    platformnumandroid非必要设备类型
    pullbollfalse非必要
    qnnum32非必要似乎是画质
    recsys_modenum0非必要
    s_localestrzh_CN非必要语言
    video_modenum1非必要
    voice_balancenum音量均衡?非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj

    data对象:

    字段类型内容备注
    configobj一些界面相关的内容此处省略
    itemsarray视频列表

    data中的items数组的对象:

    以下为视频类型

    字段类型内容备注
    can_playnum1字面意思
    card_gotostrav
    card_typestr卡片类型视频为small_cover_v2
    coverstr封面url
    cover_left_1_content_descriptionstr播放量8.9万观看
    cover_left_2_content_descriptionstr弹幕数250弹幕
    cover_left_text_1str播放量8.9万
    cover_left_text_2str弹幕数250
    cover_right_content_descriptionstr视频长度1分钟20秒
    cover_right_textstr视频长度1:20
    desc_buttonobjup主信息
    paramstr视频aid
    player_argsobj视频信息
    talk_backstr
    titlestr标题
    uristr跳转链接

    desc_button对象:

    字段类型内容备注
    eventstr
    textstrup名称
    typenum1
    uristr跳转链接

    player_args对象:

    字段类型内容备注
    aidnum视频aid
    cidnum视频cid
    durationnum视频长度秒数
    typestr

    示例:

    获取短视频模式视频列表

    curl -G 'https://app.bilibili.com/x/v2/feed/index' 
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "items": [
    +            {
    +                "card_type": "small_cover_v2",
    +                "card_goto": "av",
    +                "goto": "av",
    +                "param": "411978753",
    +                "cover": "http://i2.hdslb.com/bfs/archive/a1bda1e57e6812ca8822a8839fc4a1d3539255a8.jpg",
    +                "title": "帕 鲁 现 状",
    +                "uri": "bilibili://video/411978753?cid=1423365216\\u0026player_height=1920\\u0026player_preload=%7B%22cid%22%3A1423365216%2C%22expire_time%22%3A1706633200%2C%22file_info%22%3A%7B%2216%22%3A%5B%7B%22timelength%22%3A79970%2C%22filesize%22%3A3782665%7D%5D%2C%2264%22%3A%5B%7B%22timelength%22%3A79900%2C%22filesize%22%3A9552030%7D%5D%7D%2C%22support_quality%22%3Anull%2C%22support_formats%22%3Anull%2C%22support_description%22%3Anull%2C%22quality%22%3A16%2C%22url%22%3A%22http%3A%2F%2Fcn-gdst-cm-01-12.bilivideo.com%2Fupgcxcode%2F16%2F52%2F1423365216%2F1423365216-1-16.mp4%3Fe%3Dig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_%5Cu0026uipk%3D5%5Cu0026nbs%3D1%5Cu0026deadline%3D1706636800%5Cu0026gen%3Dplayurlv2%5Cu0026os%3Dbcache%5Cu0026oi%3D0%5Cu0026trid%3D00000ccc07d4b7a34140a25493d51003bd95U%5Cu0026mid%3D0%5Cu0026platform%3D%5Cu0026upsig%3D2bf8e99202a181300981ab6ba9d2305d%5Cu0026uparams%3De%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%5Cu0026cdnid%3D6876%5Cu0026bvc%3Dvod%5Cu0026nettype%3D0%5Cu0026orderid%3D0%2C3%5Cu0026buvid%3D%5Cu0026build%3D0%5Cu0026f%3DU_0_0%5Cu0026bw%3D47881%5Cu0026logo%3D80000000%22%2C%22video_codecid%22%3A7%2C%22video_project%22%3Atrue%2C%22fnver%22%3A0%2C%22fnval%22%3A0%7D\\u0026player_rotate=0\\u0026player_width=1080\\u0026report_flow_data=%7B%22flow_card_type%22%3A%22av%22%7D",
    +                "three_point": {
    +                    "dislike_reasons": [
    +                        {
    +                            "id": 4,
    +                            "name": "UP主:锤子game",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "分区:网络游戏",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "频道:搞笑",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 12,
    +                            "name": "此类内容过多",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 13,
    +                            "name": "推荐过",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 1,
    +                            "name": "不感兴趣",
    +                            "toast": "将减少相似内容推荐"
    +                        }
    +                    ],
    +                    "feedbacks": [
    +                        {
    +                            "id": 1,
    +                            "name": "恐怖血腥",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "色情低俗",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "封面恶心",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 4,
    +                            "name": "标题党/封面党",
    +                            "toast": "将优化首页此类内容"
    +                        }
    +                    ],
    +                    "watch_later": 1
    +                },
    +                "args": {
    +                    "up_id": 495695169,
    +                    "up_name": "锤子game",
    +                    "rid": 65,
    +                    "rname": "网络游戏",
    +                    "tid": 1833,
    +                    "tname": "搞笑",
    +                    "aid": 411978753
    +                },
    +                "player_args": {
    +                    "aid": 411978753,
    +                    "cid": 1423365216,
    +                    "type": "av",
    +                    "duration": 80
    +                },
    +                "idx": 1706629610,
    +                "three_point_v2": [
    +                    {
    +                        "title": "添加至稍后再看",
    +                        "type": "watch_later",
    +                        "icon": "https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/NyPAqcn0QF.png"
    +                    },
    +                    {
    +                        "title": "反馈",
    +                        "subtitle": "(选择后将优化首页此类内容)",
    +                        "reasons": [
    +                            {
    +                                "id": 1,
    +                                "name": "恐怖血腥",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "色情低俗",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "封面恶心",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 4,
    +                                "name": "标题党/封面党",
    +                                "toast": "将优化首页此类内容"
    +                            }
    +                        ],
    +                        "type": "feedback"
    +                    },
    +                    {
    +                        "title": "不感兴趣",
    +                        "subtitle": "(选择后将减少相似内容推荐)",
    +                        "reasons": [
    +                            {
    +                                "id": 4,
    +                                "name": "UP主:锤子game",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "分区:网络游戏",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "频道:搞笑",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 12,
    +                                "name": "此类内容过多",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 13,
    +                                "name": "推荐过",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 1,
    +                                "name": "不感兴趣",
    +                                "toast": "将减少相似内容推荐"
    +                            }
    +                        ],
    +                        "type": "dislike"
    +                    }
    +                ],
    +                "talk_back": "视频,帕 鲁 现 状,32.5万观看,257弹幕,时长1分钟20秒,UP主锤子game,",
    +                "report_flow_data": "{\\"flow_card_type\\":\\"av\\"}",
    +                "cover_left_text_1": "32.5万",
    +                "cover_left_icon_1": 1,
    +                "cover_left_1_content_description": "32.5万观看",
    +                "cover_left_text_2": "257",
    +                "cover_left_icon_2": 3,
    +                "cover_left_2_content_description": "257弹幕",
    +                "cover_right_text": "1:20",
    +                "cover_right_content_description": "1分钟20秒",
    +                "desc_button": {
    +                    "text": "锤子game",
    +                    "uri": "bilibili://space/495695169",
    +                    "event": "nickname",
    +                    "type": 1
    +                },
    +                "official_icon": 16,
    +                "can_play": 1,
    +                "goto_icon": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/077GOeHOfO.png",
    +                    "icon_night_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/ldbCXtkoK2.png",
    +                    "icon_width": 16,
    +                    "icon_height": 16
    +                }
    +            },
    +            {
    +                "card_type": "small_cover_v2",
    +                "card_goto": "av",
    +                "goto": "av",
    +                "param": "836990443",
    +                "cover": "http://i1.hdslb.com/bfs/archive/d16a125d6ec1c68cc9e0815bc28dcb62a1df9932.jpg",
    +                "title": "【Phigros自制/崩坏:星穹铁道】欢迎来到匹诺康尼! 不眠之夜 IN Lv.13",
    +                "uri": "bilibili://video/836990443?cid=1422516399\\u0026player_height=1080\\u0026player_preload=%7B%22cid%22%3A1422516399%2C%22expire_time%22%3A1706633200%2C%22file_info%22%3A%7B%2216%22%3A%5B%7B%22timelength%22%3A102818%2C%22filesize%22%3A4441802%7D%5D%2C%2264%22%3A%5B%7B%22timelength%22%3A102748%2C%22filesize%22%3A12468618%7D%5D%7D%2C%22support_quality%22%3Anull%2C%22support_formats%22%3Anull%2C%22support_description%22%3Anull%2C%22quality%22%3A16%2C%22url%22%3A%22http%3A%2F%2Fupos-sz-mirrorali.bilivideo.com%2Fupgcxcode%2F99%2F63%2F1422516399%2F1422516399-1-16.mp4%3Fe%3Dig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_%5Cu0026uipk%3D5%5Cu0026nbs%3D1%5Cu0026deadline%3D1706636800%5Cu0026gen%3Dplayurlv2%5Cu0026os%3Dalibv%5Cu0026oi%3D0%5Cu0026trid%3D0ccc07d4b7a34140a25493d51003bd95U%5Cu0026mid%3D0%5Cu0026platform%3D%5Cu0026upsig%3D06ea793aa573018646c0096adf0dcb9e%5Cu0026uparams%3De%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%5Cu0026bvc%3Dvod%5Cu0026nettype%3D0%5Cu0026orderid%3D0%2C3%5Cu0026buvid%3D%5Cu0026build%3D0%5Cu0026f%3DU_0_0%5Cu0026bw%3D43547%5Cu0026logo%3D80000000%22%2C%22video_codecid%22%3A7%2C%22video_project%22%3Atrue%2C%22fnver%22%3A0%2C%22fnval%22%3A0%7D\\u0026player_rotate=0\\u0026player_width=1920\\u0026report_flow_data=%7B%22flow_card_type%22%3A%22av%22%7D",
    +                "three_point": {
    +                    "dislike_reasons": [
    +                        {
    +                            "id": 4,
    +                            "name": "UP主:早期陈总",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "分区:音游",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "频道:音乐游戏",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 12,
    +                            "name": "此类内容过多",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 13,
    +                            "name": "推荐过",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 1,
    +                            "name": "不感兴趣",
    +                            "toast": "将减少相似内容推荐"
    +                        }
    +                    ],
    +                    "feedbacks": [
    +                        {
    +                            "id": 1,
    +                            "name": "恐怖血腥",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "色情低俗",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "封面恶心",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 4,
    +                            "name": "标题党/封面党",
    +                            "toast": "将优化首页此类内容"
    +                        }
    +                    ],
    +                    "watch_later": 1
    +                },
    +                "args": {
    +                    "up_id": 1515475415,
    +                    "up_name": "早期陈总",
    +                    "rid": 136,
    +                    "rname": "音游",
    +                    "tid": 10174,
    +                    "tname": "音乐游戏",
    +                    "aid": 836990443
    +                },
    +                "player_args": {
    +                    "aid": 836990443,
    +                    "cid": 1422516399,
    +                    "type": "av",
    +                    "duration": 103
    +                },
    +                "idx": 1706629609,
    +                "three_point_v2": [
    +                    {
    +                        "title": "添加至稍后再看",
    +                        "type": "watch_later",
    +                        "icon": "https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/NyPAqcn0QF.png"
    +                    },
    +                    {
    +                        "title": "反馈",
    +                        "subtitle": "(选择后将优化首页此类内容)",
    +                        "reasons": [
    +                            {
    +                                "id": 1,
    +                                "name": "恐怖血腥",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "色情低俗",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "封面恶心",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 4,
    +                                "name": "标题党/封面党",
    +                                "toast": "将优化首页此类内容"
    +                            }
    +                        ],
    +                        "type": "feedback"
    +                    },
    +                    {
    +                        "title": "不感兴趣",
    +                        "subtitle": "(选择后将减少相似内容推荐)",
    +                        "reasons": [
    +                            {
    +                                "id": 4,
    +                                "name": "UP主:早期陈总",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "分区:音游",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "频道:音乐游戏",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 12,
    +                                "name": "此类内容过多",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 13,
    +                                "name": "推荐过",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 1,
    +                                "name": "不感兴趣",
    +                                "toast": "将减少相似内容推荐"
    +                            }
    +                        ],
    +                        "type": "dislike"
    +                    }
    +                ],
    +                "talk_back": "视频,【Phigros自制/崩坏:星穹铁道】欢迎来到匹诺康尼! 不眠之夜 IN Lv.13,22.8万观看,797弹幕,时长1分钟43秒,UP主早期陈总,",
    +                "report_flow_data": "{\\"flow_card_type\\":\\"av\\"}",
    +                "cover_left_text_1": "22.8万",
    +                "cover_left_icon_1": 1,
    +                "cover_left_1_content_description": "22.8万观看",
    +                "cover_left_text_2": "797",
    +                "cover_left_icon_2": 3,
    +                "cover_left_2_content_description": "797弹幕",
    +                "cover_right_text": "1:43",
    +                "cover_right_content_description": "1分钟43秒",
    +                "desc_button": {
    +                    "text": "早期陈总",
    +                    "uri": "bilibili://space/1515475415",
    +                    "event": "nickname",
    +                    "type": 1
    +                },
    +                "can_play": 1,
    +                "goto_icon": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/077GOeHOfO.png",
    +                    "icon_night_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/ldbCXtkoK2.png",
    +                    "icon_width": 16,
    +                    "icon_height": 16
    +                }
    +            }
    +        ],
    +        "config": {
    +            "column": 2,
    +            "autoplay_card": 2,
    +            "feed_clean_abtest": 0,
    +            "home_transfer_test": 0,
    +            "auto_refresh_time": 1200,
    +            "show_inline_danmaku": 1,
    +            "toast": {},
    +            "is_back_to_homepage": true,
    +            "enable_rcmd_guide": true,
    +            "inline_sound": 2,
    +            "auto_refresh_time_by_appear": 1200,
    +            "auto_refresh_time_by_active": 1200,
    +            "visible_area": 80,
    +            "card_density_exp": 1,
    +            "story_mode_v2_guide_exp": 6
    +        },
    +        "interest_choose": null
    +    }
    +}
    +
    `,31);function bn(mn,yn){const a=l("RouterLink");return u(),c("div",null,[i,n("p",null,[s("基本同「"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[s("获取视频详细信息(web端)")]),_:1}),s("」中的data对象,已知没有分P信息")]),k,n("table",null,[d,n("tbody",null,[v,q,b,m,y,_,g,h,f,w,C,j,x,D,A,n("tr",null,[B,E,V,N,n("td",null,[s("见"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("WBI 签名")]),_:1})])]),n("tr",null,[F,U,X,z,n("td",null,[s("见"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("WBI 签名")]),_:1})])])])]),P,n("table",null,[I,n("tbody",null,[T,S,G,R,M,J,L,Z,H,Q,O,W,K,Y,$,nn,sn,an,tn,pn,on,en,n("tr",null,[ln,un,cn,n("td",null,[s("直播等为null, 参见"),t(a,{to:"/docs/video/info.html"},{default:p(()=>[s("视频基本信息")]),_:1})])]),rn,kn,dn,vn])]),qn])}const gn=e(r,[["render",bn],["__file","recommend.html.vue"]]);export{gn as default}; diff --git a/assets/recommend_author.html-09eae6c9.js b/assets/recommend_author.html-09eae6c9.js new file mode 100644 index 0000000000..7ee84d5888 --- /dev/null +++ b/assets/recommend_author.html-09eae6c9.js @@ -0,0 +1,79 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},e=t(`

    相簿推荐作者

    获取摄影推荐作者

    https://api.vc.bilibili.com/link_draw/v2/Photo/uper

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    numnum请求数量非必要默认为6

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataarray信息本体

    data数组:

    类型内容备注
    0obj作者 1
    nobj作者 (n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    uidnum作者mid
    head_urlstr头像url
    namestr昵称
    is_followednum0作用尚不明确

    示例:

    请求获取摄影推荐作者,数量为5

    curl -G 'https://api.vc.bilibili.com/link_draw/v2/Photo/uper' \\
    +--data-urlencode 'num=5'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    numnum请求数量非必要默认为6

    json回复:

    获取摄影推荐作者中的响应内容

    示例:

    请求获取画友推荐作者,数量为5

    curl -G 'https://api.vc.bilibili.com/link_draw/v2/Doc/drawer' \\
    +--data-urlencode 'num=5'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    `,28),o=[e];function c(l,u){return n(),a("div",null,o)}const d=s(p,[["render",c],["__file","recommend_author.html.vue"]]);export{d as default}; diff --git a/assets/recommend_author.html-3c1e94fe.js b/assets/recommend_author.html-3c1e94fe.js new file mode 100644 index 0000000000..a9da0c0d68 --- /dev/null +++ b/assets/recommend_author.html-3c1e94fe.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-cdc386a0","path":"/docs/album/recommend_author.html","title":"相簿推荐作者","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取摄影推荐作者","slug":"获取摄影推荐作者","link":"#获取摄影推荐作者","children":[]},{"level":2,"title":"获取画友推荐作者","slug":"获取画友推荐作者","link":"#获取画友推荐作者","children":[]}],"git":{},"filePathRelative":"docs/album/recommend_author.md"}');export{e as data}; diff --git a/assets/redpocket.html-6b792f64.js b/assets/redpocket.html-6b792f64.js new file mode 100644 index 0000000000..122b49ad1d --- /dev/null +++ b/assets/redpocket.html-6b792f64.js @@ -0,0 +1,58 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    直播间人气红包

    获取指定直播间的红包信息

    https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb

    请求方式:GET

    认证方式(可选):Cookie(SESSDATA)

    如果不携带Cookie信息,user_status将始终返回2(未参与)。

    如果所查询的直播间无红包,popularity_red_pocket为null。

    url参数:

    参数名类型内容必要性备注
    roomidstr直播间id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息0:成功
    ttlnumTimeToLive正常为1
    dataobject返回数据

    data对象:

    类型内容备注
    popularity_red_pocketarray人气红包信息
    ……......…………

    popularity_red_pocket数组中的对象:

    字段类型内容备注
    lot_idnum红包id
    sender_uidnum红包发送者uid
    sender_namestr红包发送者昵称
    sender_facestr红包发送者头像
    join_requirementnum参与条件?
    danmustr参与红包时自动发送的弹幕内容
    awardsarray红包内容
    lot_statusnum未知
    h5_urlstr红包界面
    user_statusnum用户是否已参与1:已参与 2:未参与
    lot_config_idnum未知
    total_pricenum红包总计价格

    示例:

    查询房间号为24146996的直播间红包信息:

    curl -G 'https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb?roomid=24146996'
    +
    查看响应示例:
    
    +{
    +	"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
    +	}
    +}
    +
    `,20),o=[e];function r(l,u){return n(),s("div",null,o)}const d=t(p,[["render",r],["__file","redpocket.html.vue"]]);export{d as default}; diff --git a/assets/redpocket.html-cdfefdfc.js b/assets/redpocket.html-cdfefdfc.js new file mode 100644 index 0000000000..973e069e34 --- /dev/null +++ b/assets/redpocket.html-cdfefdfc.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-be421d0c","path":"/docs/live/redpocket.html","title":"直播间人气红包","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取指定直播间的红包信息","slug":"获取指定直播间的红包信息","link":"#获取指定直播间的红包信息","children":[]}],"git":{},"filePathRelative":"docs/live/redpocket.md"}');export{e as data}; diff --git a/assets/register.html-38064566.js b/assets/register.html-38064566.js new file mode 100644 index 0000000000..53d1ac236b --- /dev/null +++ b/assets/register.html-38064566.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-640b6e0d","path":"/docs/user/register.html","title":"用户注册","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"人机验证","slug":"人机验证","link":"#人机验证","children":[]},{"level":2,"title":"发送短信验证码","slug":"发送短信验证码","link":"#发送短信验证码","children":[]},{"level":2,"title":"提交注册请求","slug":"提交注册请求","link":"#提交注册请求","children":[]}],"git":{},"filePathRelative":"docs/user/register.md"}');export{e as data}; diff --git a/assets/register.html-f58638c9.js b/assets/register.html-f58638c9.js new file mode 100644 index 0000000000..efcd58e957 --- /dev/null +++ b/assets/register.html-f58638c9.js @@ -0,0 +1,30 @@ +import{_ as d,r as o,o as i,c,a as n,d as a,w as e,b as s,e as l}from"./app-3168cb19.js";const u={},r=n("h1",{id:"用户注册",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#用户注册","aria-hidden":"true"},"#"),s(" 用户注册")],-1),p=n("h2",{id:"人机验证",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#人机验证","aria-hidden":"true"},"#"),s(" 人机验证")],-1),b=n("p",null,[s("完成后得到"),n("code",null,"key"),s(", "),n("code",null,"challenge"),s(", "),n("code",null,"validate"),s(", "),n("code",null,"seccode"),s("四个参数")],-1),h=n("h2",{id:"发送短信验证码",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#发送短信验证码","aria-hidden":"true"},"#"),s(" 发送短信验证码")],-1),m=l(`

    注意不同的是这里type=1而非21,推测此参数决定短信内容

    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'
    +
    查看示例
    {
    +    "code": 0,
    +    "message": "验证码短信已下发"
    +}
    +

    提交注册请求

    https://passport.bilibili.com/web/reg/tel

    请求方式:POST

    正文参数( application/x-www-form-urlencoded ):

    `,7),v=n("thead",null,[n("tr",null,[n("th",null,"参数名"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1),k=n("td",null,"cid",-1),g=n("td",null,"num",-1),_=n("td",null,"国际冠字码",-1),q=n("td",null,"必要",-1),E=n("tr",null,[n("td",null,"tel"),n("td",null,"num"),n("td",null,"手机号码"),n("td",null,"必要"),n("td")],-1),f=n("tr",null,[n("td",null,"code"),n("td",null,"num"),n("td",null,"短信验证码"),n("td",null,"必要"),n("td")],-1),w=n("tr",null,[n("td",null,"nickName"),n("td",null,"str"),n("td",null,"昵称"),n("td",null,"必要"),n("td")],-1),y=n("tr",null,[n("td",null,"pwd"),n("td",null,"str"),n("td",null,"密码"),n("td",null,"必要"),n("td",null,"密码为明文")],-1),A=n("tr",null,[n("td",null,"plat"),n("td",null,"num"),n("td",null,"0"),n("td",null,"必要"),n("td",null,"平台?")],-1),x=n("tr",null,[n("td",null,"gourl"),n("td",null,"str"),n("td",null,"注册成功跳转地址"),n("td",null,"非必要"),n("td",null,[s("默认为主页"),n("code",null,"https://www.bilibili.com/")])],-1),B=l(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1005:验证码错误
    1007:验证码过期
    messagestr错误信息成功时无此字段
    dataobj信息本体只在成功时存在

    data对象:

    字段类型内容备注
    redirectUrlstr跳转链接
    hintstr"注册成功"成功后不提示成功还能提示什么?
    in_reg_auditnum(?)
    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'
    +
    查看示例
    {
    +    "code": 0,
    +    "data": {
    +        "redirectUrl": "https://www.bilibili.com",
    +        "hint": "注册成功",
    +        "in_reg_audit": 0
    +    }
    +}
    +
    `,7);function F(j,C){const t=o("RouterLink");return i(),c("div",null,[r,p,n("p",null,[a(t,{to:"/docs/login/login_action/#%E9%AA%8C%E8%AF%81%E7%99%BB%E5%BD%95"},{default:e(()=>[s("完成人机验证(参考验证登录)")]),_:1})]),b,h,n("p",null,[a(t,{to:"/docs/login/login_action/SMS.html#%E5%8F%91%E9%80%81%E7%9F%AD%E4%BF%A1%E9%AA%8C%E8%AF%81%E7%A0%81%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("发送短信验证码(参考短信登录)")]),_:1})]),m,n("table",null,[v,n("tbody",null,[n("tr",null,[k,g,_,q,n("td",null,[s("可以从 "),a(t,{to:"/docs/login/login_action/SMS.html#%E8%8E%B7%E5%8F%96%E5%9B%BD%E9%99%85%E5%86%A0%E5%AD%97%E7%A0%81_web%E7%AB%AF"},{default:e(()=>[s("获取国际冠字码")]),_:1}),s(" 接口中获取")])]),E,f,w,y,A,x])]),B])}const S=d(u,[["render",F],["__file","register.html.vue"]]);export{S as default}; diff --git a/assets/relation-08c1f69b.svg b/assets/relation-08c1f69b.svg new file mode 100644 index 0000000000..a9e42ecd0c --- /dev/null +++ b/assets/relation-08c1f69b.svg @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/assets/relation.html-14a829cb.js b/assets/relation.html-14a829cb.js new file mode 100644 index 0000000000..0de3f7b1a9 --- /dev/null +++ b/assets/relation.html-14a829cb.js @@ -0,0 +1,896 @@ +import{_ as d,r,o as l,c,a as t,b as s,d as a,w as p,e}from"./app-3168cb19.js";const i="/bilibili-API-collect/assets/relation-08c1f69b.svg",u="/bilibili-API-collect/assets/follow-c1c4dc33.svg",o="/bilibili-API-collect/assets/add-5a779700.svg",k="/bilibili-API-collect/assets/delete-88b14593.svg",b={},v=e('

    用户关系相关

    查询关系列表

    关系列表对象

    以下说明中的 “目标用户” 指被查询的用户,“对方” 指返回的关系列表中的用户。

    字段类型内容备注
    midnum用户 mid
    attributenum对方对于自己的关系属性0:未关注
    1:悄悄关注(现已下线)
    2:已关注
    6:已互粉
    128:已拉黑
    mtimenum对方关注目标用户时间秒级时间戳
    互关后刷新
    tag默认分组:null
    存在至少一个分组:array
    目标用户将对方分组到的 id
    specialnum目标用户特别关注对方标识0:否
    1:是
    contract_infoobj契约计划相关信息
    unamestr用户昵称
    facestr用户头像url
    face_nftnum是否为 NFT 头像0:非 NFT 头像
    1:NFT 头像
    signstr用户签名
    official_verifyobj认证信息
    vipobj会员信息
    nft_iconstr(?)
    rec_reasonstr(?)
    track_idstr(?)

    list中的对象中的tag数组:

    类型内容备注
    0num位于分组 1 的分组 id
    nnum位于分组(n+1)的分组 id
    ……num…………

    list中的对象中的contract_info对象:

    字段类型内容备注
    is_contractbool目标用户是否为对方的契约者仅当为 true 时才有此项
    is_contractorbool对方是否为目标用户的契约者仅当为 true 时才有此项
    tsnum对方成为目标用户的契约者的时间秒级时间戳,仅当 is_contractor 项的值为 true 时才有此项
    user_attrnum对方作为目标用户的契约者的属性1:老粉
    否则为原始粉丝
    仅当有特殊属性时才有此项

    list中的对象中的official_verify对象:

    字段类型内容备注
    typenum用户认证类型-1:无
    0:UP 主认证
    1:机构认证
    descstr用户认证信息无为空

    list中的对象中的vip对象:

    字段类型内容备注
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度以上大会员
    vipDueDatenum会员到期时间时间戳 毫秒
    dueRemarkstr(?)
    accessStatusnum(?)
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr(?)
    themeTypenum(?)
    labelobj(?)

    vip中的label对象:

    字段类型内容备注
    pathstr(?)

    查询用户粉丝明细

    https://api.bilibili.com/x/relation/followers

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    本接口只有登录、标头 refererbilibili.com 下的子域名、UA 不含 python 时才会返回列表

    本接口仅可返回前 1000 名粉丝,若继续往后查询则返回空列表

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    vmidnum目标用户 mid必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1
    仅可查看前 1000 名粉丝

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -352:请求被拦截
    -400:请求错误
    22118:由于该用户隐私设置,粉丝列表不可见
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum粉丝总数

    data中的list数组:

    类型内容备注
    0obj粉丝 1详见 关系列表对象
    nobj粉丝 (n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取用户mid=293793435的粉丝明细

    curl -G 'https://api.bilibili.com/x/relation/followers' \\
    +    --data-urlencode 'vmid=293793435' \\
    +    --data-urlencode 'ps=2' \\
    +    --data-urlencode 'pn=1' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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

    本接口只有登录、标头 refererbilibili.com 下的子域名、UA 不含 python 时才会返回列表

    登录可看当前用户全部,其他用户仅可查看前 100 个,访问超过 100 个时返回空列表(但 code 值为 0

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    vmidnum目标用户 mid必要
    order_typestr排序方式非必要当目标用户为自己时有效
    按照关注顺序排列:留空
    按照最常访问排列:attention
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1
    其他用户仅可查看前 100 个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -352:请求被拦截
    -400:请求错误
    22115:用户已设置隐私,无法查看
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj关注1关系列表对象
    nobj关注(n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取用户mid=293793435的关注明细,按照关注顺序

    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'
    +
    查看响应示例:
    {
    +	"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

    仅可查看前 5 页,对于已设置可见性隐私关注列表的用户,$.data.list 为 null,且 $.data.total 为0

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户 mid必要
    orderstr排序方式非必要按照降序排列:desc
    按照升序排列:asc
    默认降序排列
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1
    仅可查看前 5 页

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    22007:访问超过 5 页
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj关注 1关系列表对象 数据结构不同
    nobj关注(n+1)按照添加顺序排列
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    midnum用户 mid
    attributenum关注属性0:未关注
    2:已关注
    6:已互粉
    mtimenum关注对方时间时间戳
    互关后刷新
    tag默认分组:null
    存在至少一个分组:array
    分组 id
    specialnum特别关注标志0:否
    1:是
    unamestr用户昵称
    facestr用户头像 url
    signstr用户签名
    official_verifyobj认证信息
    vipobj会员信息
    livenum是否直播0:未直播
    1:直播中

    数组list中的对象中的tag数组:

    类型内容备注
    0num位于分组 1 的分组 id
    nnum位于分组(n+1)的分组 id
    ……num…………

    list中的对象中的official_verify对象:

    字段类型内容备注
    typenum用户认证类型-1:无
    0:UP主认证
    1:机构认证
    descstr用户认证信息无为空

    list中的对象中的vip对象:

    字段类型内容备注
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度以上大会员
    vipDueDatenum会员到期时间时间戳 毫秒
    dueRemarkstr(?)
    accessStatusnum(?)
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr(?)
    themeTypenum(?)
    labelobj(?)

    vip中的label对象:

    字段类型内容备注
    pathstr(?)

    示例:

    获取用户mid=293793435的关注明细,按照关注顺序

    curl -G 'https://app.biliapi.net/x/v2/relation/followings' \\
    +    --data-urlencode 'vmid=293793435' \\
    +    --data-urlencode 'ps=2' \\
    +    --data-urlencode 'pn=1' \\
    +
    查看响应示例:
    {
    +	"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
    +	}
    +}
    +

    查询用户关注明细3

    https://line3-h5-mobile-api.biligame.com/game/center/h5/user/relationship/following_list

    请求方式:GET

    对于设置了可见性隐私关注列表的用户会返回空列表

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要
    psnum每页项数非必要默认为20
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息成功时无此项
    dataobj信息本体失败时无此项
    tsnum当前时间戳单位为毫秒
    request_idstr请求id

    data对象:

    字段类型内容备注
    listarray明细列表

    data中的list数组:

    类型内容备注
    0obj关注1
    nobj关注(n+1)按照关注顺序排列
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    midstr用户mid
    attributenum关注属性0:未关注
    2:已关注
    6:已互粉
    unamestr用户昵称
    facestr用户头像url

    示例:

    获取用户mid=293793435的关注明细

    curl -G 'https://line3-h5-mobile-api.biligame.com/game/center/h5/user/relationship/following_list' \\
    +--data-urlencode 'vmid=293793435' \\
    +--data-urlencode 'ps=2' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"data": {
    +		"list": [{
    +			"mid": "14082",
    +			"attribute": 2,
    +			"uname": "山新",
    +			"face": "https://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg"
    +		}, {
    +			"mid": "420831218",
    +			"attribute": 2,
    +			"uname": "支付宝Alipay",
    +			"face": "https://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg"
    +		}]
    +	},
    +	"ts": 1677410818395,
    +	"request_id": "d9d541b9f2d24e21821e2d6d2d16c17d"
    +}
    +

    搜索关注明细

    https://api.bilibili.com/x/relation/followings/search

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    vmidstr目标用户 mid必要
    namestr搜索关键词非必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    22007:访问超过 5 页
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj匹配项目 1关系列表对象
    nobj匹配项目(n+1)按照添加顺序排列
    ……obj…………

    示例:

    搜索我的关注列表中关键词warma

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要
    vmidnum目标用户 mid必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj共同关注 1关系列表对象
    nobj共同关注(n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取自己与用户mid=2的共同关注明细

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)

    data中的list数组:

    类型内容备注
    0obj悄悄关注 1关系列表对象
    nobj悄悄关注(n+1)按照操作顺序排列
    ……obj…………

    示例:

    curl -G 'https://api.bilibili.com/x/relation/whispers' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)

    data中的list数组:

    类型内容备注
    0obj互关 1关系列表对象
    nobj互关(n+1)按照添加顺序排列
    ……obj…………

    示例:

    curl -G 'https://api.bilibili.com/x/relation/friends' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "mid": 596000,
    +                "attribute": 6,
    +                "mtime": 1685110154,
    +                "tag": null,
    +                "special": 0,
    +                "uname": "椛椛在睡觉",
    +                "face": "https://i2.hdslb.com/bfs/face/365c1ef3b2a3afe21d6832796338fad5119b2592.jpg",
    +                "sign": "欢迎来找椛椛玩~ https://blogs.momiji-jin.com/",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 2,
    +                    "vipDueDate": 1702742400000,
    +                    "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": ""
    +            },
    +            {
    +                "mid": 24022863,
    +                "attribute": 6,
    +                "mtime": 1685026230,
    +                "tag": [
    +                    -10
    +                ],
    +                "special": 1,
    +                "uname": "黄禄轩电脑专用账号",
    +                "face": "https://i0.hdslb.com/bfs/face/a70ec7d2a3822980a915ef4b30371af0cbc79132.jpg",
    +                "sign": "若要私信,请私信「黄禄轩手机专用账号」http://space.bilibili.com/17640193/,群:410311648",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 2,
    +                    "vipDueDate": 1686412800000,
    +                    "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": ""
    +            },
    +            {
    +                "mid": 85438718,
    +                "attribute": 6,
    +                "mtime": 1684759843,
    +                "tag": [
    +                    194110
    +                ],
    +                "special": 0,
    +                "uname": "忘忧北萱草Official",
    +                "face": "https://i2.hdslb.com/bfs/face/68d8cba01aab907dbb2cf2e17074f20947156237.jpg",
    +                "sign": "现已加入 OrangeFire 豪华套餐!",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 2,
    +                    "vipDueDate": 1691683200000,
    +                    "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": ""
    +            },
    +            {
    +                "mid": 41620134,
    +                "attribute": 6,
    +                "mtime": 1684759649,
    +                "tag": null,
    +                "special": 0,
    +                "uname": "Tiggy_Chan",
    +                "face": "https://i0.hdslb.com/bfs/face/8c8d9f43eda207f8cb8503bfdf6cc3802a1cd6c1.jpg",
    +                "sign": "此号只发科技类视频,娱乐类转至:虎子酱233",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 1,
    +                    "vipDueDate": 1669219200000,
    +                    "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": "",
    +                    "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_keystrAPP 登录 TokenAPP 方式必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum黑名单总计数

    data中的list数组:

    类型内容备注
    0obj黑名单 1关系列表对象
    nobj黑名单 (n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取黑名单明细

    curl -G 'https://api.bilibili.com/x/relation/blacks' \\
    +    --data-urlencode 'ps=2' \\
    +    --data-urlencode 'pn=1' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要
    fidnum目标用户mid必要
    actnum操作代码必要操作代码见下表
    re_srcnum关注来源代码必要空间:11
    视频:14
    文章:115
    活动页面:222
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    操作代码act

    代码含义备注
    1关注无法对已注销或不存在的用户进行此操作
    2取关
    3悄悄关注现已下线,使用本操作代码请求接口会提示“请求错误”
    4取消悄悄关注
    5拉黑无法对已注销或不存在的用户进行此操作
    6取消拉黑
    7踢出粉丝

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    22001:不能对自己进行此操作
    22002:因对方隐私设置,你还不能关注
    22003:关注失败,请将该用户移除黑名单之后再试
    22013:账号已注销,无法完成操作
    22014:已经关注用户,无法重复关注
    22120:重复加入黑名单
    40061:用户不存在
    messagestr错误信息默认为0
    ttlnum1

    示例:

    关注mid=14082的用户

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    批量操作用户关系

    https://api.bilibili.com/x/relation/batch/modify

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    此接口只支持关注和拉黑操作

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidsnums目标用户 mid 列表必要每个之间用,间隔
    actnum操作代码必要同上
    仅可为 1 或 5,故只能进行批量关注和拉黑
    re_srcnum关注来源代码必要同上
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    22003:用户位于黑名单
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    failed_fidsarray操作失败的 mid 列表

    data中的failed_fids数组:

    类型内容备注
    0num操作失败的 mid 1
    nnum操作失败的 mid(n+1)
    ……num…………

    示例:

    批量关注mid=1,2,3,4,5的用户

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "failed_fids": []
    +    }
    +}
    +

    查询关系属性

    关系属性对象

    字段类型内容备注
    midnum目标用户 mid
    attributenum关系属性0:未关注
    2:已关注
    6:已互粉
    128:已拉黑
    mtimenum关注对方时间时间戳
    未关注为 0
    tagnull默认分组
    array存在至少一个分组
    分组 id
    specialnum特别关注标志0:否
    1:是

    tag数组:

    类型内容备注
    0num位于分组 1 的分组
    nnum位于分组(n+1)的分组
    ……num…………

    查询用户与自己关系(仅关注)

    https://api.bilibili.com/x/relation

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidnum目标用户 mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体详见 关系属性对象

    data对象:示例:

    可得对于mid=258150656的用户,在2018/10/28 0:51:41时关注,且设为特别关注,并位于为-10分组中

    curl -G 'https://api.bilibili.com/x/relation' \\
    +    --data-urlencode 'fid=258150656' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"mid": 258150656,
    +		"attribute": 2,
    +		"mtime": 1540659101,
    +		"tag": [-10],
    +		"special": 1
    +	}
    +}
    +

    查询用户与自己关系(互相关系)

    https://api.bilibili.com/x/space/wbi/acc/relation

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    `,240),m=t("p",null,[t("s",null,"该接口的旧版 API :https://api.bilibili.com/x/space/acc/relation"),s("(已废弃,不建议使用)")],-1),q=t("p",null,[t("strong",null,"url参数:")],-1),h=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),y=t("tr",null,[t("td",null,"access_key"),t("td",null,"str"),t("td",null,"APP登录Token"),t("td",null,"APP方式必要"),t("td")],-1),g=t("tr",null,[t("td",null,"mid"),t("td",null,"num"),t("td",null,"目标用户mid"),t("td",null,"必要"),t("td")],-1),f=t("td",null,"w_rid",-1),x=t("td",null,"str",-1),_=t("td",null,"Wbi 签名",-1),A=t("td",null,"必要",-1),S=t("td",null,"wts",-1),j=t("td",null,"num",-1),P=t("td",null,"当前时间戳",-1),T=t("td",null,"必要",-1),E=e('

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    relationobj目标用户对于当前用户的关系详见 关系属性对象
    be_relationobj当前用户对于目标用户的关系详见 关系属性对象

    示例:

    可得对于mid=15858903的用户,在2019/1/24 14:24:19时关注了对方,且互相关注,自己将对方特别关注,并同时位于为-10194110的分组中,对方也将自己设为特别关注,并同时位于为-1056502的分组中(虽然我看不到)

    ',7),B=t("code",null,"wts",-1),D=t("code",null,"w_rid",-1),w=e(`
    curl -G 'https://api.bilibili.com/x/space/acc/relation' \\
    +    --data-urlencode 'mid=15858903' \\
    +    --data-urlencode 'wts=1686015899' \\
    +    --data-urlencode 'w_rid=e10a3c566c9be80a7cebe7bcdf262588' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "relation": {
    +            "mid": 15858903,
    +            "attribute": 6,
    +            "mtime": 1548311059,
    +            "tag": [
    +                -10,
    +                194110,
    +                248468
    +            ],
    +            "special": 1
    +        },
    +        "be_relation": {
    +            "mid": 293793435,
    +            "attribute": 6,
    +            "mtime": 1548311059,
    +            "tag": [
    +                56502,
    +                -10
    +            ],
    +            "special": 1
    +        }
    +    }
    +}
    +

    批量查询用户与自己关系

    https://api.bilibili.com/x/relation/relations

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidsnums目标用户 mid必要每个之间用,间隔

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    {用户mid}obj关注的用户详见 关系属性对象
    ……obj……下同

    示例:

    批量查询mid=1,2,3,4,5的关系

    curl -G 'https://api.bilibili.com/x/relation/relations' \\
    +--data-urlencode 'fid=258150656' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +

    关注分组相关

    分组 id 特殊值:

    id含义
    0默认分组
    -10特别关心

    查询关注分组列表

    https://api.bilibili.com/x/relation/tags

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataarray分组列表

    data数组:

    类型内容备注
    0obj分组 1
    nobj分组(n+1)
    ……num…………

    数组data中的对象:

    字段类型内容备注
    tagidnum分组 id-10:特别关注
    0:默认分组
    namestr分组名称
    countnum分组成员数
    tipstr提示信息

    示例:

    查询所有的分组的名字以及id

    curl 'https://api.bilibili.com/x/relation/tags' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": [
    +         {
    +            "tagid": -10,
    +            "name": "特别关注",
    +            "count": 19,
    +            "tip": "第一时间收到该分组下用户更新稿件的通知"
    +        },
    +        {
    +            "tagid": 0,
    +            "name": "默认分组",
    +            "count": 340,
    +            "tip": ""
    +        },
    +        {
    +            "tagid": 194110,
    +            "name": "基友们",
    +            "count": 127,
    +            "tip": ""
    +        },
    +        {
    +            "tagid": 194111,
    +            "name": "我的同学",
    +            "count": 22,
    +            "tip": ""
    +        },
    +	…………
    +	]
    +}
    +

    查询关注分组明细

    https://api.bilibili.com/x/relation/tag

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    只可查询属于自己的分组

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    tagidnum分组 id必要
    order_typestr排序方式非必要按照关注顺序排列:留空
    按照最常访问排列:attention
    psnum每页项数非必要默认为 20
    pnnum页数非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    22104:该分组不存在
    messagestr错误信息默认为 0
    ttlnum1
    dataarray成员列表

    data数组:

    类型内容备注
    0obj成员信息 1关系列表对象
    nobj成员信息(n+1)按照添加顺序排序
    ……obj…………

    data 中的对象:

    字段类型内容备注
    midnum用户id
    attributenum0
    tagnullnull
    specialnum0
    contract_infojson空的
    unamestr用户名
    facestr头像地址
    signstr个人简介
    face_nftintntf头像
    official_verifyjson官方认证具体见下
    vipjson大会员参考大会员文档
    livejson直播状态具体见下
    nft_iconstr显示nft角标
    rec_reasonstr
    track_idstr

    data对象中的official_verify

    字段类型内容备注
    typenum0
    descstr官方认证内容

    data对象中的live

    字段类型内容备注
    live_statusnum0或10:未开播,1:已直播
    jump_urlstr直播链接

    示例:

    以每页2项的方式获取了id为207542分组的第1页的粉丝明细,按照关注顺序

    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'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    fidnum目标用户 mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    {加入的分组 id}str分组名称若目标用户存在默认分组中,则不显示
    ……str……下同

    示例:

    查询用户mid=319214221存在的所有分组和名称

    curl -G 'https://api.bilibili.com/x/relation/tag/user' \\
    +    --data-urlencode 'fid=319214221' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"-10": "特别关注",
    +		"194111": "我的同学"
    +	}
    +}
    +

    查询所有特别关注 mid

    https://api.bilibili.com/x/relation/tag/special

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataarray成员列表

    data数组:

    类型内容备注
    0num成员 1 mid
    nnum成员(n+1)mid
    ……num…………

    示例:

    curl 'https://api.bilibili.com/x/relation/tag/special' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要
    tagstr分组名必要最长 16 字符
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22106:该分组已经存在
    22103:分组名过长
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    tagidnum创建的分组的 id

    示例:

    创建了名为测试的分组,得到id为216677

    curl 'https://api.bilibili.com/x/relation/tag/create' \\
    +    --data-urlencode 'tag=测试' \\
    +    --data-urlencode 'csrf=xxx' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    tagidnum分组 id必要
    namestr新名称必要最长 16 字符
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22103:分组名过长
    22104:该分组不存在
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把id为194112的分组更名为膜法师

    curl 'https://api.bilibili.com/x/relation/tag/update' \\
    +    --data-urlencode 'tagid=194112' \\
    +    --data-urlencode 'name=膜法师' \\
    +    --data-urlencode 'csrf=xxx' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    删除分组

    https://api.bilibili.com/x/relation/tag/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    tagidnum分组 id必要
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    删除分组id为216699的分组

    curl 'https://api.bilibili.com/x/relation/tag/del' \\
    +    --data-urlencode 'tagid=216699' \\
    +    --data-urlencode 'csrf=xxx' \\
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    fidsnums目标用户 mid 列表必要每个之间用,间隔
    tagidsnums分组 id 列表必要每个之间用,间隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22104:无权限
    22105:未关注
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把关注用户mid=205631797同时添加分组关系到id为-10207542的分组中

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    复制关注到分组

    https://api.bilibili.com/x/relation/tags/copyUsers

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidsnums待复制的用户 mid 列表必要每个之间用,间隔
    tagidsnums目标分组 id 列表必要每个之间用,间隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22104:无权限
    22105:未关注
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把关注用户mid=4856007mid=326499679同时复制到为231305的分组id中

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    移动关注到分组

    https://api.bilibili.com/x/relation/tags/moveUsers

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    beforeTagidsnums原分组 id 列表必要每个之间用,间隔
    afterTagidsnums新分组 id 列表必要每个之间用,间隔
    fidsnums待移动的用户 mid 列表必要每个之间用,间隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22104:无权限
    22105:未关注
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把关注用户mid=321173469mid=327086920同时从id为207542的分组移动到为231305的分组中

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +
    `,172);function C(F,G){const n=r("RouterLink");return l(),c("div",null,[v,t("p",null,[s("鉴权方式:"),a(n,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("Wbi 签名")]),_:1})]),m,q,t("table",null,[h,t("tbody",null,[y,g,t("tr",null,[f,x,_,A,t("td",null,[s("详见 "),a(n,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("Wbi 签名")]),_:1})])]),t("tr",null,[S,j,P,T,t("td",null,[s("详见 "),a(n,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("Wbi 签名")]),_:1})])])])]),E,t("p",null,[s("Wbi 签名的 "),B,s("、"),D,s("生成方式详见 "),a(n,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[s("Wbi 签名")]),_:1}),s(" 文档")]),w])}const W=d(b,[["render",C],["__file","relation.html.vue"]]);export{W as default}; diff --git a/assets/relation.html-27f5509d.js b/assets/relation.html-27f5509d.js new file mode 100644 index 0000000000..6e0d3968ef --- /dev/null +++ b/assets/relation.html-27f5509d.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-5c0c5b58","path":"/docs/user/relation.html","title":"用户关系相关","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询关系列表","slug":"查询关系列表","link":"#查询关系列表","children":[{"level":3,"title":"关系列表对象","slug":"关系列表对象","link":"#关系列表对象","children":[]},{"level":3,"title":"查询用户粉丝明细","slug":"查询用户粉丝明细","link":"#查询用户粉丝明细","children":[]},{"level":3,"title":"查询用户关注明细","slug":"查询用户关注明细","link":"#查询用户关注明细","children":[]},{"level":3,"title":"查询用户关注明细2","slug":"查询用户关注明细2","link":"#查询用户关注明细2","children":[]},{"level":3,"title":"查询用户关注明细3","slug":"查询用户关注明细3","link":"#查询用户关注明细3","children":[]},{"level":3,"title":"搜索关注明细","slug":"搜索关注明细","link":"#搜索关注明细","children":[]},{"level":3,"title":"查询共同关注明细","slug":"查询共同关注明细","link":"#查询共同关注明细","children":[]},{"level":3,"title":"查询悄悄关注明细","slug":"查询悄悄关注明细","link":"#查询悄悄关注明细","children":[]},{"level":3,"title":"查询互相关注明细","slug":"查询互相关注明细","link":"#查询互相关注明细","children":[]},{"level":3,"title":"查询黑名单明细","slug":"查询黑名单明细","link":"#查询黑名单明细","children":[]}]},{"level":2,"title":"操作关系","slug":"操作关系","link":"#操作关系","children":[{"level":3,"title":"操作用户关系","slug":"操作用户关系","link":"#操作用户关系","children":[]},{"level":3,"title":"批量操作用户关系","slug":"批量操作用户关系","link":"#批量操作用户关系","children":[]}]},{"level":2,"title":"查询关系属性","slug":"查询关系属性","link":"#查询关系属性","children":[{"level":3,"title":"关系属性对象","slug":"关系属性对象","link":"#关系属性对象","children":[]},{"level":3,"title":"查询用户与自己关系(仅关注)","slug":"查询用户与自己关系-仅关注","link":"#查询用户与自己关系-仅关注","children":[]},{"level":3,"title":"查询用户与自己关系(互相关系)","slug":"查询用户与自己关系-互相关系","link":"#查询用户与自己关系-互相关系","children":[]},{"level":3,"title":"批量查询用户与自己关系","slug":"批量查询用户与自己关系","link":"#批量查询用户与自己关系","children":[]}]},{"level":2,"title":"关注分组相关","slug":"关注分组相关","link":"#关注分组相关","children":[{"level":3,"title":"查询关注分组列表","slug":"查询关注分组列表","link":"#查询关注分组列表","children":[]},{"level":3,"title":"查询关注分组明细","slug":"查询关注分组明细","link":"#查询关注分组明细","children":[]},{"level":3,"title":"查询目标用户所在的分组","slug":"查询目标用户所在的分组","link":"#查询目标用户所在的分组","children":[]},{"level":3,"title":"查询所有特别关注 mid","slug":"查询所有特别关注-mid","link":"#查询所有特别关注-mid","children":[]},{"level":3,"title":"创建分组","slug":"创建分组","link":"#创建分组","children":[]},{"level":3,"title":"重命名分组","slug":"重命名分组","link":"#重命名分组","children":[]},{"level":3,"title":"删除分组","slug":"删除分组","link":"#删除分组","children":[]},{"level":3,"title":"修改分组成员","slug":"修改分组成员","link":"#修改分组成员","children":[]},{"level":3,"title":"复制关注到分组","slug":"复制关注到分组","link":"#复制关注到分组","children":[]},{"level":3,"title":"移动关注到分组","slug":"移动关注到分组","link":"#移动关注到分组","children":[]}]}],"git":{},"filePathRelative":"docs/user/relation.md"}');export{l as data}; diff --git a/assets/report.html-57293111.js b/assets/report.html-57293111.js new file mode 100644 index 0000000000..f45bee34eb --- /dev/null +++ b/assets/report.html-57293111.js @@ -0,0 +1,43 @@ +import{_ as a,r as u,o,c as i,a as t,b as n,d,w as s,e}from"./app-3168cb19.js";const r={},c=e(`

    视频观看数据上报

    上报观看进度(双端)

    https://api.bilibili.com/x/v2/history/report

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    aidnum稿件avid必要
    cidnum视频cid必要用于识别分P
    progressnum观看进度非必要单位为秒
    默认为0
    platformstr平台标识非必要可为android
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    记录视频av13662970cid=126654047)的观看记录位于1248

    Cookie方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    上报视频播放心跳(web端)

    https://api.bilibili.com/x/click-interface/web/heartbeat

    请求方式:POST

    认证方式:仅可Cookie(SESSDATA)

    默认间隔15秒一次, 亦可记录播放历史

    该接口较为复杂, 且参数计算方法均为推测, 实际过程不明, 可能含有错误, 若要正式使用可以把已播放的持续时间全都设为相同值

    URL参数:

    `,24),p=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),_=t("tr",null,[t("td",null,"w_start_ts"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td",null,"UNIX 秒级时间戳")],-1),m=t("tr",null,[t("td",null,"w_mid"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td")],-1),h=t("tr",null,[t("td",null,"w_aid"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td")],-1),b=t("tr",null,[t("td",null,"w_dt"),t("td",null,"num"),t("td",null,"2"),t("td",null,"非必要"),t("td")],-1),v=t("tr",null,[t("td",null,"w_realtime"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),k=t("tr",null,[t("td",null,"w_playedtime"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),g=t("tr",null,[t("td",null,"w_real_played_time"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),w=t("tr",null,[t("td",null,"w_video_duration"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),y=t("tr",null,[t("td",null,"w_last_play_progress_time"),t("td",null,"num"),t("td",null,[n("参见请求正文同名无"),t("code",null,"w_"),n("前缀参数")]),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),E=t("tr",null,[t("td",null,"web_location"),t("td",null,"num"),t("td",null,"网页位置"),t("td",null,"非必要"),t("td",null,"视频详情页播放器: 1315873")],-1),A=t("td",null,"w_rid",-1),f=t("td",null,"num",-1),x=t("td",null,"WBI 签名",-1),B=t("td",null,"非必要",-1),q=t("td",null,"wts",-1),S=t("td",null,"num",-1),P=t("td",null,"UNIX 秒级时间戳",-1),j=t("td",null,"非必要",-1),D=t("p",null,[t("strong",null,"正文参数( application/x-www-form-urlencoded ):")],-1),I=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),T=t("tr",null,[t("td",null,"aid"),t("td",null,"num"),t("td",null,"稿件avid"),t("td",null,"必要(可选)"),t("td",null,"avid与bvid任选一个(网页端请求默认仅使用aid)")],-1),U=t("tr",null,[t("td",null,"bvid"),t("td",null,"str"),t("td",null,"稿件bvid"),t("td",null,"必要(可选)"),t("td",null,"avid与bvid任选一个")],-1),C=t("tr",null,[t("td",null,"cid"),t("td",null,"num"),t("td",null,"视频cid"),t("td",null,"非必要"),t("td",null,"用于识别分P")],-1),F=t("tr",null,[t("td",null,"epid"),t("td",null,"num"),t("td",null,"番剧epid"),t("td",null,"非必要"),t("td")],-1),R=t("tr",null,[t("td",null,"sid"),t("td",null,"num"),t("td",null,"番剧ssid"),t("td",null,"非必要"),t("td")],-1),N=t("tr",null,[t("td",null,"mid"),t("td",null,"num"),t("td",null,"当前用户mid"),t("td",null,"非必要"),t("td")],-1),L=t("tr",null,[t("td",null,"played_time"),t("td",null,"num"),t("td",null,"视频播放进度"),t("td",null,"非必要"),t("td",null,[n("单位 秒"),t("br"),n("播放完成为 -1")])],-1),V=t("tr",null,[t("td",null,"realtime"),t("td",null,"num"),t("td",null,"本轮页面会话真实播放时间"),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),W=t("tr",null,[t("td",null,"real_played_time"),t("td",null,"num"),t("td",null,"本轮页面会话真实视频播放持续时间"),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),X=t("tr",null,[t("td",null,"refer_url"),t("td",null,"str"),t("td",null,"与请求头 Referer 字段相同"),t("td",null,"非必要"),t("td")],-1),O=t("td",null,"quality",-1),J=t("td",null,"num",-1),z=t("td",null,"视频清晰度",-1),G=t("td",null,"非必要",-1),H=t("tr",null,[t("td",null,"video_duration"),t("td",null,"num"),t("td",null,"视频时长"),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),K=t("tr",null,[t("td",null,"last_play_progress_time"),t("td",null,"num"),t("td",null,"play_time 与 本轮页面会话开始时 played_time 之和"),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),M=t("tr",null,[t("td",null,"max_play_progress_time"),t("td",null,"num"),t("td",null,"本轮页面会话所有最大 last_play_progress_time 与 本轮页面会话开始时 played_time 之和"),t("td",null,"非必要"),t("td",null,"单位 秒")],-1),Q=t("tr",null,[t("td",null,"start_ts"),t("td",null,"num"),t("td",null,"开始播放时刻"),t("td",null,"非必要"),t("td",null,"时间戳")],-1),Y=t("tr",null,[t("td",null,"type"),t("td",null,"num"),t("td",null,"视频类型"),t("td",null,"非必要"),t("td",null,[n("3:投稿视频"),t("br"),n("4:剧集"),t("br"),n("10:课程")])],-1),Z=t("tr",null,[t("td",null,"sub_type"),t("td",null,"num"),t("td",null,"剧集副类型"),t("td",null,"非必要"),t("td",null,[n("0: 普通投稿视频"),t("br"),n("1:番剧"),t("br"),n("2:电影"),t("br"),n("3:纪录片"),t("br"),n("4:国创"),t("br"),n("5:电视剧"),t("br"),n("7:综艺")])],-1),$=t("tr",null,[t("td",null,"dt"),t("td",null,"num"),t("td",null,"2"),t("td",null,"非必要"),t("td")],-1),tt=t("tr",null,[t("td",null,"outer"),t("td",null,"num"),t("td",null,"0"),t("td",null,"非必要"),t("td")],-1),nt=t("tr",null,[t("td",null,"spmid"),t("td",null,"str"),t("td",null,"333.788.0.0"),t("td",null,"非必要"),t("td",null,"作用尚不明确")],-1),lt=t("tr",null,[t("td",null,"from_spmid"),t("td",null,"str"),t("td",null,"播放来源?"),t("td",null,"非必要"),t("td",null,[n("也可为空, 如: "),t("code",null,"444.41.list.card_archive.click"),n(),t("code",null,"333.999.0.0")])],-1),dt=t("tr",null,[t("td",null,"session"),t("td",null,"str"),t("td",null,"会话信息?"),t("td",null,"非必要"),t("td",null,"一串无分隔小写 UUID")],-1),st=t("tr",null,[t("td",null,"extra"),t("td",null,"obj"),t("td",null,"额外信息, 如播放器版本"),t("td",null,"非必要"),t("td",null,[n("如: "),t("code",null,'{"player_version":"4.8.36"}')])],-1),et=t("tr",null,[t("td",null,"play_type"),t("td",null,"num"),t("td",null,"播放动作"),t("td",null,"非必要"),t("td",null,[n("0:播放中"),t("br"),n("1:开始播放"),t("br"),n("2:暂停"),t("br"),n("3:继续播放"),t("br"),n("4: 结束播放")])],-1),at=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token (即 Cookie 中 bili_jct)"),t("td",null,"非必要"),t("td")],-1),ut=e(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    上报一次视频av2/BV1xx411c7mD的心跳数据

    curl 'https://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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    开始观看视频 (web端)

    https://api.bilibili.com/x/click-interface/click/web/h5

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    该接口亦被用于计算播放量, 播放量更新不是实时的

    URL参数:

    `,13),ot=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),it=t("tr",null,[t("td",null,"w_aid"),t("td",null,"num"),t("td",null,"稿件 aid"),t("td",null,"不必要"),t("td")],-1),rt=t("tr",null,[t("td",null,"w_part"),t("td",null,"num"),t("td",null,"视频分 P 编号"),t("td",null,"不必要"),t("td")],-1),ct=t("tr",null,[t("td",null,"w_ftime"),t("td",null,"num"),t("td",null,"点击时间戳?"),t("td",null,"不必要"),t("td",null,"UNIX 秒级时间戳")],-1),pt=t("tr",null,[t("td",null,"w_stime"),t("td",null,"num"),t("td",null,"开始播放时间戳?"),t("td",null,"不必要"),t("td",null,"UNIX 秒级时间戳")],-1),_t=t("tr",null,[t("td",null,"w_type"),t("td",null,"num"),t("td",null,"视频类型"),t("td",null,"不必要"),t("td",null,[n("见"),t("a",{href:"#%E4%B8%8A%E6%8A%A5%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE%E5%BF%83%E8%B7%B3web%E7%AB%AF"},"上报视频播放心跳(web端)")])],-1),mt=t("tr",null,[t("td",null,"web_location"),t("td",null,"num"),t("td",null,"网页位置?"),t("td",null,"不必要"),t("td",null,"1315873")],-1),ht=t("td",null,"w_rid",-1),bt=t("td",null,"num",-1),vt=t("td",null,"WBI 签名",-1),kt=t("td",null,"不必要",-1),gt=t("td",null,"wts",-1),wt=t("td",null,"num",-1),yt=t("td",null,"UNIX 秒级时间戳",-1),Et=t("td",null,"不必要",-1),At=e(`

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    midnum当前用户 mid不必要
    aidnum稿件 aid必要
    cidnum视频 cid不必要
    partnum视频分 P 编号不必要
    lvnum当前用户等级不必要
    ftimenum同 URL 参数中带有 w_ 前缀的同名参数不必要
    stimenum同 URL 参数中带有 w_ 前缀的同名参数不必要
    typenum视频类型不必要上报视频播放心跳(web端)
    sub_typenum视频子类型不必要上报视频播放心跳(web端)
    referer_urlstr与请求头 Referer 字段相同不必要
    outernum0不必要
    spmidstr333.788.0.0不必要作用尚不明确
    from_spmidstr播放来源?不必要上报视频播放心跳(web端)
    sessionstr会话信息?不必要一串无分隔小写 UUID
    csrfstrCSRF Token (即 Cookie 中 bili_jct)不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/click-interface/click/web/h5' \\
    +--data-urlencode 'aid=2' \\
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,8);function ft(xt,Bt){const l=u("RouterLink");return o(),i("div",null,[c,t("table",null,[p,t("tbody",null,[_,m,h,b,v,k,g,w,y,E,t("tr",null,[A,f,x,B,t("td",null,[n("参见"),d(l,{to:"/docs/video/docs/misc/sign/wbi.html"},{default:s(()=>[n("WBI 签名")]),_:1})])]),t("tr",null,[q,S,P,j,t("td",null,[n("参见"),d(l,{to:"/docs/video/docs/misc/sign/wbi.html"},{default:s(()=>[n("WBI 签名")]),_:1})])])])]),D,t("table",null,[I,t("tbody",null,[T,U,C,F,R,N,L,V,W,X,t("tr",null,[O,J,z,G,t("td",null,[n("参见"),d(l,{to:"/docs/video/videostream_url.html#qn%E8%A7%86%E9%A2%91%E6%B8%85%E6%99%B0%E5%BA%A6%E6%A0%87%E8%AF%86"},{default:s(()=>[n("qn视频清晰度标识")]),_:1})])]),H,K,M,Q,Y,Z,$,tt,nt,lt,dt,st,et,at])]),ut,t("table",null,[ot,t("tbody",null,[it,rt,ct,pt,_t,mt,t("tr",null,[ht,bt,vt,kt,t("td",null,[n("参见"),d(l,{to:"/docs/video/docs/misc/sign/wbi.html"},{default:s(()=>[n("WBI 签名")]),_:1})])]),t("tr",null,[gt,wt,yt,Et,t("td",null,[n("参见"),d(l,{to:"/docs/video/docs/misc/sign/wbi.html"},{default:s(()=>[n("WBI 签名")]),_:1})])])])]),At])}const St=a(r,[["render",ft],["__file","report.html.vue"]]);export{St as default}; diff --git a/assets/report.html-5869853f.js b/assets/report.html-5869853f.js new file mode 100644 index 0000000000..229ad6d4c0 --- /dev/null +++ b/assets/report.html-5869853f.js @@ -0,0 +1,12 @@ +import{_ as t,o as a,c as s,e as n}from"./app-3168cb19.js";const e={},d=n(`

    直播心跳上报

    直播心跳 (Web端)

    https://live-trace.bilibili.com/xlive/rdata-interface/v1/heartbeat/webHeartBeat

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    hbstrheartbeat 正文不必要使用 base64 编码
    pfstr平台名称不必要可为 web

    hb 解码参数:

    类型内容备注
    0num上次返回的 next_interval 值默认 60
    1num真实直播间号
    2num1作用尚不明确
    3num0作用尚不明确

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    next_intervalnum下次心跳间隔

    示例:

    上报直播间 26863308 的心跳

    curl -G "https://live-trace.bilibili.com/xlive/rdata-interface/v1/heartbeat/webHeartBeat" \\
    +--data-urlencode "hb=$(echo "60|26863308|1|0" | base64 -)" \\
    +--data-urlencode "pf=web"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "next_interval": 60
    +  }
    +}
    +
    `,17),r=[d];function o(p,l){return a(),s("div",null,r)}const i=t(e,[["render",o],["__file","report.html.vue"]]);export{i as default}; diff --git a/assets/report.html-6d528c1b.js b/assets/report.html-6d528c1b.js new file mode 100644 index 0000000000..8446c4674c --- /dev/null +++ b/assets/report.html-6d528c1b.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-30ce6814","path":"/docs/video/report.html","title":"视频观看数据上报","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"上报观看进度(双端)","slug":"上报观看进度-双端","link":"#上报观看进度-双端","children":[]},{"level":2,"title":"上报视频播放心跳(web端)","slug":"上报视频播放心跳-web端","link":"#上报视频播放心跳-web端","children":[]},{"level":2,"title":"开始观看视频 (web端)","slug":"开始观看视频-web端","link":"#开始观看视频-web端","children":[]}],"git":{},"filePathRelative":"docs/video/report.md"}');export{e as data}; diff --git a/assets/report.html-bbde5309.js b/assets/report.html-bbde5309.js new file mode 100644 index 0000000000..e6cc65daa4 --- /dev/null +++ b/assets/report.html-bbde5309.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-5ac2e77d","path":"/docs/live/report.html","title":"直播心跳上报","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"直播心跳 (Web端)","slug":"直播心跳-web端","link":"#直播心跳-web端","children":[]}],"git":{},"filePathRelative":"docs/live/report.md"}');export{e as data}; diff --git a/assets/search-0782d0d1.svg b/assets/search-0782d0d1.svg new file mode 100644 index 0000000000..03d83913e8 --- /dev/null +++ b/assets/search-0782d0d1.svg @@ -0,0 +1 @@ + diff --git a/assets/search_request.html-0aeac133.js b/assets/search_request.html-0aeac133.js new file mode 100644 index 0000000000..e25f3be4d1 --- /dev/null +++ b/assets/search_request.html-0aeac133.js @@ -0,0 +1,1119 @@ +import{_ as e,r as u,o as l,c,a as s,b as n,d as t,w as p,e as o}from"./app-3168cb19.js";const r={},i=o('

    搜索

    B站于2022年8月24日更新了搜索api,增加了一大堆Cookies的校验,如果Cookies不足会返回-412搜索被拦截。如果没有cookies的话,请在搜索之前先GET一遍 https://bilibili.com 以获取cookies

    综合搜索(web端)

    https://api.bilibili.com/x/web-interface/wbi/search/all/v2

    https://api.bilibili.com/x/web-interface/search/all/v2 (旧链接)

    方式:GET

    认证方式:Cookie(SESSDATA)

    ',7),d=o("

    返回和关键字相关的20条信息

    综合搜索为默认搜索方式,主要用于优先搜索用户、影视、番剧、游戏、话题等,并加载第一页的20项相关视频,还用于展示各个类型的结果数目,便于进一步分类搜索

    url参数:

    参数名类型内容必要性备注
    keywordstr需要搜索的关键词必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seidstr搜索id
    pagenum页数固定为1
    page_sizenum每页条数固定为20
    numResultsnum总条数最大值为1000
    numPagesnum分页数最大值为50
    suggest_keywordstr作用尚不明确
    rqt_typestrsearch作用尚不明确
    cost_timeobj详细搜索用时大概是吧?
    exp_listobj???作用尚不明确
    egg_hitnum0作用尚不明确
    pageinfoobj分类页数信息
    top_tlistobj分类结果数目信息
    show_columnnum0作用尚不明确
    show_module_listarray返回结果类型列表
    resultarray结果列表

    data中的cost_time对象:

    字段类型内容备注
    params_checkstr
    illegal_handlerstr
    as_response_formatstr
    as_requeststr
    save_cachestr
    deserialize_responsestr
    as_request_formatstr
    totalstr
    main_handlerstr

    data中的pageinfo对象:

    字段类型内容备注
    pgcobj-
    live_roomobj直播数
    photoobj相簿数
    topicobj话题数
    videoobj视频数
    userobj-
    bili_userobj用户数
    media_ftobj电影数
    articleobj专栏数
    media_bangumiobj番剧数
    specialobj-
    operation_cardobj-
    upuserobj-
    movieobj-
    live_allobj-
    tvobj-
    liveobj直播间数
    bangumiobj-
    activityobj活动数
    live_masterobj-
    live_userobj主播数

    pageinfo中的所有对象:

    字段类型内容备注
    numResultsnum总计数量
    totalnum总计数量
    pagesnum分页数量

    data中的top_tlist对象:

    字段类型内容备注
    pgcnum-
    live_roomnum直播数
    photonum相簿数
    topicnum话题数
    videonum视频数
    usernum-
    bili_usernum用户数
    media_ftnum电影数
    articlenum专栏数
    media_banguminum番剧数
    cardnum-
    operation_cardnum-
    upusernum-
    movienum-
    live_allnum-
    tvnum-
    livenum直播间数
    specialnum-
    banguminum-
    activitynum活动数
    live_masternum-
    live_usernum主播数

    data中的show_module_list数组:

    类型内容备注
    0stractivity
    1strweb_game游戏
    2strcard
    3strmedia_bangumi番剧
    4strmedia_ft电影
    5strbili_user用户
    6struser
    7strstar
    8strvideo视频

    data中的result数组:

    类型内容备注
    0obj-
    1obj游戏结果
    2obj-
    3obj番剧结果
    4obj电影结果
    5obj用户结果
    6obj-
    7obj-
    8obj视频结果

    result数组中的对象:

    字段类型内容备注
    result_typestr结果类型result数组对应的项相同
    dataarray搜索结果结果为该项所对应的对象条目格式

    result数组中的对象中的data数组:

    ",24),k=s("thead",null,[s("tr",null,[s("th",null,"项"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),q=s("td",null,"0",-1),v=s("td",null,"obj",-1),b=s("td",null,"搜索结果1",-1),m=s("tr",null,[s("td",null,"n"),s("td",null,"obj"),s("td",null,"搜索结果(n+1)"),s("td",null,"按照参数指定的顺序排列")],-1),y=s("tr",null,[s("td",null,"……"),s("td",null,"obj"),s("td",null,"……"),s("td",null,"……")],-1),g=o(`

    示例:

    使用综合搜索进行搜索关键字洛天依

    curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \\
    +--data-urlencode 'keyword=洛天依' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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": "【<em class=\\"keyword\\">洛天依</em>】2020.7.12<em class=\\"keyword\\">洛天依</em>生日会",
    +                        "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/布料/水手服】<em class=\\"keyword\\">洛天依</em> - 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": "【<em class=\\"keyword\\">洛天依</em>原创】自言自语",
    +                        "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/wbi/search/type

    https://api.bilibili.com/x/web-interface/search/type (旧链接)

    请求方式:GET

    `,8),_=s("code",null,"buvid3",-1),h=s("code",null,".bilibili.com",-1),w=o("

    根据关键词进行搜索,返回结果每页20项

    url参数:

    参数名类型内容必要性备注
    search_typestr搜索目标类型必要视频:video
    番剧:media_bangumi
    影视:media_ft
    直播间及主播:live
    直播间:live_room
    主播:live_user
    专栏:article
    话题:topic
    用户:bili_user
    相簿:photo
    keywordstr需要搜索的关键词必要
    orderstr结果排序方式非必要搜索类型为视频、专栏及相簿时:
    默认为totalrank
    综合排序:totalrank
    最多点击:click
    最新发布:pubdate
    最多弹幕:dm
    最多收藏:stow
    最多评论:scores
    最多喜欢:attention(仅用于专栏)
    ----------------------------
    搜索结果为直播间时:
    默认为online
    人气直播:online
    最新开播:live_time
    ----------------------------
    搜索结果为用户时:
    默认为0
    默认排序:0
    粉丝数:fans
    用户等级:level
    order_sortnum用户粉丝数及等级排序顺序非必要仅用于搜索用户
    默认为0
    由高到低:0
    由低到高:1
    user_typenum用户分类筛选非必要仅用于搜索用户
    默认为0
    全部用户:0
    up主:1
    普通用户:2
    认证用户:3
    durationnum视频时长筛选非必要仅用于搜索视频
    默认为0
    全部时长:0
    10分钟以下:1
    10-30分钟:2
    30-60分钟:3
    60分钟以上:4
    tidsnum视频分区筛选非必要仅用于搜索视频
    默认为0
    全部分区:0
    筛选分区:目标分区tid
    category_idnum专栏及相簿分区筛选非必要搜索结果为专栏时:
    默认为0
    全部分区:0
    动画:2
    游戏:1
    影视:28
    生活:3
    兴趣:29
    轻小说:16
    科技:17
    --------
    搜索结果为相簿时:
    默认为0
    全部分区:0
    画友:1
    摄影:2
    pagenum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seidnum搜索seid
    pagenum当前页码
    pagesizenum每页条数固定20
    numResultsnum总条数最大值为1000
    numPagesnum总计分页数最大值为50
    suggest_keywordstr作用尚不明确
    rqt_typestrsearch作用尚不明确
    cost_timeobj详细搜索用时大概
    exp_listobj???作用尚不明确
    egg_hitnum0作用尚不明确
    pageinfoobj副分页信息只在搜索类型为直播间及主播有效
    result搜索类型为直播间及主播时:obj
    搜索类型为其他时:array
    结果列表
    show_columnnum0作用尚不明确

    data中的cost_time对象:

    字段类型内容备注
    params_checkstr
    illegal_handlerstr
    as_response_formatstr
    as_requeststr
    save_cachestr
    deserialize_responsestr
    as_request_formatstr
    totalstr
    main_handlerstr

    data中的pageinfo对象:

    字段类型内容备注
    live_roomobj直播间信息
    live_userobj主播信息

    pageinfo中的live_roomlive_user对象:

    字段类型内容备注
    numPagesnum总计页数
    numResultsnum总计项数
    totalnum总计项数
    pagesnum总计页数

    搜索类型为直播间及主播时:

    data中的result对象:

    字段类型内容备注
    live_roomarray直播间信息
    live_userarray主播信息

    result中的live_room数组:

    ",18),f=s("thead",null,[s("tr",null,[s("th",null,"项"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),j=s("td",null,"0",-1),V=s("td",null,"obj",-1),B=s("td",null,"直播间搜索结果1",-1),x=s("tr",null,[s("td",null,"n"),s("td",null,"obj"),s("td",null,"直播间搜索结果(n+1)"),s("td",null,"按照参数指定的顺序排列")],-1),R=s("tr",null,[s("td",null,"……"),s("td",null,"obj"),s("td",null,"……"),s("td",null,"……")],-1),M=s("p",null,[s("code",null,"result"),n("中的"),s("code",null,"live_user"),n("数组:")],-1),A=s("thead",null,[s("tr",null,[s("th",null,"项"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),D=s("td",null,"0",-1),C=s("td",null,"obj",-1),S=s("td",null,"主播搜索结果1",-1),G=s("tr",null,[s("td",null,"n"),s("td",null,"obj"),s("td",null,"主播搜索结果(n+1)"),s("td",null,"按照参数指定的顺序排列")],-1),T=s("tr",null,[s("td",null,"……"),s("td",null,"obj"),s("td",null,"……"),s("td",null,"……")],-1),O=s("p",null,[s("strong",null,"搜索类型为其他时:")],-1),U=s("p",null,[s("code",null,"data"),n("中的"),s("code",null,"result"),n("数组:")],-1),P=s("thead",null,[s("tr",null,[s("th",null,"项"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),E=s("td",null,"0",-1),z=s("td",null,"obj",-1),L=s("td",null,"搜索结果1",-1),I=s("tr",null,[s("td",null,"n"),s("td",null,"obj"),s("td",null,"搜索结果(n+1)"),s("td",null,"按照参数指定的顺序排列")],-1),K=s("tr",null,[s("td",null,"……"),s("td",null,"obj"),s("td",null,"……"),s("td",null,"……")],-1),F=o(`

    示例:

    按照关键词少年搜索视频,默认排序,全部时长,全部分区,第1页

    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'
    +
    查看响应示例:
    {
    +    "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": "梦然-《<em class=\\"keyword\\">少年</em>》官方版",
    +                "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": "你还是从前的那个<em class=\\"keyword\\">少年</em>吗?来自元气少女超甜的《<em class=\\"keyword\\">少年</em>》",
    +                "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": "【马化腾】我还是充钱那个<em class=\\"keyword\\">少年</em>,没有一丝丝改变~",
    +                "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": "最近突然火的《<em class=\\"keyword\\">少年</em>》太好听了,单曲循环了很多遍!",
    +                "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": "最近火爆全网的《<em class=\\"keyword\\">少年</em>》,你喜欢吗?",
    +                "description": "BGM:少年——梦然\\n花了好多心思的作品,求个三连呀φ(&gt;ω&lt;*)",
    +                "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": "终于找到日语版《<em class=\\"keyword\\">少年</em>》了!开口就是恋爱的味道,岛国也要被洗脑",
    +                "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": "【全明星】<em class=\\"keyword\\">少年</em>",
    +                "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": "【日本<em class=\\"keyword\\">少年</em>混剪】氧气/心动瞬间/薄荷味的夏天要来了",
    +                "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": "真的不是原唱?!《<em class=\\"keyword\\">少年</em>》超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": "【川普】我还是曾经那个<em class=\\"keyword\\">少年</em>",
    +                "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": "【完整版日语版《<em class=\\"keyword\\">少年</em>》本尊来了】竟是国人元老唱见~",
    +                "description": "词:lolo2513&amp;梦然\\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": "用三十部动漫唱一首《<em class=\\"keyword\\">少年</em>》——你长大了,你还在追番吗?",
    +                "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": "大爷:我还是从前那个<em class=\\"keyword\\">少年</em>,没有一丝丝改变!",
    +                "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": "<em class=\\"keyword\\">少年</em>黑帮“新龙会”覆灭记!史上最“中二”的黑社会,作案后竟留下错别字?",
    +                "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": "梦开始的地方,一年前那个不会剪辑的<em class=\\"keyword\\">少年</em>阿强。",
    +                "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": "<em class=\\"keyword\\">少年</em>人,这是修行。",
    +                "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岁中国<em class=\\"keyword\\">少年</em>韩国综艺上怒怼:老子来自中国!现场一片哗然",
    +                "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": "我已不再是<em class=\\"keyword\\">少年</em>,但你们终究活在我心里",
    +                "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": "《<em class=\\"keyword\\">少年</em>》霸占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才叫日系美<em class=\\"keyword\\">少年</em>!",
    +                "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
    +    }
    +}
    +
    `,4);function N(H,J){const a=u("RouterLink");return l(),c("div",null,[i,s("p",null,[n("鉴权方式:"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1})]),d,s("table",null,[k,s("tbody",null,[s("tr",null,[q,v,b,s("td",null,[n("对象详情见"),t(a,{to:"/docs/search/search_response.html"},{default:p(()=>[n("搜索结果")]),_:1})])]),m,y])]),g,s("p",null,[n("鉴权方式:"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1}),n(", Cookie 中含有 "),t(a,{to:"/docs/misc/buvid3_4.html"},{default:p(()=>[_]),_:1}),n(" 字段, Referer 在 "),h,n(" 下, User-Agent 不含敏感子串")]),w,s("table",null,[f,s("tbody",null,[s("tr",null,[j,V,B,s("td",null,[n("对象详情见"),t(a,{to:"/docs/search/search_response.html"},{default:p(()=>[n("搜索结果")]),_:1})])]),x,R])]),M,s("table",null,[A,s("tbody",null,[s("tr",null,[D,C,S,s("td",null,[n("对象详情见"),t(a,{to:"/docs/search/search_response.html"},{default:p(()=>[n("搜索结果")]),_:1})])]),G,T])]),O,U,s("table",null,[P,s("tbody",null,[s("tr",null,[E,z,L,s("td",null,[n("对象详情见"),t(a,{to:"/docs/search/search_response.html"},{default:p(()=>[n("搜索结果")]),_:1})])]),I,K])]),F])}const W=e(r,[["render",N],["__file","search_request.html.vue"]]);export{W as default}; diff --git a/assets/search_request.html-36282e12.js b/assets/search_request.html-36282e12.js new file mode 100644 index 0000000000..806ae84fc8 --- /dev/null +++ b/assets/search_request.html-36282e12.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-4940b435","path":"/docs/search/search_request.html","title":"搜索","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"综合搜索(web端)","slug":"综合搜索-web端","link":"#综合搜索-web端","children":[]},{"level":2,"title":"分类搜索(web端)","slug":"分类搜索-web端","link":"#分类搜索-web端","children":[]}],"git":{},"filePathRelative":"docs/search/search_request.md"}');export{e as data}; diff --git a/assets/search_response.html-1e3f68f3.js b/assets/search_response.html-1e3f68f3.js new file mode 100644 index 0000000000..2bb6294d36 --- /dev/null +++ b/assets/search_response.html-1e3f68f3.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-2c341a0d","path":"/docs/search/search_response.html","title":"搜索响应条目","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"对象类型1-结果为视频","slug":"对象类型1-结果为视频","link":"#对象类型1-结果为视频","children":[]},{"level":2,"title":"对象类型2-结果为番剧&影视","slug":"对象类型2-结果为番剧-影视","link":"#对象类型2-结果为番剧-影视","children":[]},{"level":2,"title":"对象类型3-结果为直播间","slug":"对象类型3-结果为直播间","link":"#对象类型3-结果为直播间","children":[]},{"level":2,"title":"对象类型4-结果为主播","slug":"对象类型4-结果为主播","link":"#对象类型4-结果为主播","children":[]},{"level":2,"title":"对象类型5-结果为专栏","slug":"对象类型5-结果为专栏","link":"#对象类型5-结果为专栏","children":[]},{"level":2,"title":"对象类型6-结果为话题","slug":"对象类型6-结果为话题","link":"#对象类型6-结果为话题","children":[]},{"level":2,"title":"对象类型7-结果为用户","slug":"对象类型7-结果为用户","link":"#对象类型7-结果为用户","children":[]},{"level":2,"title":"对象类型8-结果为相簿","slug":"对象类型8-结果为相簿","link":"#对象类型8-结果为相簿","children":[]}],"git":{},"filePathRelative":"docs/search/search_response.md"}');export{l as data}; diff --git a/assets/search_response.html-d949438a.js b/assets/search_response.html-d949438a.js new file mode 100644 index 0000000000..d34bb8611f --- /dev/null +++ b/assets/search_response.html-d949438a.js @@ -0,0 +1,313 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const o={},p=a(`

    搜索响应条目

    本页为搜索结果数组result中的对象的说明

    对象类型1-结果为视频

    字段类型内容备注
    typestr结果类型固定为video
    idnum结果为稿件avid
    authorstrUP主昵称
    midnumUP主mid
    typeidstr视频分区tid
    typenamestr视频子分区名
    arcurlstr视频重定向url
    aidnum稿件avid
    bvidstr稿件bvid
    titlestr视频标题关键字用xml标签<em class="keyword">标注
    descriptionstr视频简介
    arcrankstr0作用尚不明确
    picstr视频封面url
    playnum视频播放量
    video_reviewnum视频弹幕量
    favoritesnum视频收藏数
    tagstr视频TAG每项TAG用,分隔
    reviewnum视频评论数
    pubdatenum视频投稿时间时间戳
    senddatenum视频发布时间时间戳
    durationstr视频时长HH:MM
    badgepayboolfalse作用尚不明确
    hit_columnsarray关键字匹配类型
    view_typestr作用尚不明确
    is_paynum0作用尚不明确
    is_union_videonum是否为合作视频0:否
    1:是
    rec_tagsnull-作用尚不明确
    new_rec_tagsarray作用尚不明确
    rank_scorenum结果排序量化值

    视频条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:标题匹配
    description:简介匹配
    author:UP主昵称匹配
    tag:视频TAG匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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】初音未来《<em class=\\"keyword\\">买买买</em>》【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-结果为番剧&影视

    字段类型内容备注
    typestr结果类型media_bangumi:番剧
    media_ft:影视
    media_idnum剧集mdid
    season_idnum剧集ssid
    titlestr剧集标题关键字用xml标签<em class="keyword">标注
    org_titlestr剧集原名关键字用xml标签<em class="keyword">标注
    可为空
    coverstr剧集封面url
    media_typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    areasstr地区
    stylesstr风格
    cvstr声优
    staffstr制作组
    play_statenum0作用尚不明确
    goto_urlstr剧集重定向url
    descstr简介
    cornernum角标有无2:无
    13:有
    pubtimenum开播时间时间戳
    media_modenum2作用尚不明确
    is_avidboolfalse作用尚不明确
    fix_pubtime_strstr开播时间重写信息优先级高于pubtime
    可为空
    media_score有效时:obj
    无效时:null
    评分信息
    hit_columns有效时:array
    无效时:null
    关键字匹配类型
    all_net_namestr作用尚不明确
    all_net_iconstr作用尚不明确
    all_net_urlstr作用尚不明确
    angle_titlestr角标内容
    angle_colornum角标颜色0:红色
    2:橙色
    display_infoarray剧集标志信息
    hit_epidsstr关键字匹配分集标题的分集epid多个用,分隔
    pgc_season_idnum剧集ssid
    season_typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    season_type_namestr剧集类型文字
    selection_stylestr分集选择按钮风格horizontal:横排式
    grid:按钮式
    ep_sizenum结果匹配的分集数
    urlstr剧集重定向url
    button_textstr观看按钮文字
    is_follownum是否追番需要登录(SESSDATA)
    未登录则恒为0
    0:否
    1:是
    is_selectionnum1作用尚不明确
    epsarray结果匹配的分集信息
    badgesarray剧集标志信息

    番剧条目中的media_score对象:

    字段类型内容备注
    user_countnum总计评分人数
    scorenum评分

    番剧条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:标题匹配
    org_title:原标题
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    番剧条目中的display_info数组:

    类型内容备注
    0obj剧集标志信息

    display_info数组中的对象:

    字段类型内容备注
    bg_color_nightstr夜间背景颜色颜色码
    textstr剧集标志颜色码
    border_colorstr背景颜色颜色码
    bg_stylenum1
    text_colorstr文字颜色颜色码
    bg_colorstr背景颜色颜色码
    text_color_nightstr夜间文字颜色颜色码
    border_color_nightstr夜间背景颜色颜色码

    番剧条目中的eps数组:

    类型内容备注
    0obj分集信息1
    nobj分集信息(n+1)项数为同时匹配到的分集数
    ……obj…………

    eps数组中的对象:

    字段类型内容备注
    idnum分集epid
    coverstr分集封面url
    titlestr完整标题
    urlstr分集重定向url
    release_datestr
    badgesarray分集标志
    index_titlestr短标题
    long_titlestr单集标题

    番剧条目中的badges数组(同eps数组中的对象中的badges数组):

    类型内容备注
    0obj剧集标志信息

    badges数组中的对象:

    字段类型内容备注
    textstr剧集标志颜色码
    text_colorstr文字颜色颜色码
    text_color_nightstr夜间文字颜色颜色码
    bg_colorstr背景颜色颜色码
    bg_color_nightstr夜间背景颜色颜色码
    border_colorstr
    border_color_nightstr
    bg_stylenum1

    示例:

    查看响应示例:
    {
    +    "media_id": 28224080,
    +    "season_id": 29310,
    +    "type": "media_bangumi",
    +    "title": "<em class=\\"keyword\\">异度侵入</em> 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-结果为直播间

    字段类型内容备注
    typestr结果类型固定为live_room
    rank_offsetnum搜索结果排名值
    uidnum主播mid
    tasstr直播间TAG多个用,分隔
    hit_columnsarray关键字匹配类型
    live_timestr开播时间YYYY-MM-DD HH:MM:SS
    cate_namestr子分区名
    live_statusnum1
    unamestr主播昵称
    ufacestr主播头像url
    user_coverstr直播间封面url
    short_idnum0作用尚不明确
    areanum1作用尚不明确
    titlestr直播间标题关键字用xml标签<em class="keyword">标注
    coverstr关键帧截图url
    onlinenum在线人数
    rank_indexnum0作用尚不明确
    rank_scorenum结果排序量化值
    roomidnum直播间id
    attentionsnum主播粉丝数

    直播间条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:直播间标题匹配
    cate_name:子分区名匹配
    uname:主播昵称匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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": "<em class=\\"keyword\\">MC</em> 1.16 极限服",
    +    "cover": "//i0.hdslb.com/bfs/live/keyframe07031915000000010313u3z18a.jpg",
    +    "online": 34702,
    +    "rank_index": 0,
    +    "rank_score": 34702,
    +    "roomid": 10313,
    +    "attentions": 317864
    +}
    +

    对象类型4-结果为主播

    字段类型内容备注
    typestr结果类型固定为live_user
    rank_offsetnum搜索结果排名值
    uidnum主播mid
    tasstr直播间TAG多个用,分隔
    live_timestr开播时间YYYY-MM-DD HH:MM:SS
    如未开播为0000-00-00 00:00:00
    hit_columnsarray关键字匹配类型
    live_statusnum是否开播0:未开播
    1:已开播
    areanum1作用尚不明确
    is_livebool是否开播false:未开播
    true:已开播
    unamestr主播昵称关键字用xml标签<em class="keyword">标注
    ufacestr主播头像url
    rank_indexnum0作用尚不明确
    rank_scorenum结果排序量化值
    attentionsnum主播粉丝数

    主播条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1uname:主播昵称匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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": "<em class=\\"keyword\\">痒局长</em>",
    +    "uface": "//i2.hdslb.com/bfs/face/bcdf640faa16ebaacea1d4c930baabaec9087a80.jpg",
    +    "rank_index": 0,
    +    "rank_score": 2620790,
    +    "roomid": 5441,
    +    "attentions": 2570790
    +}
    +

    对象类型5-结果为专栏

    字段类型内容备注
    typestr结果类型固定为article
    rank_offsetnum搜索结果排名值
    pub_timenum投稿时间时间戳
    likenum获赞数
    titlestr标题
    midnumUP主mid
    image_urlsarray封面图组
    template_idnum???作用尚不明确
    category_idnum专栏分区
    viewnum阅读数
    replynum评论数
    rank_indexnum0作用尚不明确
    descstr文章预览
    rank_scorenum结果排序量化值
    idnum专栏cvid
    category_namestr子分区名

    专栏条目中的covers数组:

    类型内容备注
    0str封面图片1
    nstr封面图片(n+1)
    ……str……

    示例:

    查看响应示例:
    {
    +    "pub_time": 1582123245,
    +    "like": 113,
    +    "title": "【洛水闲谈】《<em class=\\"keyword\\">普通DISCO</em>》神话达成后的个人感想",
    +    "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-结果为话题

    字段类型内容备注
    typestr结果类型固定为topic
    descriptionstr简介
    pubdatenm发布时间时间戳
    titlestr标题
    favouritenum0作用尚不明确
    hit_columnsarray关键字匹配类型
    reviewnum0作用尚不明确
    rank_offsetnum搜索结果排名值
    coverstr话题封面url
    updatenum上传时间时间戳
    midnm0作用尚不明确
    clicknum???作用尚不明确
    tp_typenum???作用尚不明确
    keywordstr作用尚不明确
    tp_idnum话题tp
    rank_indexnum0作用尚不明确
    authorstrUP主昵称
    arcurlstr话题页面重定向url
    rank_scorenum结果排序量化值

    话题条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:话题标题匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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-结果为用户

    字段类型内容备注
    typestr结果类型固定为bili_user
    midnum用户mid
    unamestr用户昵称
    usignstr用户签名
    fansnum用户粉丝数
    videosnum用户稿件数
    upicstr用户头像url
    verify_infostr作用尚不明确
    levelnum用户等级
    gendernum用户性别1:男
    2:女
    3:私密
    is_upusernum是否为UP主0:否
    1:是
    is_livenum是否正在直播0:否
    1:是
    room_idnum用户直播间id
    resarray用户投稿内容
    official_verifyobj用户认证信息
    hit_columnsarray关键字匹配类型

    用户条目中的res数组:

    类型内容备注
    0obj用户投稿视频1
    nobj用户投稿视频(n+1)项数为用户投稿的3个视频数
    ……obj…………

    res数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    bvidstr稿件bvid
    titlestr视频标题
    pubdatenum视频投稿时间时间戳
    arcurlstr视频页面重定向url
    picstr视频封面图片url
    playstr播放量
    dmstr弹幕量
    coinnum投币数
    favnum收藏数
    descstr视频简介
    durationstr视频时长MM:SS
    is_paynum0作用尚不明确
    is_union_videonum是否为合作视频0:否
    1:是

    用户条目中的official_verify对象:

    字段类型内容备注
    typenum是否认证127:无
    0:个人认证
    1:组织认证
    descstr认证名称

    用户条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1uname:用户昵称匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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-结果为相簿

    字段类型内容备注
    typestr结果类型固定为photo
    countnum图片数
    likenum收藏数
    titlestr相簿标题
    hit_columnsarray关键字匹配类型
    rank_offsetnum搜索结果排名值
    coverstr相簿封面url
    midnumUP主mid
    unamestrUP主昵称
    rank_indexnum0作用尚不明确
    viewnum观看次数
    idnum相簿id
    rank_scorenum结果排序量化值

    相簿条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:相簿标贴匹配
    description:相簿简介匹配
    source_tag:相簿TAG匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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
    +}
    +
    `,70),e=[p];function d(r,l){return s(),n("div",null,e)}const c=t(o,[["render",d],["__file","search_response.html.vue"]]);export{c as default}; diff --git a/assets/season.html-a8ef16a3.js b/assets/season.html-a8ef16a3.js new file mode 100644 index 0000000000..dbe2f41180 --- /dev/null +++ b/assets/season.html-a8ef16a3.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-00885146","path":"/docs/creativecenter/season.html","title":"合集管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取合集列表","slug":"获取合集列表","link":"#获取合集列表","children":[]},{"level":2,"title":"创建合集","slug":"创建合集","link":"#创建合集","children":[]},{"level":2,"title":"添加视频到合集","slug":"添加视频到合集","link":"#添加视频到合集","children":[]},{"level":2,"title":"编辑合集小节","slug":"编辑合集小节","link":"#编辑合集小节","children":[]},{"level":2,"title":"编辑合集信息","slug":"编辑合集信息","link":"#编辑合集信息","children":[]},{"level":2,"title":"删除合集","slug":"删除合集","link":"#删除合集","children":[]}],"git":{},"filePathRelative":"docs/creativecenter/season.md"}');export{e as data}; diff --git a/assets/season.html-bb9de1e4.js b/assets/season.html-bb9de1e4.js new file mode 100644 index 0000000000..9d3e16fd1e --- /dev/null +++ b/assets/season.html-bb9de1e4.js @@ -0,0 +1,289 @@ +import{_ as o,r as d,o as r,c as l,a as s,b as n,d as a,w as e,e as p}from"./app-3168cb19.js";const c={},u=s("h1",{id:"合集管理",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#合集管理","aria-hidden":"true"},"#"),n(" 合集管理")],-1),i=p(`

    获取合集列表

    https://member.bilibili.com/x2/creative/web/seasons

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    pnnum页码必要默认为 1
    psnum每页数量必要默认为 30
    orderstr排序方式不必要创建时间: ctime
    修改时间: mtime
    sortstr排序方式不必要创建时间: asc
    修改时间: desc
    draftnum1不必要作用尚不明确

    JSON回复:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seasonsarr合集列表
    tipobj内容 title url 均为空
    totalnum合集总数
    play_typenum1作用尚不明确

    seasons数组中的对象:

    字段类型内容备注
    seasonobj合集信息
    coursenull
    checkinobj审核信息?
    seasonStatobj合集统计信息
    sectionsobj小节列表
    part_episodesarr合集视频列表

    seasons数组中的对象中的season对象:

    字段类型内容备注
    idnum合集 ID
    titlestr合集标题
    descstr合集描述
    coverstr合集封面 URL
    isEndnum是否已完结?0: 未完结
    midnum合集作者 ID
    isActnum是否为活动合集?0: 否
    is_paynum是否付费?0: 否
    statenum合集状态?0: 正常显示
    -6: 正在审核
    partStatenum合集分段状态?0
    signStatenum合集签名状态?0
    rejectReasonstr合集拒绝原因?
    ctimenum创建时间
    mtimenum修改时间
    no_sectionnum是否设小节1: 不设小节
    forbidnum合集是否禁止?0: 否
    protocol_idstr
    ep_numnum0
    season_pricenum合集价格?0: 免费
    is_openednum是否公开?1: 公开
    has_charging_paynum是否充电付费?0: 否

    seasons数组中的对象中的checkin对象:

    字段类型内容备注
    statusnum状态?0: 正常显示
    status_reasonstr状态原因?
    season_statusnum合集审核状态?1: 审核通过

    seasons数组中的对象中的seasonStat对象:

    字段类型内容备注
    viewnum播放量
    danmakunum弹幕数
    replynum评论数
    favnum收藏数
    coinnum硬币数
    sharenum分享数
    nowRanknum当前排名?
    hisRanknum历史最高排名?
    likenum点赞数
    subscriptionnum订阅数
    vtnum0

    seasons数组中的对象中的sections对象:

    字段类型内容备注
    sectionsarr小节列表套了个娃

    seasons数组中的对象中的sections数组中的对象:

    字段类型内容备注
    idnum小节 ID
    typenum1
    seasonIdnum合集 ID
    titlestr小节标题
    ordernum排序
    statenum状态?0: 正常
    partStatenum合集分段状态?0: 正常
    rejectReasonstr拒绝原因?
    ctimenum创建时间
    mtimenum修改时间
    epCountnum视频数量
    coverstr封面 URL
    has_charging_paynum是否充电付费?0: 否
    Episodesnull

    seasons数组中的对象中的part_episodes数组中的对象:

    字段类型内容备注
    idnum合集内视频 ID
    titlestr视频标题
    aidnum视频 aid
    bvidstr视频 bvid
    cidnum视频 cid
    seasonIdnum合集 ID
    sectionIdnum小节 ID
    ordernum排序编号
    videoTitlestr
    archiveTitlestr
    archiveStatenum0
    rejectReasonstr拒绝理由?
    statenum0
    coverstr封面 URL
    is_freenum是否免费?0: 免费
    aid_ownerboolfalse
    charging_paynum充电付费?0: 否

    示例:

    curl -G 'https://member.bilibili.com/x2/creative/web/seasons' \\
    +--data-urlencode 'pn=1' \\
    +--data-urlencode 'ps=30' \\
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "seasons": [
    +      {
    +        "season": {
    +          "id": 3541247,
    +          "title": "🍥Debian",
    +          "desc": "这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~",
    +          "cover": "https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg",
    +          "isEnd": 0,
    +          "mid": 645769214,
    +          "isAct": 0,
    +          "is_pay": 0,
    +          "state": 0,
    +          "partState": 0,
    +          "signState": 0,
    +          "rejectReason": "",
    +          "ctime": 1722573640,
    +          "mtime": 1722577206,
    +          "no_section": 1,
    +          "forbid": 0,
    +          "protocol_id": "",
    +          "ep_num": 0,
    +          "season_price": 0,
    +          "is_opened": 1,
    +          "has_charging_pay": 0
    +        },
    +        "course": null,
    +        "checkin": {
    +          "status": 0,
    +          "status_reason": "",
    +          "season_status": 1
    +        },
    +        "seasonStat": {
    +          "view": 6793,
    +          "danmaku": 21,
    +          "reply": 93,
    +          "fav": 64,
    +          "coin": 26,
    +          "share": 12,
    +          "nowRank": 0,
    +          "hisRank": 0,
    +          "like": 141,
    +          "subscription": 0,
    +          "vt": 0
    +        },
    +        "sections": {
    +          "sections": [
    +            {
    +              "id": 3954033,
    +              "type": 1,
    +              "seasonId": 3541247,
    +              "title": "正片",
    +              "order": 1,
    +              "state": 0,
    +              "partState": 0,
    +              "rejectReason": "",
    +              "ctime": 1722573640,
    +              "mtime": 1722577206,
    +              "epCount": 2,
    +              "cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
    +              "has_charging_pay": 0,
    +              "Episodes": null
    +            }
    +          ]
    +        },
    +        "part_episodes": [
    +          {
    +            "id": 77260687,
    +            "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +            "aid": 1906473802,
    +            "bvid": "BV1MU411S7iJ",
    +            "cid": 1625992822,
    +            "seasonId": 3541247,
    +            "sectionId": 3954033,
    +            "order": 1,
    +            "videoTitle": "",
    +            "archiveTitle": "",
    +            "archiveState": 0,
    +            "rejectReason": "",
    +            "state": 0,
    +            "cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
    +            "is_free": 0,
    +            "aid_owner": false,
    +            "charging_pay": 0
    +          },
    +          {
    +            "id": 77260688,
    +            "title": "十多年前的电脑运行Debian12的启动过程",
    +            "aid": 1956170305,
    +            "bvid": "BV1Ay411i7Ph",
    +            "cid": 1607067247,
    +            "seasonId": 3541247,
    +            "sectionId": 3954033,
    +            "order": 2,
    +            "videoTitle": "",
    +            "archiveTitle": "",
    +            "archiveState": 0,
    +            "rejectReason": "",
    +            "state": 0,
    +            "cover": "http://i0.hdslb.com/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
    +            "is_free": 0,
    +            "aid_owner": false,
    +            "charging_pay": 0
    +          }
    +        ]
    +      },
    +      {
    +        "season": {
    +          "id": 3541327,
    +          "title": "BACollect",
    +          "desc": "",
    +          "cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
    +          "isEnd": 0,
    +          "mid": 645769214,
    +          "isAct": 0,
    +          "is_pay": 0,
    +          "state": 0,
    +          "partState": 0,
    +          "signState": 0,
    +          "rejectReason": "",
    +          "ctime": 1722574656,
    +          "mtime": 1722574658,
    +          "no_section": 1,
    +          "forbid": 0,
    +          "protocol_id": "",
    +          "ep_num": 0,
    +          "season_price": 0,
    +          "is_opened": 1,
    +          "has_charging_pay": 0
    +        },
    +        "course": null,
    +        "checkin": {
    +          "status": 0,
    +          "status_reason": "",
    +          "season_status": 0
    +        },
    +        "seasonStat": {
    +          "view": 0,
    +          "danmaku": 0,
    +          "reply": 0,
    +          "fav": 0,
    +          "coin": 0,
    +          "share": 0,
    +          "nowRank": 0,
    +          "hisRank": 0,
    +          "like": 0,
    +          "subscription": 0,
    +          "vt": 0
    +        },
    +        "sections": {
    +          "sections": [
    +            {
    +              "id": 3954127,
    +              "type": 1,
    +              "seasonId": 3541327,
    +              "title": "正片",
    +              "order": 1,
    +              "state": 0,
    +              "partState": 0,
    +              "rejectReason": "",
    +              "ctime": 1722574656,
    +              "mtime": 1722574656,
    +              "epCount": 0,
    +              "cover": "http://static.hdslb.com/images/transparent.gif",
    +              "has_charging_pay": 0,
    +              "Episodes": null
    +            }
    +          ]
    +        },
    +        "part_episodes": null
    +      }
    +    ],
    +    "tip": {
    +      "title": "",
    +      "url": ""
    +    },
    +    "total": 2,
    +    "play_type": 1
    +  }
    +}
    +

    创建合集

    ttps://member.bilibili.com/x2/creative/web/season/add

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    注: 有人工审核

    正文参数:

    `,33),k=s("thead",null,[s("tr",null,[s("th",null,"参数名"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"必要性"),s("th",null,"备注")])],-1),b=s("tr",null,[s("td",null,"title"),s("td",null,"str"),s("td",null,"合集标题"),s("td",null,"必要"),s("td")],-1),v=s("tr",null,[s("td",null,"desc"),s("td",null,"str"),s("td",null,"合集简介"),s("td",null,"不必要"),s("td")],-1),m=s("td",null,"cover",-1),q=s("td",null,"str",-1),h=s("td",null,"封面图",-1),y=s("td",null,"必要",-1),g=s("tr",null,[s("td",null,"season_price"),s("td",null,"num"),s("td",null,"0"),s("td",null,"不必要"),s("td",null,"作用尚不明确")],-1),_=s("tr",null,[s("td",null,"csrf"),s("td",null,"str"),s("td",null,"CSRF Token (即 Cookies 中 bili_jct )"),s("td",null,"必要"),s("td")],-1),x=p(`

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    datanum合集 ID

    示例:

    curl -X POST 'https://member.bilibili.com/x2/creative/web/season/add' \\
    +--data-urlencode 'title=🍥Debian' \\
    +--data-urlencode 'desc=这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~' \\
    +--data-urlencode 'cover=https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg' \\
    +--data-urlencode 'season_price=0' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": 3541247
    +}
    +

    添加视频到合集

    https://member.bilibili.com/x2/creative/web/season/section/episodes/add

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (application/json):

    根对象:

    参数名类型内容必要性备注
    episodearray视频列表必要
    section_idnum合集小节 ID必要

    episode 数组中的对象:

    参数名类型内容必要性备注
    aidnum视频 aid必要
    cidnum稿件 cid必要
    titlestr合集内单集标题必要
    charging_paynum0不必要作用尚不明确

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    假设您已经把请求有效荷载放在 payload.json 文件中:

    {
    +  "sectionId": 3954033,
    +  "episodes": [
    +    {
    +      "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +      "aid": 1906473802,
    +      "cid": 1625992822,
    +      "charging_pay": 0
    +    },
    +    {
    +      "title": "十多年前的电脑运行Debian12的启动过程",
    +      "aid": 1956170305,
    +      "cid": 1607067247,
    +      "charging_pay": 0
    +    }
    +  ]
    +}
    +
    curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/episodes/add' \\
    +--url-query 'csrf=xxx' \\
    +-H 'Content-Type: application/json' \\
    +--data-binary @payload.json \\
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    编辑合集小节

    https://member.bilibili.com/x2/creative/web/season/section/edit

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct)必要

    正文参数 (application/json):

    根对象:

    参数名类型内容必要性备注
    sectionobj小节信息必要
    sortsarray排序列表必要

    section 对象:

    参数名类型内容必要性备注
    idnum小节 ID必要
    seasonIdnum合集 ID必要
    titlestr小节标题必要
    typenum1必要

    sorts 数组中的对象:

    参数名类型内容必要性备注
    idnum合集内视频 ID必要
    ordernum排序位置必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    假设您已经把请求有效荷载放在 payload.json 文件中:

    {
    +  "section": {
    +    "id": 3954033,
    +    "type": 1,
    +    "seasonId": 3541247,
    +    "title": "正片"
    +  },
    +  "sorts": [
    +    {
    +      "id": 77260687,
    +      "sort": 1
    +    },
    +    {
    +      "id": 77260688,
    +      "sort": 2
    +    }
    +  ]
    +}
    +
    curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/edit' \\
    +--url-query 'csrf=xxx' \\
    +-H 'Content-Type: application/json' \\
    +--data-binary @payload.json \\
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    编辑合集信息

    https://member.bilibili.com/x2/creative/web/season/edit

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    注: 也有人工审核

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct)必要

    正文参数 (application/json):

    根对象:

    参数名类型内容必要性备注
    seasonobj合集信息必要
    sortsarray排序列表必要

    season 对象:

    `,57),f=s("thead",null,[s("tr",null,[s("th",null,"参数名"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"必要性"),s("th",null,"备注")])],-1),S=s("tr",null,[s("td",null,"id"),s("td",null,"num"),s("td",null,"合集 ID"),s("td",null,"必要"),s("td")],-1),j=s("tr",null,[s("td",null,"title"),s("td",null,"str"),s("td",null,"合集标题"),s("td",null,"必要"),s("td")],-1),T=s("td",null,"cover",-1),D=s("td",null,"str",-1),A=s("td",null,"封面图",-1),w=s("td",null,"必要",-1),E=s("tr",null,[s("td",null,"desc"),s("td",null,"str"),s("td",null,"合集简介"),s("td",null,"不必要"),s("td")],-1),I=s("tr",null,[s("td",null,"season_price"),s("td",null,"num"),s("td",null,"0"),s("td",null,"不必要"),s("td",null,"作用尚不明确")],-1),R=s("tr",null,[s("td",null,"isEnd"),s("td",null,"num"),s("td",null,"是否完结"),s("td",null,"不必要"),s("td",null,[n("0:未完结"),s("br"),n("1:完结")])],-1),C=p(`

    sorts 数组中的对象:

    参数名类型内容必要性备注
    idnum小节 ID必要
    sortnum排序位置必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    假设您已经把请求有效荷载放在 payload.json 文件中:

    {
    +  "season": {
    +    "cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
    +    "id": 3541327,
    +    "title": "IWILLBEDEL"
    +  },
    +  "sorts": [
    +    {
    +      "id": 3954127,
    +      "sort": 1
    +    }
    +  ]
    +}
    +
    curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/edit' \\
    +--url-query 'csrf=xxx' \\
    +-H 'Content-Type: application/json' \\
    +--data-binary @payload.json \\
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    删除合集

    https://member.bilibili.com/x2/creative/web/season/del

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    idnum合集 ID必要
    csrfstrCSRF Token (即 Cookie 中 bili_jct)必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    删除合集 id=3541327

    curl -X POST 'https://member.bilibili.com/x2/creative/web/season/del' \\
    +--data-urlencode 'id=3541327' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +
    `,23);function L(O,B){const t=d("RouterLink");return r(),l("div",null,[u,s("p",null,[n("关于用户空间的合集及视频列表参见 "),a(t,{to:"/docs/video/collection.html"},{default:e(()=>[n("合集和视频列表信息")]),_:1})]),i,s("table",null,[k,s("tbody",null,[b,v,s("tr",null,[m,q,h,y,s("td",null,[n("从 "),a(t,{to:"/docs/creativecenter/upload.html#%E4%B8%8A%E4%BC%A0%E5%B0%81%E9%9D%A2"},{default:e(()=>[n("上传封面")]),_:1}),n(" 处获取")])]),g,_])]),x,s("table",null,[f,s("tbody",null,[S,j,s("tr",null,[T,D,A,w,s("td",null,[n("从 "),a(t,{to:"/docs/creativecenter/upload.html#%E4%B8%8A%E4%BC%A0%E5%B0%81%E9%9D%A2"},{default:e(()=>[n("上传封面")]),_:1}),n(" 处获取")])]),E,I,R])]),C])}const P=o(c,[["render",L],["__file","season.html.vue"]]);export{P as default}; diff --git a/assets/silent_user_manage.html-06a238c6.js b/assets/silent_user_manage.html-06a238c6.js new file mode 100644 index 0000000000..9fa8fe0528 --- /dev/null +++ b/assets/silent_user_manage.html-06a238c6.js @@ -0,0 +1,62 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    直播间禁言相关 API

    禁言观众

    https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/AddSilentUser

    请求方式:post

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idstr直播间Id必要
    tuidstr要禁言的uid必要
    msgstr要禁言的弹幕内容非必要
    mobile_appstrweb必要定值"web"即可
    csrf_tokenstrCSRF Token必要cookie中的bili_jct字段
    csrfstrCSRF Token必要cookie中的bili_jct字段
    visit_idstr不明非必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 "0"
    ttlstr1
    dataobj信息本体成功为空

    示例:

    curl -X POST 'https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/AddSilentUser' \\
    +--data-urlencode 'room_id=xxxxxx' \\
    +--data-urlencode 'tuid=xxx' \\
    +--data-urlencode 'msg=xxxx' \\
    +--data-urlencode 'mobile_app=web' \\
    +--data-urlencode 'csrf_token=xx' \\
    +--data-urlencode 'csrf=xx' \\
    +--data-urlencode 'visit_id=' \\
    +-H 'Content-Type:application/x-www-form-urlencoded' \\
    +-b 'SESSDATA=xxx; bili_jct=xx;'
    +
    查看响应示例:
    {"code":0,"message":"0","ttl":1,"data":{}}
    +

    查询直播间禁言列表

    https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/GetSilentUserList

    请求方式:post

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idstr直播间Id必要
    ps1str列表页码必要
    csrf_tokenstrCSRF Token必要cookie中的bili_jct字段
    csrfstrCSRF Token必要cookie中的bili_jct字段
    visit_idstr不明非必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 "0"
    ttlstr1
    dataobj信息本体

    data对象:

    字段类型内容备注
    dataarray禁言列表数组中为obj
    totalint禁言观众数量
    total_pageint页码总数量

    data对象中data数组的元素对象:

    字段类型内容备注
    tuidnum禁言者uid
    tnamestr禁言者昵称
    uidnum发起者uid
    namestr发起者昵称
    ctimestr禁言时间
    idnum禁言记录Id解除禁言时用到
    is_anchornum不明
    facestr禁言者头像
    admin_levelnum发起者权限0:主播,1:房管

    示例:

    curl -X POST 'https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/GetSilentUserList' \\
    +--data-urlencode 'room_id=xxxxxxx' \\
    +--data-urlencode 'ps=1' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +--data-urlencode 'csrf=xxx' \\
    +--data-urlencode 'visit_id=' \\
    +-H 'Content-Type:application/x-www-form-urlencoded' \\
    +-b 'SESSDATA=xxxx; bili_jct=xxx;'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "data":[
    +            {
    +                "tuid":123456,
    +                "tname":"xxxxx",
    +                "uid":123456,
    +                "name":"xxxx",
    +                "ctime":"2023-12-15 16:32:46",
    +                "id":13493921,
    +                "is_anchor":0,
    +                "face":"https://i1.hdslb.com/bfs/face/xxxxx.jpg",
    +                "admin_level":1
    +            },
    +            {
    +                "tuid":123456,
    +                "tname":"xx",
    +                "uid":123456,
    +                "name":"xxxx",
    +                "ctime":"2021-08-23 22:26:06",
    +                "id":8018136,
    +                "is_anchor":1,
    +                "face":"https://i1.hdslb.com/bfs/face/xxxxxx.jpg",
    +                "admin_level":0
    +            }
    +        ],
    +        "total":2,
    +        "total_page":1
    +    }
    +}
    +

    解除禁言

    https://api.live.bilibili.com/banned_service/v1/Silent/del_room_block_user

    请求方式:post

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    roomidstr直播间Id必要注意该接口名称没有“_”
    idstr禁言记录Id必要GetSilentUserList 接口获取
    csrf_tokenstrCSRF Token必要cookie中的bili_jct字段
    csrfstrCSRF Token必要cookie中的bili_jct字段
    visit_idstr不明非必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为空
    ttlstr1
    dataobj信息本体成功为空

    示例:

    curl -X POST 'https://api.live.bilibili.com/banned_service/v1/Silent/del_room_block_user' \\
    +--data-urlencode 'roomid=xxxxxxxxx' \\
    +--data-urlencode 'id=xxxxx' \\
    +--data-urlencode 'csrf_token=xxx' \\
    +--data-urlencode 'csrf=xxx' \\
    +--data-urlencode 'visit_id=' \\
    +-H 'Content-Type:application/x-www-form-urlencoded' \\
    +-b 'SESSDATA=xxxxxx; bili_jct=xxx;'
    +
    查看响应示例:
    {"code":0,"msg":"","message":"","data":[]}
    +
    `,44),o=[d];function p(r,i){return s(),n("div",null,o)}const c=t(e,[["render",p],["__file","silent_user_manage.html.vue"]]);export{c as default}; diff --git a/assets/silent_user_manage.html-8048b3b2.js b/assets/silent_user_manage.html-8048b3b2.js new file mode 100644 index 0000000000..5a4a455ece --- /dev/null +++ b/assets/silent_user_manage.html-8048b3b2.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-5773b3bc","path":"/docs/live/silent_user_manage.html","title":"直播间禁言相关 API","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"禁言观众","slug":"禁言观众","link":"#禁言观众","children":[]},{"level":2,"title":"查询直播间禁言列表","slug":"查询直播间禁言列表","link":"#查询直播间禁言列表","children":[]},{"level":2,"title":"解除禁言","slug":"解除禁言","link":"#解除禁言","children":[]}],"git":{},"filePathRelative":"docs/live/silent_user_manage.md"}');export{e as data}; diff --git a/assets/skin.html-3e672649.js b/assets/skin.html-3e672649.js new file mode 100644 index 0000000000..e1b20b5cc2 --- /dev/null +++ b/assets/skin.html-3e672649.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-a09b7e1c","path":"/docs/garb/skin.html","title":"APP主题","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取主题及加载动画","slug":"获取主题及加载动画","link":"#获取主题及加载动画","children":[]},{"level":2,"title":"主题包结构","slug":"主题包结构","link":"#主题包结构","children":[]}],"git":{},"filePathRelative":"docs/garb/skin.md"}');export{e as data}; diff --git a/assets/skin.html-ea0d224b.js b/assets/skin.html-ea0d224b.js new file mode 100644 index 0000000000..be257b2645 --- /dev/null +++ b/assets/skin.html-ea0d224b.js @@ -0,0 +1,109 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const e={},d=a(`

    APP主题

    获取主题及加载动画

    https://app.bilibili.com/x/resource/show/skin

    请求方式:GET

    鉴权方式:appkey

    认证方式:仅可APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    buildnum版本APP方式必要可为6082000
    tsnum当前时间戳APP方式必要可为0
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    user_equipobj个性主题信息有效时有此项
    skin_colorsarray主题颜色列表
    load_equipobj加载动画信息有效时有此项

    data中的user_equip对象:

    字段类型内容备注
    idnum装扮id
    namestr装扮名称
    previewstr装扮封面url
    vernum装扮版本时间戳
    package_urlstr装扮包url
    package_md5str装扮包md5校验值
    dataobj装扮配置

    user_equip中的data对象:

    字段类型内容必要性备注
    color_modestr颜色模式必要light:亮色
    dark:暗色
    colorstr前景色?必要颜色
    1. 使用十六进制颜色值
    2. 颜色值的大小写不限,下同
    3. 例:#ffffff
    color_second_pagestr背景色?必要颜色
    tail_colorstr底边栏颜色必要颜色
    tail_color_selectedstr底边栏颜色(选择时)必要颜色
    tail_icon_anibool有无底边栏动画必要false:无
    true:有
    tail_icon_ani_modestr底边栏动画循环播放必要once:播放一次
    head_myself_mp4_playstr我的页面头图(视频)循环必要once:播放一次
    loop:循环播放
    tail_icon_modestr底栏改图标或改颜色必要img:图标
    color:颜色
    side_bg_colorstr侧边栏颜色非必要颜色
    5.x 版本客户端的侧边栏
    side_line_colorstr侧边栏线条颜色?非必要颜色
    5.x 版本客户端的侧边栏
    tail_icon_colorstr底栏图标颜色可能必要颜色
    若 tail_icon_mode = "color",则必要
    tail_icon_color_darkstr底栏图标颜色(夜间模式)可能必要颜色
    若 tail_icon_mode = "color",则必要
    tail_icon_color_selectedstr底栏图标颜色(选择时)可能必要颜色
    若 tail_icon_mode = "color",则必要
    tail_icon_color_selected_darkstr底栏图标颜色(选择时)(夜间模式)可能必要颜色
    若 tail_icon_mode = "color",则必要

    skin_colors数组:

    类型内容备注
    0obj主题颜色1
    nobj主题颜色(n+1)
    ……obj…………

    skin_colors数组中的对象:

    字段类型内容备注
    idnum颜色id
    namestr颜色名称
    is_freebool是否免费false:收费
    true:免费
    pricenum价格单位为硬币
    is_boughtbool是否已购买false:未购买
    true:已购买
    statusnum状态1:自动续费
    4:已退订
    buy_timenum购买时间毫秒时间戳
    due_timenum到期时间毫秒时间戳
    color_namestr颜色类型名称
    is_overduebool是否已到期false:未到期
    true:已到期

    data中的load_equip对象:

    字段类型内容备注
    idnum装扮id
    namestr装扮名称
    vernum装扮版本时间戳
    loading_urlstr加载动画图标url

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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(初音未来-日版)的资源为例

    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
    +
    `,35),o=[d];function p(r,l){return n(),s("div",null,o)}const c=t(e,[["render",p],["__file","skin.html.vue"]]);export{c as default}; diff --git a/assets/snapshot.html-07090ac3.js b/assets/snapshot.html-07090ac3.js new file mode 100644 index 0000000000..ac6aba08b1 --- /dev/null +++ b/assets/snapshot.html-07090ac3.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-08037526","path":"/docs/video/snapshot.html","title":"视频快照","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取视频快照(web端)","slug":"获取视频快照-web端","link":"#获取视频快照-web端","children":[]},{"level":2,"title":"获取视频快照(APP端)","slug":"获取视频快照-app端","link":"#获取视频快照-app端","children":[]},{"level":2,"title":"获取视频快照(web端)(用于封面预览)","slug":"获取视频快照-web端-用于封面预览","link":"#获取视频快照-web端-用于封面预览","children":[]},{"level":2,"title":"图片拼版","slug":"图片拼版","link":"#图片拼版","children":[]},{"level":2,"title":"bin格式截取时间表","slug":"bin格式截取时间表","link":"#bin格式截取时间表","children":[]}],"git":{},"filePathRelative":"docs/video/snapshot.md"}');export{e as data}; diff --git a/assets/snapshot.html-14943ed7.js b/assets/snapshot.html-14943ed7.js new file mode 100644 index 0000000000..d43d3f4171 --- /dev/null +++ b/assets/snapshot.html-14943ed7.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-f1eb9d0c","path":"/docs/danmaku/snapshot.html","title":"弹幕快照","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取弹幕快照","slug":"获取弹幕快照","link":"#获取弹幕快照","children":[]}],"git":{},"filePathRelative":"docs/danmaku/snapshot.md"}');export{t as data}; diff --git a/assets/snapshot.html-7339a613.js b/assets/snapshot.html-7339a613.js new file mode 100644 index 0000000000..7eb40b8019 --- /dev/null +++ b/assets/snapshot.html-7339a613.js @@ -0,0 +1,82 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},e=t(`

    视频快照

    快照的截取时间根据视频画面变化程度决定,各视频不相同

    截取时间表的时间根据视频画面变化程度决定,各每个视频不相同

    截取时间表的时间和快照一一对应,并按照从左到右 从上到下的顺序排布

    获取视频快照(web端)

    https://api.bilibili.com/x/player/videoshot

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    cidnum分P cid非必要默认为1P
    indexnumjson数组截取时间表非必要1:需要
    0:不需要
    默认为0

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    40001:请求错误
    40003:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pvdatastrbin格式截取时间表url
    img_x_lennum每行图片数一般为10
    img_y_lennum每列图片数一般为10
    img_x_sizenum每张图片长一般为160
    img_y_sizenum每张图片宽一般为90
    imagearray图片拼版
    indexarrayjson数组格式截取时间表无为空

    data中的image数组:

    类型内容备注
    0str图片拼版1 url
    nstr图片拼版(n+1) url第一张拼版占满时延续第二张
    ……str…………

    data中的index数组:

    类型内容备注
    0num恒为0
    1num图片1 截取时间视频0秒截取时间
    nnum图片n 截取时间单位为秒
    ……num……单位为秒

    示例:

    获取视频av26273789/BV1os411H7wm的快照

    avid方式:

    curl -G 'https://api.bilibili.com/x/player/videoshot' \\
    +--data-urlencode 'aid=26273789' \\
    +--data-urlencode 'index=1'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/player/videoshot' \\
    +--data-urlencode 'bvid=BV1os411H7wm' \\
    +--data-urlencode 'index=1'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要
    appkeystrAPP密钥APP方式必要
    cidnum分P cid必要
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    10008:稿件的缩略图不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pvdatastrbin格式截取时间表url
    img_x_lennum每行图片数一般为10
    img_y_lennum每列图片数一般为10
    img_x_sizenum每张图片长一般为160
    img_y_sizenum每张图片宽一般为90
    imagearray图片拼版

    data中的image数组:

    类型内容备注
    0str图片拼版1 url
    nstr图片拼版(n+1) url第一张拼版占满时延续第二张
    ……str…………

    示例:

    获取视频av26273789cid=49075258)的快照

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    40001:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pvdatastrbin格式截取时间表url
    img_x_lennum每行图片数一般为10
    img_y_lennum每列图片数一般为10
    img_x_sizenum每张图片长一般为160
    img_y_sizenum每张图片宽一般为90
    imagearray图片拼版
    indexarrayjson数组格式截取时间表无为空

    data中的image数组:

    类型内容备注
    0str图片拼版1 url
    nstr图片拼版(n+1) url第一张拼版占满时延续第二张
    ……str…………

    data中的index数组:

    类型内容备注
    0num恒为0
    1num图片1 截取时间视频0秒截取时间
    nnum图片n 截取时间单位为秒
    ……num……单位为秒

    示例:

    获取视频av26273789的快照

    curl -G 'https://api.bilibili.com/pvideo' \\
    +--data-urlencode 'aid=26273789'
    +
    查看响应示例:
    {
    +	"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

    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.{..|
    +
    `,72),o=[e];function c(u,l){return s(),a("div",null,o)}const i=n(p,[["render",c],["__file","snapshot.html.vue"]]);export{i as default}; diff --git a/assets/snapshot.html-80616d50.js b/assets/snapshot.html-80616d50.js new file mode 100644 index 0000000000..1bcd19861e --- /dev/null +++ b/assets/snapshot.html-80616d50.js @@ -0,0 +1,32 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const e={},o=a(`

    弹幕快照

    获取弹幕快照

    https://api.bilibili.com/x/v2/dm/ajax

    请求方式:GET

    最近产生的几条弹幕内容,最多20条

    url参数:

    参数名类型内容必要性备注
    aidnum或str稿件avid或稿件bvid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataarray预览列表

    data数组:

    类型内容备注
    0str预览内容1
    nstr预览内容(n+1)
    ……str…………
    19str预览内容20最后一条

    示例:

    获取视频av43337021/BV1rb411m7gE的弹幕快照,总计20条

    avid方式:

    curl -G 'https://api.bilibili.com/x/v2/dm/ajax' \\
    +--data-urlencode 'aid=43337021'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/v2/dm/ajax' \\
    +--data-urlencode 'aid=BV1rb411m7gE'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +    "data": [
    +	"漫画比动漫好看而且血腥", 
    +	"666", 
    +	"金木小天使",
    +	"太喜欢了", 
    +	"每天一遍防止抑郁",
    +	"我还记得土豆那时候还有的看",
    +	"把在给我摸摸~",
    +	"突然泪目",
    +	"感谢野生字幕君",
    +	"993-7",
    +	"刚刚出的时候小学看,现在高二了",
    +	"原版op有这么长吗?搞笑,肯定做了剪辑,op会给你放全歌?",
    +	"让你看个op 3 : 5 4 秒?",
    +	"说原版不原版的都是弱智",
    +	"樱花",
    +	"请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,",
    +	"再来亿遍", 
    +	"错的不是我,而是这个世界。",
    +	"吃货的第一季的最后一季足以让他封神!", 
    +	"+"
    +    ]
    +}
    +
    `,19),d=[o];function p(i,l){return n(),s("div",null,d)}const u=t(e,[["render",p],["__file","snapshot.html.vue"]]);export{u as default}; diff --git a/assets/space.html-1cf9b287.js b/assets/space.html-1cf9b287.js new file mode 100644 index 0000000000..cd1f6a9cf2 --- /dev/null +++ b/assets/space.html-1cf9b287.js @@ -0,0 +1,2118 @@ +import{_ as l,r as e,o as c,c as u,a as s,b as n,d as t,w as p,e as o}from"./app-3168cb19.js";const i="/bilibili-API-collect/assets/home-9af3d482.svg",d="/bilibili-API-collect/assets/video_up-3b7a0949.svg",k="/bilibili-API-collect/assets/channel-923e6c49.svg",b="/bilibili-API-collect/assets/class-c9216c98.svg",v="/bilibili-API-collect/assets/sub-c7668de6.svg",m={},q=o('

    用户空间相关

    主页

    置顶视频

    查询用户置顶视频

    https://api.bilibili.com/x/space/top/arc

    请求方式:GET

    粉丝在其主页上可见

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53016:没有置顶视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    ',14),h=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1),y=s("tr",null,[s("td",null,"aid"),s("td",null,"num"),s("td",null,"稿件avid"),s("td")],-1),g=s("tr",null,[s("td",null,"videos"),s("td",null,"num"),s("td",null,"视频分P总数"),s("td",null,"默认为1")],-1),_=s("tr",null,[s("td",null,"tid"),s("td",null,"num"),s("td",null,"分区tid"),s("td")],-1),f=s("tr",null,[s("td",null,"tname"),s("td",null,"str"),s("td",null,"子分区名称"),s("td")],-1),x=s("tr",null,[s("td",null,"copyright"),s("td",null,"num"),s("td",null,"是否转载"),s("td",null,[n("1:原创"),s("br"),n("2:转载")])],-1),j=s("tr",null,[s("td",null,"pic"),s("td",null,"str"),s("td",null,"视频封面图片url"),s("td")],-1),w=s("tr",null,[s("td",null,"title"),s("td",null,"str"),s("td",null,"稿件标题"),s("td")],-1),A=s("tr",null,[s("td",null,"pubdate"),s("td",null,"num"),s("td",null,"稿件发布时间"),s("td",null,"时间戳")],-1),E=s("tr",null,[s("td",null,"ctime"),s("td",null,"num"),s("td",null,"用户提交稿件的时间"),s("td",null,"时间戳")],-1),S=s("tr",null,[s("td",null,"desc"),s("td",null,"str"),s("td",null,"视频简介"),s("td")],-1),T=s("td",null,"state",-1),B=s("td",null,"num",-1),D=s("td",null,"视频状态",-1),F=s("code",null,"state",-1),G=s("td",null,"attribute",-1),C=s("td",null,"num",-1),P=s("td",null,"稿件属性位配置",-1),I=s("code",null,"attribute",-1),V=s("tr",null,[s("td",null,"duration"),s("td",null,"num"),s("td",null,"视频总计持续时长(所有分P)"),s("td",null,"单位为秒")],-1),z=s("td",null,"rights",-1),R=s("td",null,"obj",-1),O=s("td",null,"视频属性标志",-1),U=s("code",null,"rights",-1),L=s("td",null,"owner",-1),N=s("td",null,"obj",-1),W=s("td",null,"视频UP主信息",-1),K=s("code",null,"owner",-1),M=s("td",null,"stat",-1),Y=s("td",null,"obj",-1),X=s("td",null,"视频状态数",-1),J=s("code",null,"stat",-1),Z=s("tr",null,[s("td",null,"dynamic"),s("td",null,"str"),s("td",null,"视频同步发布的的动态的文字内容"),s("td",null,"无为空")],-1),H=s("tr",null,[s("td",null,"cid"),s("td",null,"num"),s("td",null,"视频1P cid"),s("td")],-1),Q=s("td",null,"dimension",-1),$=s("td",null,"obj",-1),ss=s("td",null,"视频1P分辨率",-1),ns=s("code",null,"dimension",-1),ts=s("tr",null,[s("td",null,"bvid"),s("td",null,"str"),s("td",null,"稿件bvid"),s("td")],-1),as=s("tr",null,[s("td",null,"reason"),s("td",null,"str"),s("td",null,"置顶视频备注"),s("td")],-1),ps=s("tr",null,[s("td",null,"inter_video"),s("td",null,"bool"),s("td",null,"是否为合作视频"),s("td",null,[n("false:否"),s("br"),n("true:是")])],-1),os=o(`

    示例:

    查询用户mid=23215368的置顶视频

    curl -G 'https://api.bilibili.com/x/space/top/arc' \\
    +--data-urlencode 'vmid=23215368'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    aidnum置顶目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr置顶目标稿件bvid必要(可选)avid与bvid任选一个
    reasonstr置顶视频备注非必要置顶备注最大40字符
    默认为空
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -304:未修改
    -400:请求错误
    53014:稿件已失效
    53015:备注过长
    53017:置顶非自己的稿件
    messagestr错误信息默认为0
    ttlnum1

    示例:

    置顶视频av98948772/BV1n741127LD

    avid方式:

    curl 'https://api.bilibili.com/x/space/top/arc/set' \\
    +--data-urlencode 'aid=98948772' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/space/top/arc/set' \\
    +--data-urlencode 'bvid=BV1n741127LD' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    取消置顶视频

    https://api.bilibili.com/x/space/top/arc/cancel

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误(重复取消)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/space/top/arc/cancel' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    代表作视频

    查询用户代表作视频列表

    https://api.bilibili.com/x/space/masterpiece

    请求方式:GET

    新访客在其主页上可见

    最多可以设置3个

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray代表作列表

    data数组:

    类型内容备注
    0obj代表作1无则为空
    1obj代表作2无则为空
    2obj代表作3无则为空
    最多设置3个

    data数组中的对象:

    查询用户置顶视频中的data对象

    示例:

    查询用户mid=23215368的代表作视频列表

    curl -G 'https://api.bilibili.com/x/space/masterpiece' \\
    +--data-urlencode 'vmid=23215368'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    aidnum置顶目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr置顶目标稿件bvid必要(可选)avid与bvid任选一个
    reasonstr代表作备注非必要置顶备注最大40字符
    默认为空
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53014:稿件已失效
    53015:备注过长
    53017:置顶非自己的稿件
    53019:达到上限
    53020:已经存在该稿件
    messagestr错误信息默认为0
    ttlnum1

    示例:

    添加视频av94916552/BV1ZE411K7ux到代表作列表

    avid方式:

    curl 'https://api.bilibili.com/x/space/masterpiece/add' \\
    +--data-urlencode 'aid=94916552' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/space/masterpiece/add' \\
    +--data-urlencode 'bvid=BV1ZE411K7ux' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除代表作视频

    https://api.bilibili.com/x/space/masterpiece/cancel

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum要删除的目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr要删除的目标稿件bvid必要(可选)avid与bvid任选一个
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53021:置顶列表中没有该视频
    messagestr错误信息默认为0
    ttlnum1作用尚不明确

    示例:

    删除置顶视频av59765630/BV1Yt41137T6

    avid方式:

    curl 'https://api.bilibili.com/x/space/masterpiece/cancel' \\
    +--data-urlencode 'aid=59765630' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray信息本体

    data数组:

    类型内容备注
    0obj套了个娃只有1项???

    data数组中的对象:

    字段类型内容备注
    midnum目标用户mid
    tagsarrayTAG名称

    data数组中的对象中的tags数组:

    类型内容备注
    0strTAG1
    nstrTAG(n+1)
    ……str……
    4strTAG5上限5条

    示例:

    查看用户mid=53456的个人TAG

    curl -G 'https://api.bilibili.com/x/space/acc/tags' \\
    +--data-urlencode 'mid=53456'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    tagsstrs要设置的TAG内容非必要删除公告留空或省去即可
    各TAG长度小于10字符
    最多5个TAG
    各TAG之间用","(%2C)分隔
    重复TAG无效
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误(超出长度限制)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    修改个人TAG为minecraft,技术宅,大佬,小哥哥,可爱

    curl 'https://api.bilibili.com/x/space/acc/tags/set' \\
    +--data-urlencode 'tags=minecraft,技术宅,大佬,小哥哥,可爱' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx;DedeUserID=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    空间公告

    查看用户空间公告

    https://api.bilibili.com/x/space/notice

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    datastr公告信息无则为空

    示例:

    查看用户mid=53456的空间公告

    curl -G 'https://api.bilibili.com/x/space/notice' \\
    +--data-urlencode 'mid=53456'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    noticestr要设置的公告内容非必要删除公告留空或省去即可
    少于150字符
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -304:未修改
    -400:请求错误(超出长度限制)
    messagestr错误信息默认为0
    ttlnum1作用尚不明确

    示例:

    修改个人空间公告为鸽子

    curl 'https://api.bilibili.com/x/space/notice/set' \\
    +--data-urlencode 'notice=鸽子' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    主页板块布局与权限

    查询空间设置

    http://space.bilibili.com/ajax/settings/getSettings

    请求方式:GET

    注:带有转义

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool用户是否存在true:存在
    false:不存在
    data用户存在时:obj
    用户不存在时:str
    用户存在时:信息本体
    用户不存在时:错误信息

    data对象:

    字段类型内容备注
    privacyobj空间隐私权限
    index_orderarray空间板块布局
    themestrdefault主题?作用尚不明确
    theme_preview_img_pathstr主题预览图路径?作用尚不明确
    toutuobj空间头图

    privacy对象:

    字段类型内容备注
    banguminum追番及追剧0:隐藏
    1:公开
    下同
    bbqnum轻视频
    channelnum频道
    coins_videonum最近投币的视频
    comicnum追漫
    dress_upnum装扮
    fav_videonum收藏夹
    groupsnum圈子?作用尚不明确
    likes_videonum最近点赞的视频
    played_gamenum最近玩过的游戏
    tagsnum订阅标签
    user_infonum个人资料

    index_order数组:

    类型内容备注
    0obj板块1根据板块布局顺序排序
    先左侧布局后右侧布局
    nobj板块(n+1)
    ……obj…………

    index_order数组内对象:

    字段类型内容备注
    idnum板块编号
    namestr板块名称

    toutu对象:

    字段类型内容备注
    sidnum空间头图ID
    expirenum到期时间?时间戳?
    作用尚不明确
    s_imgstr空间头图小图相对路径完整url为http://i0.hdslb.com/+相对路径
    l_imgstr空间头图相对路径同上
    android_imgstr注:手机端头图与web端不同,需要用另一个api获取
    iphone_imgstr
    ipad_imgstr
    thumbnail_imgstr缩略图
    platformnum0作用尚不明确

    示例:

    查看mid=2的空间设置

    curl -G 'http://space.bilibili.com/ajax/settings/getSettings' \\
    +--data-urlencode 'mid=2'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +

    查询可用头图列表 (Web端)

    https://space.bilibili.com/ajax/topphoto/getlist

    请求方式: GET

    注: 带有转义

    URL参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要非负数, 即使该用户并不存在

    JSON回复:

    根对象:

    字段类型内容备注
    statusbool成功: true
    失败: false
    data成功: array
    失败: str
    成功: 信息本体
    失败: "用户id错误"

    data数组中的对象:

    字段类型内容备注
    idnum空间头图 ID
    product_namestr显示名称
    pricenum价格
    coin_typenum支付类型?
    vip_freenum大会员免费
    s_imgstr小图 URI需要自行与 i0.hdslb.com 拼接成 URL
    l_imgstr大图 URI同 s_img
    thumbnail_imgstr并不存在的缩略图?
    sort_numnum排序编号
    is_disablenum已禁用0: 未禁用
    expirenum过期时间?UNIX 时间戳, 或 0 为永不过期
    hadnum是否拥有?当 expire 不为 0 时 为 1, 否则为 0

    示例:

    查询mid=1145141919810000000的可用空间头图

    curl -G "https://space.bilibili.com/ajax/topphoto/getlist" \\
    +--data-urlencode "mid=1145141919810000000"
    +
    查看响应示例:
    {
    +  "status": true,
    +  "data": [
    +    {
    +      "id": 1,
    +      "product_name": "bilibili春",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png",
    +      "l_img": "bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png",
    +      "thumbnail_img": "",
    +      "sort_num": 19,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 2,
    +      "product_name": "两人单车",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/d60a4be11f1bca6168a60a53c64bca18eddd6443.jpg",
    +      "l_img": "bfs/space/44873d3568bdcb3d850d234e02a19602972450f1.png",
    +      "thumbnail_img": "",
    +      "sort_num": 16,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 5,
    +      "product_name": "成为偶像",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/5fe2632486a5a91a234f0e7cb368ab6397477da4.jpg",
    +      "l_img": "bfs/space/87277d30cd19edcec9db466a9a3e556aeb0bc0ed.png",
    +      "thumbnail_img": "",
    +      "sort_num": 15,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 11,
    +      "product_name": "星际勘探",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/6849abc6e67000ad807b35a970aba31dd1e400dd.jpg",
    +      "l_img": "bfs/space/c919a9818172a8297f8b0597722f96504a1e1d88.png",
    +      "thumbnail_img": "",
    +      "sort_num": 14,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 10,
    +      "product_name": "星O大战",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/ff3b0882e55c1099738e59616e5956ad357d9948.jpg",
    +      "l_img": "bfs/space/e22f5b8e06ea3ee4de9e4da702ce8ef9a2958f5a.png",
    +      "thumbnail_img": "",
    +      "sort_num": 13,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 12,
    +      "product_name": "王牌特工",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/f5d38e2af44fd12fa65423aff55933fcf9071419.jpg",
    +      "l_img": "bfs/space/8cd85a382756ab938df23a856017abccd187188e.png",
    +      "thumbnail_img": "",
    +      "sort_num": 12,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 3,
    +      "product_name": "仰望星空",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/c9dae917e24b4fc17c4d544caf6b6c0b17f8692b.jpg",
    +      "l_img": "bfs/space/9ccc0447aebf0656809b339b41aa5b3705f27c47.png",
    +      "thumbnail_img": "",
    +      "sort_num": 11,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 14,
    +      "product_name": "雨过天晴",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/1115b2fdabd128337f892feada4ce32e51f3a5ad.jpg",
    +      "l_img": "bfs/space/6a1198e25f8764bd30d53411dac9fdf840bc3265.png",
    +      "thumbnail_img": "",
    +      "sort_num": 10,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 6,
    +      "product_name": "绿荫秘境",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/dc02d22a718c1c436f1a355b3cd726b04098ef7d.jpg",
    +      "l_img": "bfs/space/265ecddc52d74e624dc38cf0cff13317085aedf7.png",
    +      "thumbnail_img": "",
    +      "sort_num": 9,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 13,
    +      "product_name": "漫游仙境",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/184abe52a5ea9390b506c064cfba4f8f20ae9cca.jpg",
    +      "l_img": "bfs/space/24d0815514951bb108fbb360b04a969441079315.png",
    +      "thumbnail_img": "",
    +      "sort_num": 7,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 15,
    +      "product_name": "放课后time",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/aea2dd7b8894ce31d578d4fad6a7188c7b49cb2f.jpg",
    +      "l_img": "bfs/space/6e799ff2de2de55d27796707a283068d66cdf3f4.png",
    +      "thumbnail_img": "",
    +      "sort_num": 6,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 4,
    +      "product_name": "昴宿星团",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/1f4eaf70d1bb981f6057b3e440249d7a1f65774f.jpg",
    +      "l_img": "bfs/space/3ab888c1d149e864ab44802dea8c1443e940fa0d.png",
    +      "thumbnail_img": "",
    +      "sort_num": 5,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 7,
    +      "product_name": "蔷薇洛丽塔",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/718eac8c71e29b8a80431c46110805c3a40e30a6.jpg",
    +      "l_img": "bfs/space/70ce28bcbcb4b7d0b4f644b6f082d63a702653c1.png",
    +      "thumbnail_img": "",
    +      "sort_num": 4,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 9,
    +      "product_name": "黑暗之门",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/ef1b08e62fdc35b06e39795bc6de8e510935bf97.jpg",
    +      "l_img": "bfs/space/cd52d4ac1d336c940cc4958120170f7928d9e606.png",
    +      "thumbnail_img": "",
    +      "sort_num": 3,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 19,
    +      "product_name": "你的名字",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/373e127e8784d3e4c1b5e6db0c27702ba077643f.jpg",
    +      "l_img": "bfs/space/f49642b3683a08e3190f29d5a095386451f8952c.jpg",
    +      "thumbnail_img": "",
    +      "sort_num": 2,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    }
    +  ]
    +}
    +

    设置空间头图 (Web端)

    https://space.bilibili.com/ajax/settings/setToutu

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    鉴权方式: referer为 .bilibili.com 域名下

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    idnum头图 ID必要
    csrfstrCSRF Token (即 Cookie bili_jct 值)不必要

    JSON回复:

    字段类型内容备注
    statusbool状态true: 成功
    false: 失败
    datastr错误信息正确时无此项 (带有转义)

    示例:

    设置空间头图为为王牌特工(id=12)

    curl -X POST "https://space.bilibili.com/ajax/settings/setToutu" \\
    +--referer "https://space.bilibili.com/" \\
    +--data-urlencode "id=12" \\
    +--data-urlencode "csrf=xxx" \\
    +-b "SESSDATA=xxx; bili_jct=xxx"
    +
    查看响应示例:
    {
    +  "status": true
    +}
    +

    调整空间板块布局

    http://space.bilibili.com/ajax/settings/setIndexOrder

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserIDDedeUserID__ckMd5存在且不为0,referer为 .bilibili.com域名下

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    index_ordernums布局列表必要每个值之间用","(%2C)分隔
    先左侧布局再右侧布局
    值的意义见下表
    csrfstrCSRF Token(位于cookie)必要

    布局参数index_order

    含义
    1(左侧)我的稿件
    2(左侧)我的收藏夹
    3(左侧)订阅番剧
    4(左侧)订阅标签
    5(左侧)最近投币的视频
    6(左侧)我的圈子 (此板块被隐藏)
    7(左侧)我的频道
    8(左侧)我的专栏
    9(左侧)我的相簿
    21(右侧)公告
    22(右侧)直播间
    23(右侧)个人资料
    24(右侧)官方活动
    25(右侧)最近玩的游戏

    json回复:

    根对象:

    字段类型内容备注
    statusbool操作结果true:操作成功
    false:操作失败
    datastr错误信息正确时无此项

    示例:

    调整空间布局为:

    我的稿件            直播间
    +我的专栏            个人资料
    +订阅番剧            公告
    +我的收藏夹          官方活动
    +我的相簿            最近玩的游戏
    +最近投币的视频  
    +订阅标签  
    +我的频道
    +
    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'
    +
    查看响应示例:
    {
    +    "status": true
    +}
    +

    修改空间隐私权限

    http://space.bilibili.com/ajax/settings/setPrivacy

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserIDDedeUserID__ckMd5存在且不为0,referer为 .bilibili.com域名下

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    fav_videonum收藏视频非必要0:隐藏
    1:公开
    下同
    banguminum追番及追剧非必要
    tagsnum关注的TAG非必要
    coins_videonum投币的视频非必要
    user_infonum个人信息非必要
    played_gamenum玩过的游戏非必要
    csrfnstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool操作结果true:操作成功
    false:操作失败
    datastr错误信息正确时无此项

    示例:

    设置关注的TAG为隐藏

    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'
    +
    查看响应示例:
    {
    +    "status": true
    +}
    +

    查询用户最近访问内容

    查询用户最近玩过的游戏

    https://api.bilibili.com/x/space/lastplaygame

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:array
    信息本体

    data数组:

    类型内容备注
    0obj游戏1
    nobj游戏(n+1)项数为总计游戏数
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    websitestr游戏主页 url
    imagestr游戏图标 url
    namestr游戏名

    示例:

    查询mid=2的最近玩过的游戏

    curl -G 'https://api.bilibili.com/x/space/lastplaygame' \\
    +	--data-urlencode 'mid=2'
    +
    查看响应示例:
    {
    +    "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": "明日方舟"
    +        }
    +    ]
    +}
    +

    查询用户最近玩过的游戏V2

    https://api.bilibili.com/x/space/lastplaygame/v2

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:obj
    信息本体

    data对象:

    字段类型内容备注
    page_numnum当前页码
    page_sizenum每页项数
    total_countnum游戏总数
    listarray游戏列表

    list数组:

    类型内容备注
    0obj游戏1
    nobj游戏(n+1)项数为总计游戏数
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    game_base_idnum游戏 idbiligame 的游戏 id
    game_namestr游戏名
    game_iconstr游戏图标 url
    gradenum游戏评分8.26.8
    detail_urlstr游戏主页 url
    game_tagsarray游戏标签
    noticestr游戏简介文案
    gift_titlestr游戏礼物文案
    game_status_v2num(?)

    game_tags数组:

    类型内容备注
    0obj游戏标签1角色扮演音乐节奏休闲
    nobj游戏标签(n+1)
    ……obj…………

    示例:

    查询mid=2的最近玩过的游戏

    curl -G 'https://api.bilibili.com/x/space/lastplaygame/v2' \\
    +	--data-urlencode 'mid=2'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "page_num": 0,
    +    "page_size": 15,
    +    "total_count": 8,
    +    "list": [
    +      {
    +        "game_base_id": 102567,
    +        "game_name": "坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/fc2f4fd3a347eeb9b8b6ab59d961269bdd05d4e0.png",
    +        "grade": 8.2,
    +        "detail_url": "https://www.biligame.com/detail/?id=102567",
    +        "game_tags": [
    +          "角色扮演",
    +          "像素风"
    +        ],
    +        "notice": "像素风欢脱冒险RPG",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 101661,
    +        "game_name": "光·遇",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/9a1be39915f057597f9328afe503a2bbd0de7754.png",
    +        "grade": 6.8,
    +        "detail_url": "https://www.biligame.com/detail/?id=101661",
    +        "game_tags": [
    +          "休闲",
    +          "治愈",
    +          "唯美"
    +        ],
    +        "notice": "九色鹿季开启,探索本真之旅",
    +        "gift_title": "光·遇九色鹿季回归礼包",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 103496,
    +        "game_name": "原神",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/2b29383536b3d1a2517bfcb73767f78c242f0458.png",
    +        "grade": 6.5,
    +        "detail_url": "https://www.biligame.com/detail/?id=103496",
    +        "game_tags": [
    +          "角色扮演",
    +          "二次元",
    +          "冒险"
    +        ],
    +        "notice": "跨越尘世的探索之旅",
    +        "gift_title": "bilibili-原神4.4版本独家礼包",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 49,
    +        "game_name": "命运-冠位指定(Fate/GO)",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/ca5d8d4b3a042beddf7cabca20ae0c946527d1bf.png",
    +        "grade": 6,
    +        "detail_url": "https://www.biligame.com/detail/?id=49",
    +        "game_tags": [
    +          "卡牌",
    +          "fate",
    +          "厨向"
    +        ],
    +        "notice": "第2部现已开启!",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 102216,
    +        "game_name": "公主连结Re:Dive",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/3bb819e010fe6d594d8f4d417ee380f40e8b5b06.png",
    +        "grade": 8.4,
    +        "detail_url": "https://www.biligame.com/detail/?id=102216",
    +        "game_tags": [
    +          "角色扮演"
    +        ],
    +        "notice": "新角色「璃乃(圣诞节)」登场!",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 168,
    +        "game_name": "BanG Dream!",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/d196365d9f112a5adede7eedea1e4154e98c5e53.png",
    +        "grade": 9.2,
    +        "detail_url": "https://www.biligame.com/detail/?id=168",
    +        "game_tags": [
    +          "音乐节奏",
    +          "BanG Dream"
    +        ],
    +        "notice": "「迎风展翅的我们」活动开启!",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 101772,
    +        "game_name": "明日方舟",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/faa556b00d29fffc88281c1ee038b1b7f23aa5c2.jpg",
    +        "grade": 7.4,
    +        "detail_url": "https://www.biligame.com/detail/?id=101772",
    +        "game_tags": [
    +          "策略",
    +          "架空文明",
    +          "末世"
    +        ],
    +        "notice": "2023感谢庆典正式开启",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 97,
    +        "game_name": "碧蓝航线",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +        "grade": 8.7,
    +        "detail_url": "https://www.biligame.com/detail/?id=97",
    +        "game_tags": [
    +          "养成"
    +        ],
    +        "notice": "指挥官,欢迎回港",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      }
    +    ]
    +  }
    +}
    +

    查询用户最近投币视频(Web)

    https://api.bilibili.com/x/space/coin/video

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:array
    信息本体

    data数组:

    类型内容备注
    0obj投币视频1
    nobj投币视频(n+1)
    ……obj……

    data数组中的对象:

    `,281),es=s("code",null,"data",-1),rs=o(`

    示例:

    查看用户mid=15858903的最近投币视频

    curl -G 'http://space.bilibili.com/x/space/coin/video' \\
    +	--data-urlencode 'vmid=15858903' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": [
    +        {
    +            "aid": 669644066,
    +            "videos": 1,
    +            "tid": 75,
    +            "tname": "动物圈",
    +            "copyright": 2,
    +            "pic": "http://i1.hdslb.com/bfs/archive/0f73a68b8f449cc72e9ef109685bd295dc0c0c9d.jpg",
    +            "title": "在人类幼崽身上用尽了温柔",
    +            "pubdate": 1600608261,
    +            "ctime": 1600608261,
    +            "desc": "https://weibo.com/tv/show/1034:4551253766897703?from=old_pc_videoshow",
    +            "state": 0,
    +            "attribute": 16384,
    +            "duration": 29,
    +            "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": 258457966,
    +                "name": "卧龙寺",
    +                "face": "http://i2.hdslb.com/bfs/face/f868d1f522733fdcf72a6267e0237157dd0e9948.jpg"
    +            },
    +            "stat": {
    +                "aid": 669644066,
    +                "view": 3412898,
    +                "danmaku": 719,
    +                "reply": 1481,
    +                "favorite": 21909,
    +                "coin": 2864,
    +                "share": 13702,
    +                "now_rank": 0,
    +                "his_rank": 0,
    +                "like": 86970,
    +                "dislike": 0
    +            },
    +            "dynamic": "",
    +            "cid": 237319289,
    +            "dimension": {
    +                "width": 576,
    +                "height": 1024,
    +                "rotate": 0
    +            },
    +            "bvid": "BV1sa4y1j7jk",
    +            "coins": 1,
    +            "time": 1601802763,
    +            "ip": "",
    +            "inter_video": false
    +        },
    +        {
    +            "aid": 202267998,
    +            "videos": 1,
    +            "tid": 138,
    +            "tname": "搞笑",
    +            "copyright": 1,
    +            "pic": "http://i0.hdslb.com/bfs/archive/ca7746f2207114513f1a421d7f744523275ee679.jpg",
    +            "title": "充  电  器  の  痛",
    +            "pubdate": 1601750952,
    +            "ctime": 1601750952,
    +            "desc": "这个简介吓到我了!",
    +            "state": 0,
    +            "attribute": 16512,
    +            "duration": 50,
    +            "mission_id": 14725,
    +            "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": 129922746,
    +                "name": "-白糖洒一地-",
    +                "face": "http://i0.hdslb.com/bfs/face/1f581f3b20a380c2fd13ecb8bbe409f8b49c6418.jpg"
    +            },
    +            "stat": {
    +                "aid": 202267998,
    +                "view": 109,
    +                "danmaku": 2,
    +                "reply": 11,
    +                "favorite": 5,
    +                "coin": 9,
    +                "share": 0,
    +                "now_rank": 0,
    +                "his_rank": 0,
    +                "like": 20,
    +                "dislike": 0
    +            },
    +            "dynamic": "",
    +            "cid": 241861687,
    +            "dimension": {
    +                "width": 1920,
    +                "height": 1080,
    +                "rotate": 0
    +            },
    +            "bvid": "BV1oh411X7iA",
    +            "coins": 2,
    +            "time": 1601773750,
    +            "ip": "",
    +            "inter_video": false
    +        },
    +        {
    +            "aid": 839722373,
    +            "videos": 1,
    +            "tid": 208,
    +            "tname": "校园学习",
    +            "copyright": 1,
    +            "pic": "http://i2.hdslb.com/bfs/archive/11ed53241ceab314c919adba9f85582d24d9313c.jpg",
    +            "title": "“白piáo”用日语到底怎么说?油管人气日语老师来教你!",
    +            "pubdate": 1601026026,
    +            "ctime": 1601026026,
    +            "desc": "志方老师的B站用语日语课又来了~\\n欢迎大家来看哦,\\n如果喜欢我们的作品的话,欢迎大家用2~3连+转发来支持我们~\\n如果拒绝的话,也可以用日语在评论和弹幕里刷上一波~即可以锻炼日语又可以拒绝我们,岂不美哉~~",
    +            "state": 0,
    +            "attribute": 16768,
    +            "duration": 310,
    +            "mission_id": 14655,
    +            "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": 677926489,
    +                "name": "日语志方老师",
    +                "face": "http://i2.hdslb.com/bfs/face/d465e5cd42e3523a52b3bef38dce7b23627b7723.jpg"
    +            },
    +            "stat": {
    +                "aid": 839722373,
    +                "view": 130688,
    +                "danmaku": 1320,
    +                "reply": 799,
    +                "favorite": 3722,
    +                "coin": 5883,
    +                "share": 339,
    +                "now_rank": 0,
    +                "his_rank": 0,
    +                "like": 17585,
    +                "dislike": 0
    +            },
    +            "dynamic": "志方老师的B站用语日语课又来了~\\n欢迎大家来看哦,\\n如果喜欢我们的作品的话,欢迎大家用2~3连+转发来支持我们~\\n如果拒绝的话,也可以用日语在评论和弹幕里刷上一波~即可以锻炼日语又可以拒绝我们,岂不美哉~~",
    +            "cid": 238876133,
    +            "dimension": {
    +                "width": 1920,
    +                "height": 1080,
    +                "rotate": 0
    +            },
    +            "bvid": "BV1n54y117kq",
    +            "coins": 2,
    +            "time": 1601036198,
    +            "ip": "",
    +            "inter_video": false
    +        }
    +    ]
    +}
    +

    查询用户最近投币视频(APP)

    https://app.bilibili.com/x/v2/space/coinarc

    请求方式:GET

    认证方式:APP

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    vmidnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum投币的视频数
    itemarray投币视频列表

    item数组:

    类型内容备注
    0obj投币的视频信息1
    nobj投币的视频信息(n+1)
    ……obj……

    item数组中的对象:

    字段类型内容备注
    titlestr稿件标题
    subtitlestr
    tnamestr
    coverstr封面图片 url
    cover_iconstr
    uristrAPP 跳转 uribilibili://video/2
    paramstr稿件 avid
    gotostrav
    lengthnum
    durationnum稿件视频长度单位为秒
    is_popularbool(?)
    is_steinsbool(?)
    is_ugcpaybool(?)
    is_cooperationstr(?)
    is_pgcstr(?)
    is_live_playbackstr(?)
    is_pugvstr(?)
    is_foldnum(?)
    playnum播放量
    danmakunum弹幕量
    ctimenum发布时间时间戳
    ugc_paynum0
    authorstrUP主昵称
    statebooltrue
    videosnum0
    view_contentstr稿件播放量文案
    icon_typenum0
    publish_time_textstr

    示例:

    用户mid=2的投币列表

    curl -G 'https://app.bilibili.com/x/v2/space/coinarc' \\
    +	--data-urlencode 'appkey=1d8b6e7d45233436' \\
    +	--data-urlencode 'access_key=xxx' \\
    +	--data-urlencode 'vmid=2' \\
    +	--data-urlencode 'ps=2' \\
    +	--data-urlencode 'pn=1' \\
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "count": 2,
    +        "item": [
    +            {
    +                "title": "请打开麦克风交流",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i1.hdslb.com/bfs/archive/cf9aea43b72354ee8c9486e4bf8e07cb38920a65.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/496832459?player_width=1080\\u0026player_height=1920\\u0026player_rotate=0",
    +                "param": "496832459",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 134,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 706480,
    +                "danmaku": 167,
    +                "ctime": 1706431476,
    +                "ugc_pay": 0,
    +                "author": "三个猪鼓励",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "70.6万",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            },
    +            {
    +                "title": "【裏命】地球的内部【いよわ】【中文CC字幕】",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i0.hdslb.com/bfs/archive/e087224ae4a5ff9ef3f2f6b7644d635276b8f5c6.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/860645391?player_width=1920\\u0026player_height=1080\\u0026player_rotate=0",
    +                "param": "860645391",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 264,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 194375,
    +                "danmaku": 173,
    +                "ctime": 1669713070,
    +                "ugc_pay": 0,
    +                "author": "精神安定剤",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "19.4万",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            }
    +        ]
    +    }
    +}
    +

    查询用户最近点赞视频(Web)

    https://api.bilibili.com/x/space/like/video

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:array
    信息本体

    data数组:

    类型内容备注
    0obj点赞视频1
    nobj点赞视频(n+1)
    ……obj……

    data数组中的对象:

    `,37),ls=s("code",null,"data",-1),cs=o(`

    示例:

    查看用户mid=15858903的最近点赞视频

    curl -G 'http://space.bilibili.com/x/space/like/video' \\
    +	--data-urlencode 'vmid=15858903' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "aid": 1700085880,
    +                "videos": 1,
    +                "tid": 21,
    +                "tname": "日常",
    +                "copyright": 1,
    +                "pic": "http://i0.hdslb.com/bfs/archive/7fad4ca408c66eb7ea72188f56bcf952306d5807.jpg",
    +                "title": "你是从什么时候,意识到自己缺爱的呢?",
    +                "pubdate": 1706706000,
    +                "ctime": 1706602115,
    +                "desc": "关于个人情感问题,私信发“2024”我来帮你~",
    +                "state": 0,
    +                "duration": 91,
    +                "mission_id": 4009559,
    +                "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": 2104592226,
    +                    "name": "鲸落艳红尘",
    +                    "face": "https://i0.hdslb.com/bfs/face/80160fbcf71958e6f5ad3a4fdfa39a55cc0699a5.jpg"
    +                },
    +                "stat": {
    +                    "aid": 1700085880,
    +                    "view": 930,
    +                    "danmaku": 1,
    +                    "reply": 5,
    +                    "favorite": 18,
    +                    "coin": 0,
    +                    "share": 4,
    +                    "now_rank": 0,
    +                    "his_rank": 0,
    +                    "like": 27,
    +                    "dislike": 0,
    +                    "vt": 0,
    +                    "vv": 930
    +                },
    +                "dynamic": "",
    +                "cid": 1424231007,
    +                "dimension": {
    +                    "width": 1920,
    +                    "height": 1080,
    +                    "rotate": 0
    +                },
    +                "short_link_v2": "https://b23.tv/BV1XK421y7ZL",
    +                "first_frame": "http://i2.hdslb.com/bfs/storyff/n240130sa1k9birz4lwlsm21ya1w3p2c_firsti.jpg",
    +                "pub_location": "湖北",
    +                "bvid": "BV1XK421y7ZL",
    +                "inter_video": false,
    +                "resource_type": "ugc",
    +                "subtitle": "",
    +                "enable_vt": 0
    +            },
    +            {
    +                "aid": 836926413,
    +                "videos": 1,
    +                "tid": 21,
    +                "tname": "日常",
    +                "copyright": 1,
    +                "pic": "http://i2.hdslb.com/bfs/archive/dceaf79d1cc4f74ab8cd862f454a8ec4b4a44343.jpg",
    +                "title": "内心的创伤,是建立深度亲密关系的桥梁!",
    +                "pubdate": 1706594400,
    +                "ctime": 1706515438,
    +                "desc": "关于个人情感问题,私信发“2024”我来帮你~",
    +                "state": 0,
    +                "duration": 297,
    +                "mission_id": 4009559,
    +                "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": 2104592226,
    +                    "name": "鲸落艳红尘",
    +                    "face": "https://i0.hdslb.com/bfs/face/80160fbcf71958e6f5ad3a4fdfa39a55cc0699a5.jpg"
    +                },
    +                "stat": {
    +                    "aid": 836926413,
    +                    "view": 1903,
    +                    "danmaku": 0,
    +                    "reply": 7,
    +                    "favorite": 142,
    +                    "coin": 34,
    +                    "share": 30,
    +                    "now_rank": 0,
    +                    "his_rank": 0,
    +                    "like": 118,
    +                    "dislike": 0,
    +                    "vt": 0,
    +                    "vv": 1903
    +                },
    +                "dynamic": "",
    +                "cid": 1423127570,
    +                "dimension": {
    +                    "width": 1920,
    +                    "height": 1080,
    +                    "rotate": 0
    +                },
    +                "short_link_v2": "https://b23.tv/BV1xg4y1e7kY",
    +                "first_frame": "http://i0.hdslb.com/bfs/storyff/n240129qn55at7dr1775k12hp34tw284_firsti.jpg",
    +                "pub_location": "湖北",
    +                "bvid": "BV1xg4y1e7kY",
    +                "inter_video": false,
    +                "resource_type": "ugc",
    +                "subtitle": "",
    +                "enable_vt": 0
    +            },
    +            ……
    +        ]
    +    }
    +}
    +

    查询用户最近点赞视频(APP)

    https://app.bilibili.com/x/v2/space/likearc

    请求方式:GET

    认证方式:APP

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    vmidnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum点赞的视频数
    itemarray点赞视频列表

    item数组:

    类型内容备注
    0obj点赞的视频信息1
    nobj点赞的视频信息(n+1)
    ……obj……

    item数组中的对象:

    字段类型内容备注
    titlestr稿件标题
    subtitlestr
    tnamestr
    coverstr封面图片 url
    cover_iconstr
    uristrAPP 跳转 uribilibili://video/2
    paramstr稿件 avid
    gotostrav
    lengthnum
    durationnum稿件视频长度单位为秒
    is_popularbool(?)
    is_steinsbool(?)
    is_ugcpaybool(?)
    is_cooperationstr(?)
    is_pgcstr(?)
    is_live_playbackstr(?)
    is_pugvstr(?)
    is_foldnum(?)
    playnum播放量
    danmakunum弹幕量
    ctimenum发布时间时间戳
    ugc_paynum0
    authorstrUP主昵称
    statebooltrue
    videosnum0
    view_contentstr稿件播放量文案
    icon_typenum0
    publish_time_textstr

    示例:

    用户mid=2的点赞列表

    curl -G 'https://app.bilibili.com/x/v2/space/likearc' \\
    +	--data-urlencode 'appkey=1d8b6e7d45233436' \\
    +	--data-urlencode 'access_key=xxx' \\
    +	--data-urlencode 'vmid=2' \\
    +	--data-urlencode 'ps=2' \\
    +	--data-urlencode 'pn=1' \\
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "count": 2,
    +        "item": [
    +            {
    +                "title": "兄弟难舍也难分",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i1.hdslb.com/bfs/archive/58f031a52eab6d5faec5a39dfaab5728f65672d5.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/624351941?player_width=1080\\u0026player_height=1920\\u0026player_rotate=0",
    +                "param": "624351941",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 216,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 423652,
    +                "danmaku": 362,
    +                "ctime": 1706320200,
    +                "ugc_pay": 0,
    +                "author": "甜蜜老张",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "42.4万",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            },
    +            {
    +                "title": "技能搭配不累,共赴热血团战!",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i2.hdslb.com/bfs/archive/2094b8e0be819222d320e2841ee1c39f5f2e4357.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/793597196?player_width=1280\\u0026player_height=720\\u0026player_rotate=0",
    +                "param": "793597196",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 41,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 1237,
    +                "danmaku": 2,
    +                "ctime": 1704855559,
    +                "ugc_pay": 0,
    +                "author": "38047aa1-cb8a-4",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "1237",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            }
    +        ]
    +    }
    +}
    +

    投稿

    查询用户投稿视频明细

    https://api.bilibili.com/x/space/wbi/arc/search

    https://api.bilibili.com/x/space/arc/search (已废弃,保留是方便遇到问题的人搜索到此处)

    请求方式:GET

    ',30),us=o(`

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    orderstr排序方式非必要默认为pubdate
    最新发布:pubdate
    最多播放:click
    最多收藏:stow
    tidnum筛选目标分区非必要默认为0
    0:不进行分区筛选
    分区tid为所筛选的分区
    keywordstr关键词筛选非必要用于使用关键词搜索该UP主视频稿件
    pnnum页码非必要默认为 1
    psnum每页项数非必要默认为 30

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj列表信息
    pageobj页面信息
    episodic_buttonobj“播放全部“按钮
    is_riskbool
    gaia_res_typenum
    gaia_dataobj

    data中的list对象:

    字段类型内容备注
    tlistobj投稿视频分区索引
    vlistarray投稿视频列表

    list中的tlist对象:

    字段类型内容备注
    {tid}obj该分区的详情字段名为存在的分区tid
    ……obj……向下扩展

    tlist中的{tid}对象:

    字段类型内容备注
    countnum投稿至该分区的视频数
    namestr该分区名称
    tidnum该分区tid

    list中的vlist数组:

    类型内容备注
    0obj投稿视频1
    nobj投稿视频(n+1)
    ……obj…………

    list中的vlist数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    attributenum
    authorstr视频UP主不一定为目标用户(合作视频)
    bvidstr稿件bvid
    commentnum视频评论数
    copyrightstr视频版权类型
    creatednum投稿时间时间戳
    descriptionstr视频简介
    enable_vtnum
    hide_clickboolfalse作用尚不明确
    is_paynum0作用尚不明确
    is_union_videonum是否为合作视频0:否
    1:是
    lengthstr视频长度MM:SS
    midnum视频UP主mid不一定为目标用户(合作视频)
    metaobj无数据时为 null
    picstr视频封面
    playnum视频播放次数
    reviewnum0作用尚不明确
    subtitlestr作用尚不明确
    titlestr视频标题
    typeidnum视频分区tid
    video_reviewnum视频弹幕数

    data中的page对象:

    字段类型内容备注
    countnum总计稿件数
    pnnum当前页码
    psnum每页项数

    data中的episodic_button对象:

    字段类型内容备注
    textstr按钮文字
    uristr全部播放页url

    示例:

    pn(页码)和ps(每页项数)只改变vlist中成员的多少与内容

    以每页2项查询用户mid=53456的第1页投稿视频明细

    curl -G 'https://api.bilibili.com/x/space/arc/search' \\
    +--data-urlencode 'mid=53456' \\
    +--data-urlencode 'ps=2' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": {
    +            "tlist": {
    +                "1": {
    +                    "tid": 1,
    +                    "count": 26,
    +                    "name": "动画"
    +                },
    +                "160": {
    +                    "tid": 160,
    +                    "count": 42,
    +                    "name": "生活"
    +                },
    +                "211": {
    +                    "tid": 211,
    +                    "count": 3,
    +                    "name": "美食"
    +                },
    +                "3": {
    +                    "tid": 3,
    +                    "count": 33,
    +                    "name": "音乐"
    +                },
    +                "4": {
    +                    "tid": 4,
    +                    "count": 72,
    +                    "name": "游戏"
    +                }
    +            },
    +            "vlist": [
    +                {
    +                    "comment": 3558,
    +                    "typeid": 47,
    +                    "play": 1275661,
    +                    "pic": "//i2.hdslb.com/bfs/archive/90157806a34646ac2d4c6af3e8b6156cb3460d14.jpg",
    +                    "subtitle": "",
    +                    "description": "第一期:BV1ak4y1B7aG\\n第二期:BV1eA411Y7FN\\n脚本/绘画/配音/动画/片尾曲:warma\\n第三期终于做完啦!这是一个以我平时发呆的时候想到的一些灵感组成的冷笑话合集,名字叫《沃玛的生活》,可以当作日常搞笑单元小动画来看。\\n如果你喜欢这个系列的话请点赞投币收藏一键三连给我一些继续制作的动力吧,我真的非常非常需要更多的动力!\\n祝看得开心~\\n我的微博:@_warma_",
    +                    "copyright": "",
    +                    "title": "【warma】沃玛的新番更新!从现在开始放飞自我【沃玛的生活/第三期】",
    +                    "review": 0,
    +                    "author": "Warma",
    +                    "mid": 53456,
    +                    "created": 1605844817,
    +                    "length": "05:16",
    +                    "video_review": 7470,
    +                    "aid": 585275804,
    +                    "bvid": "BV1sz4y1y7KJ",
    +                    "hide_click": false,
    +                    "is_pay": 0,
    +                    "is_union_video": 0,
    +                    "is_steins_gate": 0
    +                },
    +                {
    +                    "comment": 2979,
    +                    "typeid": 21,
    +                    "play": 840676,
    +                    "pic": "//i2.hdslb.com/bfs/archive/b43f88c6ebae8fdc7dfb663f6f6f2931b924c763.jpg",
    +                    "subtitle": "",
    +                    "description": "前一阵子过生日,大家的礼物经过几番转寄终于收到了~于是录了这期礼物开箱视频。\\n现在也在感慨,大家的礼物真的都太强了,居然这些全都是手工做的,真的好厉害!\\n这些手工礼物背后得花多少时间和心力啊……这些对我来说都是无价的礼物,制作礼物的大家真的有心了,谢谢!!\\n收到这些礼物真的很开心,视频的封面也是在这样激动的情况下画出来的,祝你看得开心~\\n我的微博:@_warma_",
    +                    "copyright": "",
    +                    "title": "【warma】来开箱!大家寄来的生日礼物",
    +                    "review": 0,
    +                    "author": "Warma",
    +                    "mid": 53456,
    +                    "created": 1604635221,
    +                    "length": "24:28",
    +                    "video_review": 10476,
    +                    "aid": 287744380,
    +                    "bvid": "BV1xf4y1q7XN",
    +                    "hide_click": false,
    +                    "is_pay": 0,
    +                    "is_union_video": 0,
    +                    "is_steins_gate": 0
    +                }
    +            ]
    +        },
    +        "page": {
    +            "pn": 1,
    +            "ps": 2,
    +            "count": 176
    +        },
    +        "episodic_button": {
    +            "text": "播放全部",
    +            "uri": "//www.bilibili.com/medialist/play/53456?from=space"
    +        }
    +    }
    +}
    +

    查询用户投稿相簿预览

    相簿功能已下线, 以下接口失效, 参见 #801

    https://api.bilibili.com/x/space/album/index

    请求方式:GET

    所有类型的相簿

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    psnum获取的相簿量非必要默认为8 定义域 1-大于1700 (注意滥用风险)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray相簿列表

    data数组:

    类型内容备注
    0obj相簿内容1
    nobj相簿内容(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    countnum总计图片数
    ctimenum发布时间时间戳
    descriptionstr简介
    doc_idnum相簿id非动态!!!
    likenum点赞数
    picturesarray图片内容
    poster_uidnum上传用户mid
    titlestr标题动态内容无
    viewnum浏览数

    data数组中的对象中的pictures数组:

    类型内容备注
    0obj内容图片1
    nobj内容图片(n+1)项数取决于count的值
    ……obj…………

    pictures数组中的对象:

    字段类型内容备注
    img_heightnum图片高度
    img_sizenum图片大小单位为KByte
    img_srcstr图片url
    img_widthnum图片宽度

    示例:

    查询用户mid=53456的投稿相簿预览

    curl -G 'https://api.bilibili.com/x/space/album/index' \\
    +--data-urlencode 'mid=53456' \\
    +--data-urlencode 'ps=2'
    +
    查看响应示例:
    {
    +	"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 https://api.bilibili.com/x/dynamic/feed/draw/doc_list

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    uidnum目标用户mid必要
    page_numnum页码必要默认为0
    page_sizenum每页项数必要默认为30
    bizstr查询类型非必要全部:all
    绘画:draw
    摄影:photo
    日常:daily
    默认为all

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    itemsarray相簿列表

    items数组:

    类型内容备注
    0obj相簿内容1
    nobj相簿内容(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    countnum总计图片数
    ctimenum发布时间时间戳
    descriptionstr简介
    doc_idnum相簿id非动态!!!
    likenum点赞数
    picturesarray图片内容
    poster_uidnum上传用户mid
    titlestr标题动态内容无
    viewnum浏览数

    items数组中的对象中的pictures数组:

    类型内容备注
    0obj内容图片1
    nobj内容图片(n+1)项数取决于count的值
    ……obj…………

    pictures数组中的对象:

    字段类型内容备注
    img_heightnum图片高度
    img_sizenum图片大小单位为KByte
    img_srcstr图片url
    img_widthnum图片宽度

    示例:

    查询用户mid=53456的投稿明细中的全部类型

    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'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体无则为空 所有频道内均无视频则为空,此时code为0

    data对象:

    字段类型内容备注
    countnum总计频道数
    listarray频道列表

    data中的list数组:

    类型内容备注
    0obj频道1
    nobj频道(n+1)项数取决于count的值
    ……obj…………

    data中的list数组中的对象:

    字段类型内容备注
    cidnum频道id
    countnum频道内含视频数
    coverstr封面图片url
    introstr简介无则为空
    midnum创建用户mid
    mtimenum创建时间时间戳
    namestr标题

    示例:

    查询用户mid=53456的频道列表

    curl -G 'https://api.bilibili.com/x/space/channel/list' \\
    +--data-urlencode 'mid=53456'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    cidnum目标频道id必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为100

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无用户对应的频道
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj频道信息
    pageobj页面信息

    data中的list对象:

    字段类型内容备注
    archivesarray包含的视频列表
    cidnum频道id
    countnum频道内含视频数
    coverstr封面图片url
    introstr简介无则为空
    midnum创建用户mid
    mtimenum创建时间时间戳
    namestr标题

    list中的archives数组:

    类型内容备注
    0obj视频1
    nobj视频(n+1)项数取决于count的值
    ……obj…………

    list中的archives数组中的对象:

    `,65),is={href:"https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/info.md#%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88avid/bvid%E4%BA%92%E8%BD%AC%EF%BC%89",target:"_blank",rel:"noopener noreferrer"},ds=o(`

    data中的page对象:

    字段类型内容备注
    countnum总计视频数
    numnum当前页码
    sizenum每页项数

    示例:

    查询用户mid=53456的频道170中的视频

    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'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    namestr频道名必要
    introstr频道简介非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53001:频道名字数超过限制
    53002:频道简介字数超过限制
    53004:创建的频道已经满额
    53007:频道名称已经存在
    53024:编辑内容命中敏感信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体成功有此项

    data对象:

    字段类型内容备注
    cidnum频道id

    示例:

    创建名为test1的频道,简介为空

    curl 'https://api.bilibili.com/x/space/channel/add' \\
    +--data-urlencode 'name=test1' \\
    +--data-urlencode 'intro=' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    cidnum频道id必要
    namestr频道名必要
    introstr频道简介非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53001:频道名字数超过限制
    53002:频道简介字数超过限制
    53007:频道名称已经存在
    53024:编辑内容命中敏感信息
    messagestr错误信息默认为0
    ttlnum1

    示例:

    修改频道138996名称为测试,简介为123456

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除频道

    https://api.bilibili.com/x/space/channel/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum需要删除的频道id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除频道138996

    curl 'https://api.bilibili.com/x/space/channel/del' \\
    +--data-urlencode 'cid=138996' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    频道添加视频

    https://api.bilibili.com/x/space/channel/video/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    仅能添加自己是UP主的视频

    如添加多个视频,仅会添加正确的

    注:完成后需要使用接口「查询用户频道中的视频」刷新

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum频道id必要
    aidsnums要添加的目标稿件avid必要多个使用","(%2C)分隔
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    53003:本频道里的视频已满
    53006:提交视频已失效或频道里有(非该视频UP主)
    messagestr错误信息默认为0
    ttlnum1
    dataarray出错稿件avid列表

    data数组:

    类型内容备注
    0num出错稿件avid1
    nnum出错稿件avid(n+1)
    ……num…………

    示例:

    向频道138995中添加视频av583785685av243322853

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": []
    +}
    +

    频道删除视频

    https://api.bilibili.com/x/space/channel/video/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    注:完成后需要使用接口「查询用户频道中的视频」刷新

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum频道id必要
    aidnum要删除的目标稿件avid必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    53008:频道内没有视频
    53009:频道内没有该视频
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除频道138995中的视频av583785685

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    调整频道视频排序

    https://api.bilibili.com/x/space/channel/video/sort

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum频道id必要
    aidnum要移动的目标稿件avid必要
    tonum视频排序倒数位置非必要默认为1
    1为列表底部,视频总数为首端
    与显示顺序恰好相反
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    调整138995中的视频av583785685位置为倒数第2

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    检查频道中有无失效视频

    https://api.bilibili.com/x/space/channel/video/check

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    cidnum目标频道id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    -404:无此项
    53005:频道内有失效视频
    messagestr错误信息默认为0
    ttlnum1

    示例:

    检查频道138995

    curl -G 'https://api.bilibili.com/x/space/channel/video/check
    +--data-urlencode 'cid=138995' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    课程

    查询用户发布的课程列表

    https://api.bilibili.com/pugv/app/web/season/page

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray课程列表
    pageobj页面信息

    data中的page对象:

    字段类型内容备注
    nextbool是否存在下一页false:最后一页
    true:存在下一页
    numnum当前页码
    sizenum每页项数
    totalnum总计项数

    data中的list数组:

    类型内容备注
    0obj课程1
    nobj课程(n+1)按照目标用户的发布顺序排列
    ……obj……

    data中的list数组中的对象:

    字段类型内容备注
    coverstr课程封面url
    ep_countnum课程集数
    linkstr课程页面url手机版页面url
    pagenum1作用尚不明确
    playnum课程播放数
    season_idnum课程ssid
    statusstr更新状态说明
    subtitlestr课程副标题
    titlestr课程标题

    示例:

    查询用户mid=33683045的课程发布列表

    curl -G 'https://api.bilibili.com/pugv/app/web/season/page' \\
    +--data-urlencode 'mid=33683045' \\
    +--data-urlencode 'ps=5' \\
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "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"
    +}
    +

    订阅

    查询用户追番预览列表

    http://space.bilibili.com/ajax/Bangumi/getList

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    带有转义,且只能获取最多15条

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool状态false:失败
    true:成功
    data失败:str
    成功:obj
    失败:错误信息
    成功:信息本体

    data对象:

    字段类型内容备注
    countnum总计追番数
    pagesnum0作用尚不明确
    resultarray追番预览列表

    data中的result数组:

    类型内容备注
    0obj追番1
    nobj追番(n+1)按照目标用户的关注顺序排列
    ……obj……
    14obj追番15最后一项

    data中的result数组中的对象:

    字段类型内容备注
    briefstr简介
    coverstr封面图片url
    evaluatestr
    favoritesnum追番数
    is_finishnum是否已完结0:未完结
    1:已完结
    last_ep_indexnum0作用尚不明确
    newest_ep_indexnum最新一话可能为0
    season_idstr番剧ssid
    share_urlstr播放页面链接url
    titlestr标题
    total_countnum总计集数未完结:-1
    已完结:非0正整数

    示例:

    查看用户mid=14082的追番预览列表

    curl -G 'http://space.bilibili.com/ajax/Bangumi/getList' \\
    +--data-urlencode 'mid=14082' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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": "http:\\/\\/i0.hdslb.com\\/bfs\\/bangumi\\/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png",
    +			"evaluate": "",
    +			"brief": "史莱姆生活,开始了。\\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\\n不..."
    +		}, 
    +		…………
    +		]
    +	}
    +}
    +

    查询用户追番(追剧)明细

    https://api.bilibili.com/x/space/bangumi/follow/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为15 定义域1-30
    typenum查询类型必要1:追番
    2:追剧

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray追番列表
    pnnum当前页码
    psnum每页项数
    totalnum总计追番数

    data中的list数组:

    类型内容备注
    0obj追番1
    nobj追番(n+1)按照目标用户的关注顺序排列
    ……obj……

    data中的list数组中的对象:

    基本同「番剧详细信息」中的result对象(未完工)

    示例:

    查看用户mid=14082的追番明细

    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'
    +
    查看响应示例:
    {
    +	"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(话题)

    http://space.bilibili.com/ajax/tags/getSubList

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    带有转义

    只显示前100个

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool返回值false:错误
    true:正确
    data错误时:str
    正确时:obj
    错误时:错误信息
    正确时:数据本体
    正确时不返回错误信息

    data对象:

    字段类型内容备注
    tagsarray关注TAG列表
    countnum关注TAG的数

    data中的tags数组:

    类型内容备注
    0obj关注TAG1
    nobj关注TAG(n+1)
    ……obj…………
    99obj关注TAG100最后一项

    data中的tags数组中的对象:

    字段类型内容备注
    archive_countnum0作用尚不明确
    coverstrTAG图片url无则为空
    namestrTAG名
    notifynum1作用尚不明确
    tag_idnumtag_id
    updated_tsstr1970-01-01 08:00:00作用尚不明确

    示例:

    查询用户mid=2的关注TAG

    curl -G 'http://space.bilibili.com/ajax/tags/getSubList' \\
    +--data-urlencode 'mid=2' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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
    +	}
    +}
    +
    `,193);function ks(bs,vs){const a=e("RouterLink"),r=e("ExternalLinkIcon");return c(),u("div",null,[q,s("table",null,[h,s("tbody",null,[y,g,_,f,x,j,w,A,E,S,s("tr",null,[T,B,D,s("td",null,[n("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),F,n("备注")])]),s("tr",null,[G,C,P,s("td",null,[n("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),I,n("备注")])]),V,s("tr",null,[z,R,O,s("td",null,[n("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),U,n("对象")])]),s("tr",null,[L,N,W,s("td",null,[n("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),K,n("对象")])]),s("tr",null,[M,Y,X,s("td",null,[n("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),J,n("对象")])]),Z,H,s("tr",null,[Q,$,ss,s("td",null,[n("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中的"),ns,n("对象")])]),ts,as,ps])]),os,s("p",null,[n("基本与"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中"),es,n("对象字段一致")]),rs,s("p",null,[n("基本与"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:p(()=>[n("获取视频详细信息(web端)")]),_:1}),n("中"),ls,n("对象字段一致")]),cs,s("p",null,[n("鉴权方式:"),t(a,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>[n("Wbi 签名")]),_:1})]),s("p",null,[n("另见 "),t(a,{to:"/docs/video/collection.html#%E6%A0%B9%E6%8D%AE%E5%85%B3%E9%94%AE%E8%AF%8D%E6%9F%A5%E6%89%BE%E8%A7%86%E9%A2%91"},{default:p(()=>[n("根据关键词查找视频")]),_:1}),n(", 功能基本相同, 暂未发现风控校验")]),us,s("p",null,[n("基本同「"),s("a",is,[n("视频详细信息"),t(r)]),n("」中的data对象")]),ds])}const qs=l(m,[["render",ks],["__file","space.html.vue"]]);export{qs as default}; diff --git a/assets/space.html-4e00af2f.js b/assets/space.html-4e00af2f.js new file mode 100644 index 0000000000..965ad244b0 --- /dev/null +++ b/assets/space.html-4e00af2f.js @@ -0,0 +1,1109 @@ +import{_ as t,r as p,o,c as e,a as l,b as s,d as u,w as c,e as n}from"./app-3168cb19.js";const r={},i=n('

    获取用户空间动态

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space

    请求方式:GET

    是否需要登录:

    URL参数

    参数名类型必填内容备注
    offsetstr分页偏移量
    host_midstr用户UID
    timezone_offsetnum-480
    featuresstritemOpusStyle

    Json回复

    ',7),k=n(`

    请求示例

    curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?host_mid=1'
    +

    响应示例

    点击查看
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "has_more": false,
    +        "items": [
    +            {
    +                "basic": {
    +                    "comment_id_str": "463864834570585963",
    +                    "comment_type": 17,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "463864834566075427"
    +                },
    +                "id_str": "463864834570585963",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2020-12-02",
    +                        "pub_ts": 1606840348,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "orig_text": "好家伙",
    +                                    "text": "好家伙",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                }
    +                            ],
    +                            "text": "好家伙"
    +                        },
    +                        "major": null,
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 979,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 81,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 7694,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "orig": {
    +                    "basic": {
    +                        "comment_id_str": "",
    +                        "comment_type": 0,
    +                        "like_icon": {
    +                            "action_url": "",
    +                            "end_url": "",
    +                            "id": 0,
    +                            "start_url": ""
    +                        },
    +                        "rid_str": ""
    +                    },
    +                    "id_str": "459720423056997502",
    +                    "modules": {
    +                        "module_author": {
    +                            "decorate": {
    +                                "card_url": "http://i0.hdslb.com/bfs/garb/item/3fc3f5914f0bcbefac9e9fa96aec454cf347287a.png",
    +                                "fan": {
    +                                    "color": "#ec3d3d",
    +                                    "is_fan": true,
    +                                    "num_str": "004156",
    +                                    "number": 4156
    +                                },
    +                                "id": 1418,
    +                                "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/1431?navhide=1&mid=249608727&from=dynamic&isdiy=0",
    +                                "name": "2020拜年祭粉丝专属",
    +                                "type": 3
    +                            },
    +                            "face": "https://i0.hdslb.com/bfs/face/e422a095e58305218e2745714ceb4c9754e752a7.jpg",
    +                            "face_nft": false,
    +                            "following": null,
    +                            "jump_url": "//space.bilibili.com/249608727/dynamic",
    +                            "label": "",
    +                            "mid": 249608727,
    +                            "name": "杨可爱Ukulele",
    +                            "official_verify": {
    +                                "desc": "全民音乐UP主年度30强",
    +                                "type": 0
    +                            },
    +                            "pendant": {
    +                                "expire": 0,
    +                                "image": "https://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png",
    +                                "image_enhance": "https://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png",
    +                                "image_enhance_frame": "",
    +                                "name": "梦塔·雪谜城",
    +                                "pid": 299
    +                            },
    +                            "pub_action": "投稿了视频",
    +                            "pub_time": "",
    +                            "pub_ts": 1605875402,
    +                            "type": "AUTHOR_TYPE_NORMAL",
    +                            "vip": {
    +                                "avatar_subscript": 1,
    +                                "avatar_subscript_url": "",
    +                                "due_date": 1793462400000,
    +                                "label": {
    +                                    "bg_color": "#FB7299",
    +                                    "bg_style": 1,
    +                                    "border_color": "",
    +                                    "img_label_uri_hans": "",
    +                                    "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                    "img_label_uri_hant": "",
    +                                    "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                    "label_theme": "annual_vip",
    +                                    "path": "",
    +                                    "text": "年度大会员",
    +                                    "text_color": "#FFFFFF",
    +                                    "use_img_label": true
    +                                },
    +                                "nickname_color": "#FB7299",
    +                                "status": 1,
    +                                "theme_type": 0,
    +                                "type": 2
    +                            }
    +                        },
    +                        "module_dynamic": {
    +                            "additional": null,
    +                            "desc": {
    +                                "rich_text_nodes": [
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23%E9%87%91%E7%A7%8B%E9%9F%B3%E4%B9%90%E5%AD%A3%23",
    +                                        "orig_text": "#金秋音乐季#",
    +                                        "text": "#金秋音乐季#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "orig_text": "\\n大家推荐给我很多神曲 一直没机会做\\n这不\\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\\n改编成中国风之后 好像 有点 串味儿了\\n大家三连之后再细细观看可好?",
    +                                        "text": "\\n大家推荐给我很多神曲 一直没机会做\\n这不\\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\\n改编成中国风之后 好像 有点 串味儿了\\n大家三连之后再细细观看可好?",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    }
    +                                ],
    +                                "text": "#金秋音乐季#\\n大家推荐给我很多神曲 一直没机会做\\n这不\\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\\n改编成中国风之后 好像 有点 串味儿了\\n大家三连之后再细细观看可好?"
    +                            },
    +                            "major": {
    +                                "archive": {
    +                                    "aid": "970285943",
    +                                    "badge": {
    +                                        "bg_color": "#FB7299",
    +                                        "color": "#FFFFFF",
    +                                        "text": "投稿视频"
    +                                    },
    +                                    "bvid": "BV12p4y167Kq",
    +                                    "cover": "http://i0.hdslb.com/bfs/archive/20c86c66df71770a7a91cc0871b455d1c582094b.jpg",
    +                                    "desc": "大家好,今天想要跟大家分享我的快乐源泉,以及去KTV的必点神曲\\n大家如果觉得十首看了还不过瘾的话\\n这样\\n点赞过十万 热评第一说出啥改编我就出啥 (前提是我做得来...\\n\\n(“土味”只是一个外号,它们其实不土,它们只是快乐的传递者\\n   大部分的填词都是根据原版歌曲填哒,偶尔有些小发挥,大家当看娱乐视频就好啦)\\n--------------------\\n原唱:崔伟立、凤凰传奇、Vicetone&Tony Igy、神马乐团、筷子兄弟、慕容晓晓、李佳璐\\n改编编曲/演唱/尤克里里:杨可爱\\n改编填词:不迟等\\n混音:",
    +                                    "disable_preview": 0,
    +                                    "duration_text": "06:12",
    +                                    "jump_url": "//www.bilibili.com/video/BV12p4y167Kq",
    +                                    "stat": {
    +                                        "danmaku": "3519",
    +                                        "play": "153万"
    +                                    },
    +                                    "title": "没内味儿?我把十五年最火的10首土味神曲做成了一首中国风..",
    +                                    "type": 1
    +                                },
    +                                "type": "MAJOR_TYPE_ARCHIVE"
    +                            },
    +                            "topic": null
    +                        }
    +                    },
    +                    "type": "DYNAMIC_TYPE_AV",
    +                    "visible": true
    +                },
    +                "type": "DYNAMIC_TYPE_FORWARD",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "269459814293507419",
    +                    "comment_type": 17,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "269459814290043403"
    +                },
    +                "id_str": "269459814293507419",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2019-06-27",
    +                        "pub_ts": 1561576902,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "orig_text": "来一锄头!",
    +                                    "text": "来一锄头!",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                }
    +                            ],
    +                            "text": "来一锄头!"
    +                        },
    +                        "major": null,
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 1233,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 32,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 8428,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "orig": {
    +                    "basic": {
    +                        "comment_id_str": "",
    +                        "comment_type": 0,
    +                        "like_icon": {
    +                            "action_url": "",
    +                            "end_url": "",
    +                            "id": 0,
    +                            "start_url": ""
    +                        },
    +                        "rid_str": ""
    +                    },
    +                    "id_str": 4038269986840689,
    +                    "modules": {
    +                        "module_author": {
    +                            "face": "http://i0.hdslb.com/bfs/face/210cac322eb3a689f63f3a19d59ea641347c3c52.jpg",
    +                            "face_nft": false,
    +                            "following": null,
    +                            "jump_url": "//space.bilibili.com/10410/dynamic",
    +                            "label": "",
    +                            "mid": 10410,
    +                            "name": "hotfloor",
    +                            "official_verify": {
    +                                "desc": "",
    +                                "type": -1
    +                            },
    +                            "pendant": {
    +                                "expire": 0,
    +                                "image": "",
    +                                "image_enhance": "",
    +                                "image_enhance_frame": "",
    +                                "name": "",
    +                                "pid": 0
    +                            },
    +                            "pub_action": "投稿了视频",
    +                            "pub_time": "",
    +                            "pub_ts": 1327584664,
    +                            "type": "AUTHOR_TYPE_NORMAL",
    +                            "vip": {
    +                                "avatar_subscript": 1,
    +                                "avatar_subscript_url": "",
    +                                "due_date": 1700150400000,
    +                                "label": {
    +                                    "bg_color": "#FB7299",
    +                                    "bg_style": 1,
    +                                    "border_color": "",
    +                                    "img_label_uri_hans": "",
    +                                    "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                    "img_label_uri_hant": "",
    +                                    "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                    "label_theme": "annual_vip",
    +                                    "path": "",
    +                                    "text": "年度大会员",
    +                                    "text_color": "#FFFFFF",
    +                                    "use_img_label": true
    +                                },
    +                                "nickname_color": "#FB7299",
    +                                "status": 1,
    +                                "theme_type": 0,
    +                                "type": 2
    +                            }
    +                        },
    +                        "module_dynamic": {
    +                            "additional": null,
    +                            "desc": null,
    +                            "major": {
    +                                "archive": {
    +                                    "aid": "205419",
    +                                    "badge": {
    +                                        "bg_color": "#FB7299",
    +                                        "color": "#FFFFFF",
    +                                        "text": "投稿视频"
    +                                    },
    +                                    "bvid": "BV1bx411w7SF",
    +                                    "cover": "http://i1.hdslb.com/bfs/archive/5607be9a736a426ae21e3e59fad664296f91df8e.png",
    +                                    "desc": "原创 拖到今天才做完了……总之祝各位新年快乐,做这个只是为了感谢这一年陪伴我们的各种新番,与新番一起成长的UP主们,和浪费我们大半人生的bili,谢谢你们带给我们的欢笑和泪水,即使是世界末日也不会忘记…… PS.感谢哦拖拖帮忙取标题 下载:http://pan.baidu.com/s/1c0ImLva 密码:8xb4 原曲MV联动av210810 自己的MADlist--&gt;mylist27438",
    +                                    "disable_preview": 0,
    +                                    "duration_text": "04:49",
    +                                    "jump_url": "//www.bilibili.com/video/BV1bx411w7SF",
    +                                    "stat": {
    +                                        "danmaku": "2.4万",
    +                                        "play": "54.6万"
    +                                    },
    +                                    "title": "【MAD】[送给所有热爱bili的各位]干杯",
    +                                    "type": 1
    +                                },
    +                                "type": "MAJOR_TYPE_ARCHIVE"
    +                            },
    +                            "topic": null
    +                        }
    +                    },
    +                    "type": "DYNAMIC_TYPE_AV",
    +                    "visible": true
    +                },
    +                "type": "DYNAMIC_TYPE_FORWARD",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "26050777",
    +                    "comment_type": 11,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "26050777"
    +                },
    +                "id_str": "269003035929570655",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2019-06-25",
    +                        "pub_ts": 1561470550,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "jump_url": "//search.bilibili.com/all?keyword=%23%E5%B9%B2%E6%9D%AF%E5%8D%81%E5%91%A8%E5%B9%B4%23",
    +                                    "orig_text": "#干杯十周年#",
    +                                    "text": "#干杯十周年#",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                },
    +                                {
    +                                    "orig_text": "Yo,My Friend,Nice to see you again.",
    +                                    "text": "Yo,My Friend,Nice to see you again.",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "jump_url": "https://www.bilibili.com/blackboard/bilibili2009.html",
    +                                    "orig_text": "https://www.bilibili.com/blackboard/bilibili2009.html",
    +                                    "text": "网页链接",
    +                                    "type": "RICH_TEXT_NODE_TYPE_WEB"
    +                                }
    +                            ],
    +                            "text": "#干杯十周年#Yo,My Friend,Nice to see you again.https://www.bilibili.com/blackboard/bilibili2009.html"
    +                        },
    +                        "major": {
    +                            "draw": {
    +                                "id": 26050777,
    +                                "items": [
    +                                    {
    +                                        "height": 1360,
    +                                        "size": 500,
    +                                        "src": "https://i0.hdslb.com/bfs/active/1ddb2cb9a1edb74ba7c4f0e15c1bbef9dc3ce548.jpg",
    +                                        "tags": [],
    +                                        "width": 935
    +                                    }
    +                                ]
    +                            },
    +                            "type": "MAJOR_TYPE_DRAW"
    +                        },
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 1515,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 214,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 11041,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "type": "DYNAMIC_TYPE_DRAW",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "264471510427272642",
    +                    "comment_type": 17,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "264471510424746690"
    +                },
    +                "id_str": "264471510427272642",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2019-06-13",
    +                        "pub_ts": 1560415472,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "orig_text": "圈错号了",
    +                                    "text": "圈错号了",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "emoji": {
    +                                        "icon_url": "http://i0.hdslb.com/bfs/emote/33ad6000d9f9f168a0976bc60937786f239e5d8c.png",
    +                                        "size": 1,
    +                                        "text": "[呆]",
    +                                        "type": 1
    +                                    },
    +                                    "orig_text": "[呆]",
    +                                    "text": "[呆]",
    +                                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                                },
    +                                {
    +                                    "orig_text": "//",
    +                                    "text": "//",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "orig_text": "@柴刀娘木木",
    +                                    "rid": "9",
    +                                    "text": "@柴刀娘木木",
    +                                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                                },
    +                                {
    +                                    "orig_text": ":",
    +                                    "text": ":",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "orig_text": "@bishi",
    +                                    "rid": "1",
    +                                    "text": "@bishi",
    +                                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                                },
    +                                {
    +                                    "orig_text": "我来组成分母,测试欧气,我要是中了再抽人送出",
    +                                    "text": "我来组成分母,测试欧气,我要是中了再抽人送出",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "emoji": {
    +                                        "icon_url": "http://i0.hdslb.com/bfs/emote/6c49d226e76c42cd8002abc47b3112bc5a92f66a.png",
    +                                        "size": 1,
    +                                        "text": "[偷笑]",
    +                                        "type": 1
    +                                    },
    +                                    "orig_text": "[偷笑]",
    +                                    "text": "[偷笑]",
    +                                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                                }
    +                            ],
    +                            "text": "圈错号了[呆]//@柴刀娘木木:@bishi我来组成分母,测试欧气,我要是中了再抽人送出[偷笑]"
    +                        },
    +                        "major": null,
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 1013,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 109,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 4751,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "orig": {
    +                    "basic": {
    +                        "comment_id_str": "",
    +                        "comment_type": 0,
    +                        "like_icon": {
    +                            "action_url": "",
    +                            "end_url": "",
    +                            "id": 0,
    +                            "start_url": ""
    +                        },
    +                        "rid_str": ""
    +                    },
    +                    "id_str": "264180341709040397",
    +                    "modules": {
    +                        "module_author": {
    +                            "decorate": {
    +                                "card_url": "http://i0.hdslb.com/bfs/garb/item/fe745063c05881face209a772d17bb056a4034f1.png",
    +                                "fan": {
    +                                    "color": "#6857ea",
    +                                    "is_fan": true,
    +                                    "num_str": "001647",
    +                                    "number": 1647
    +                                },
    +                                "id": 5203,
    +                                "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5235?navhide=1&mid=12&from=dynamic&isdiy=0",
    +                                "name": "BML2021粉丝专属",
    +                                "type": 3
    +                            },
    +                            "face": "http://i2.hdslb.com/bfs/face/4f640086bc17e180faf8ad6b86b5bf4be24eb9f1.jpg",
    +                            "face_nft": false,
    +                            "following": null,
    +                            "jump_url": "//space.bilibili.com/12/dynamic",
    +                            "label": "",
    +                            "mid": 12,
    +                            "name": "MagicBear",
    +                            "official_verify": {
    +                                "desc": "",
    +                                "type": 0
    +                            },
    +                            "pendant": {
    +                                "expire": 0,
    +                                "image": "https://i0.hdslb.com/bfs/face/a959c72407b2ac553d4328fd76d55d0134e20f65.png",
    +                                "image_enhance": "https://i0.hdslb.com/bfs/face/a959c72407b2ac553d4328fd76d55d0134e20f65.png",
    +                                "image_enhance_frame": "",
    +                                "name": "异常生物",
    +                                "pid": 460
    +                            },
    +                            "pub_action": "",
    +                            "pub_time": "",
    +                            "pub_ts": 1560347679,
    +                            "type": "AUTHOR_TYPE_NORMAL",
    +                            "vip": {
    +                                "avatar_subscript": 1,
    +                                "avatar_subscript_url": "",
    +                                "due_date": 1761580800000,
    +                                "label": {
    +                                    "bg_color": "#FB7299",
    +                                    "bg_style": 1,
    +                                    "border_color": "",
    +                                    "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
    +                                    "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
    +                                    "img_label_uri_hant": "",
    +                                    "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png",
    +                                    "label_theme": "annual_vip",
    +                                    "path": "",
    +                                    "text": "年度大会员",
    +                                    "text_color": "#FFFFFF",
    +                                    "use_img_label": true
    +                                },
    +                                "nickname_color": "#FB7299",
    +                                "status": 1,
    +                                "theme_type": 0,
    +                                "type": 2
    +                            }
    +                        },
    +                        "module_dynamic": {
    +                            "additional": null,
    +                            "desc": {
    +                                "rich_text_nodes": [
    +                                    {
    +                                        "orig_text": "​互动抽奖",
    +                                        "text": "​互动抽奖",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    },
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23%E8%BD%AC%E5%8F%91%E6%8A%BD%E5%A5%96%23",
    +                                        "orig_text": "#转发抽奖#",
    +                                        "text": "#转发抽奖#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23PC%E7%A1%AC%E4%BB%B6%23",
    +                                        "orig_text": "#PC硬件#",
    +                                        "text": "#PC硬件#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23%E6%97%A7%E8%B4%A7%E6%B8%85%E7%90%86%E8%AE%A1%E5%88%92%23",
    +                                        "orig_text": "#旧货清理计划#",
    +                                        "text": "#旧货清理计划#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "orig_text": " 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e ",
    +                                        "text": " 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e ",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    },
    +                                    {
    +                                        "emoji": {
    +                                            "icon_url": "http://i0.hdslb.com/bfs/emote/6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png",
    +                                            "size": 1,
    +                                            "text": "[tv_doge]",
    +                                            "type": 1
    +                                        },
    +                                        "orig_text": "[tv_doge]",
    +                                        "text": "[tv_doge]",
    +                                        "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                                    },
    +                                    {
    +                                        "orig_text": " 关注并转发抽奖送出",
    +                                        "text": " 关注并转发抽奖送出",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    }
    +                                ],
    +                                "text": "​互动抽奖#转发抽奖##PC硬件##旧货清理计划# 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e [tv_doge] 关注并转发抽奖送出"
    +                            },
    +                            "major": {
    +                                "draw": {
    +                                    "id": 24303852,
    +                                    "items": [
    +                                        {
    +                                            "height": 1242,
    +                                            "size": 150.93652,
    +                                            "src": "https://i0.hdslb.com/bfs/album/cd767602a291a5b7d4deebd8c65ebeeb0dfce1a2.jpg",
    +                                            "tags": [],
    +                                            "width": 2688
    +                                        }
    +                                    ]
    +                                },
    +                                "type": "MAJOR_TYPE_DRAW"
    +                            },
    +                            "topic": null
    +                        }
    +                    },
    +                    "type": "DYNAMIC_TYPE_DRAW",
    +                    "visible": true
    +                },
    +                "type": "DYNAMIC_TYPE_FORWARD",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "55",
    +                    "comment_type": 1,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "55"
    +                },
    +                "id_str": 76690937085980,
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "投稿了视频",
    +                        "pub_location_text": "",
    +                        "pub_time": "2009-07-13",
    +                        "pub_ts": 1247496094,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": null,
    +                        "major": {
    +                            "archive": {
    +                                "aid": "55",
    +                                "badge": {
    +                                    "bg_color": "#FB7299",
    +                                    "color": "#FFFFFF",
    +                                    "text": "投稿视频"
    +                                },
    +                                "bvid": "BV1xx411c7Ug",
    +                                "cover": "http://i0.hdslb.com/bfs/archive/c392288c19bbdf3762919774bce01c76dc346344.jpg",
    +                                "desc": "没有听过这首歌的话会是人参的一大遗憾呢..(望天",
    +                                "disable_preview": 0,
    +                                "duration_text": "01:38",
    +                                "jump_url": "//www.bilibili.com/video/BV1xx411c7Ug",
    +                                "stat": {
    +                                    "danmaku": "2965",
    +                                    "play": "116.6万"
    +                                },
    +                                "title": "【天哥版】最春哥",
    +                                "type": 1
    +                            },
    +                            "type": "MAJOR_TYPE_ARCHIVE"
    +                        },
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 20434,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 585,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 27958,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "type": "DYNAMIC_TYPE_AV",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "16",
    +                    "comment_type": 1,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "16"
    +                },
    +                "id_str": 55783037337604,
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "投稿了视频",
    +                        "pub_location_text": "",
    +                        "pub_time": "2009-07-09",
    +                        "pub_ts": 1247073333,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": null,
    +                        "major": {
    +                            "archive": {
    +                                "aid": "16",
    +                                "badge": {
    +                                    "bg_color": "#FB7299",
    +                                    "color": "#FFFFFF",
    +                                    "text": "投稿视频"
    +                                },
    +                                "bvid": "BV1xx411c7mi",
    +                                "cover": "http://i1.hdslb.com/bfs/archive/ef521697c031bd2b0aab5c8aab3abe1ea0ca63b9.jpg",
    +                                "desc": "CRUCIS FATAL FAKE : Fate Stay Night的同人格斗游戏. MV制作 : yaomenghua 天下格斗之同人堂",
    +                                "disable_preview": 0,
    +                                "duration_text": "09:43",
    +                                "jump_url": "//www.bilibili.com/video/BV1xx411c7mi",
    +                                "stat": {
    +                                    "danmaku": "6205",
    +                                    "play": "141.8万"
    +                                },
    +                                "title": "【FATE相关】CRUCIS FATAL FAKE MV 《Faker》",
    +                                "type": 1
    +                            },
    +                            "type": "MAJOR_TYPE_ARCHIVE"
    +                        },
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 13354,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 473,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 39657,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "type": "DYNAMIC_TYPE_AV",
    +                "visible": true
    +            }
    +        ],
    +        "offset": "",
    +        "update_baseline": "",
    +        "update_num": 0
    +    }
    +}
    +
    `,4);function d(q,v){const a=p("RouterLink");return o(),e("div",null,[i,l("p",null,[s("参照 "),u(a,{to:"/docs/dynamic/all.html#%E8%8E%B7%E5%8F%96%E5%8A%A8%E6%80%81%E5%88%97%E8%A1%A8"},{default:c(()=>[s("获取动态列表")]),_:1})]),k])}const m=t(r,[["render",d],["__file","space.html.vue"]]);export{m as default}; diff --git a/assets/space.html-54138a19.js b/assets/space.html-54138a19.js new file mode 100644 index 0000000000..e7db0da547 --- /dev/null +++ b/assets/space.html-54138a19.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-2bacf0fc","path":"/docs/user/space.html","title":"用户空间相关","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"主页","slug":"主页","link":"#主页","children":[{"level":3,"title":"置顶视频","slug":"置顶视频","link":"#置顶视频","children":[]},{"level":3,"title":"代表作视频","slug":"代表作视频","link":"#代表作视频","children":[]},{"level":3,"title":"个人TAG","slug":"个人tag","link":"#个人tag","children":[]},{"level":3,"title":"空间公告","slug":"空间公告","link":"#空间公告","children":[]},{"level":3,"title":"主页板块布局与权限","slug":"主页板块布局与权限","link":"#主页板块布局与权限","children":[]},{"level":3,"title":"设置空间头图 (Web端)","slug":"设置空间头图-web端","link":"#设置空间头图-web端","children":[]},{"level":3,"title":"查询用户最近访问内容","slug":"查询用户最近访问内容","link":"#查询用户最近访问内容","children":[]}]},{"level":2,"title":"投稿","slug":"投稿","link":"#投稿","children":[{"level":3,"title":"查询用户投稿视频明细","slug":"查询用户投稿视频明细","link":"#查询用户投稿视频明细","children":[]},{"level":3,"title":"查询用户投稿相簿预览","slug":"查询用户投稿相簿预览","link":"#查询用户投稿相簿预览","children":[]},{"level":3,"title":"查询用户投稿相簿明细","slug":"查询用户投稿相簿明细","link":"#查询用户投稿相簿明细","children":[]}]},{"level":2,"title":"频道","slug":"频道","link":"#频道","children":[{"level":3,"title":"查询用户频道列表","slug":"查询用户频道列表","link":"#查询用户频道列表","children":[]},{"level":3,"title":"查询用户频道中的视频","slug":"查询用户频道中的视频","link":"#查询用户频道中的视频","children":[]},{"level":3,"title":"创建频道","slug":"创建频道","link":"#创建频道","children":[]},{"level":3,"title":"修改频道","slug":"修改频道","link":"#修改频道","children":[]},{"level":3,"title":"删除频道","slug":"删除频道","link":"#删除频道","children":[]},{"level":3,"title":"频道添加视频","slug":"频道添加视频","link":"#频道添加视频","children":[]},{"level":3,"title":"频道删除视频","slug":"频道删除视频","link":"#频道删除视频","children":[]},{"level":3,"title":"调整频道视频排序","slug":"调整频道视频排序","link":"#调整频道视频排序","children":[]},{"level":3,"title":"检查频道中有无失效视频","slug":"检查频道中有无失效视频","link":"#检查频道中有无失效视频","children":[]}]},{"level":2,"title":"课程","slug":"课程","link":"#课程","children":[{"level":3,"title":"查询用户发布的课程列表","slug":"查询用户发布的课程列表","link":"#查询用户发布的课程列表","children":[]}]},{"level":2,"title":"订阅","slug":"订阅","link":"#订阅","children":[{"level":3,"title":"查询用户追番预览列表","slug":"查询用户追番预览列表","link":"#查询用户追番预览列表","children":[]},{"level":3,"title":"查询用户追番(追剧)明细","slug":"查询用户追番-追剧-明细","link":"#查询用户追番-追剧-明细","children":[]},{"level":3,"title":"查询用户关注的TAG(话题)","slug":"查询用户关注的tag-话题","link":"#查询用户关注的tag-话题","children":[]}]}],"git":{},"filePathRelative":"docs/user/space.md"}');export{l as data}; diff --git a/assets/space.html-9698dd19.js b/assets/space.html-9698dd19.js new file mode 100644 index 0000000000..ecfc70bb89 --- /dev/null +++ b/assets/space.html-9698dd19.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-78f5e49e","path":"/docs/dynamic/space.html","title":"获取用户空间动态","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"URL参数","slug":"url参数","link":"#url参数","children":[]},{"level":2,"title":"Json回复","slug":"json回复","link":"#json回复","children":[]},{"level":2,"title":"请求示例","slug":"请求示例","link":"#请求示例","children":[]},{"level":2,"title":"响应示例","slug":"响应示例","link":"#响应示例","children":[]}],"git":{},"filePathRelative":"docs/dynamic/space.md"}');export{l as data}; diff --git a/assets/splash.html-53855429.js b/assets/splash.html-53855429.js new file mode 100644 index 0000000000..7fe258e29e --- /dev/null +++ b/assets/splash.html-53855429.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-17b5f640","path":"/docs/APP_widget/splash.html","title":"APP端开屏图片","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取APP端开屏图片列表","slug":"获取app端开屏图片列表","link":"#获取app端开屏图片列表","children":[]},{"level":2,"title":"获取APP端开屏幕广告信息","slug":"获取app端开屏幕广告信息","link":"#获取app端开屏幕广告信息","children":[]}],"git":{},"filePathRelative":"docs/APP_widget/splash.md"}');export{e as data}; diff --git a/assets/splash.html-b03843c0.js b/assets/splash.html-b03843c0.js new file mode 100644 index 0000000000..2830153271 --- /dev/null +++ b/assets/splash.html-b03843c0.js @@ -0,0 +1,308 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},o=a(`

    APP端开屏图片

    获取APP端开屏图片列表

    https://app.bilibili.com/x/v2/splash/brand/list

    请求方式:GET

    鉴权方式:APP

    url参数:

    参数名类型内容必要性备注
    appkeystrAPP密钥APP方式必要
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pull_intervalnum1800作用尚不明确
    forciblyboolfalse作用尚不明确
    rulestrorder作用尚不明确
    listarray开屏图片列表
    showarray默认显示项

    data中的list数组:

    类型内容备注
    0obj开屏图片1
    nobj开屏图片(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum开屏图片id
    thumbstr开屏图片url
    logo_urlstr“bilibili”logo图片url

    data中的show数组:

    类型内容备注
    0obj套了个娃?

    show数组中的对象:

    字段类型内容备注
    idnum开屏图片id
    begin_timenum起始时间?时间戳
    end_timenum结束时间?时间戳
    probabilitynum0作用尚不明确
    durationnum显示时间?单位为毫秒

    示例:

    curl -G 'https://app.bilibili.com/x/v2/splash/brand/list' \\
    +--data-urlencode 'appkey=1d8b6e7d45233436' \\
    +--data-urlencode 'ts=0' \\
    +--data-urlencode 'sign=78a89e153cd6231a4a4d55013aa063ce'
    +
    查看响应示例:
    {
    +    "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的图片为:

    获取APP端开屏幕广告信息

    https://app.bilibili.com/x/v2/splash/list

    请求方式: GET

    参数名类型内容必要性备注
    buildint客户端内部版本号必要
    mobi_appstrandroid, iphone, ipad必要
    platformstrandroid, ios必要
    heightint屏幕高度必要
    widthint屏幕宽度必要
    birthstr生日日期(四位数,例 0101)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    splash_request_id当前请求id长度为33, 前13位是当前秒级时间戳
    max_timeint最长显示时间?
    min_intervalint最少显示时间?千分之一秒单位
    pull_intervalint显示时间?
    keep_idsint显示时间?
    listlist广告 list

    list数组中的对象:

    字段类型内容备注
    idint广告id
    typeint1
    card_typeint39
    durationint持续时间?
    begin_timeint开始展示时间秒级时间戳
    end_timeint停止展示时间毫秒级时间戳
    thumburl广告图片
    hashstr作用尚不明确
    logo_urlstr空值
    logo_hashstr空值
    skipint是否跳转?
    uristr跳转的url
    video_urlstr视频url
    video_hashstr视频hash
    video_widthnum视频宽度
    video_heightnum视频高度
    uri_titlestr空值
    sourceint929
    cm_markint1
    ad_cbstr作用尚不明确
    resource_idint926
    request_idstr作用尚不明确
    client_ipstr客户端IP
    is_adbool作用尚不明确
    is_ad_locbool作用尚不明确
    schema_titlestr滑动进入第三方应用
    schema_callup_white_listarray跳转的 APP 的白名单
    extraobj显示信息?
    enable_pre_downloadbool是否可以当场下载 APP?
    enable_background_downloadbool是否可以静默下载 APP?
    interact_typeint是否可以跳转(互动)?
    interact_urlstr跳转(互动) url
    interact_distanceint作用尚不明确
    guide_button_listarray所有的按钮
    mark_with_skip_stylenum作用尚不明确
    skip_button_heightnum作用尚不明确

    extra对象:

    字段类型内容备注
    use_ad_web_v2bool
    show_urlsarray
    click_urlsarray
    show_1s_urlsarray
    download_whitelistarray
    open_whitelistarray
    cardobj
    report_timenum
    sales_typenum
    special_industrybool
    preload_landingpagenum
    share_infoobj
    upzone_entrance_typenum
    upzone_entrance_report_idnum
    topview_pic_urlstr
    topview_video_urlstr
    click_areanum
    shop_idnum
    up_midnum
    track_idstr
    enable_store_direct_launchint
    enable_double_jumpbool
    store_callup_cardbool
    enable_h5_alertbool
    special_industry_stylenum
    macro_replace_prioritynum
    feedback_panel_stylenum
    ad_content_typenum
    enable_h5_pre_loadnum
    hot_activity_idnum
    product_idnum
    landingpage_download_stylenum

    guide_button_list 中的对象:

    字段类型内容备注
    idint
    xint
    yint
    bg_colorstr
    bg_color_nightstr
    text_colorstr
    text_color_nightstr
    guide_instructionsstr
    guide_instructions_newstr空值
    widthstr
    jump_urlstr
    schema_package_namestr
    schema_titlestr
    schema_title_newstr空值
    heightstr
    slide_threshold_valuestr
    slide_border_colorstr
    guide_image_urlstr
    guide_image_md5str
    interact_stylestr
    jump_image_urlstr
    jump_image_md5str
    schema_image_urlstr
    schema_image_md5str
    click_expand_ratiostr
    logo_image_urlstr
    logo_image_md5str
    related_idsarray
    schema_listarray
    font_rationum
    seqnum
    degrade_typenum
    twist_anglenum
    twist_speednum
    secondary_guide_instructionsstr
    secondary_font_rationum
    secondary_text_colorstr
    secondary_text_color_nightstr
    activity_timenum秒级时间戳
    time_show_typenum

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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"
    +    }
    +}
    +
    `,43),e=[o];function d(r,l){return n(),s("div",null,e)}const c=t(p,[["render",d],["__file","splash.html.vue"]]);export{c as default}; diff --git a/assets/sponsorQR-4cf95420.jpg b/assets/sponsorQR-4cf95420.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9178ffc1a8d5ce71122c48e9e9e4e5c779f9dda6 GIT binary patch literal 706776 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 z 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 z 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�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 e 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 literal 0 HcmV?d00001 diff --git a/assets/sports-bfc825f3.svg b/assets/sports-bfc825f3.svg new file mode 100644 index 0000000000..bd4c97e3d1 --- /dev/null +++ b/assets/sports-bfc825f3.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/assets/statistics_data.html-bb56dc74.js b/assets/statistics_data.html-bb56dc74.js new file mode 100644 index 0000000000..88cb7b4159 --- /dev/null +++ b/assets/statistics_data.html-bb56dc74.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-22785fe3","path":"/docs/creativecenter/statistics_data.html","title":"统计与数据","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"UP主视频状态数据","slug":"up主视频状态数据","link":"#up主视频状态数据","children":[]},{"level":2,"title":"新版UP主视频数据比较","slug":"新版up主视频数据比较","link":"#新版up主视频数据比较","children":[]},{"level":2,"title":"UP主专栏状态数据","slug":"up主专栏状态数据","link":"#up主专栏状态数据","children":[]},{"level":2,"title":"视频数据增量趋势","slug":"视频数据增量趋势","link":"#视频数据增量趋势","children":[]},{"level":2,"title":"专栏数据增量趋势","slug":"专栏数据增量趋势","link":"#专栏数据增量趋势","children":[]},{"level":2,"title":"稿件操作来源占比情况","slug":"稿件操作来源占比情况","link":"#稿件操作来源占比情况","children":[]},{"level":2,"title":"播放来源占比情况(平台及方式)","slug":"播放来源占比情况-平台及方式","link":"#播放来源占比情况-平台及方式","children":[]},{"level":2,"title":"播放分布情况(粉丝与路人)","slug":"播放分布情况-粉丝与路人","link":"#播放分布情况-粉丝与路人","children":[]}],"git":{},"filePathRelative":"docs/creativecenter/statistics&data.md"}');export{l as data}; diff --git a/assets/statistics_data.html-d098ac65.js b/assets/statistics_data.html-d098ac65.js new file mode 100644 index 0000000000..e2a3c37a8c --- /dev/null +++ b/assets/statistics_data.html-d098ac65.js @@ -0,0 +1,290 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    统计与数据

    统计与数据次日中午12刷新

    UP主视频状态数据

    https://member.bilibili.com/x/web/index/stat

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    inc_coinnum新增投币数
    inc_elecnum新增充电数
    inc_favnum新增收藏数
    inc_likenum新增点赞数
    inc_sharenum新增分享数
    incr_clicknum新增播放数
    incr_dmnum新增弹幕数
    incr_fansnum新增粉丝数
    incr_replynum新增评论数
    total_clicknum总计播放数
    total_coinnum总计投币数
    total_dmnum总计弹幕数
    total_elecnum总计充电数
    total_fansnum总计粉丝数
    total_favnum总计收藏数
    total_likenum总计点赞数
    total_replynum总计评论数
    total_sharenum总计分享数

    示例:

    curl 'https://member.bilibili.com/x/web/index/stat' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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/archive_diagnose/compare

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    tnum时间戳可选
    sizenum比较最近的N条视频可选,默认5似乎没有最大值,或者最大值很大

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    listlist最近的视频

    data中的list项:

    [!TIP] 这里的数字一般都是百分比,小数点后保留两位,100代表1%,10000代表100%

    字段类型内容备注
    aidnumav号
    bvidstrbv号
    coverstr封面url
    titlestr标题
    pubtimenum发布时间
    durationnum视频长度(秒)
    playnum播放数
    vtnum未知
    likenum点赞数
    commentnum评论数
    dmnum弹幕数
    favnum收藏数
    coinnum投币数
    sharenum分享数
    full_play_rationum完播比,用户平均在百分之多少退出
    play_viewer_ratenum游客播放数,这个视频有多少是游客播放
    active_fans_ratenum粉丝观看率,多少粉丝看了这个视频
    active_fans_mednum?
    tm_ratenum封标点击率
    tm_rate_mednum你自己平均封标点击率
    tm_fan_simi_rate_mednum同类up粉丝封标点击率
    tm_viewer_simi_rate_mednum同类up游客封标点击率
    tm_fan_ratenum粉丝封标点击率
    tm_viewer_ratenum游客封标点击率
    tm_pass_ratenum封标点击率超过n%同类稿件
    tm_fan_pass_ratenum粉丝封标点击率超过n%同类稿件
    tm_viewer_pass_ratenum游客封标点击率超过n%同类稿件
    crash_ratenum3秒退出率
    crash_rate_mednum?
    crash_fan_simi_rate_mednum同类up粉丝3秒退出率
    crash_viewer_simi_rate_mednum同类up游客3秒退出率
    crash_fan_ratenum粉丝3秒退出率
    crash_viewer_ratenum游客3秒退出率
    interact_ratenum互动率
    interact_rate_mednum
    interact_fan_simi_rate_mednum同类up粉丝互动率
    interact_viewer_simi_rate_mednum同类up游客互动率
    interact_fan_ratenum粉丝互动率
    interact_viewer_ratenum游客互动率
    avg_play_timenum平均播放时间注意:此字段总是0,可能b站正在写代码,或者和播放量改播放时长有关?
    total_new_attention_cntnum涨粉
    play_trans_fan_ratenum播转粉率
    play_trans_fan_rate_mednum其他up平均播转粉率

    示例:

    curl 'https://member.bilibili.com/x/web/data/archive_diagnose/compare?size=10' \\
    +-b 'SESSDATA=xxx'
    +

    UP主专栏状态数据

    https://member.bilibili.com/x/web/data/article

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    viewnum总计阅读数
    replynum总计评论数
    likenum总计点赞数
    coinnum总计投币数
    favnum总计收藏数
    sharenum总计分享数
    incr_viewnum新增阅读数
    incr_replynum新增评论数
    incr_likenum新增点赞数
    incr_coinnum新增投币数
    incr_favnum新增收藏数
    incr_sharenum新增分享数

    示例:

    curl 'https://member.bilibili.com/x/web/data/article' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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/pandect

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    数据为前30天

    url参数:

    参数名类型内容必要性备注
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1播放
    2弹幕
    3评论
    4分享
    5投币
    6收藏
    7充电
    8点赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataarray趋势列表

    data数组:

    类型内容备注
    0obj1天前的数据
    nobj(n+1)天前的数据
    ……obj…………
    29obj30天前的数据最后一条

    data数组中的对象:

    字段类型内容备注
    date_keynum对应时间时间戳 前一天的8:00
    total_incnum增加数量意义为数据类型决定

    示例:

    查询30天前的视频播放增量趋势,可知2020-04-05的播放增量为462020-04-04的播放增量为58

    curl -G 'https://member.bilibili.com/x/web/data/pandect' \\
    +--data-urlencode 'type=1' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1阅读
    2评论
    3分享
    4投币
    5收藏
    6点赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataarray趋势列表

    data数组:

    类型内容备注
    0obj30天前的数据
    nobj(30-n)天前的数据
    ……obj…………
    29obj1天前的数据最后一条

    data数组中的对象:

    字段类型内容备注
    date_keynum对应时间时间戳 前一天的8:00
    total_incnum增加数量意义为数据类型决定

    示例:

    查询30天前的文章阅读增量趋势,可知2020-04-05的阅读增量为62020-04-04的阅读增量为6

    curl -G 'https://member.bilibili.com/x/web/data/article/thirty' \\
    +--data-urlencode 'type=1' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1播放
    2弹幕
    3评论
    4分享
    5投币
    6收藏
    7充电
    8点赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    {YYYYMMDD}obj上一天的情况字段名为日期

    data中的{YYYYMMDD}对象:

    字段类型内容备注
    arc_incarray稿件情况
    total_incnum总计增长情况
    type_rankobj分区排名情况

    {YYYYMMDD}中的arc_inc数组:

    类型内容备注
    0obj稿件1
    nobj稿件(n+1)
    ……obj…………

    {YYYYMMDD}中的arc_inc数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    bvidstr稿件bvid
    daytimenum统计时间时间戳
    incrnum稿件增长情况数
    interactivenum0作用尚不明确
    ptimenum稿件发布时间时间戳
    titlestr稿件标题

    {YYYYMMDD}中的type_rank对象:

    字段类型内容备注
    {分区名}num该排名数
    ……num…………

    示例:

    查询我的稿件来源占比情况

    curl -G 'https://member.bilibili.com/x/web/data/survey' \\
    +--data-urlencode 'type=1' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    page_sourceobj播放方式情况
    play_proportionobj播放平台情况

    data中的page_source对象:

    字段类型内容备注
    dynamicnum通过动态
    othernum其他方式
    related_videonum通过推荐列表
    searchnum通过搜索
    spacenum空间列表播放
    tenmanum天马(APP推荐信息流)来源

    data中的play_proportion对象:

    字段类型内容备注
    androidnum安卓端
    h5num移动端h5页面
    iosnumios端
    outnum站外
    pcnum电脑版网页

    示例:

    curl 'https://member.bilibili.com/x/web/data/playsource' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    periodobj提示信息
    viewer_areaobj播放地区情况
    viewer_baseobj播放数据情况

    data中的period对象:

    字段类型内容备注
    module_onestr???
    module_twostr???
    module_threestr???
    module_fourstr???

    data中的viewer_area对象:

    字段类型内容备注
    fanobj粉丝播放地区情况
    not_fanobj路人播放地区情况

    viewer_area中的fan对象:

    字段类型内容备注
    {行政区名}num该地区的粉丝播放量字段名为行政区名
    ……num…………

    viewer_area中的not_fan对象:

    字段类型内容备注
    {行政区名}num该地区的路人播放量字段名为行政区名
    ……num…………

    data中的viewer_base对象:

    字段类型内容备注
    fanobj粉丝播放数据情况
    not_fanobj路人播放数据情况

    viewer_base中的fan对象:

    字段类型内容备注
    malenum男性粉丝播放数
    femalenum女性粉丝播放数
    age_onenum0-16岁粉丝播放数
    age_twonum16-25岁粉丝播放数
    age_threenum25-40岁粉丝播放数
    age_fournum40+岁粉丝播放数
    plat_pcnumpc网页端粉丝播放数
    plat_h5num移动h5端粉丝播放数
    plat_outnum站外端粉丝播放数
    plat_iosnumios端粉丝播放数
    plat_androidnum安卓端粉丝播放数
    plat_other_appnum其他粉丝播放数

    viewer_base中的not_fan对象:

    字段类型内容备注
    malenum男性路人播放数
    femalenum女性路人播放数
    age_onenum0-16岁路人播放数
    age_twonum16-25岁路人播放数
    age_threenum25-40岁路人播放数
    age_fournum40+岁路人播放数
    plat_pcnumpc网页端路人播放数
    plat_h5num移动h5端路人播放数
    plat_outnum站外端路人播放数
    plat_iosnumios端路人播放数
    plat_androidnum安卓端路人播放数
    plat_other_appnum其他路人播放数

    示例:

    curl 'https://member.bilibili.com/x/web/data/base' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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
    +			}
    +		}
    +	}
    +}
    +
    `,150),o=[e];function d(r,l){return n(),s("div",null,o)}const u=t(p,[["render",d],["__file","statistics_data.html.vue"]]);export{u as default}; diff --git a/assets/status_number.html-074075bf.js b/assets/status_number.html-074075bf.js new file mode 100644 index 0000000000..5db2d7e482 --- /dev/null +++ b/assets/status_number.html-074075bf.js @@ -0,0 +1,74 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    用户状态数

    关系状态数

    https://api.bilibili.com/x/relation/stat

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum目标用户mid
    followingnum关注数
    whispernum悄悄关注数需要登录(Cookie或APP)
    未登录或非自己恒为0
    blacknum黑名单数需要登录(Cookie或APP)
    未登录或非自己恒为0
    followernum粉丝数

    示例:

    查询用户mid=332704117的关系状态数

    curl -G 'https://api.bilibili.com/x/relation/stat' \\
    +--data-urlencode 'vmid=332704117' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP登录TokenAPP方式必要
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    archiveobj视频播放量
    articleobj专栏阅读量
    likesnum获赞次数

    data中的archive对象:

    字段类型内容备注
    viewnum视频播放量

    data中的article对象:

    字段类型内容备注
    viewnum专栏阅读量

    示例:

    查询用户mid=456664753的UP主状态数

    curl -G 'https://api.bilibili.com/x/space/upstat' \\
    +--data-urlencode 'mid=456664753' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"archive": {
    +			"view": 213567370
    +		},
    +		"article": {
    +			"view": 3230808
    +		},
    +		"likes": 20295095
    +	}
    +}
    +

    用户导航栏状态数

    https://api.bilibili.com/x/space/navnum

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    web_locationstr333.999不必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    videonum投稿视频数
    banguminum追番数无视隐私设置
    cinemanum追剧数无视隐私设置
    channelobj视频列表数
    favouriteobj收藏夹数
    tagnum关注TAG数无视隐私设置
    articlenum投稿专栏数
    playlistnum0作用尚不明确
    albumnum投稿图文数
    audionum投稿音频数
    pugvnum投稿课程数
    uposnum动态数
    season_numnum视频合集数

    data中的channel对象:

    字段类型内容备注
    masternum视频列表数
    guestnum视频列表数

    data中的favourite对象:

    字段类型内容备注
    masternum全部收藏夹数需要登录(SESSDATA)
    只能查看自己的
    guestnum公开收藏夹数

    示例:

    查询用户mid=645769214的订阅&投稿状态数

    curl -G 'https://api.bilibili.com/x/space/navnum' \\
    +--data-urlencode 'mid=645769214'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "video": 34,
    +    "bangumi": 1,
    +    "cinema": 0,
    +    "channel": {
    +      "master": 5,
    +      "guest": 5
    +    },
    +    "favourite": {
    +      "master": 0,
    +      "guest": 0
    +    },
    +    "tag": 0,
    +    "article": 1,
    +    "playlist": 0,
    +    "album": 59,
    +    "audio": 0,
    +    "pugv": 0,
    +    "season_num": 1,
    +    "opus": 59
    +  }
    +}
    +

    相簿投稿数

    https://api.vc.bilibili.com/link_draw/v1/doc/upload_count

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    uidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    all_countnum相簿总数总数为以下三者之和
    draw_countnum发布绘画数
    photo_countnum发布摄影数
    daily_countnum发布日常(图片动态)数

    示例:

    查询用户mid=53456的投稿相簿数

    curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/upload_count' \\
    +--data-urlencode 'uid=53456'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "msg":"success",
    +    "message":"success",
    +    "data":{
    +        "all_count":92,
    +        "draw_count":5,
    +        "photo_count":0,
    +        "daily_count":87
    +    }
    +}
    +
    `,68),p=[d];function o(r,l){return s(),n("div",null,p)}const i=t(e,[["render",o],["__file","status_number.html.vue"]]);export{i as default}; diff --git a/assets/status_number.html-3b1e7ab4.js b/assets/status_number.html-3b1e7ab4.js new file mode 100644 index 0000000000..a479f87cf8 --- /dev/null +++ b/assets/status_number.html-3b1e7ab4.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-7e3f2e37","path":"/docs/audio/status_number.html","title":"音频状态数","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"歌曲状态数","slug":"歌曲状态数","link":"#歌曲状态数","children":[]}],"git":{},"filePathRelative":"docs/audio/status_number.md"}');export{t as data}; diff --git a/assets/status_number.html-67103aea.js b/assets/status_number.html-67103aea.js new file mode 100644 index 0000000000..570241f254 --- /dev/null +++ b/assets/status_number.html-67103aea.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-7da8e172","path":"/docs/video/status_number.html","title":"视频状态数","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"视频状态数(仅avid)","slug":"视频状态数-仅avid","link":"#视频状态数-仅avid","children":[]},{"level":2,"title":"视频状态数(bvid/avid)","slug":"视频状态数-bvid-avid","link":"#视频状态数-bvid-avid","children":[]}],"git":{},"filePathRelative":"docs/video/status_number.md"}');export{e as data}; diff --git a/assets/status_number.html-69cf8d68.js b/assets/status_number.html-69cf8d68.js new file mode 100644 index 0000000000..d6ab2ff3ca --- /dev/null +++ b/assets/status_number.html-69cf8d68.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-58c052cc","path":"/docs/user/status_number.html","title":"用户状态数","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"关系状态数","slug":"关系状态数","link":"#关系状态数","children":[]},{"level":2,"title":"UP主状态数","slug":"up主状态数","link":"#up主状态数","children":[]},{"level":2,"title":"用户导航栏状态数","slug":"用户导航栏状态数","link":"#用户导航栏状态数","children":[]},{"level":2,"title":"相簿投稿数","slug":"相簿投稿数","link":"#相簿投稿数","children":[]}],"git":{},"filePathRelative":"docs/user/status_number.md"}');export{e as data}; diff --git a/assets/status_number.html-c7e1d5ee.js b/assets/status_number.html-c7e1d5ee.js new file mode 100644 index 0000000000..0c321168a6 --- /dev/null +++ b/assets/status_number.html-c7e1d5ee.js @@ -0,0 +1,14 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    音频状态数

    歌曲状态数

    https://www.bilibili.com/audio/music-service-c/web/stat/song

    请求方式:GET

    唯缺投币数2333333

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    msgstr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    sidnum音频auid
    playnum播放次数
    collectnum收藏数
    commentnum评论数
    sharenum分享数

    示例:

    查询歌曲au15664的状态数

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/stat/song' \\
    +--data-urlencode 'sid=15664'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "success",
    +    "data": {
    +        "sid": 15664,
    +        "play": 1377390,
    +        "collect": 44340,
    +        "comment": 2756,
    +        "share": 4114
    +    }
    +}
    +
    `,16),o=[d];function p(r,c){return s(),n("div",null,o)}const i=t(e,[["render",p],["__file","status_number.html.vue"]]);export{i as default}; diff --git a/assets/status_number.html-e4b8a09a.js b/assets/status_number.html-e4b8a09a.js new file mode 100644 index 0000000000..ec96928677 --- /dev/null +++ b/assets/status_number.html-e4b8a09a.js @@ -0,0 +1,58 @@ +import{_ as t,o as s,c as n,e as a}from"./app-3168cb19.js";const e={},d=a(`

    视频状态数

    视频状态数(仅avid)

    该接口已失效

    https://api.bilibili.com/archive_stat/stat

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    40001:请求错误
    40003:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum稿件avid
    view正常:num
    屏蔽:str
    正常:播放次数
    屏蔽:"--"
    danmakunum弹幕条数
    replynum评论条数
    favoritenum收藏人数
    coinnum投币枚数
    sharenum分享次数
    now_ranknum0作用尚不明确
    his_ranknum历史最高排行
    likenum获赞次数
    dislikenum0作用尚不明确
    no_reprintnum禁止转载标志0:无
    1:禁止
    copyrightnum版权标志1:自制
    2:转载

    示例:

    查询视频av91572143的状态数

    avid方式:

    curl -G 'https://api.bilibili.com/archive_stat/stat' \\
    +--data-urlencode 'aid=91572143'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    40003:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum稿件avid
    bvidstr稿件bvid
    view正常:num
    屏蔽:str
    正常:播放次数
    屏蔽:"--"
    danmakunum弹幕条数
    replynum评论条数
    favoritenum收藏人数
    coinnum投币枚数
    sharenum分享次数
    now_ranknum0作用尚不明确
    his_ranknum历史最高排行
    likenum获赞次数
    dislikenum0作用尚不明确
    no_reprintnum禁止转载标志0:无
    1:禁止
    copyrightnum版权标志1:自制
    2:转载
    argue_msgstr警告信息默认为空
    evaluationstr视频评分默认为空

    示例:

    查询视频av2271112/BV1es411D7sW的状态数

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \\
    +--data-urlencode 'aid=2271112'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \\
    +--data-urlencode 'bvid=BV1es411D7sW'
    +
    查看响应示例:
    {
    +	"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时,则无法访问此接口:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \\
    +--data-urlencode 'aid=2271112' \\
    +-A '2333python2333'
    +
    查看响应示例:
    {
    +    "code":-412,
    +    "message":"请求被拦截",
    +    "ttl":1,
    +    "data":null
    +}
    +
    `,24),p=[d];function o(r,i){return s(),n("div",null,p)}const c=t(e,[["render",o],["__file","status_number.html.vue"]]);export{c as default}; diff --git a/assets/style-a7819745.css b/assets/style-a7819745.css new file mode 100644 index 0000000000..2e39305d21 --- /dev/null +++ b/assets/style-a7819745.css @@ -0,0 +1 @@ +:root{--back-to-top-z-index: 5;--back-to-top-color: #3eaf7c;--back-to-top-color-hover: #71cda3}.back-to-top{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;height:1.2rem;background-color:var(--back-to-top-color);-webkit-mask:url(/bilibili-API-collect/assets/back-to-top-8efcbe56.svg) no-repeat;mask:url(/bilibili-API-collect/assets/back-to-top-8efcbe56.svg) no-repeat;z-index:var(--back-to-top-z-index)}.back-to-top:hover{background-color:var(--back-to-top-color-hover)}@media (max-width: 959px){.back-to-top{display:none}}@media print{.back-to-top{display:none}}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}:root{--external-link-icon-color: #aaa}.external-link-icon{position:relative;display:inline-block;color:var(--external-link-icon-color);vertical-align:middle;top:-1px}@media print{.external-link-icon{display:none}}.external-link-icon-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}:root{--medium-zoom-z-index: 100;--medium-zoom-bg-color: #ffffff;--medium-zoom-opacity: 1}.medium-zoom-overlay{background-color:var(--medium-zoom-bg-color)!important;z-index:var(--medium-zoom-z-index)}.medium-zoom-overlay~img{z-index:calc(var(--medium-zoom-z-index) + 1)}.medium-zoom--opened .medium-zoom-overlay{opacity:var(--medium-zoom-opacity)}:root{--nprogress-color: #29d;--nprogress-z-index: 1031}#nprogress{pointer-events:none}#nprogress .bar{background:var(--nprogress-color);position:fixed;z-index:var(--nprogress-z-index);top:0;left:0;width:100%;height:2px}:root{--c-brand: #3eaf7c;--c-brand-light: #4abf8a;--c-bg: #ffffff;--c-bg-light: #f3f4f5;--c-bg-lighter: #eeeeee;--c-bg-dark: #ebebec;--c-bg-darker: #e6e6e6;--c-bg-navbar: var(--c-bg);--c-bg-sidebar: var(--c-bg);--c-bg-arrow: #cccccc;--c-text: #2c3e50;--c-text-accent: var(--c-brand);--c-text-light: #3a5169;--c-text-lighter: #4e6e8e;--c-text-lightest: #6a8bad;--c-text-quote: #999999;--c-border: #eaecef;--c-border-dark: #dfe2e5;--c-tip: #42b983;--c-tip-bg: var(--c-bg-light);--c-tip-title: var(--c-text);--c-tip-text: var(--c-text);--c-tip-text-accent: var(--c-text-accent);--c-warning: #ffc310;--c-warning-bg: #fffae3;--c-warning-bg-light: #fff3ba;--c-warning-bg-lighter: #fff0b0;--c-warning-border-dark: #f7dc91;--c-warning-details-bg: #fff5ca;--c-warning-title: #f1b300;--c-warning-text: #746000;--c-warning-text-accent: #edb100;--c-warning-text-light: #c1971c;--c-warning-text-quote: #ccab49;--c-danger: #f11e37;--c-danger-bg: #ffe0e0;--c-danger-bg-light: #ffcfde;--c-danger-bg-lighter: #ffc9c9;--c-danger-border-dark: #f1abab;--c-danger-details-bg: #ffd4d4;--c-danger-title: #ed1e2c;--c-danger-text: #660000;--c-danger-text-accent: #bd1a1a;--c-danger-text-light: #b5474d;--c-danger-text-quote: #c15b5b;--c-details-bg: #eeeeee;--c-badge-tip: var(--c-tip);--c-badge-warning: #ecc808;--c-badge-warning-text: var(--c-bg);--c-badge-danger: #dc2626;--c-badge-danger-text: var(--c-bg);--t-color: .3s ease;--t-transform: .3s ease;--code-bg-color: #282c34;--code-hl-bg-color: rgba(0, 0, 0, .66);--code-ln-color: #9e9e9e;--code-ln-wrapper-width: 3.5rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-code: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;--navbar-height: 3.6rem;--navbar-padding-v: .7rem;--navbar-padding-h: 1.5rem;--sidebar-width: 20rem;--sidebar-width-mobile: calc(var(--sidebar-width) * .82);--content-width: 740px;--homepage-width: 960px}.back-to-top{--back-to-top-color: var(--c-brand);--back-to-top-color-hover: var(--c-brand-light)}.DocSearch{--docsearch-primary-color: var(--c-brand);--docsearch-text-color: var(--c-text);--docsearch-highlight-color: var(--c-brand);--docsearch-muted-color: var(--c-text-quote);--docsearch-container-background: rgba(9, 10, 17, .8);--docsearch-modal-background: var(--c-bg-light);--docsearch-searchbox-background: var(--c-bg-lighter);--docsearch-searchbox-focus-background: var(--c-bg);--docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);--docsearch-hit-color: var(--c-text-light);--docsearch-hit-active-color: var(--c-bg);--docsearch-hit-background: var(--c-bg);--docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);--docsearch-footer-background: var(--c-bg)}.external-link-icon{--external-link-icon-color: var(--c-text-quote)}.medium-zoom-overlay{--medium-zoom-bg-color: var(--c-bg)}#nprogress{--nprogress-color: var(--c-brand)}.pwa-popup{--pwa-popup-text-color: var(--c-text);--pwa-popup-bg-color: var(--c-bg);--pwa-popup-border-color: var(--c-brand);--pwa-popup-shadow: 0 4px 16px var(--c-brand);--pwa-popup-btn-text-color: var(--c-bg);--pwa-popup-btn-bg-color: var(--c-brand);--pwa-popup-btn-hover-bg-color: var(--c-brand-light)}.search-box{--search-bg-color: var(--c-bg);--search-accent-color: var(--c-brand);--search-text-color: var(--c-text);--search-border-color: var(--c-border);--search-item-text-color: var(--c-text-lighter);--search-item-focus-bg-color: var(--c-bg-light)}html.dark{--c-brand: #3aa675;--c-brand-light: #349469;--c-bg: #22272e;--c-bg-light: #2b313a;--c-bg-lighter: #262c34;--c-bg-dark: #343b44;--c-bg-darker: #37404c;--c-text: #adbac7;--c-text-light: #96a7b7;--c-text-lighter: #8b9eb0;--c-text-lightest: #8094a8;--c-border: #3e4c5a;--c-border-dark: #34404c;--c-tip: #318a62;--c-warning: #e0ad15;--c-warning-bg: #2d2f2d;--c-warning-bg-light: #423e2a;--c-warning-bg-lighter: #44442f;--c-warning-border-dark: #957c35;--c-warning-details-bg: #39392d;--c-warning-title: #fdca31;--c-warning-text: #d8d96d;--c-warning-text-accent: #ffbf00;--c-warning-text-light: #ddb84b;--c-warning-text-quote: #ccab49;--c-danger: #fc1e38;--c-danger-bg: #39232c;--c-danger-bg-light: #4b2b35;--c-danger-bg-lighter: #553040;--c-danger-border-dark: #a25151;--c-danger-details-bg: #482936;--c-danger-title: #fc2d3b;--c-danger-text: #ea9ca0;--c-danger-text-accent: #fd3636;--c-danger-text-light: #d9777c;--c-danger-text-quote: #d56b6b;--c-details-bg: #323843;--c-badge-warning: var(--c-warning);--c-badge-warning-text: #3c2e05;--c-badge-danger: var(--c-danger);--c-badge-danger-text: #401416;--code-hl-bg-color: #363b46}html.dark .DocSearch{--docsearch-logo-color: var(--c-text);--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, .3);--docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);--docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, .5), 0 -4px 8px 0 rgba(0, 0, 0, .2)}html,body{padding:0;margin:0;background-color:var(--c-bg);transition:background-color var(--t-color)}html.dark{color-scheme:dark}html{font-size:16px}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem;color:var(--c-text)}a{font-weight:500;color:var(--c-text-accent);text-decoration:none;overflow-wrap:break-word}p a code{font-weight:400;color:var(--c-text-accent)}kbd{font-family:var(--font-family-code);color:var(--c-text);background:var(--c-bg-lighter);border:solid .15rem var(--c-border-dark);border-bottom:solid .25rem var(--c-border-dark);border-radius:.15rem;padding:0 .15em}code{font-family:var(--font-family-code);color:var(--c-text-lighter);padding:.25rem .5rem;margin:0;font-size:.85em;background-color:var(--c-bg-light);border-radius:3px;overflow-wrap:break-word;transition:background-color var(--t-color)}blockquote{font-size:1rem;color:var(--c-text-quote);border-left:.2rem solid var(--c-border-dark);margin:1rem 0;padding:.25rem 0 .25rem 1rem;overflow-wrap:break-word}blockquote>p{margin:0}ul,ol{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;overflow-wrap:break-word}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:none}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid var(--c-border);transition:border-color var(--t-color)}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media print{a.header-anchor{display:none}}a.header-anchor:hover{text-decoration:none}a.header-anchor:focus-visible{opacity:1}@media print{a[href^="http://"]:after,a[href^="https://"]:after{content:" (" attr(href) ") "}}p,ul,ol{line-height:1.7;overflow-wrap:break-word}hr{border:0;border-top:1px solid var(--c-border)}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto;transition:border-color var(--t-color)}tr{border-top:1px solid var(--c-border-dark);transition:border-color var(--t-color)}tr:nth-child(2n){background-color:var(--c-bg-light);transition:background-color var(--t-color)}tr:nth-child(2n) code{background-color:var(--c-bg-dark)}th,td{padding:.6em 1em;border:1px solid var(--c-border-dark);transition:border-color var(--t-color)}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid var(--c-bg-arrow)}.arrow.down{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--c-bg-arrow)}.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid var(--c-bg-arrow)}.arrow.left{border-top:4px solid transparent;border-bottom:4px solid transparent;border-right:6px solid var(--c-bg-arrow)}.badge{display:inline-block;font-size:14px;font-weight:600;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:var(--c-bg);vertical-align:top;transition:color var(--t-color),background-color var(--t-color)}.badge.tip{background-color:var(--c-badge-tip)}.badge.warning{background-color:var(--c-badge-warning);color:var(--c-badge-warning-text)}.badge.danger{background-color:var(--c-badge-danger);color:var(--c-badge-danger-text)}.badge+.badge{margin-left:5px}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:var(--font-family-code);font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#ec5975}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:#3eaf7c}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.375;padding:1.3rem 1.5rem;margin:.85rem 0;border-radius:6px;overflow:auto}.theme-default-content pre code,.theme-default-content pre[class*=language-] code{color:#fff;padding:0;background-color:transparent!important;border-radius:0;overflow-wrap:unset;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.theme-default-content .line-number{font-family:var(--font-family-code)}div[class*=language-]{position:relative;background-color:var(--code-bg-color);border-radius:6px}div[class*=language-]:before{content:attr(data-ext);position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:var(--code-ln-color)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent!important;position:relative;z-index:1}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.375}div[class*=language-] .highlight-lines .highlight-line{background-color:var(--code-hl-bg-color)}div[class*=language-]:not(.line-numbers-mode) .line-numbers{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlight-line{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlight-line:before{content:" ";position:absolute;z-index:2;left:0;top:0;display:block;width:var(--code-ln-wrapper-width);height:100%}div[class*=language-].line-numbers-mode pre{margin-left:var(--code-ln-wrapper-width);padding-left:1rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers{position:absolute;top:0;width:var(--code-ln-wrapper-width);text-align:center;color:var(--code-ln-color);padding-top:1.25rem;line-height:1.375;counter-reset:line-number}div[class*=language-].line-numbers-mode .line-numbers .line-number{position:relative;z-index:3;-webkit-user-select:none;-moz-user-select:none;user-select:none;height:1.375em}div[class*=language-].line-numbers-mode .line-numbers .line-number:before{counter-increment:line-number;content:counter(line-number);font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;top:0;left:0;width:var(--code-ln-wrapper-width);height:100%;border-radius:6px 0 0 6px;border-right:1px solid var(--code-hl-bg-color)}@media (max-width: 419px){.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.code-group__nav{margin-top:.85rem;margin-bottom:calc(-1.7rem - 6px);padding-bottom:calc(1.7rem - 6px);padding-left:10px;padding-top:10px;border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--code-bg-color)}.code-group__ul{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.code-group__nav-tab{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:#ffffffe6;font-weight:600}.code-group__nav-tab:focus{outline:none}.code-group__nav-tab:focus-visible{outline:1px solid rgba(255,255,255,.9)}.code-group__nav-tab-active{border-bottom:var(--c-brand) 1px solid}@media (max-width: 419px){.code-group__nav{margin-left:-1.5rem;margin-right:-1.5rem;border-radius:0}}.code-group-item{display:none}.code-group-item__active{display:block}.code-group-item>pre{background-color:orange}.custom-container{transition:color var(--t-color),border-color var(--t-color),background-color var(--t-color)}.custom-container .custom-container-title{font-weight:600}.custom-container .custom-container-title:not(:only-child){margin-bottom:-.4rem}.custom-container.tip,.custom-container.warning,.custom-container.danger{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-container.tip{border-color:var(--c-tip);background-color:var(--c-tip-bg);color:var(--c-tip-text)}.custom-container.tip .custom-container-title{color:var(--c-tip-title)}.custom-container.tip a{color:var(--c-tip-text-accent)}.custom-container.tip code{background-color:var(--c-bg-dark)}.custom-container.warning{border-color:var(--c-warning);background-color:var(--c-warning-bg);color:var(--c-warning-text)}.custom-container.warning .custom-container-title{color:var(--c-warning-title)}.custom-container.warning a{color:var(--c-warning-text-accent)}.custom-container.warning blockquote{border-left-color:var(--c-warning-border-dark);color:var(--c-warning-text-quote)}.custom-container.warning code{color:var(--c-warning-text-light);background-color:var(--c-warning-bg-light)}.custom-container.warning details{background-color:var(--c-warning-details-bg)}.custom-container.warning details code{background-color:var(--c-warning-bg-lighter)}.custom-container.warning .external-link-icon{--external-link-icon-color: var(--c-warning-text-quote)}.custom-container.danger{border-color:var(--c-danger);background-color:var(--c-danger-bg);color:var(--c-danger-text)}.custom-container.danger .custom-container-title{color:var(--c-danger-title)}.custom-container.danger a{color:var(--c-danger-text-accent)}.custom-container.danger blockquote{border-left-color:var(--c-danger-border-dark);color:var(--c-danger-text-quote)}.custom-container.danger code{color:var(--c-danger-text-light);background-color:var(--c-danger-bg-light)}.custom-container.danger details{background-color:var(--c-danger-details-bg)}.custom-container.danger details code{background-color:var(--c-danger-bg-lighter)}.custom-container.danger .external-link-icon{--external-link-icon-color: var(--c-danger-text-quote)}.custom-container.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:var(--c-details-bg)}.custom-container.details code{background-color:var(--c-bg-darker)}.custom-container.details h4{margin-top:0}.custom-container.details figure:last-child,.custom-container.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-container.details summary{outline:none;cursor:pointer}.home{padding:var(--navbar-height) 2rem 0;max-width:var(--homepage-width);margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero h1,.home .hero .description,.home .hero .actions{margin:1.8rem auto}.home .hero .actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:var(--c-text-lightest)}.home .hero .action-button{display:inline-block;font-size:1.2rem;padding:.8rem 1.6rem;border-width:2px;border-style:solid;border-radius:4px;transition:background-color var(--t-color);box-sizing:border-box}.home .hero .action-button.primary{color:var(--c-bg);background-color:var(--c-brand);border-color:var(--c-brand)}.home .hero .action-button.primary:hover{background-color:var(--c-brand-light)}.home .hero .action-button.secondary{color:var(--c-brand);background-color:var(--c-bg);border-color:var(--c-brand)}.home .hero .action-button.secondary:hover{color:var(--c-bg);background-color:var(--c-brand-light)}.home .features{border-top:1px solid var(--c-border);transition:border-color var(--t-color);padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:var(--c-text-light)}.home .feature p{color:var(--c-text-lighter)}.home .theme-default-content{padding:0;margin:0}.home .footer{padding:2.5rem;border-top:1px solid var(--c-border);text-align:center;color:var(--c-text-lighter);transition:border-color var(--t-color)}@media (max-width: 719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width: 419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero h1,.home .hero .description,.home .hero .actions{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.page{padding-top:var(--navbar-height);padding-left:var(--sidebar-width)}.navbar{position:fixed;z-index:20;top:0;left:0;right:0;height:var(--navbar-height);box-sizing:border-box;border-bottom:1px solid var(--c-border);background-color:var(--c-bg-navbar);transition:background-color var(--t-color),border-color var(--t-color)}.sidebar{font-size:16px;width:var(--sidebar-width);position:fixed;z-index:10;margin:0;top:var(--navbar-height);left:0;bottom:0;box-sizing:border-box;border-right:1px solid var(--c-border);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--c-brand) var(--c-border);background-color:var(--c-bg-sidebar);transition:transform var(--t-transform),background-color var(--t-color),border-color var(--t-color)}.sidebar::-webkit-scrollbar{width:7px}.sidebar::-webkit-scrollbar-track{background-color:var(--c-border)}.sidebar::-webkit-scrollbar-thumb{background-color:var(--c-brand)}.sidebar-mask{position:fixed;z-index:9;top:0;left:0;width:100vw;height:100vh;display:none}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(1){transform:rotate(45deg) translate3d(5.5px,5.5px,0)}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(2){transform:scale3d(0,1,1)}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(3){transform:rotate(-45deg) translate3d(6px,-6px,0)}.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(1),.theme-container.sidebar-open .navbar>.toggle-sidebar-button .icon span:nth-child(3){transform-origin:center}.theme-container.no-navbar .theme-default-content h1,.theme-container.no-navbar .theme-default-content h2,.theme-container.no-navbar .theme-default-content h3,.theme-container.no-navbar .theme-default-content h4,.theme-container.no-navbar .theme-default-content h5,.theme-container.no-navbar .theme-default-content h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .page{padding-top:0}.theme-container.no-navbar .sidebar{top:0}.theme-container.no-sidebar .sidebar{display:none}@media (max-width: 719px){.theme-container.no-sidebar .sidebar{display:block}}.theme-container.no-sidebar .page{padding-left:0}.theme-default-content a:hover{text-decoration:underline}.theme-default-content img{max-width:100%}.theme-default-content h1,.theme-default-content h2,.theme-default-content h3,.theme-default-content h4,.theme-default-content h5,.theme-default-content h6{margin-top:calc(.5rem - var(--navbar-height));padding-top:calc(1rem + var(--navbar-height));margin-bottom:0}.theme-default-content h1:first-child,.theme-default-content h2:first-child,.theme-default-content h3:first-child,.theme-default-content h4:first-child,.theme-default-content h5:first-child,.theme-default-content h6:first-child{margin-bottom:1rem}.theme-default-content h1:first-child+p,.theme-default-content h1:first-child+pre,.theme-default-content h1:first-child+.custom-container,.theme-default-content h2:first-child+p,.theme-default-content h2:first-child+pre,.theme-default-content h2:first-child+.custom-container,.theme-default-content h3:first-child+p,.theme-default-content h3:first-child+pre,.theme-default-content h3:first-child+.custom-container,.theme-default-content h4:first-child+p,.theme-default-content h4:first-child+pre,.theme-default-content h4:first-child+.custom-container,.theme-default-content h5:first-child+p,.theme-default-content h5:first-child+pre,.theme-default-content h5:first-child+.custom-container,.theme-default-content h6:first-child+p,.theme-default-content h6:first-child+pre,.theme-default-content h6:first-child+.custom-container{margin-top:2rem}@media (max-width: 959px){.sidebar{font-size:15px;width:var(--sidebar-width-mobile)}.page{padding-left:var(--sidebar-width-mobile)}}@media (max-width: 719px){.sidebar{top:0;padding-top:var(--navbar-height);transform:translate(-100%)}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translate(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width: 419px){h1{font-size:1.9rem}}.navbar{--navbar-line-height: calc( var(--navbar-height) - 2 * var(--navbar-padding-v) );padding:var(--navbar-padding-v) var(--navbar-padding-h);line-height:var(--navbar-line-height)}.navbar .logo{height:var(--navbar-line-height);margin-right:var(--navbar-padding-v);vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:var(--c-text);position:relative}.navbar .navbar-items-wrapper{display:flex;position:absolute;box-sizing:border-box;top:var(--navbar-padding-v);right:var(--navbar-padding-h);height:var(--navbar-line-height);padding-left:var(--navbar-padding-h);white-space:nowrap;font-size:.9rem}.navbar .navbar-items-wrapper .search-box{flex:0 0 auto;vertical-align:top}@media screen and (max-width: 719px){.navbar{padding-left:4rem}.navbar .site-name{display:block;width:calc(100vw - 11rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.navbar .can-hide{display:none}}.navbar-items{display:inline-block}@media print{.navbar-items{display:none}}.navbar-items a{display:inline-block;line-height:1.4rem;color:inherit}.navbar-items a:hover,.navbar-items a.router-link-active{color:var(--c-text)}.navbar-items .navbar-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:var(--navbar-line-height)}.navbar-items .navbar-item:first-child{margin-left:0}.navbar-items .navbar-item>a:hover,.navbar-items .navbar-item>a.router-link-active{margin-bottom:-2px;border-bottom:2px solid var(--c-text-accent)}@media (max-width: 719px){.navbar-items .navbar-item{margin-left:0}.navbar-items .navbar-item>a:hover,.navbar-items .navbar-item>a.router-link-active{margin-bottom:0;border-bottom:none}.navbar-items a:hover,.navbar-items a.router-link-active{color:var(--c-text-accent)}}.toggle-sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}.toggle-sidebar-button .icon{display:flex;flex-direction:column;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;cursor:inherit}.toggle-sidebar-button .icon span{display:inline-block;width:100%;height:2px;border-radius:2px;background-color:var(--c-text);transition:transform var(--t-transform)}.toggle-sidebar-button .icon span:nth-child(2){margin:6px 0}@media screen and (max-width: 719px){.toggle-sidebar-button{display:block}}.toggle-color-mode-button{display:flex;margin:auto;margin-left:1rem;border:0;background:none;color:var(--c-text);opacity:.8;cursor:pointer}@media print{.toggle-color-mode-button{display:none}}.toggle-color-mode-button:hover{opacity:1}.toggle-color-mode-button .icon{width:1.25rem;height:1.25rem}.DocSearch{transition:background-color var(--t-color)}.navbar-dropdown-wrapper{cursor:pointer}.navbar-dropdown-wrapper .navbar-dropdown-title,.navbar-dropdown-wrapper .navbar-dropdown-title-mobile{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:var(--c-text)}.navbar-dropdown-wrapper .navbar-dropdown-title:hover,.navbar-dropdown-wrapper .navbar-dropdown-title-mobile:hover{border-color:transparent}.navbar-dropdown-wrapper .navbar-dropdown-title .arrow,.navbar-dropdown-wrapper .navbar-dropdown-title-mobile .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.navbar-dropdown-wrapper .navbar-dropdown-title-mobile{display:none;font-weight:600;font-size:inherit}.navbar-dropdown-wrapper .navbar-dropdown-title-mobile:hover{color:var(--c-text-accent)}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item{color:inherit;line-height:1.7rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle{margin:.45rem 0 0;border-top:1px solid var(--c-border);padding:1rem 0 .45rem;font-size:.9rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle>span{padding:0 1.5rem 0 1.25rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle>a{font-weight:inherit}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle>a.router-link-active:after{display:none}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subitem-wrapper{padding:0;list-style:none}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subitem-wrapper .navbar-dropdown-subitem{font-size:.9em}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a:hover,.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a.router-link-active{color:var(--c-text-accent)}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid var(--c-text-accent);border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item:first-child .navbar-dropdown-subtitle{margin-top:0;padding-top:0;border-top:0}.navbar-dropdown-wrapper.mobile.open .navbar-dropdown-title,.navbar-dropdown-wrapper.mobile.open .navbar-dropdown-title-mobile{margin-bottom:.5rem}.navbar-dropdown-wrapper.mobile .navbar-dropdown-title,.navbar-dropdown-wrapper.mobile .navbar-dropdown-title-mobile{display:none}.navbar-dropdown-wrapper.mobile .navbar-dropdown-title-mobile{display:block}.navbar-dropdown-wrapper.mobile .navbar-dropdown{transition:height .1s ease-out;overflow:hidden}.navbar-dropdown-wrapper.mobile .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle{border-top:0;margin-top:0;padding-top:0;padding-bottom:0}.navbar-dropdown-wrapper.mobile .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subtitle,.navbar-dropdown-wrapper.mobile .navbar-dropdown .navbar-dropdown-item>a{font-size:15px;line-height:2rem}.navbar-dropdown-wrapper.mobile .navbar-dropdown .navbar-dropdown-item .navbar-dropdown-subitem{font-size:14px;padding-left:1rem}.navbar-dropdown-wrapper:not(.mobile){height:1.8rem}.navbar-dropdown-wrapper:not(.mobile):hover .navbar-dropdown,.navbar-dropdown-wrapper:not(.mobile).open .navbar-dropdown{display:block!important}.navbar-dropdown-wrapper:not(.mobile).open:blur{display:none}.navbar-dropdown-wrapper:not(.mobile) .navbar-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:var(--c-bg-navbar);padding:.6rem 0;border:1px solid var(--c-border);border-bottom-color:var(--c-border-dark);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}.page{padding-bottom:2rem;display:block}.page .theme-default-content{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem;padding-top:0}@media (max-width: 959px){.page .theme-default-content{padding:2rem}}@media (max-width: 419px){.page .theme-default-content{padding:1.5rem}}.page-meta{max-width:var(--content-width);margin:0 auto;padding:1rem 2.5rem;overflow:auto}@media (max-width: 959px){.page-meta{padding:2rem}}@media (max-width: 419px){.page-meta{padding:1.5rem}}.page-meta .meta-item{cursor:default;margin-top:.8rem}.page-meta .meta-item .meta-item-label{font-weight:500;color:var(--c-text-lighter)}.page-meta .meta-item .meta-item-info{font-weight:400;color:var(--c-text-quote)}.page-meta .edit-link{display:inline-block;margin-right:.25rem}@media print{.page-meta .edit-link{display:none}}.page-meta .last-updated{float:right}@media (max-width: 719px){.page-meta .last-updated{font-size:.8em;float:none}.page-meta .contributors{font-size:.8em}}.page-nav{max-width:var(--content-width);margin:0 auto;padding:1rem 2.5rem 2rem;padding-bottom:0}@media (max-width: 959px){.page-nav{padding:2rem}}@media (max-width: 419px){.page-nav{padding:1.5rem}}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid var(--c-border);transition:border-color var(--t-color);padding-top:1rem;overflow:auto}.page-nav .prev a:before{content:"←"}.page-nav .next{float:right}.page-nav .next a:after{content:"→"}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .navbar-items{display:none;border-bottom:1px solid var(--c-border);transition:border-color var(--t-color);padding:.5rem 0 .75rem}.sidebar .navbar-items a{font-weight:600}.sidebar .navbar-items .navbar-item{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-items{padding:1.5rem 0}@media (max-width: 719px){.sidebar .navbar-items{display:block}.sidebar .navbar-items .navbar-dropdown-wrapper .navbar-dropdown .navbar-dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar .sidebar-items{padding:1rem 0}}.sidebar-item{cursor:default;border-left:.25rem solid transparent;color:var(--c-text)}.sidebar-item:focus-visible{outline-width:1px;outline-offset:-1px}.sidebar-item.active:not(p.sidebar-heading){font-weight:600;color:var(--c-text-accent);border-left-color:var(--c-text-accent)}.sidebar-item.sidebar-heading{transition:color .15s ease;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0}.sidebar-item.sidebar-heading+.sidebar-item-children{transition:height .1s ease-out;overflow:hidden;margin-bottom:.75rem}.sidebar-item.collapsible{cursor:pointer}.sidebar-item.collapsible .arrow{position:relative;top:-.12em;left:.5em}.sidebar-item:not(.sidebar-heading){font-size:1em;font-weight:400;display:inline-block;margin:0;padding:.35rem 1rem .35rem 2rem;line-height:1.4;width:100%;box-sizing:border-box}.sidebar-item:not(.sidebar-heading)+.sidebar-item-children{padding-left:1rem;font-size:.95em}.sidebar-item-children .sidebar-item-children .sidebar-item:not(.sidebar-heading){padding:.25rem 1rem .25rem 1.75rem}.sidebar-item-children .sidebar-item-children .sidebar-item:not(.sidebar-heading).active{font-weight:500;border-left-color:transparent}a.sidebar-heading+.sidebar-item-children .sidebar-item:not(.sidebar-heading).active{border-left-color:transparent}a.sidebar-item{cursor:pointer}a.sidebar-item:hover{color:var(--c-text-accent)}.table-of-contents .badge{vertical-align:middle}.dropdown-enter-from,.dropdown-leave-to{height:0!important}.fade-slide-y-enter-active{transition:all .2s ease}.fade-slide-y-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.fade-slide-y-enter-from,.fade-slide-y-leave-to{transform:translateY(10px);opacity:0}html.dark{--box-shadow: #0f0e0d;--card-shadow: rgba(0, 0, 0, .3);--black: #fff;--dark-grey: #999;--light-grey: #666;--white: #000;--grey3: #bbb;--grey12: #333;--grey14: #111}:root{--vp-bg: var(--c-bg, #fff);--vp-bgl: var(--c-bg-light, #f3f4f5);--vp-bglt: var(--c-bg-lighter, #eeeeee);--vp-c: var(--c-text, #2c3e50);--vp-cl: var(--c-text-light, #3a5169);--vp-clt: var(--c-text-lighter, #4e6e8e);--vp-brc: var(--c-border, #eaecef);--vp-brcd: var(--c-border-dark, #dfe2e5);--vp-tc: var(--c-brand, #3eaf7c);--vp-tcl: var(--c-brand-light, #4abf8a);--vp-ct: var(--t-color, .3s ease);--vp-tt: var(--t-transform, .3s ease);--box-shadow: #f0f1f2;--card-shadow: rgba(0, 0, 0, .15);--black: #000;--dark-grey: #666;--light-grey: #999;--white: #fff;--grey3: #333;--grey12: #bbb;--grey14: #eee}:root{--balloon-border-radius: 2px;--balloon-color: rgba(16, 16, 16, .95);--balloon-text-color: #fff;--balloon-font-size: 12px;--balloon-move: 4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{opacity:0;pointer-events:none;transition:all .18s ease-out .18s;text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:var(--balloon-text-color);border-radius:var(--balloon-border-radius);content:attr(aria-label);padding:.5em 1em;position:absolute;white-space:nowrap;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top-color:var(--balloon-color);opacity:0;pointer-events:none;transition:all .18s ease-out .18s;content:"";position:absolute;z-index:10}[aria-label][data-balloon-pos]:hover:before,[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-visible]:after,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after{opacity:1;pointer-events:none}[aria-label][data-balloon-pos].font-awesome:after{font-family:FontAwesome,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}[aria-label][data-balloon-pos][data-balloon-break]:after{white-space:pre}[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after{white-space:pre-line;word-break:break-word}[aria-label][data-balloon-pos][data-balloon-blunt]:before,[aria-label][data-balloon-pos][data-balloon-blunt]:after{transition:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:after{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:before{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:after{left:0}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:before{left:5px}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:after{right:0}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:before{right:5px}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:after,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:after{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:before,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos^=up]:before,[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{bottom:100%;transform-origin:top;transform:translateY(var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:before,[aria-label][data-balloon-pos][data-balloon-pos=up]:after{left:50%;transform:translate(-50%,var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before,[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{top:100%;transform:translateY(calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{margin-top:10px}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before{width:0;height:0;border:5px solid transparent;border-bottom-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=down]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:before{left:50%;transform:translate(-50%,calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:after{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:before{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after,[aria-label][data-balloon-pos][data-balloon-pos=left]:before{right:100%;top:50%;transform:translate(var(--balloon-move),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after{margin-right:10px}[aria-label][data-balloon-pos][data-balloon-pos=left]:before{width:0;height:0;border:5px solid transparent;border-left-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:before{left:100%;top:50%;transform:translate(calc(var(--balloon-move) * -1),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after{margin-left:10px}[aria-label][data-balloon-pos][data-balloon-pos=right]:before{width:0;height:0;border:5px solid transparent;border-right-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-length]:after{white-space:normal}[aria-label][data-balloon-pos][data-balloon-length=small]:after{width:80px}[aria-label][data-balloon-pos][data-balloon-length=medium]:after{width:150px}[aria-label][data-balloon-pos][data-balloon-length=large]:after{width:260px}[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:380px}@media screen and (max-width: 768px){[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:90vw}}[aria-label][data-balloon-pos][data-balloon-length=fit]:after{width:100%}:root{--copy-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--copied-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}div[class*=language-]>button.copy-code-button{border-width:0;background:transparent;position:absolute;outline:none;cursor:pointer}@media print{div[class*=language-]>button.copy-code-button{display:none}}div[class*=language-]>button.copy-code-button .copy-icon{background:currentcolor;-webkit-mask-image:var(--copy-icon);mask-image:var(--copy-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1em;mask-size:1em}div[class*=language-]>button.copy-code-button:not(.fancy){border-width:0;background:transparent;cursor:pointer;position:absolute;top:.5em;right:.5em;z-index:5;width:2.5rem;height:2.5rem;padding:0;border-radius:.5rem;opacity:0;transition:opacity .4s}div[class*=language-]>button.copy-code-button:not(.fancy):hover,div[class*=language-]>button.copy-code-button:not(.fancy).copied{background:var(--code-hl-bg-color, rgba(0, 0, 0, .66))}div[class*=language-]>button.copy-code-button:not(.fancy):focus,div[class*=language-]>button.copy-code-button:not(.fancy).copied{opacity:1}div[class*=language-]>button.copy-code-button:not(.fancy).copied:after{content:attr(data-copied);position:absolute;top:0;right:calc(100% + .25rem);display:block;height:1.25rem;padding:.625rem;border-radius:.5rem;background:var(--code-hl-bg-color, rgba(0, 0, 0, .66));color:var(--code-ln-color, #9e9e9e);font-weight:500;line-height:1.25rem;white-space:nowrap}div[class*=language-]>button.copy-code-button:not(.fancy) .copy-icon{width:1.25rem;height:1.25rem;padding:.625rem;color:var(--code-ln-color, #9e9e9e);font-size:1.25rem}div[class*=language-]>button.copy-code-button.fancy{right:-14px;bottom:-14px;z-index:5;width:2rem;height:2rem;padding:7px 8px;border-radius:50%;background:#339af0;color:#fff}@media (max-width: 419px){div[class*=language-]>button.copy-code-button.fancy{right:0;bottom:0;width:28px;height:28px;border-radius:50% 10% 0}}div[class*=language-]>button.copy-code-button.fancy:hover{background:#228be6}div[class*=language-]>button.copy-code-button.fancy .copy-icon{width:100%;height:100%;color:#fff;font-size:1.25rem}@media (max-width: 419px){div[class*=language-]>button.copy-code-button.fancy .copy-icon{position:relative;top:2px;left:2px}}div[class*=language-]>button.copy-code-button.copied .copy-icon{-webkit-mask-image:var(--copied-icon);mask-image:var(--copied-icon)}div[class*=language-]:hover:before{display:none}div[class*=language-]:hover>button.copy-code-button:not(.fancy){opacity:1}:root{--search-bg-color: #ffffff;--search-accent-color: #3eaf7c;--search-text-color: #2c3e50;--search-border-color: #eaecef;--search-item-text-color: #5d81a5;--search-item-focus-bg-color: #f3f4f5;--search-input-width: 8rem;--search-result-width: 20rem}.search-box{display:inline-block;position:relative;margin-left:1rem}@media print{.search-box{display:none}}.search-box input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:text;width:var(--search-input-width);height:2rem;color:var(--search-text-color);display:inline-block;border:1px solid var(--search-border-color);border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all ease .3s;background:var(--search-bg-color) url(/bilibili-API-collect/assets/search-0782d0d1.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:var(--search-accent-color)}.search-box .suggestions{background:var(--search-bg-color);width:var(--search-result-width);position:absolute;top:2rem;right:0;border:1px solid var(--search-border-color);border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion.focus{background-color:var(--search-item-focus-bg-color)}.search-box .suggestion.focus a{color:var(--search-accent-color)}.search-box .suggestion a{white-space:normal;color:var(--search-item-text-color)}.search-box .suggestion .page-title{font-weight:600}.search-box .suggestion .page-header{font-size:.9em;margin-left:.25em}@media (max-width: 719px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (max-width: 419px){.search-box input:focus{width:8rem}.search-box .suggestions{width:calc(100vw - 4rem);right:-.5rem}}.shields a[data-v-44d4f85c]{margin:auto .5em} diff --git a/assets/sub-c7668de6.svg b/assets/sub-c7668de6.svg new file mode 100644 index 0000000000..907fce8cc2 --- /dev/null +++ b/assets/sub-c7668de6.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/assets/suggest.html-244bfb39.js b/assets/suggest.html-244bfb39.js new file mode 100644 index 0000000000..4b95cd3482 --- /dev/null +++ b/assets/suggest.html-244bfb39.js @@ -0,0 +1,92 @@ +import{_ as s,o as t,c as n,e as a}from"./app-3168cb19.js";const p={},o=a(`

    搜索建议

    获取搜索建议关键词(web端)

    https://s.search.bilibili.com/main/suggest

    请求方式:GET

    搜索建议最多提供10个候选关键词

    搜索建议内容可为任意语言(中 英 日等....),中文拼音支持全拼联想词

    url参数:

    参数名类型内容必要性备注
    termstr需要获得建议的输入内容必要
    main_verstrv1非必要默认为 v1
    highlightstr任意, 无明显作用非必要默认为空
    funcstr函数?非必要默认为 suggest
    suggest_typestr建议类型?非必要默认为 accurate
    sub_typestr子类型?非必要默认为 tag
    useridnum本用户 mid非必要可能用于个性化推荐
    bangumi_acc_numnum番剧累积数?非必要默认为 1
    special_acc_numnum特殊累积数?非必要默认为 1
    topic_acc_numnum话题累积数?非必要默认为 1
    upuser_acc_numnumUP主累积数?非必要默认为 1
    tag_numnumTag 数?非必要默认为 10
    special_numnum特殊推荐数?非必要默认为 10
    bangumi_numnum番剧推荐数?非必要默认为 10
    upuser_numnumUP主推荐数?非必要默认为 3
    rndnum一个随机浮点数非必要Math.random() 生成?
    buvidstr同 Cookie 中 buvid3非必要
    spmidstr333.1007非必要

    json回复:

    根对象:

    字段类型内容备注
    exp_strstr实验字符串?作用尚不明确
    codenum返回值0:成功
    resultobj搜索建议结果
    stokenstr???作用尚不明确

    result对象:

    字段类型内容备注
    tagarray套了个娃

    result中的tag数组:

    类型内容备注
    0obj第1建议关键词
    nobj第(n+1)建议关键词按照相关程度与热度顺序
    9obj第10建议关键词最后一项

    tag数组中的对象:

    字段类型内容备注
    valuestr关键词内容
    refnum0作用尚不明确
    namestr显示内容带有 <em class="suggest_high_light"> 的 XML 标签
    spidnum5作用尚不明确
    typestr

    示例:

    获取关于 洛天依 的搜索建议

    curl -G 'https://s.search.bilibili.com/main/suggest' \\
    +--data-urlencode 'term=洛天依'
    +
    查看响应示例:
    {
    +  "exp_str": "106301_106700",
    +  "code": 0,
    +  "result": {
    +    "tag": [
    +      {
    +        "value": "洛天依",
    +        "term": "洛天依",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依十二周年",
    +        "term": "洛天依十二周年",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>十二周年",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依演唱会",
    +        "term": "洛天依演唱会",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>演唱会",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依手办",
    +        "term": "洛天依手办",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>手办",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依歌曲",
    +        "term": "洛天依歌曲",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>歌曲",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依童话镇",
    +        "term": "洛天依童话镇",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>童话镇",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依东京不太热",
    +        "term": "洛天依东京不太热",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>东京不太热",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依霜雪千年",
    +        "term": "洛天依霜雪千年",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>霜雪千年",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依生日会",
    +        "term": "洛天依生日会",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>生日会",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依生日",
    +        "term": "洛天依生日",
    +        "ref": 0,
    +        "name": "<em class=\\"suggest_high_light\\">洛天依</em>生日",
    +        "spid": 5,
    +        "type": ""
    +      }
    +    ]
    +  },
    +  "stoken": "4020133863501304726"
    +}
    +
    `,21),e=[o];function u(r,d){return t(),n("div",null,e)}const c=s(p,[["render",u],["__file","suggest.html.vue"]]);export{c as default}; diff --git a/assets/suggest.html-dd957e1a.js b/assets/suggest.html-dd957e1a.js new file mode 100644 index 0000000000..499564d376 --- /dev/null +++ b/assets/suggest.html-dd957e1a.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-ba17e9fe","path":"/docs/search/suggest.html","title":"搜索建议","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取搜索建议关键词(web端)","slug":"获取搜索建议关键词-web端","link":"#获取搜索建议关键词-web端","children":[]}],"git":{},"filePathRelative":"docs/search/suggest.md"}');export{e as data}; diff --git a/assets/summary.html-1f6071ea.js b/assets/summary.html-1f6071ea.js new file mode 100644 index 0000000000..632ce9e3c3 --- /dev/null +++ b/assets/summary.html-1f6071ea.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-edc6a97c","path":"/docs/video/summary.html","title":"视频AI总结","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取AI总结内容","slug":"获取ai总结内容","link":"#获取ai总结内容","children":[]},{"level":2,"title":"点赞&点踩摘要","slug":"点赞-点踩摘要","link":"#点赞-点踩摘要","children":[]}],"git":{},"filePathRelative":"docs/video/summary.md"}');export{e as data}; diff --git a/assets/summary.html-9ab442a0.js b/assets/summary.html-9ab442a0.js new file mode 100644 index 0000000000..63ef4b8e1c --- /dev/null +++ b/assets/summary.html-9ab442a0.js @@ -0,0 +1,74 @@ +import{_ as o,r as p,o as l,c as i,a as t,b as n,d as a,w as e,e as d}from"./app-3168cb19.js";const c="/bilibili-API-collect/assets/aiSummary-a0a0fc86.svg",u={},r=d('

    视频AI总结

    获取AI总结内容

    https://api.bilibili.com/x/web-interface/view/conclusion/get

    请求方式: GET

    ',5),b=t("p",null,[t("strong",null,"url参数:")],-1),m=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),k=t("tr",null,[t("td",null,"aid"),t("td",null,"num"),t("td",null,"稿件 avid"),t("td",null,"必要(可选)"),t("td",null,"avid与bvid任选一个")],-1),v=t("tr",null,[t("td",null,"bvid"),t("td",null,"str"),t("td",null,"稿件 bvid"),t("td",null,"必要(可选)"),t("td",null,"avid与bvid任选一个")],-1),h=t("tr",null,[t("td",null,"cid"),t("td",null,"num"),t("td",null,"视频 cid"),t("td",null,"必要"),t("td")],-1),_=t("tr",null,[t("td",null,"up_mid"),t("td",null,"num"),t("td",null,"UP主 mid"),t("td",null,"必要"),t("td")],-1),q=t("td",null,"w_rid",-1),y=t("td",null,"str",-1),g=t("td",null,"Wbi 签名",-1),f=t("td",null,"必要",-1),w=t("td",null,"wts",-1),x=t("td",null,"num",-1),j=t("td",null,"当前时间戳",-1),V=t("td",null,"必要",-1),S=d(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400:请求错误
    -403: 访问权限不足
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    codenum返回值-1: 不支持AI摘要(敏感内容等)或其他因素导致请求异常
    0: 有摘要
    1:无摘要(未识别到语音)
    model_resultobj摘要内容
    stidstr摘要 idcode=1且该字段为0时,则未进行 AI 总结,即添加总结队列
    code=1且该字段为空时未识别到语音
    statusnum(?)
    like_numnum点赞数默认为0
    dislike_numnum点踩数默认为0

    data中的model_result对象:

    字段类型内容备注
    result_typenum数据类型0: 没有摘要
    1:仅存着摘要总结
    2:存着摘要以及提纲
    summarystr视频摘要通常为一段概括整个视频内容的文本
    outline有数据时:array
    无数据时:null
    分段提纲通常为视频中叙述的各部分及其要点

    model_result对象中的outline数组:

    类型内容备注
    0obj总结分段1
    nobj总结分段(n+1)
    ……obj…………

    outline数组中的对象:

    字段类型内容备注
    titlestr分段标题段落内容的概括
    part_outlinearray分段要点当前分段中多个提到的细节
    timestampnum分段起始时间单位为秒

    outline数组中的对象中的part_outline数组:

    类型内容备注
    0obj分段要点1
    nobj分段要点(n+1)
    ……obj…………

    part_outline数组中的对象:

    字段类型内容备注
    timestampnum要点起始时间单位为秒
    contentstr小结内容其中一个分段的要点

    示例:

    得到视频BV1L94y1H7CVcid=1335073288)的摘要

    curl -G 'https://api.bilibili.com/x/web-interface/view/conclusion/get' \\
    +  --data-urlencode 'bvid=BV1L94y1H7CV' \\
    +  --data-urlencode 'cid=1335073288' \\
    +  --data-urlencode 'up_mid=297242063' \\
    +  --data-urlencode 'wts=1701546363' \\
    +  --data-urlencode 'w_rid=1073871926b3ccd99bd790f0162af634'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "code": 0,
    +    "model_result": {
    +      "result_type": 2,
    +      "summary": "在网上阅读时遇到错别字和语言梗的烦恼,以及正确使用语言的重要性。作者认为,我们每个人都应该有包容心,不掉渣,不纠正别人的错误,同时也需要明辨是非,规范使用语言。视频还提到了一些常见的语言梗和错误用法,呼吁大家不要过分使用网络词汇,而应该注重语言的艺术性和深度。最后,作者欢迎大家关注他的微信公众号。",
    +      "outline": [
    +        {
    +          "title": "现代人使用中文时面临的困境,包括错别字、用法不正确等问题,并呼吁大家规范使用中文。",
    +          "part_outline": [
    +            {
    +              "timestamp": 1,
    +              "content": "网友评论有错别字,勉强能看懂,但难受。"
    +            },
    +            {
    +              "timestamp": 39,
    +              "content": "重来一次,明辨是非。"
    +            },
    +            {
    +              "timestamp": 167,
    +              "content": "粉墨登场是贬义词,形容坏人打扮好老登场。"
    +            }
    +          ],
    +          "timestamp": 1
    +        },
    +        {
    +          "title": "网络词汇的过度使用导致语言生硬,以及对流行语言梗的短暂使用感到厌倦。",
    +          "part_outline": [
    +            {
    +              "timestamp": 241,
    +              "content": "网络词汇过分使用会误导别人,使规范词汇生硬"
    +            },
    +            {
    +              "timestamp": 270,
    +              "content": "以前的语言梗有深度,现在的流行梗很短命"
    +            },
    +            {
    +              "timestamp": 338,
    +              "content": "巨星之间需要化学反应的过程,前几场发挥欠佳"
    +            }
    +          ],
    +          "timestamp": 241
    +        }
    +      ]
    +    },
    +    "stid": "5117037934391059183",
    +    "status": 0,
    +    "like_num": 6,
    +    "dislike_num": 2
    +  }
    +}
    +

    点赞&点踩摘要

    https://api.bilibili.com/x/web-interface/view/conclusion/set

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    `,23),A=t("p",null,[t("strong",null,"url参数:")],-1),C=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),W=t("td",null,"w_rid",-1),B=t("td",null,"str",-1),L=t("td",null,"Wbi 签名",-1),T=t("td",null,"必要",-1),I=t("td",null,"wts",-1),E=t("td",null,"num",-1),H=t("td",null,"当前时间戳",-1),N=t("td",null,"必要",-1),P=d(`

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid与bvid任选一个
    bvidstr稿件 bvid必要(可选)avid与bvid任选一个
    cidnum稿件 cid必要
    up_midnumUP主 mid非必要
    stidnum摘要 id必要
    like_statenum执行操作必要1: 点赞
    2: 取消点赞
    3: 点踩
    4: 取消点踩
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    65002:origin id 错误
    65004:取消赞失败 未点赞过
    65005:取消踩失败 未点踩过
    65006: 已赞过
    65007:已踩过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为视频BV1L94y1H7CVcid=1335073288)的摘要点赞

    curl 'https://api.bilibili.com/x/web-interface/view/conclusion/set?w_rid=edb471fc926646ef3889a80488166b66&wts=1700358953' \\
    +  --data-urlencode 'bvid=BV1L94y1H7CV' \\
    +  --data-urlencode 'cid=1335073288' \\
    +  --data-urlencode 'up_mid=297242063' \\
    +  --data-urlencode 'stid=5117037934391059183' \\
    +  --data-urlencode '&like_state=1' \\
    +  --data-urlencode 'csrf=xxx' \\
    +  -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +
    `,9);function R(D,G){const s=p("RouterLink");return l(),i("div",null,[r,t("p",null,[n("鉴权方式:"),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})]),b,t("table",null,[m,t("tbody",null,[k,v,h,_,t("tr",null,[q,y,g,f,t("td",null,[n("详见 "),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})])]),t("tr",null,[w,x,j,V,t("td",null,[n("详见 "),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})])])])]),S,t("p",null,[n("鉴权方式:"),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})]),A,t("table",null,[C,t("tbody",null,[t("tr",null,[W,B,L,T,t("td",null,[n("详见 "),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})])]),t("tr",null,[I,E,H,N,t("td",null,[n("详见 "),a(s,{to:"/docs/misc/sign/wbi.html"},{default:e(()=>[n("Wbi 签名")]),_:1})])])])]),P])}const F=o(u,[["render",R],["__file","summary.html.vue"]]);export{F as default}; diff --git a/assets/tag_dynamics.html-4e6ea181.js b/assets/tag_dynamics.html-4e6ea181.js new file mode 100644 index 0000000000..fd4ebae4c0 --- /dev/null +++ b/assets/tag_dynamics.html-4e6ea181.js @@ -0,0 +1,7797 @@ +import{_ as e,r as u,o as c,c as l,a as t,b as n,d as o,w as p,e as s}from"./app-3168cb19.js";const i={},r=s('

    话题下特定动态信息

    获取包含置顶及热门的动态列表

    https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    topic_namestr话题名称必要(可选)topic_id与topic_name任选一个
    topic_idnum话题id必要(可选)topic_id与topic_name任选一个
    sortbynum排序方式非必要一般情况下带上参数2,在部分话题中使用可以排除热门部分
    offsetnum偏移值非必要可用于偏移显示的动态列表(为0时获取不包含置顶及热门的最新动态)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    attentionsobj当前登录账户关注列表(仅在传递了登录信息时出现)
    cardsarray动态列表
    founder_uidnum0作用尚不明确
    has_morenum当前话题是否有额外的动态0:无额外动态
    1:有额外动态
    is_drawer_topicnum0作用尚不明确
    offsetstr接下来获取列表时的偏移值一般为当前获取的话题列表下最后一个动态id
    _gt_num0作用尚不明确

    data中的cards数组:

    类型内容备注
    0obj第1条动态卡片
    nobj第(n+1)条动态卡片
    ……obj…………

    data中的cards数组中的对象:

    ',14),q=s(`

    示例:

    获取话题哔哩哔哩漫画(话题id7539944)的当前动态列表(包含置顶&热门)

    topic_name方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics' \\
    +--data-urlencode 'topic_name=哔哩哔哩漫画&sortby=2'
    +

    topic_id方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics' \\
    +--data-urlencode 'topic_id=7539944&sortby=2'
    +
    查看响应示例:
    {
    +    "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_namestr话题名称必要(可选)topic_id与topic_name任选一个
    topic_idnum话题id必要(可选)topic_id与topic_name任选一个
    offset_dynamic_idnum偏移值必要可用于偏移显示的动态列表(为0时获取最新动态)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    attentionsobj当前登录账户关注列表(仅在传递了登录信息时出现)
    cardsarray动态列表
    has_morenum当前话题是否有额外的动态0:无额外动态
    1:有额外动态
    offsetstr接下来获取列表时的偏移值一般为当前获取的话题列表下最后一个动态id
    _gt_num0作用尚不明确

    data中的cards数组:

    类型内容备注
    0obj第1条动态卡片
    nobj第(n+1)条动态卡片
    ……obj…………

    data中的cards数组中的对象:

    `,20),k=s(`

    示例:

    获取话题哔哩哔哩漫画(话题id7539944)的当前动态列表

    topic_name方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history' \\
    +--data-urlencode 'topic_name=哔哩哔哩漫画&offset_dynamic_id=0'
    +

    topic_id方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history' \\
    +--data-urlencode 'topic_id=7539944&offset_dynamic_id=0'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    `,7);function d(v,m){const a=u("RouterLink");return c(),l("div",null,[r,t("p",null,[n("基本同「"),o(a,{to:"/docs/dynamic/get_dynamic_detail.html"},{default:p(()=>[n("获取特定动态卡片信息")]),_:1}),n("」中的data对象")]),q,t("p",null,[n("基本同「"),o(a,{to:"/docs/dynamic/get_dynamic_detail.html"},{default:p(()=>[n("获取特定动态卡片信息")]),_:1}),n("」中的data对象")]),k])}const y=e(i,[["render",d],["__file","tag_dynamics.html.vue"]]);export{y as default}; diff --git a/assets/tag_dynamics.html-5123e50e.js b/assets/tag_dynamics.html-5123e50e.js new file mode 100644 index 0000000000..ec4333b57e --- /dev/null +++ b/assets/tag_dynamics.html-5123e50e.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-fc18a416","path":"/docs/dynamic/tag_dynamics.html","title":"话题下特定动态信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取包含置顶及热门的动态列表","slug":"获取包含置顶及热门的动态列表","link":"#获取包含置顶及热门的动态列表","children":[]},{"level":2,"title":"获取历史动态列表","slug":"获取历史动态列表","link":"#获取历史动态列表","children":[]}],"git":{},"filePathRelative":"docs/dynamic/tag_dynamics.md"}');export{t as data}; diff --git a/assets/tags.html-07cf4faf.js b/assets/tags.html-07cf4faf.js new file mode 100644 index 0000000000..c0a6462609 --- /dev/null +++ b/assets/tags.html-07cf4faf.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-1ae1971e","path":"/docs/video/tags.html","title":"视频TAG","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取视频TAG信息","slug":"获取视频tag信息","link":"#获取视频tag信息","children":[]},{"level":2,"title":"点赞&取消点赞视频TAG","slug":"点赞-取消点赞视频tag","link":"#点赞-取消点赞视频tag","children":[]},{"level":2,"title":"点踩&取消点踩视频TAG","slug":"点踩-取消点踩视频tag","link":"#点踩-取消点踩视频tag","children":[]}],"git":{},"filePathRelative":"docs/video/tags.md"}');export{t as data}; diff --git a/assets/tags.html-6bacf551.js b/assets/tags.html-6bacf551.js new file mode 100644 index 0000000000..f22d9e6ae2 --- /dev/null +++ b/assets/tags.html-6bacf551.js @@ -0,0 +1,138 @@ +import{_ as n,o as s,c as t,e as a}from"./app-3168cb19.js";const p={},e=a(`

    视频TAG

    获取视频TAG信息

    https://api.bilibili.com/x/tag/archive/tags

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarrayTAG列表无TAG为空

    data数组:

    类型内容备注
    0obj第1个TAG
    nobj第(n+1)个TAG
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    tag_idnumtag_id
    tag_namestrTAG名称
    coverstrTAG图片url
    head_coverstrTAG页面头图url
    contentstrTAG介绍
    short_contentstrTAG简介
    typenum???
    statenum0
    ctimenum创建时间时间戳
    countobj状态数
    is_attennum是否关注0:未关注
    1:已关注
    需要登录(Cookie)
    未登录为0
    likesnum0作用尚不明确
    hatesnum0作用尚不明确
    attributenum0作用尚不明确
    likednum是否已经点赞0:未点赞
    1:已点赞
    需要登录(Cookie)
    未登录为0
    hatednum是否已经点踩0:未点踩
    1:已点踩
    需要登录(Cookie)
    未登录为0
    extra_attrnum? ? ?

    data数组中的对象中的count对象:

    字段类型内容备注
    viewnum0作用尚不明确
    usenum视频添加TAG数
    attennumTAG关注

    示例:

    查询视频av89772773/BV1M741177Kg的TAG

    avid方式:

    curl -G 'https://api.bilibili.com/x/tag/archive/tags' \\
    +--data-urlencode 'aid=89772773' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/tag/archive/tags' \\
    +--data-urlencode 'bvid=BV1M741177Kg' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    aidnum稿件avid必要
    tag_idnumtag_id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为视频av89772773的TAG12620189点赞

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    点踩&取消点踩视频TAG

    https://api.bilibili.com/x/tag/archive/hate2

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    重复访问为取消

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件avid必要
    tag_idnumtag_id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为视频av89772773的TAG7520816点踩

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,51),o=[e];function r(c,l){return s(),t("div",null,o)}const d=n(p,[["render",r],["__file","tags.html.vue"]]);export{d as default}; diff --git a/assets/tech-8f2eb72e.svg b/assets/tech-8f2eb72e.svg new file mode 100644 index 0000000000..4c3795b1cd --- /dev/null +++ b/assets/tech-8f2eb72e.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/assets/teenager_mode.html-a693181f.js b/assets/teenager_mode.html-a693181f.js new file mode 100644 index 0000000000..214b7ae9dc --- /dev/null +++ b/assets/teenager_mode.html-a693181f.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-02b431cb","path":"/docs/teenager/teenager_mode.html","title":"青少年模式","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"开启/关闭","slug":"开启-关闭","link":"#开启-关闭","children":[]}],"git":{},"filePathRelative":"docs/teenager/teenager_mode.md"}');export{e as data}; diff --git a/assets/teenager_mode.html-b7bd4838.js b/assets/teenager_mode.html-b7bd4838.js new file mode 100644 index 0000000000..c0b2e05dee --- /dev/null +++ b/assets/teenager_mode.html-b7bd4838.js @@ -0,0 +1,33 @@ +import{_ as a,r as e,o as d,c as o,a as t,b as n,d as p,w as r,e as l}from"./app-3168cb19.js";const i={},c=t("h1",{id:"青少年模式",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#青少年模式","aria-hidden":"true"},"#"),n(" 青少年模式")],-1),u=t("h2",{id:"开启-关闭",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#开启-关闭","aria-hidden":"true"},"#"),n(" 开启/关闭")],-1),m=t("blockquote",null,[t("p",null,"https://app.bilibili.com/x/v2/account/teenagers/update")],-1),v=t("p",null,[t("em",null,"请求方式:POST")],-1),k=l(`

    POST参数:

    参数名类型内容必要性备注
    appkeystrAPP密钥APP必要
    tsnum当前时间戳APP必要
    signstrAPP签名APP必要
    access_keystrAPP登录TokenAPP必要
    device_modelstr设备 ModelAPP必要
    channelstrAPP下载渠道APP必要比如yingyongbao
    mobi_appstrAPP 包类型APP必要
    platformstr平台类型APP必要android
    c_localestr语言非必要zh_CN
    s_localestr语言非必要zh_CN
    statisticsstr?必要一般固定为{"appId":1,"platform":3,"version":"7.27.0","abtest":""},非key-value入参需要转URL编码
    pwdnum密码必要开启时为4位,关闭时必须为空
    teenagers_modenum开启/关闭模式必要0为开启,1为关闭
    teenagers_statusnum当前模式状态必要0为已经开启,1为目前关闭

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例: 关闭本账号的青少年模式(pwd=&teenagers_mode=1&teenagers_status=0)

    curl --location 'https://app.bilibili.com/x/v2/account/teenagers/update' \\
    +--header 'Device-Id: 你的设备id' \\
    +--header 'Fp_local: 你的本地设备指纹' \\
    +--header 'Fp_remote: 你的远程设备指纹' \\
    +--header 'Session_id: 会话id' \\
    +--header 'App-Key: android' \\
    +--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \\
    +--data-urlencode 'access_key=你的access_key' \\
    +--data-urlencode 'appkey=1d8b6e7d45233436' \\
    +--data-urlencode 'build=6270200' \\
    +--data-urlencode 'c_locale=zh_CN' \\
    +--data-urlencode 'channel=yingyongbao' \\
    +--data-urlencode 'device_model=samsung%257CSM-G955N' \\
    +--data-urlencode 'mobi_app=android' \\
    +--data-urlencode 'platform=android' \\
    +--data-urlencode 's_locale=zh_CN' \\
    +--data-urlencode 'statistics=%257B%2522appId%2522%253A1%252C%2522platform%2522%253A3%252C%2522version%2522%253A%25226.27.0%2522%252C%2522abtest%2522%253A%2522%2522%257D' \\
    +--data-urlencode 'pwd=' \\
    +--data-urlencode 'teenagers_mode=1' \\
    +--data-urlencode 'teenagers_status=0' \\
    +--data-urlencode 'ts=1699301298' \\
    +--data-urlencode 'sign=0666c38cb79691c4a0d9570a0669ec96' \\
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    pwd有数值时

    {
    +    "code": -400,
    +    "message": "关闭时密码必须为空",
    +    "ttl": 1
    +}
    +
    `,8);function b(h,g){const s=e("RouterLink");return d(),o("div",null,[c,u,m,v,t("p",null,[n("认证方式:APP(详见"),p(s,{to:"/docs/misc/device_identity.html"},{default:r(()=>[n("设备各类标识算法")]),_:1}),n(")")]),k])}const P=a(i,[["render",b],["__file","teenager_mode.html.vue"]]);export{P as default}; diff --git a/assets/teleplay-1f3272a8.svg b/assets/teleplay-1f3272a8.svg new file mode 100644 index 0000000000..a6a39afd10 --- /dev/null +++ b/assets/teleplay-1f3272a8.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/thumbup.html-0fc03e12.js b/assets/thumbup.html-0fc03e12.js new file mode 100644 index 0000000000..80ea880d8d --- /dev/null +++ b/assets/thumbup.html-0fc03e12.js @@ -0,0 +1,42 @@ +import{_ as s,o as n,c as t,e as a}from"./app-3168cb19.js";const e={},o=a(`

    弹幕点赞查询

    查询指定dmid的点赞数

    https://api.bilibili.com/x/v2/dm/thumbup/stats

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    oidnum视频 cid必要
    idsnums欲查询的弹幕 dmid必要多个 id 之间用,分隔

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj弹幕 id 与之对应数据的 Map

    data对象:

    字段类型内容备注
    {弹幕 dmid}obj{弹幕 dmid} 对应的点赞信息

    {弹幕 dmid}对象:

    字段类型内容备注
    likesnum对应弹幕所获得的点赞数
    user_likenum当前用户是否点赞0:未点赞
    1:已点赞
    需要登录(Cookie 或 APP)
    id_strstr弹幕 dmid 字符串形式
    show_thresholdnum(?)
    reply_countnum(?)
    gray_release_controlobj(?)

    gray_release_control对象:

    字段类型内容备注
    show_dm_replybool(?)

    示例:

    获取视频 BV1AP411d7Qa 1P(cid=1131648710)下的几个弹幕 dmid1318231376180646144,1318231518484950784,1318231736680887808

    curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \\
    +	--data-urlencode 'oid=1131648710' \\
    +	--data-urlencode 'ids=1318231376180646144,1318231518484950784,1318231736680887808' \\
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "1318231376180646144": {
    +            "likes": 0,
    +            "user_like": 0,
    +            "id_str": "1318231376180646144",
    +            "show_threshold": 10,
    +            "reply_count": 0,
    +            "gray_release_control": {
    +                "show_dm_reply": false
    +            }
    +        },
    +        "1318231518484950784": {
    +            "likes": 0,
    +            "user_like": 0,
    +            "id_str": "1318231518484950784",
    +            "show_threshold": 10,
    +            "reply_count": 0,
    +            "gray_release_control": {
    +                "show_dm_reply": false
    +            }
    +        },
    +        "1318231736680887808": {
    +            "likes": 0,
    +            "user_like": 0,
    +            "id_str": "1318231736680887808",
    +            "show_threshold": 10,
    +            "reply_count": 0,
    +            "gray_release_control": {
    +                "show_dm_reply": false
    +            }
    +        }
    +    }
    +}
    +
    `,19),p=[o];function d(r,l){return n(),t("div",null,p)}const i=s(e,[["render",d],["__file","thumbup.html.vue"]]);export{i as default}; diff --git a/assets/thumbup.html-6ff33710.js b/assets/thumbup.html-6ff33710.js new file mode 100644 index 0000000000..f9cf2a56bd --- /dev/null +++ b/assets/thumbup.html-6ff33710.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-547b7003","path":"/docs/danmaku/thumbup.html","title":"弹幕点赞查询","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"查询指定dmid的点赞数","slug":"查询指定dmid的点赞数","link":"#查询指定dmid的点赞数","children":[]}],"git":{},"filePathRelative":"docs/danmaku/thumbup.md"}');export{t as data}; diff --git a/assets/time_stamp.html-64394855.js b/assets/time_stamp.html-64394855.js new file mode 100644 index 0000000000..6760e81c7a --- /dev/null +++ b/assets/time_stamp.html-64394855.js @@ -0,0 +1,27 @@ +import{_ as n,o as t,c as a,g as e,e as s}from"./app-3168cb19.js";const p={},o=s(`

    获取当前时间戳

    获取当前时间戳

    https://api.bilibili.com/x/report/click/now
    https://api.bilibili.com/x/click-interface/click/now

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    nownum当前的时间戳

    示例:

    curl 'https://api.bilibili.com/x/report/click/now'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "now": 1592666471
    +    }
    +}
    +

    获取适用于 RTC 的时间戳

    https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp

    请求方法: GET

    `,15),d=s(`

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    timestampnum服务器端UTC时间戳
    microtimenum服务器端UTC时间戳 (毫秒)

    示例:

    curl 'https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "timestamp": 1723899823,
    +    "microtime": 1723899823683
    +  }
    +}
    +

    获取服务器端UTC时间

    https://interface.bilibili.com/serverdate.js

    请求方式:GET

    js回复:

    window.serverdate = Date.UTC(YYYY, M, D, h, m, s);
    +

    示例:

    curl 'https://interface.bilibili.com/serverdate.js'
    +
    查看响应示例:
    window.serverdate = Date.UTC(2021, 4, 16, 17, 31, 8);
    +
    `,16);function i(c,r){return t(),a("div",null,[o,e(`{ + "from": { + "url": "https://live.bilibili.com/9196015" + } +}`),d])}const u=n(p,[["render",i],["__file","time_stamp.html.vue"]]);export{u as default}; diff --git a/assets/time_stamp.html-e2fb6a61.js b/assets/time_stamp.html-e2fb6a61.js new file mode 100644 index 0000000000..6cffa5c9d6 --- /dev/null +++ b/assets/time_stamp.html-e2fb6a61.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-450b7300","path":"/docs/misc/time_stamp.html","title":"获取当前时间戳","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取当前时间戳","slug":"获取当前时间戳-1","link":"#获取当前时间戳-1","children":[]},{"level":2,"title":"获取适用于 RTC 的时间戳","slug":"获取适用于-rtc-的时间戳","link":"#获取适用于-rtc-的时间戳","children":[]},{"level":2,"title":"获取服务器端UTC时间","slug":"获取服务器端utc时间","link":"#获取服务器端utc时间","children":[]}],"git":{},"filePathRelative":"docs/misc/time_stamp.md"}');export{t as data}; diff --git a/assets/timeline.html-0a3a89de.js b/assets/timeline.html-0a3a89de.js new file mode 100644 index 0000000000..7f36f9629a --- /dev/null +++ b/assets/timeline.html-0a3a89de.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-08a8cbb2","path":"/docs/bangumi/timeline.html","title":"番剧或影视时间线","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取番剧或影视时间线","slug":"获取番剧或影视时间线","link":"#获取番剧或影视时间线","children":[]}],"git":{},"filePathRelative":"docs/bangumi/timeline.md"}');export{e as data}; diff --git a/assets/timeline.html-6f23474d.js b/assets/timeline.html-6f23474d.js new file mode 100644 index 0000000000..96fe1d2e65 --- /dev/null +++ b/assets/timeline.html-6f23474d.js @@ -0,0 +1,712 @@ +import{_ as s,o as n,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    番剧或影视时间线

    获取番剧或影视时间线

    https://api.bilibili.com/pgc/web/timeline 请求方式:GET

    鉴权方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    typesstr类别必要1:番剧
    3:电影
    4:国创
    beforenum开始于前几日必要∈N∩[0,7]
    afternum结束于后几日必要∈N∩[0,7]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:错误
    messagestr错误信息默认为success
    resultarray信息本体

    result数组:

    类型内容备注
    0objbefore天前信息
    nobjbefore天前开始第n天信息
    ……obj……

    result数组中的对象:

    字段类型内容备注
    datestr当日日期
    date_tsnum当日日期时间戳
    day_of_weeknum一周中第几天∈N∩[1,7]
    episodesarray剧集列表
    is_todaynum是否今日

    result数组中的对象中的episodes数组:

    类型内容备注
    0obj剧集1
    nobj剧集(n+1)
    ……obj……

    episodes数组中的对象:

    字段类型内容备注
    coverstr封面图url
    delaynum是否推迟
    delay_idnum推迟一话epid
    delay_indexstr推迟一话名称
    delay_reasonstr推迟原因
    ep_coverstr最新一话图url
    episode_idnum最新一话的epid
    pub_indexstr最新一话名称
    pub_timestr发布时间
    pub_tsnum发布时间戳
    publishednum是否已发布
    followsstr-
    playsstr-
    season_idnum剧集ssid
    square_coverstr缩略图url
    titlestr剧集标题

    示例:

    查询从3天前到7天后的番剧时间轴

    curl -G 'https://api.bilibili.com/pgc/web/timeline' \\
    +--data-urlencode 'types=1' \\
    +--data-urlencode 'before=3' \\
    +--data-urlencode 'after=7' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    `,21),e=[o];function u(c,l){return n(),a("div",null,e)}const i=s(p,[["render",u],["__file","timeline.html.vue"]]);export{i as default}; diff --git a/assets/topic.html-88e9eef2.js b/assets/topic.html-88e9eef2.js new file mode 100644 index 0000000000..afc8a87282 --- /dev/null +++ b/assets/topic.html-88e9eef2.js @@ -0,0 +1,68 @@ +import{_ as e,o,c as p,g as n,a as t,b as s,e as a}from"./app-3168cb19.js";const d={},r=t("h1",{id:"话题搜索",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#话题搜索","aria-hidden":"true"},"#"),s(" 话题搜索")],-1),c=t("h2",{id:"搜索发布话题",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#搜索发布话题","aria-hidden":"true"},"#"),s(" 搜索发布话题")],-1),i=t("blockquote",null,[t("p",null,[s("https://app.bilibili.com/x/topic/pub/search"),t("br"),s(" https://api.bilibili.com/x/topic/pub/search")])],-1),l=t("p",null,[t("em",null,"请求方法: GET")],-1),u=t("p",null,"注: 该接口可能存在传入页面大小与返回数量不匹配的问题, 可能与访问权限有关",-1),k=a(`

    URL参数:

    参数名类型内容必要性备注
    keywordsstr关键词不必要
    contentstr不必要
    upload_idstr上传 id?不必要页面刷新第一次请求时为空, 后均非空
    似乎为固定值, 格式: \${your_mid}_\${login_or_last_refresh_or_cookie_ts}_\${dig4}, 如 616368979_1722652786_2534
    page_sizeint页大小不必要默认为 20
    page_numint1不必要不用于翻页
    offsetint偏移不必要可从响应 data.page_info.offset 中获取
    web_locationstr333.1365不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    new_topicobj新建话题?
    has_create_jurisdictionboolfalse是否有创建权限?
    topic_itemsarray话题列表
    request_idstr请求 id
    page_infoobj页信息

    data 中的 new_topic 对象:

    字段类型内容备注
    namestr请求参数中的 keywords

    data 中的 topic_items 数组中的对象:

    字段类型内容备注
    idnum话题 id
    namestr话题名
    viewnum观看数
    discussnum讨论数
    stat_descstr状态描述
    descriptionstr话题描述
    show_interact_databoolfalse是否显示互动数据?

    data 中的 page_info 对象:

    字段类型内容备注
    offsetnum下次请求可用的偏移请求参数中的 offset + page_size
    has_morebool是否有更多数据当没有更多时可能不存在该字段

    示例:

    注: 该示例就是解释开头所注的问题的一个示例

    curl -G 'https://app.bilibili.com/x/topic/pub/search' \\
    +--url-query 'keywords=2233'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "new_topic": {
    +      "name": "2233"
    +    },
    +    "has_create_jurisdiction": false,
    +    "topic_items": [
    +      {
    +        "id": 1101122,
    +        "name": "2233异世集",
    +        "view": 2502,
    +        "discuss": 11,
    +        "stat_desc": "2502浏览·11讨论",
    +        "description": "分享数字周边",
    +        "show_interact_data": false
    +      },
    +      {
    +        "id": 1050671,
    +        "name": "2233生日倒计时",
    +        "view": 21149,
    +        "discuss": 130,
    +        "stat_desc": "2.1万浏览·130讨论",
    +        "description": "2233生日倒计时",
    +        "show_interact_data": false
    +      },
    +      {
    +        "id": 1057129,
    +        "name": "2233手办可可爱爱",
    +        "view": 836,
    +        "discuss": 14,
    +        "stat_desc": "836浏览·14讨论",
    +        "description": "喜欢2233,",
    +        "show_interact_data": false
    +      }
    +    ],
    +    "request_id": "1$0$1723796266$7f515d4e26b7bd5007fb8ca4b066bf0b",
    +    "page_info": {
    +      "offset": 4,
    +      "has_more": true
    +    }
    +  }
    +}
    +

    推荐搜索话题?

    https://app.bilibili.com/x/topic/pub/rcmd/search
    https://api.bilibili.com/x/topic/pub/rcmd/search

    请求方法: GET

    注: 该接口啥也不返回, 但是网页端会请求该接口

    `,21),b=a(`

    URL参数:

    参数名类型内容必要性备注
    keywordsstr不必要
    upload_idstr上传 id?不必要同上
    web_locationstr333.1365不必要有时请求不带该参数

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    datastr数据本体

    data 对象:

    字段类型内容备注
    topic_itemsarray
    request_idstr请求 id当传入 keywords 时不为空

    示例:

    curl -G 'https://app.bilibili.com/x/topic/pub/rcmd/search'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "topic_items": [],
    +    "request_id": ""
    +  }
    +}
    +
    `,10);function h(m,v){return o(),p("div",null,[r,c,i,l,u,n(`{ + "from": { + "url": "https://t.bilibili.com/" + "selector": ".bili-topic-search__input__inner" + } +}`),k,n(`{ + "from": { + "url": "https://t.bilibili.com/" + }, + "gh": [1083] +}`),b])}const _=e(d,[["render",h],["__file","topic.html.vue"]]);export{_ as default}; diff --git a/assets/topic.html-a5de20a4.js b/assets/topic.html-a5de20a4.js new file mode 100644 index 0000000000..d3e60a84fd --- /dev/null +++ b/assets/topic.html-a5de20a4.js @@ -0,0 +1 @@ +const t=JSON.parse('{"key":"v-29283a15","path":"/docs/dynamic/topic.html","title":"话题搜索","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"搜索发布话题","slug":"搜索发布话题","link":"#搜索发布话题","children":[]},{"level":2,"title":"推荐搜索话题?","slug":"推荐搜索话题","link":"#推荐搜索话题","children":[]}],"git":{},"filePathRelative":"docs/dynamic/topic.md"}');export{t as data}; diff --git a/assets/toview.html-2dab38e4.js b/assets/toview.html-2dab38e4.js new file mode 100644 index 0000000000..feb039d45d --- /dev/null +++ b/assets/toview.html-2dab38e4.js @@ -0,0 +1,193 @@ +import{_ as o,r as l,o as r,c,a as n,b as s,d as t,w as e,e as p}from"./app-3168cb19.js";const u="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAACm0lEQVRIibWVXUhTYRzGf3u3dnac22TiCvIjsVKM2oUV7UJqRCVRSpFG0EV1rZSS3Rhe1W1dKEGBEBQUdJMrqIgGCWX0sUzIFDWa86Mktbm1uZU7XWwD1/zYrD1wLt7//znP7z3nPed9VZ62emI6DDQCO4Bs0pMfeANcAR7Gi/n1bQCI2PgS4ADsqwAQu8cOPIhlJUgAh4CWVQQvpRaibyUB0vQfAXE1/g3ZngFIQqYADMu5c3bXoVKr04UkZIqlXHFlb60k78hZ1PqcdEGpQwC064qxHL+AtH5j5iAA6iwDeTUNZFvtmYNE3YKcyqOYD5xCtUbKECSmrE0VmPeezCwkONzDtPN2yn5NWulKBG+3A5/LCSjLWuP7VlqQSNDP1JObhEYH0ppXypDwpJupRx3M+2aSemqDGWPFPnRFWxBZRiKBWebcHwGKAHdKkJ99L/nx/B7K/O+knq6wnNyqM4TGBpl+dovwtxEAtGsLEXrjJ7l421Hg8YqQGeedResaoxlz1Wl8rqcEhlyYbDVIB0sBCHkG8L64L4e/fuk02apLBeBbCbSYDBX7CY8PERh6j6W2GbnEyviNZoRWh1xixVLbTPDzB62/t+uaAN6uBqIrKsfX48Rkq0ZIclJfSDKmXdUEBt/ZBXB1NRAhGwlPjiAVlC49kYIyfk2N6QTRI/NyupBIcHbR+mh7A6PtDdGBClAUJb7wF4HXwDlgJ6BfCTLn7kNrKSTkGUAusQKJPyDA3Eg/GkPuxMKvyxG7ltWCoA1CNvR5uztlKX9z0rpEQkG8rxwISd+qUpTlt4cVVOXtdnQGh3u0JlsNuoKy6BN4+vF2OxBa+a6l7vyJf4UAFPl7u64HB117wt89EgqKxpg7odLqWi3HmjoA/gB2vcWrmiS2/AAAAABJRU5ErkJggg==",i={},d=p('

    稍后再看

    视频添加稍后再看

    https://api.bilibili.com/x/v2/history/toview/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    最多添加100个视频

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    90001:列表已满
    90003:稿件已经被删除
    messagestr错误信息默认为0
    ttlnum1

    示例:

    添加视频av41687433/BV1ht41147kj到稍后再看列表

    avid方式:

    curl 'https://api.bilibili.com/x/v2/history/toview/add' \\
    +--data-urlencode 'aid=41687433' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/v2/history/toview/add' \\
    +--data-urlencode 'bvid=BV1ht41147kj' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    添加频道中所有视频到稍后再看

    https://space.bilibili.com/ajax/channel/addAllToView

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserIDDedeUserID__ckMd5存在且不为0,referer为 .bilibili.com域名下

    带有转义

    超过容量后会截取容量之内的添加

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum目标频道id必要
    midnum目标频道所属的用户mid必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool是否成功false:失败
    true:成功
    datastr错误信息

    示例:

    添加用户mid=282994下的频道4693中所有视频到稍后再看

    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'
    +
    查看响应示例:
    {
    +    "status": true,
    +    "data": "操作成功"
    +}
    +

    获取稍后再看视频列表

    https://api.bilibili.com/x/v2/history/toview

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    datadata数据本体

    data对象:

    字段类型内容备注
    countnum稍后再看视频数
    listarray稍后再看视频列表

    data中的list数组:

    类型内容备注
    0obj稍后再看1
    nobj稍后再看(n+1)按照添加顺序排列
    项数为总计稍后再看视频数
    ……obj…………
    99obj最后一项

    data中的list数组中的对象:

    `,47),k=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1),b=n("tr",null,[n("td",null,"aid"),n("td",null,"num"),n("td",null,"稿件avid"),n("td")],-1),v=n("tr",null,[n("td",null,"videos"),n("td",null,"num"),n("td",null,"稿件分P总数"),n("td",null,"默认为1")],-1),m=n("tr",null,[n("td",null,"tid"),n("td",null,"num"),n("td",null,"分区tid"),n("td")],-1),q=n("tr",null,[n("td",null,"tname"),n("td",null,"str"),n("td",null,"子分区名称"),n("td")],-1),h=n("tr",null,[n("td",null,"copyright"),n("td",null,"num"),n("td",null,"是否转载"),n("td",null,[s("1:原创"),n("br"),s("2:转载")])],-1),y=n("tr",null,[n("td",null,"pic"),n("td",null,"str"),n("td",null,"稿件封面图片url"),n("td")],-1),g=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"稿件标题"),n("td")],-1),_=n("tr",null,[n("td",null,"pubdate"),n("td",null,"num"),n("td",null,"稿件发布时间"),n("td",null,"时间戳")],-1),A=n("tr",null,[n("td",null,"ctime"),n("td",null,"num"),n("td",null,"用户提交稿件的时间"),n("td",null,"时间戳")],-1),E=n("tr",null,[n("td",null,"desc"),n("td",null,"str"),n("td",null,"视频简介"),n("td")],-1),x=n("td",null,"state",-1),f=n("td",null,"num",-1),B=n("td",null,"视频状态",-1),w=n("code",null,"state",-1),S=n("td",null,[n("s",null,"attribute"),s("(仅做历史性保留)")],-1),F=n("td",null,[n("s",null,"num")],-1),j=n("td",null,[n("s",null,"稿件属性位配置")],-1),C=n("code",null,"attribute",-1),D=n("tr",null,[n("td",null,"duration"),n("td",null,"num"),n("td",null,"稿件总时长(所有分P)"),n("td",null,"单位为秒")],-1),T=n("td",null,"rights",-1),P=n("td",null,"obj",-1),R=n("td",null,"稿件属性标志",-1),V=n("code",null,"rights",-1),U=n("td",null,"owner",-1),G=n("td",null,"obj",-1),I=n("td",null,"稿件UP主信息",-1),N=n("code",null,"owner",-1),K=n("td",null,"stat",-1),W=n("td",null,"obj",-1),X=n("td",null,"稿件状态数",-1),Q=n("code",null,"stat",-1),L=n("tr",null,[n("td",null,"dynamic"),n("td",null,"str"),n("td",null,"视频同步发布的的动态的文字内容"),n("td",null,"无为空")],-1),J=n("td",null,"dimension",-1),Y=n("td",null,"obj",-1),H=n("td",null,"稿件1P分辨率",-1),M=n("code",null,"dimension",-1),O=n("tr",null,[n("td",null,"count"),n("td",null,"num"),n("td",null,"稿件分P数"),n("td",null,"非投稿视频无此项")],-1),z=n("tr",null,[n("td",null,"cid"),n("td",null,"num"),n("td",null,"视频cid"),n("td")],-1),Z=n("tr",null,[n("td",null,"progress"),n("td",null,"num"),n("td",null,"观看进度时间"),n("td",null,"单位为秒")],-1),$=n("tr",null,[n("td",null,"add_at"),n("td",null,"num"),n("td",null,"添加时间"),n("td",null,"时间戳")],-1),nn=n("tr",null,[n("td",null,"bvid"),n("td",null,"str"),n("td",null,"稿件bvid"),n("td")],-1),sn=p(`

    示例:

    获取稍后再看视频列表

    curl 'https://api.bilibili.com/x/v2/history/toview' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
     "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 ):

    参数名类型内容必要性备注
    viewedbool是否删除所有已观看的视频非必要true:删除已观看视频
    false:不删除已观看视频
    默认为false
    aidnum删除的目标记录的avid非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除视频av540580868的稍后再看记录

    curl 'https://api.bilibili.com/x/v2/history/toview/del' \\
    +--data-urlencode 'aid=540580868' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除所有已观看的视频

    curl 'https://api.bilibili.com/x/v2/history/toview/del' \\
    +--data-urlencode 'viewed=true' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    清空稍后再看视频列表

    https://api.bilibili.com/x/v2/history/toview/clear

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfnumCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    清空稍后再看视频列表

    curl 'https://api.bilibili.com/x/v2/history/toview/clear' \\
    +--data-urlencode 'csrf=xxx' \\
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    `,33);function an(tn,en){const a=l("RouterLink");return r(),c("div",null,[d,n("table",null,[k,n("tbody",null,[b,v,m,q,h,y,g,_,A,E,n("tr",null,[x,f,B,n("td",null,[s("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的"),w,s("备注")])]),n("tr",null,[S,F,j,n("td",null,[s("本字段已被删除"),n("s",null,[s("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的"),C,s("备注")])])]),D,n("tr",null,[T,P,R,n("td",null,[s("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的"),V,s("对象")])]),n("tr",null,[U,G,I,n("td",null,[s("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的"),N,s("对象")])]),n("tr",null,[K,W,X,n("td",null,[s("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的"),Q,s("对象")])]),L,n("tr",null,[J,Y,H,n("td",null,[s("略,见"),t(a,{to:"/docs/video/info.html#%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%88web%E7%AB%AF%EF%BC%89"},{default:e(()=>[s("获取视频详细信息(web端)")]),_:1}),s("中的"),M,s("对象")])]),O,z,Z,$,nn])]),sn])}const on=o(i,[["render",an],["__file","toview.html.vue"]]);export{on as default}; diff --git a/assets/toview.html-98244225.js b/assets/toview.html-98244225.js new file mode 100644 index 0000000000..8f7c453ebd --- /dev/null +++ b/assets/toview.html-98244225.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-ad0ed5e0","path":"/docs/history_toview/toview.html","title":"稍后再看","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"视频添加稍后再看","slug":"视频添加稍后再看","link":"#视频添加稍后再看","children":[]},{"level":2,"title":"添加频道中所有视频到稍后再看","slug":"添加频道中所有视频到稍后再看","link":"#添加频道中所有视频到稍后再看","children":[]},{"level":2,"title":"获取稍后再看视频列表","slug":"获取稍后再看视频列表","link":"#获取稍后再看视频列表","children":[]},{"level":2,"title":"删除稍后再看视频","slug":"删除稍后再看视频","link":"#删除稍后再看视频","children":[]},{"level":2,"title":"清空稍后再看视频列表","slug":"清空稍后再看视频列表","link":"#清空稍后再看视频列表","children":[]}],"git":{},"filePathRelative":"docs/history&toview/toview.md"}');export{e as data}; diff --git a/assets/upload.html-1fd73832.js b/assets/upload.html-1fd73832.js new file mode 100644 index 0000000000..d90977e234 --- /dev/null +++ b/assets/upload.html-1fd73832.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-733df0e8","path":"/docs/creativecenter/upload.html","title":"投稿","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"上传封面","slug":"上传封面","link":"#上传封面","children":[]},{"level":2,"title":"预测稿件类型","slug":"预测稿件类型","link":"#预测稿件类型","children":[]},{"level":2,"title":"预测稿件标签","slug":"预测稿件标签","link":"#预测稿件标签","children":[]},{"level":2,"title":"投递视频稿件","slug":"投递视频稿件","link":"#投递视频稿件","children":[]},{"level":2,"title":"上传视频文件","slug":"上传视频文件","link":"#上传视频文件","children":[{"level":3,"title":"上传流程","slug":"上传流程","link":"#上传流程","children":[]},{"level":3,"title":"上传接口","slug":"上传接口","link":"#上传接口","children":[]},{"level":3,"title":"Demo","slug":"demo","link":"#demo","children":[]}]}],"git":{},"filePathRelative":"docs/creativecenter/upload.md"}');export{l as data}; diff --git a/assets/upload.html-87900af5.js b/assets/upload.html-87900af5.js new file mode 100644 index 0000000000..8e43e2eb96 --- /dev/null +++ b/assets/upload.html-87900af5.js @@ -0,0 +1,493 @@ +import{_ as p,r as o,o as e,c,a as n,b as s,d as u,e as a}from"./app-3168cb19.js";const l={},i=a(`

    投稿

    上传封面

    https://member.bilibili.com/x/vu/web/cover/up

    请求方式: POST

    认证方式:Cookie(SESSDATA)

    注: 目前看来上传的图片似乎不会自动删除

    URL参数:

    参数名类型内容必要性备注
    tsnum当前时间不必要UNIX 毫秒时间戳

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要
    coverbase64视频封面必要经过 base64 编码的图片数据

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    -111: csrf 校验失败
    -101: 账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    urlstr封面 URL

    示例:

    假设已经把需要发送的数据进行编码存放在文件 ./b64 中:

    csrf=xxxxxxxxxxxx&cover=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABA...
    +

    发送请求:

    curl -X POST --url "https://member.bilibili.com/x/vu/web/cover/up" \\
    +--url-query "ts=$(date +%s%3N)" \\
    +--data-binary @b64 \\
    +-b "SESSDATA=xxxxxx; bili_jct=xxxxxx"
    +
    `,20),d={href:"https://gist.github.com/SessionHu/5e47a3a1a351ac5486c87e3d63930e7a",target:"_blank",rel:"noopener noreferrer"},r=a(`
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "url": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg"
    +  }
    +}
    +

    预测稿件类型

    https://member.bilibili.com/x/vupre/web/archive/types/predict

    请求方式: POST

    认证方式: Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    tsnum当前时间不必要UNIX 毫秒时间戳
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要

    正文参数(multipart/form-data):

    参数名类型内容必要性备注
    filenamestr视频文件名必要从视频上传接口获取, 无后缀名, 可为空
    titlestr视频标题不必要
    upload_idstr上传 ID不必要616368979_1723455540876_8794

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    -111: csrf 校验失败
    -101: 账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataarray信息本体

    data 数组:

    类型内容备注
    0obj视频类型 1
    1obj视频类型 2
    ……obj……
    nobj视频类型 (n+1)

    data 数组中的对象:

    字段类型内容备注
    idnum子分区 ID
    parentnum总分区 ID
    parent_namestr总分区名称
    namestr子分区名称
    descriptionstr子分区描述
    descstr子分区描述description
    intro_originalstr原创简介说明
    intro_copystr转载简介说明
    noticestr注意事项
    copy_rightnum版权信息?0
    showbool是否显示?true
    ranknum排序权重?
    max_video_countnum最大视频数量?
    request_idstr

    示例:

    curl -X POST --url 'https://member.bilibili.com/x/vupre/web/archive/types/predict' \\
    +--url-query 'csrf=d51eadf05ba3bc6c5f76def7fbcc0185' \\
    +--data-urlencode 'filename=' \\
    +-b '
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": [
    +    {
    +      "id": 122,
    +      "parent": 36,
    +      "parent_name": "知识",
    +      "name": "野生技能协会",
    +      "description": "技能展示或技能教学分享类视频",
    +      "desc": "技能展示或技能教学分享类视频",
    +      "intro_original": "可对视频内容进行补充说明,并对所使用的视频素材进行标明。\\n如是系列,也可附带上期视频地址。\\n请勿加入涉政或具较大争议性的文字简介,否则将做打回处理。",
    +      "intro_copy": "转载稿件需标明出处,请注明原作者、原作者频道名或原作者投稿地址。\\n可对相关内容进行补充说明。\\n请勿加入涉政或具较大争议性的文字简介,否则将做打回处理。\\n如是系列,也可附带上期视频地址。",
    +      "notice": "清晰明了表明内容亮点的标题会更受观众欢迎哟!",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 75,
    +      "max_video_count": 100,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 21,
    +      "parent": 160,
    +      "parent_name": "生活",
    +      "name": "日常",
    +      "description": "一般日常向的生活类视频",
    +      "desc": "一般日常向的生活类视频",
    +      "intro_original": "能够选择自制的必须是up主个人或工作室自己制作剪辑的视频,除此之外的搬运视频字幕制作,对于视频进行加速、慢放等简易二次创作,在视频中添加前后贴片或者打水印等行为均不被认作自制",
    +      "intro_copy": "转载需写明请注明转载作品详细信息原作者、原标题及出处(需为该视频最原始出处,如所标注明显为非原始出处的话会被打回)",
    +      "notice": "",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 4,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 242,
    +      "parent": 5,
    +      "parent_name": "娱乐",
    +      "name": "娱乐粉丝创作",
    +      "description": "粉丝向创作视频",
    +      "desc": "粉丝向创作视频",
    +      "intro_original": "",
    +      "intro_copy": "",
    +      "notice": "清晰明了表明内容亮点的标题会更受观众欢迎哟!",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 40,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 65,
    +      "parent": 4,
    +      "parent_name": "游戏",
    +      "name": "网络游戏",
    +      "description": "多人在线游戏为主要内容的相关视频",
    +      "desc": "多人在线游戏为主要内容的相关视频",
    +      "intro_original": "建议在简介和TAG中添加正确的游戏名,以便在分区和搜索中得到更好的展示。\\n录制他人直播(包括授权转载、授权录制)不属于自制内容,请选转载。",
    +      "intro_copy": "建议在简介和TAG中添加正确的游戏名。\\n搬运转载内容请添加原作者、原链接地址信息。录制他人直播内容请添加原主播信息、直播时间。\\n未添加正确转载、录播信息的稿件可能被打回。",
    +      "notice": "【UP主/节目名】+《游戏名》+主要标题+期号",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 30,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 138,
    +      "parent": 160,
    +      "parent_name": "生活",
    +      "name": "搞笑",
    +      "description": "搞笑挑战、剪辑、表演、配音以及各类日常沙雕视频",
    +      "desc": "搞笑挑战、剪辑、表演、配音以及各类日常沙雕视频",
    +      "intro_original": "能够选择自制的必须是up主个人或工作室自己制作剪辑的视频,除此之外的搬运视频字幕制作,对于视频进行加速、慢放等简易二次创作,在视频中添加前后贴片或者打水印等行为均不被认作自制",
    +      "intro_copy": "转载需写明请注明转载作品详细信息原作者、原标题及出处(需为该视频最原始出处,如所标注明显为非原始出处的话会被打回)",
    +      "notice": "",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 30,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    }
    +  ]
    +}
    +

    预测稿件标签

    https://member.bilibili.com/x/vupre/web/tag/recommend

    请求方式: GET

    认证方式: Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    upload_idstr预测稿件类型upload_id不必要
    subtype_idint子分区 ID不必要
    titlestr视频标题不必要
    filenamestr预测稿件类型filename不必要
    descriptionstr视频简介不必要
    cover_urlstr视频封面 URL不必要不含 https:http: 字串
    tint当前 UNIX 毫秒时间戳不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codeint返回值0: 成功
    -101: 账号未登录
    dataarray标签信息
    messagestr错误信息默认为 0
    request_idstr请求 ID

    data 数组:

    类型内容备注
    0obj标签 1
    1obj标签 2
    ……obj……
    nobj标签 (n+1)

    data 数组中的对象:

    字段类型内容备注
    tagstr标签名称
    checkedint0
    request_idstr请求 ID同根对象

    示例:

    curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \\
    +--url-query 'subtype_id=122' \\
    +--url-query 'title=Telnet手打HTTP' \\
    +--url-query 'description=测试用 Telnet 手打 HTTP/1.x 协议访问本地服务器, 无 SSL/TLS 支持'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": [
    +    {
    +      "tag": "学习",
    +      "checked": 0,
    +      "request_id": "TAG_1723543336295_3371"
    +    },
    +    {
    +      "tag": "编程",
    +      "checked": 0,
    +      "request_id": ""
    +    },
    +    {
    +      "tag": "课程",
    +      "checked": 0,
    +      "request_id": ""
    +    },
    +    {
    +      "tag": "学习心得",
    +      "checked": 0,
    +      "request_id": ""
    +    },
    +    {
    +      "tag": "经验分享",
    +      "checked": 0,
    +      "request_id": ""
    +    }
    +  ],
    +  "message": "0",
    +  "request_id": "TAG_1723543336295_3371"
    +}
    +

    投递视频稿件

    https://member.bilibili.com/x/vu/web/add/v3

    请求方式: POST

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    tsnum当前时间不必要UNIX 毫秒时间戳
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要

    正文参数(application/json):

    根对象:

    参数名类型内容必要性备注
    videosarray视频信息必要若为分 P 视频, 请注意数组元素顺序
    coverstr视频封面 URL必要参见上传视频封面
    cover43str视频封面 URL (比例为 4:3)必要可为空
    titlestr视频标题必要最多 80 字
    copyrightnum1: 自制
    2: 转载
    必要
    tidnum分类 ID必要
    tagstr视频标签必要多个标签用 , 分隔, 最多 10 个
    desc_format_idnum简介格式 ID?必要9999: 纯文本
    descstr视频简介必要最多 2000 字
    recreatenum是否允许二创必要-1: 允许(默认)
    1: 不允许
    dynamicstr粉丝动态必要
    interactivenum互动视频?必要0: 否
    act_reserve_createnum活动预约?必要0: 否
    no_disturbancenum勿扰模式?必要0: 否
    no_reprintnum是否允许转载必要1: 允许
    0: 不允许
    subtitleobj字幕信息必要
    dolbynum杜比音效必要0: 否(默认)
    1: 是
    lossless_musicnum无损音乐必要0: 否(默认)
    1: 是
    up_selection_replybool精选评论必要
    up_close_replybool关闭评论必要
    up_close_danmubool关闭弹幕必要
    web_osnum平台类型?必要3

    videos 数组中的对象:

    参数名类型内容必要性备注
    filenamestr视频文件名必要从视频上传接口获取, 无后缀名
    titlestr分 P 标题必要
    descstr分 P 简介必要
    cidnum分 P cid必要从视频上传接口获取, 即 biz_id

    subtitle 对象:

    参数名类型内容必要性备注
    opennum是否启用字幕投稿必要0: 启用(默认)
    1: 不启用
    lanstr字幕投稿语言必要可为空

    示例:

    假设已经把需要发送的数据存放在文件 ./data.json 中:

    {
    +  "videos": [
    +    {
    +      "filename": "n240728ad33h52yqhxbtw51cb06sq9gx",
    +      "title": "Telnet手打HTTP",
    +      "desc": "",
    +      "cid": 500001629877726
    +    }
    +  ],
    +  "cover": "https://archive.biliimg.com/bfs/archive/85447ea20431ef799382c403c84b4bfb82a41053.jpg",
    +  "cover43": "",
    +  "title": "Telnet手打HTTP",
    +  "copyright": 1,
    +  "tid": 122,
    +  "tag": "telnet,socket,tcp,linux,http",
    +  "desc_format_id": 9999,
    +  "desc": "测试用 Telnet 手打 HTTP/1.x 协议访问本地服务器, 无 SSL/TLS 支持",
    +  "recreate": -1,
    +  "dynamic": "for testing",
    +  "interactive": 0,
    +  "act_reserve_create": 0,
    +  "no_disturbance": 0,
    +  "no_reprint": 1,
    +  "subtitle": {
    +    "open": 0,
    +    "lan": ""
    +  },
    +  "dolby": 0,
    +  "lossless_music": 0,
    +  "up_selection_reply": false,
    +  "up_close_reply": false,
    +  "up_close_danmu": false,
    +  "web_os": 3,
    +  "csrf": "xxxxxxxxxxxxxxxxxxxxxxxx"
    +}
    +

    发送请求:

    curl -X POST --url "https://member.bilibili.com/x/vu/web/add/v3" \\
    +--url-query "ts=$(date +%s%3N)" \\
    +--url-query "csrf=xxxxxxxxxxxxxxxxxxxxxxxx" \\
    +-H "Content-Type: application/json; charset=utf-8" \\
    +--data @data.json \\
    +-b "SESSDATA=xxxxxx; bili_jct=xxxxxxxxxxxxxxxxxxxxxxxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "aid": 112861976201494,
    +    "bvid": "BV181vnexEmB"
    +  }
    +}
    +

    上传视频文件

    注: 目前看来上传的视频文件似乎不会自动删除, 而且似乎不是视频也可以上传的样子, 但是下载认证字段有效期只有 5 天

    上传流程

    整个上传流程较为复杂, 详细参见Demo

    1. GET preupload 接口, 获取上传元数据

    2. POST 第 1 步得到的地址, 上传视频元数据

    3. PUT 第 1 步得到的地址, 分片上传视频文件

    4. POST 第 1 步得到的地址, 结束上传视频文件

    5. GET 第 1 步得到的地址, 下载已上传的视频文件 , 确认上传成功 (可选)

    上传接口

    获取上传元数据 (预上传)

    https://member.bilibili.com/preupload

    请求方式: GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    namestr文件名必要会影响返回的上传地址
    rstr上传区域?必要upos
    profilestr上传配置?必要普通视频: ugcfx/bup
    提交反馈: feedback/bup
    probe_versionnum上传版本?不必要20221109
    upcdnstr上传 CDN?不必要txa
    zonestr上传区域?不必要cs
    sslnum是否使用 SSL?不必要0
    versionstr上传版本?不必要2.14.0.0
    buildstr上传版本?不必要2140000
    sizenum文件大小不必要视频文件大小, 单位 字节
    webVersionstr上传版本?不必要2.13.0

    JSON回复:

    根对象:

    字段类型内容备注
    OKnum1
    authstr上传凭证作为后面请求中请求头, 有效期 5 天
    biz_idnum业务 ID?
    chunk_retrynum重试次数?
    chunk_retry_delaynum重试延迟?
    chunk_sizenum分块大小后面要用
    endpointstr上传节点后面要用
    endpointsarray上传节点列表
    expose_paramsnull
    put_querystr上传参数?
    threadsnum上传线程数
    timeoutnum超时时间?
    uipstr你的 IP
    upos_uristr上传地址后面要用

    endpoints 数组:

    类型内容备注
    0str上传节点1
    ……str……
    nstr上传节点n

    示例:

    假设视频文件名为 2024-07-28_15-37-50.mkv, 视频大小为 305333744 字节

    curl -G "https://member.bilibili.com/preupload" \\
    +--data-urlencode "name=2024-07-28_15-37-50.mkv" \\
    +--data-urlencode "r=upos" \\
    +--data-urlencode "profile=ugcfx/bup" \\
    +-b "SESSDATA=xxxxxxxxxxx"
    +
    查看响应示例:
    {
    +  "OK": 1,
    +  "auth": "ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=b6c5cc520a281200906aea97e190b098&timestamp=1722155211.324&uid=616368979&uip=108.181.24.77&uport=52096&use_dqp=0",
    +  "biz_id": 500001630152509,
    +  "chunk_retry": 10,
    +  "chunk_retry_delay": 3,
    +  "chunk_size": 10485760,
    +  "endpoint": "//upos-cs-upcdntxa.bilivideo.com",
    +  "endpoints": [
    +    "//upos-cs-upcdntxa.bilivideo.com",
    +    "//upos-cs-upcdnalia.bilivideo.com"
    +  ],
    +  "expose_params": null,
    +  "put_query": "os=upos&profile=ugcfx%2Fbup",
    +  "threads": 3,
    +  "timeout": 1200,
    +  "uip": "108.181.24.77",
    +  "upos_uri": "upos://ugcfx2lf/n240728ad1p51if4g3ke4s3o95sznogy.mkv"
    +}
    +

    上传视频元数据

    URL 拼接格式: "https" + 上一个接口endpoint + 上一个接口的upos_uri去掉协议名
    JavaScript 模板字符串: https:\${preupload.endpoint}/\${endpoint.upos_uri.replace("upos://", "")}

    请求方式: POST

    认证方式:请求头 X-Upos-Auth 为上一接口得到的 auth

    URL参数:

    参数名类型内容必要性备注
    uploadsstr留空必要留空
    outputstr输出格式不必要默认为 json(推荐), 留空为 xml
    profilestr上传配置?必要与上一个接口保持相同
    filesizenum文件大小必要视频文件大小, 单位 字节
    feedback/bup 不必要
    partsizenum分块大小必要上一个接口返回, 且后面要用
    feedback/bup 不必要
    biz_idnum业务 ID?必要上一个接口返回, 且后面要用
    feedback/bup 不必要

    JSON回复:

    根对象:

    字段类型内容备注
    OKnum1
    bucketstr空间名?
    keystr文件名?
    upload_idstr上传 ID后面要用

    示例:

    假设上一接口返回的 authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=4004b35628e982bc90b59cec86f8c441&timestamp=1722173443.298&uid=616368979&uip=104.28.153.18&uport=44282&use_dqp=0, biz_id500001630454700, endpoint//upos-cs-upcdntxa.bilivideo.com, upos_uriupos://ugcfx2lf/n240728adhejliqv0kqyg2s5n6huv501.mkv, chunk_size10485760. 视频文件大小为 305333744 字节.

    curl -X POST --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240728adhejliqv0kqyg2s5n6huv501.mkv\` \\
    +--url-query "uploads=" \\
    +--url-query "output=json" \\
    +--url-query "profile=ugcfx/bup" \\
    +--url-query "filesize=305333744" \\
    +--url-query "partsize=10485760" \\
    +--url-query "biz_id=500001630454700" \\
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=4004b35628e982bc90b59cec86f8c441&timestamp=1722173443.298&uid=616368979&uip=104.28.153.18&uport=44282&use_dqp=0" \\
    +-b "SESSDATA=xxxxxxxxx"
    +
    查看响应示例:
    {
    +  "OK": 1,
    +  "bucket": "ugcfx2lf",
    +  "key": "/n240728adhejliqv0kqyg2s5n6huv501.mkv",
    +  "upload_id": "26c674b4-0dce-45f5-a9cd-a199d9c982bf"
    +}
    +

    分片上传视频文件

    URL 同 上一个接口

    请求方式: PUT

    认证方式:请求头 X-Upos-Auth 为上上一接口得到的 auth

    URL参数:

    参数名类型内容必要性备注
    partNumbernum分块序号必要从 1 开始
    uploadIdstr上传 ID必要上一个接口返回
    chunknum分块序号必要从 0 开始
    chunksnum分块总数必要自行计算: 文件大小除以分块大小并向上取整
    sizenum该分块大小必要该实际上传字节数
    startnum该分块开始位置必要已实际上传字节数
    endnum该分块结束位置必要该分块上传结束后实际上传总字节数
    totalnum总大小必要视频文件大小, 单位 字节

    正文参数(application/octet-stream):

    视频文件在该分块的字节流

    纯文本回复:

    MULTIPART_PUT_SUCCESS
    +

    示例:

    假设上上一接口返回的 authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0, endpoint//upos-cs-upcdntxa.bilivideo.com, upos_uriupos://ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz, chunk_size10485760.

    上一接口返回的 upload_id8130090a-16f7-4fe6-8a29-198f5abce913.

    视频文件名为 20240724-remove-linux-then-install.tar.xz, 文件大小为 278255704 字节.

    假设您要上传的分块序号为 1, 该分块大小为 10485760, 该分块开始位置为 0, 该分块结束位置为 10485760, 该分块实际上传字节数为 10485760, 您已将文件分块存放至 part01.tar.xz, part02.tar.xz, ..., part27.tar.xz.

    curl -X PUT --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \\
    +--url-query "partNumber=1" \\
    +--url-query "uploadId=8130090a-16f7-4fe6-8a29-198f5abce913" \\
    +--url-query "chunk=0" \\
    +--url-query "chunks=27" \\
    +--url-query "size=10485760" \\
    +--url-query "start=0" \\
    +--url-query "end=10485760" \\
    +--url-query "total=278255704" \\
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \\
    +-H "Content-Type: application/octet-stream" \\
    +--data-binary @part01.tar.xz \\
    +-b "SESSDATA=xxxxxxxxx"
    +
    查看响应示例:
    MULTIPART_PUT_SUCCESS
    +

    结束上传视频文件

    URL 同 上一个接口

    请求方式: POST

    认证方式:请求头 X-Upos-Auth 为上上上一接口得到的 auth

    URL参数:

    参数名类型内容必要性备注
    outputstr输出格式不必要默认为 json(推荐), 留空为 xml
    namestr文件名必要视频文件名
    profilestr上传配置?必要与上一个接口相同, 普通视频: ugcfx/bup
    uploadIdstr上传 ID必要与上一个接口相同
    biz_idnum业务 ID?必要与上上一个接口相同

    正文参数(application/json):

    根对象:

    参数名类型内容必要性备注
    partsarray各分块信息必要按实际上传顺序而不是分块序号顺序

    parts 数组:

    类型内容必要性备注
    0obj分块信息1必要按实际上传顺序而不是分块序号顺序
    1obj分块信息2必要
    ……obj……
    nobj分块信息n必要

    parts 数组中的对象:

    参数名类型内容必要性备注
    partNumbernum分块序号必要从 1 开始
    eTagstretag必要

    JSON回复:

    上上一个接口 相同

    示例:

    假设上上上一接口返回的 authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0, endpoint//upos-cs-upcdntxa.bilivideo.com, upos_uriupos://ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz, biz_id500001630826789.

    上上一接口返回的 upload_id8130090a-16f7-4fe6-8a29-198f5abce913.

    视频文件名为 20240724-remove-linux-then-install.tar.xz, 文件大小为 278255704 字节.

    假设您已经全部上传完毕, 共上传 27 个分块, 本次请求上传的的内容存放在 body.json 文件中.

    curl -X PUT --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \\
    +--url-query "output=json" \\
    +--url-query "name=20240724-remove-linux-then-install.tar.xz" \\
    +--url-query "profile=ugcfx%2Fbup" \\
    +--url-query "uploadId=8130090a-16f7-4fe6-8a29-198f5abce913" \\
    +--url-query "biz_id=500001630826789" \\
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \\
    +-H "Content-Type: application/json" \\
    +--data-binary @body.json \\
    +-b "SESSDATA=xxxxxxxxx"
    +
    查看响应示例:
    {
    +  "OK": 1,
    +  "location": "ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz",
    +  "bucket": "ugcfx2lf",
    +  "key": "/n240729ad7gxi43yaoml312h2nbt2pnf.xz"
    +}
    +

    下载已上传的视频文件

    URL 同 上一个接口

    请求方式: GET

    认证方式:请求头 X-Upos-Auth 为上上上上一接口得到的 auth

    注: 由于 X-Upos-Auth 有效期只有 5 天, 过期请求将返回 HTTP 403 如下

    HTTP/1.1 403 Forbidden
    +Bili-Trace-Id: 3e3f2db61366adbf
    +Server: upos@hcsgw@jscs-bvc-hcsgw-public-02
    +X-Bili-Trace-Id: 0d8ca1af6d3510253e3f2db61366adbf
    +X-Upos-Auth: AUTH_TS_GT_5DAY AUTH=ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0 Now=1722662669 DURATION=449893
    +Content-Length: 0
    +Connection: keep-alive
    +Date: Sat, 03 Aug 2024 05:24:29 GMT
    +EO-LOG-UUID: 4296647794590631154
    +EO-Cache-Status: MISS
    +

    字节流回复:

    视频文件字节流

    示例:

    假设请求上一接口时的 URL 为 https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz, 请求头的 X-Upos-Authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0, 您想要下载到运行目录下的 file.tar.xz 文件

    curl -G "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \\
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \\
    +--output file.tar.xz
    +
    查看检查示例:
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    +                                 Dload  Upload   Total   Spent    Left  Speed
    +100  265M  100  265M    0     0  9493k      0  0:00:28  0:00:28 --:--:-- 10.3M
    +$ sha512sum file.tar.xz
    +abfbedf1ac4f251c81103beb4d5406af1e0b64b9d54e99bfc77d2a8a9c4913a9fd2f1751828ace8aac036f6385609d99e251437b07a0491caca2ad7069a57003  file.tar.xz
    +$ sha512sum ~/Documents/video-proj/20240724-remove-linux-then-install.tar.xz
    +abfbedf1ac4f251c81103beb4d5406af1e0b64b9d54e99bfc77d2a8a9c4913a9fd2f1751828ace8aac036f6385609d99e251437b07a0491caca2ad7069a57003  /home/sess/Documents/video-proj/20240724-remove-linux-then-install.tar.xz
    +

    Demo

    Java

    注: 需要 Gson 依赖, Java 8+, 单线程上传, 无异常处理, 仅供参考

    import java.io.ByteArrayOutputStream;
    +import java.io.File;
    +import java.io.FileInputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.net.HttpURLConnection;
    +import java.net.URI;
    +import java.net.URLEncoder;
    +import java.nio.charset.StandardCharsets;
    +import java.util.StringJoiner;
    +
    +import com.google.gson.Gson;
    +import com.google.gson.GsonBuilder;
    +import com.google.gson.JsonArray;
    +import com.google.gson.JsonObject;
    +import com.google.gson.JsonSyntaxException;
    +
    +/**
    + * A demo class for uploading videos to Bilibili.
    + * 
    + * @author SessX6cf
    + */
    +public class BiliVideoUploader {
    +
    +  private static String SESSDATA;
    +  private static File VIDEO_FILE;
    +
    +  public static void main(String[] args) throws IOException {
    +    long ts = System.currentTimeMillis();
    +    if (args.length < 2) {
    +      System.out.println("Usage: java BiliVideoUploader <video_file> <sessdata>");
    +      return;
    +    } else {
    +      VIDEO_FILE = new File(args[0]);
    +      if (!VIDEO_FILE.isFile()) {
    +        System.out.println("It is not a file!");
    +        return;
    +      } else if (!VIDEO_FILE.canRead()) {
    +        System.out.println("Cannot read the file!");
    +        return;
    +      } else if (VIDEO_FILE.isDirectory()) {
    +        System.out.println("You can play a directory?!");
    +        return;
    +      }
    +      SESSDATA = args[1];
    +    }
    +    // step 1: preupload video
    +    System.out.println("step 1: preupload video");
    +    JsonObject preuploadVideo = preuploadVideo();
    +    // step 2: post video meta
    +    System.out.println("step 2: post video meta");
    +    JsonObject postVideoMeta = postVideoMeta(preuploadVideo);
    +    // step 3: upload video
    +    System.out.println("step 3: upload video");
    +    int chunks = uploadVideo(preuploadVideo, postVideoMeta);
    +    // step 4: end upload
    +    System.out.println("step 4: end upload");
    +    endupload(preuploadVideo, postVideoMeta, chunks);
    +    // finished
    +    System.out.println("finished (" + (System.currentTimeMillis() - ts) + "ms)");
    +  }
    +
    +  private static String querypart(String key, String value) throws IOException {
    +    return key + "=" + URLEncoder.encode(value, "UTF-8");
    +  }
    +
    +  private static HttpURLConnection conn(String url, String method) throws IOException {
    +    HttpURLConnection conn;
    +    try {
    +      conn = (HttpURLConnection) new URI(url).toURL().openConnection();
    +    } catch (java.net.URISyntaxException e) {
    +      throw new IOException(e);
    +    }
    +    conn.setRequestMethod(method);
    +    // conn.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0");
    +    if (url.contains("bilibili.com")) conn.setRequestProperty("Cookie", "SESSDATA=" + SESSDATA);
    +    return conn;
    +  }
    +
    +  private static byte[] inputStreamToString(HttpURLConnection conn) throws IOException {
    +    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    +    InputStream in;
    +    in = conn.getInputStream();
    +    int b;
    +    while ((b = in.read()) != -1) {
    +      baos.write(b);
    +    }
    +    in.close();
    +    return baos.toByteArray();
    +  }
    +
    +  private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
    +
    +  private static JsonObject preuploadVideo() throws IOException {
    +    StringJoiner url = new StringJoiner("&", "https://member.bilibili.com/preupload?", "");
    +    url.add(querypart("name", VIDEO_FILE.getName()));
    +    // url.add(querypart("size", String.valueOf(VIDEO_FILE.length())));
    +    url.add(querypart("r", "upos"));
    +    url.add(querypart("profile", "ugcfx/bup"));
    +    HttpURLConnection conn = conn(url.toString(), "GET");
    +    System.out.println("GET " + url.toString());
    +    String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +    try {
    +      JsonObject json = GSON.fromJson(response, JsonObject.class);
    +      System.out.println(GSON.toJson(json));
    +      return json;
    +    } catch (JsonSyntaxException e) {
    +      System.out.println(response);
    +      throw e;
    +    }
    +  }
    +
    +  private static JsonObject postVideoMeta(JsonObject preuploadVideo) throws IOException {
    +    String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString();
    +    String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", "");
    +    StringJoiner url = new StringJoiner("&", schemeandhost + path + "?", "");
    +    url.add(querypart("uploads", "")); // WARNING: this is not a typo, it's required, or 404
    +    url.add(querypart("output", "json"));
    +    url.add(querypart("profile", "ugcfx/bup"));
    +    url.add(querypart("filesize", String.valueOf(VIDEO_FILE.length())));
    +    url.add(querypart("partsize", preuploadVideo.get("chunk_size").getAsString()));
    +    url.add(querypart("biz_id", preuploadVideo.get("biz_id").getAsString()));
    +    HttpURLConnection conn = conn(url.toString(), "POST");
    +    conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString()); // 403 without it
    +    System.out.println("POST " + url.toString());
    +    String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +    try {
    +      JsonObject json = GSON.fromJson(response, JsonObject.class);
    +      System.out.println(GSON.toJson(json));
    +      return json;
    +    } catch (JsonSyntaxException e) {
    +      System.out.println(response);
    +      throw e;
    +    }
    +  }
    +
    +  private static int uploadVideo(JsonObject preuploadVideo, JsonObject postVideoMeta) throws IOException {
    +    long startts = System.currentTimeMillis() - 1;
    +    String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString();
    +    String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", "");
    +    String urlp = schemeandhost + path + "?";
    +    long length = VIDEO_FILE.length();
    +    byte[] buffer = new byte[preuploadVideo.get("chunk_size").getAsInt()];
    +    int size = 0;
    +    int chunks = (int) Math.ceil(length / (double) buffer.length);
    +    InputStream in = new FileInputStream(VIDEO_FILE);
    +    for (int chunk = 0; chunk < chunks; chunk++) {
    +      System.out.println("speed: " + (chunk * buffer.length) / (System.currentTimeMillis() - startts) + "bytes/s");
    +      System.out.println("chunk: " + (chunk + 1) + "/" + chunks);
    +      size = in.read(buffer, 0, buffer.length);
    +      if (size == -1) {
    +        break;
    +      }
    +      StringJoiner url = new StringJoiner("&", urlp, "");
    +      url.add(querypart("partNumber", String.valueOf(chunk + 1)));
    +      url.add(querypart("uploadId", postVideoMeta.get("upload_id").getAsString()));
    +      url.add(querypart("chunk", String.valueOf(chunk)));
    +      url.add(querypart("chunks", String.valueOf(chunks)));
    +      url.add(querypart("size", String.valueOf(size)));
    +      url.add(querypart("start", String.valueOf(chunk * buffer.length)));
    +      url.add(querypart("end", String.valueOf((chunk) * buffer.length + size)));
    +      url.add(querypart("total", String.valueOf(length)));
    +      HttpURLConnection conn = conn(url.toString(), "PUT");
    +      conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString());
    +      conn.setRequestProperty("Content-Type", "application/octet-stream");
    +      conn.setRequestProperty("Content-Length", String.valueOf(size));
    +      conn.setDoOutput(true);
    +      conn.getOutputStream().write(buffer, 0, size);
    +      System.out.println("PUT " + url.toString());
    +      String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +      System.out.println(response);
    +    }
    +    in.close();
    +    return chunks;
    +  }
    +
    +  private static void endupload(JsonObject preuploadVideo, JsonObject postVideoMeta, int chunks) throws IOException {
    +    String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString();
    +    String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", "");
    +    StringJoiner url = new StringJoiner("&", schemeandhost + path + "?", "");
    +    url.add(querypart("output", "json"));
    +    url.add(querypart("name", VIDEO_FILE.getName()));
    +    url.add(querypart("profile", "ugcfx/bup"));
    +    url.add(querypart("uploadId", postVideoMeta.get("upload_id").getAsString()));
    +    url.add(querypart("biz_id", preuploadVideo.get("biz_id").getAsString()));
    +    JsonArray parts = new JsonArray();
    +    for (int i = 1; i <= chunks; i++) {
    +      JsonObject part = new JsonObject();
    +      part.addProperty("partNumber", i);
    +      part.addProperty("eTag", "etag");
    +      parts.add(part);
    +    }
    +    JsonObject body = new JsonObject();
    +    body.add("parts", parts);
    +    HttpURLConnection conn = conn(url.toString(), "POST");
    +    conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString());
    +    conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
    +    conn.setDoOutput(true);
    +    conn.getOutputStream().write(body.toString().getBytes(StandardCharsets.UTF_8));
    +    System.out.println("POST " + url.toString());
    +    String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +    try {
    +      JsonObject json = GSON.fromJson(response, JsonObject.class);
    +      System.out.println(GSON.toJson(json));
    +    } catch (JsonSyntaxException e) {
    +      System.out.println(response);
    +      throw e;
    +    }
    +  }
    +
    +}
    +
    `,143);function k(m,v){const t=o("ExternalLinkIcon");return e(),c("div",null,[i,n("p",null,[s("JavaScript (Node.js) 请求"),n("a",d,[s("示例"),u(t)])]),r])}const q=p(l,[["render",k],["__file","upload.html.vue"]]);export{q as default}; diff --git a/assets/user.html-c5c69524.js b/assets/user.html-c5c69524.js new file mode 100644 index 0000000000..bc6d84a74f --- /dev/null +++ b/assets/user.html-c5c69524.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-0560cd46","path":"/docs/live/user.html","title":"直播间用户实用 API","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取用户持有的粉丝勋章信息","slug":"获取用户持有的粉丝勋章信息","link":"#获取用户持有的粉丝勋章信息","children":[]},{"level":2,"title":"佩戴勋章","slug":"佩戴勋章","link":"#佩戴勋章","children":[]},{"level":2,"title":"直播签到","slug":"直播签到","link":"#直播签到","children":[]},{"level":2,"title":"本月直播签到信息","slug":"本月直播签到信息","link":"#本月直播签到信息","children":[]},{"level":2,"title":"上月直播签到信息","slug":"上月直播签到信息","link":"#上月直播签到信息","children":[]}],"git":{},"filePathRelative":"docs/live/user.md"}');export{l as data}; diff --git a/assets/user.html-c8b446e0.js b/assets/user.html-c8b446e0.js new file mode 100644 index 0000000000..75514abce3 --- /dev/null +++ b/assets/user.html-c8b446e0.js @@ -0,0 +1,134 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const e={},d=a(`

    直播间用户实用 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_sizenum每页的数量必要最大为 10,超出 1002002:参数异常
    pagenum返回结果页数必要两个参数不填返回空,只 page 不填或错误则 500 异常

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -1002002:参数异常
    -500:服务器异常
    messagestr错误信息默认为 "0"
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum勋章数量
    itemsarray粉丝勋章信息本体
    page_infoobj页码信息

    items数组中的对象:

    字段类型内容备注
    can_deletebool可否删除
    day_limitnum日经验上限(原力值)eg: 1500
    guard_levelnum
    guard_medal_titlestr加成状态
    intimacynum当前已得亲密度
    is_lightednum是否点亮0:未点亮
    1:点亮
    levelnum勋章等级
    medal_namestr勋章名
    medal_color_bordernum勋章边框颜色信息颜色数值为 10 进制的 16 进制值(下同)
    medal_color_startnum勋章起始颜色从右往左渐变(20 级+勋章)
    medal_color_endnum勋章结束颜色从右往左渐变(20 级+勋章)
    medal_idnum粉丝勋章 id
    next_intimacynum升级所需经验
    today_feednum本日亲密度
    roomidnum直播间房间号
    statusnum
    target_idnumberup 主 mid
    target_namestrup 主用户名
    unamestrup 主用户名

    page_info对象:

    字段类型内容备注
    total_pagenum页码总长度
    cur_pagenum当前返回的页码

    示例:

    curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&page_size=10 \\
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "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_idnum勋章 id必要
    csrfnumcookie 中 bili_jct 字段必要
    csrf_tokennum同上必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    ttlnum1
    messagestr错误信息默认为佩戴成功
    dataobj信息本体默认为无

    示例:

    佩戴勋章 id 为 1 的勋章

    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 (){
    +
    +    }
    +})
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "佩戴成功",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    直播签到

    https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    ttlnum1
    messagestr错误信息默认为当日签到奖励内容
    dataobj信息本体默认为空

    本月直播签到信息

    https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/WebGetSignInfo

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    ttlnum1
    messagestr错误信息默认为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    textstr今日签到奖励信息默认为空
    specialTextstr连续签到奖励信息默认为空
    statusnum签到状态0:未签到
    1:已签到
    allDaysnum当月天数
    curMonthnum当前月
    curYearnum当前年
    curDaynum当前日
    curDatastr当前日期(格式化)eg: 2023-2-19
    hadSignDaysnum当月已签到天数默认为0
    newTasknum作用未知默认为0
    signDaysListarray当月已签到日列表默认为空
    signBonusDaysListarray当月已签到且有特殊奖励日列表默认为空
    查看响应示例:
    {
    +    "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 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    ttlnum1
    messagestr错误信息默认为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    daysnum上月天数
    monthnum上月月份值
    hadSignDaysnum上月已签到天数默认为0
    signDaysListarray上月已签到日列表默认为空
    signBonusDaysListarray上月已签到且有特殊奖励日列表默认为空
    查看响应示例:
    {
    +    "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
    +        ]
    +    }
    +}
    +
    `,58),p=[d];function o(r,l){return n(),s("div",null,p)}const u=t(e,[["render",o],["__file","user.html.vue"]]);export{u as default}; diff --git a/assets/v_voucher.html-5f66a796.js b/assets/v_voucher.html-5f66a796.js new file mode 100644 index 0000000000..1b82ea909d --- /dev/null +++ b/assets/v_voucher.html-5f66a796.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-79d95c04","path":"/docs/misc/sign/v_voucher.html","title":"v_voucher 验证","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"简述","slug":"简述","link":"#简述","children":[]},{"level":2,"title":"操作流程","slug":"操作流程","link":"#操作流程","children":[]},{"level":2,"title":"接口列表","slug":"接口列表","link":"#接口列表","children":[{"level":3,"title":"从 v_voucher 申请 captcha","slug":"从-v-voucher-申请-captcha","link":"#从-v-voucher-申请-captcha","children":[]}]},{"level":2,"title":"从验证结果获取 grisk_id","slug":"从验证结果获取-grisk-id","link":"#从验证结果获取-grisk-id","children":[]}],"git":{},"filePathRelative":"docs/misc/sign/v_voucher.md"}');export{e as data}; diff --git a/assets/v_voucher.html-8a3762e5.js b/assets/v_voucher.html-8a3762e5.js new file mode 100644 index 0000000000..f8996173de --- /dev/null +++ b/assets/v_voucher.html-8a3762e5.js @@ -0,0 +1,42 @@ +import{_ as p,r as d,o as l,c as r,a as t,b as s,d as n,w as e,g as i,e as o}from"./app-3168cb19.js";const u={},h=o('

    v_voucher 验证

    简述

    当同一接口在短时间内被同一用户/IP/UA多次请求或异常时, 会触发风控, 如接口返回 code-352风控校验失败, 同时 data 中出现 v_voucher 字段

    v_voucher 结构为字符串 voucher_ 尾随一串以 - 为分隔符的小写 UUID

    v_voucher 可用于申请 captcha 验证码, 根据验证结果使用 validate 接口获取 grisk_id 作为被风控接口的 gaia_vtoken 与 Cookie 中的 x-bili-gaia-vtoken 即可恢复正常访问

    ',5),v=t("code",null,"User-Agent",-1),b=t("code",null,"Referer",-1),k=t("code",null,"Cookie",-1),m=t("code",null,"bili_ticket",-1),_=t("code",null,"b_nut",-1),g=t("code",null,"buvid3",-1),q=t("code",null,"buvid4",-1),f={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/1067",target:"_blank",rel:"noopener noreferrer"},y=t("h2",{id:"操作流程",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#操作流程","aria-hidden":"true"},"#"),s(" 操作流程")],-1),x=o(`
  • 快速以不正确的姿势请求接口, 直到返回 v_voucher 字段如下

    {
    +  "code": -352,
    +  "message": "风控校验失败",
    +  "ttl": 1,
    +  "data": {
    +    "v_voucher": "voucher_84a8c3ce-33f5-4551-9552-9c6b13aa7938"
    +  }
    +}
    +
  • `,1),E=t("a",{href:"#%E4%BB%8E-v_voucher-%E7%94%B3%E8%AF%B7-captcha"},[s("请求 "),t("code",null,"register"),s(" 接口")],-1),A=t("code",null,"csrf",-1),B=t("code",null,"v_voucher",-1),C=t("code",null,"token",-1),j=t("code",null,"challenge",-1),w=t("code",null,"validate",-1),F=t("code",null,"seccode",-1),S=o('
  • 请求 validate 接口, 请求体传入 challenge token validate seccode csrf, 该接口返回 grisk_idgaia_vtoken

  • 重新请求原接口, 原 URL 参数加入 gaia_vtoken, 即恢复正常

  • ',2),N=t("h2",{id:"接口列表",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#接口列表","aria-hidden":"true"},"#"),s(" 接口列表")],-1),T=t("h3",{id:"从-v-voucher-申请-captcha",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#从-v-voucher-申请-captcha","aria-hidden":"true"},"#"),s(" 从 v_voucher 申请 captcha")],-1),O=t("blockquote",null,[t("p",null,"https://api.bilibili.com/x/gaia-vgate/v1/register")],-1),P=t("code",null,"v_voucher",-1),R=o(`

    请求方式: POST

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于 Cookie 的 bili_jct)非必要
    v_voucherstrv_voucher必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    100000: 验证码获取失败
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    typestr验证码类型目前只有 geetest
    tokenstr验证码 token用于验证
    geetestobj极验信息若为 null 则说明该风控无法通过 captcha 解除
    biliwordnull
    phonenull
    smsnull

    geetest 对象:

    字段类型内容备注
    gtstr极验id一般为固定值
    challengestr极验KEY由B站后端产生用于人机验证

    示例:

    假设此处 v_vouchervoucher_ecca35e6-36da-4f38-bd84-b3f420ea08c1

    curl -X POST "https://api.bilibili.com/x/gaia-vgate/v1/register" \\
    +--data-urlencode "v_voucher=voucher_ecca35e6-36da-4f38-bd84-b3f420ea08c1"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "type": "geetest",
    +    "token": "e7abdb050c3d4609979f1685137e3bc0",
    +    "geetest": {
    +      "challenge": "85118f8714875ca4c6d5641bb0ce9ddf",
    +      "gt": "ac597a4506fee079629df5d8b66dd4fe"
    +    },
    +    "biliword": null,
    +    "phone": null,
    +    "sms": null
    +  }
    +}
    +

    从验证结果获取 grisk_id

    https://api.bilibili.com/x/gaia-vgate/v1/validate

    请求方式: POST

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于 Cookie 的 bili_jct)非必要若登陆则必要
    challengestr验证码 challenge必要
    tokenstr验证码 token必要
    validatestr验证结果 validate必要
    seccodestr验证结果 seccode必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111: csrf 校验失败
    100003: 验证码过期
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    is_validnum验证结果1:验证成功
    grisk_idstrgaia_vtoken用于恢复正常访问

    示例:

    curl -X POST "https://api.bilibili.com/x/gaia-vgate/v1/validate" \\
    +--data-urlencode "challenge=e4fcb337b8c0427b56320f97e1064210" \\
    +--data-urlencode "csrf=xxxxxxxxxxxxxxx" \\
    +--data-urlencode "seccode=360f7b9cf75c74c68fbb7475416d0e0d|jordan" \\
    +--data-urlencode "token=0e1e58bdff3d4b8aa298e346fed07eeb" \\
    +--data-urlencode "validate=360f7b9cf75c74c68fbb7475416d0e0d"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "is_valid": 1,
    +    "grisk_id": "2e91cf2b67172ca8432fe7c9ab66a5c4"
    +  }
    +}
    +
    `,27);function I(L,U){const a=d("RouterLink"),c=d("ExternalLinkIcon");return l(),r("div",null,[h,t("p",null,[s("若该情况出现在使用 Wbi 签名的接口中, 建议先检查 Wbi 签名是否正确. 若已检查 Wbi 签名或无需签名, 检查请求头中 "),v,s(),b,s(" 是否正常, 以及 "),k,s(" 中 "),n(a,{to:"/docs/misc/sign/bili_ticket.html"},{default:e(()=>[m]),_:1}),s(),n(a,{to:"/docs/misc/buvid3_4.html"},{default:e(()=>[_,s(),g,s(),q]),_:1}),s(" 等是否存在. 使用 captcha 是最后的选择, 因为 captcha 验证需要用户操作"),i(", 且这几天做验证码做的真的要疯了喵")]),t("p",null,[s("参见 "),t("a",f,[s("#1067"),n(c)])]),y,t("ol",null,[x,t("li",null,[t("p",null,[E,s(", 请求体传入 "),A,s(" 及 "),B,s(", 该接口返回与 "),n(a,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[s("申请captcha验证码")]),_:1}),s(" 部分相同, 记录此处返回的 "),C,s(),j])]),t("li",null,[t("p",null,[s("按照 "),n(a,{to:"/docs/login/login_action/#%E9%AA%8C%E8%AF%81captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:e(()=>[s("验证captcha验证码")]),_:1}),s(" 进行验证, 记下验证结果的 "),w,s(" 与 "),F])]),S]),N,T,O,t("p",null,[s("注: 同一有效 "),P,s(" 只能请求一次, 请求完毕请立即 "),n(a,{to:"/docs/login/login_action/#%E8%BF%9B%E8%A1%8C%E9%AA%8C%E8%AF%81"},{default:e(()=>[s("进行验证")]),_:1}),s(" 防止过期失效")]),R])}const W=p(u,[["render",I],["__file","v_voucher.html.vue"]]);export{W as default}; diff --git a/assets/ver.html-2794aad3.js b/assets/ver.html-2794aad3.js new file mode 100644 index 0000000000..d92a192324 --- /dev/null +++ b/assets/ver.html-2794aad3.js @@ -0,0 +1,30 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const d={},e=a(`

    获取最新 APP 版本

    版本升级

    https://app.bilibili.com/x/v2/version/fawkes/upgrade

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    appkeystrAPP 密钥不必要
    buildint当前 APP 版本号必要将会影响是否有新版本
    mobi_appstr目标客户端类型必要android
    ntstr任意非空串必要默认为 1
    ovstr任意非空串必要默认为 22
    platformstr设备平台必要任意非空串即可, 如 android
    snint设备序列号?必要任意数字即可, 如 4462369
    vnstr当前版本号必要任意非空串即可, 如 6.13.0

    JSON回复:

    根对象:

    字段类型内容备注
    codeint返回值0: 成功
    -304: 木有改动
    -400: 请求异常
    messagestr错误信息默认为 0
    ttlint1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    titlestr标题
    contentstr内容
    versionstr最新版本号
    version_codeint最新版本号build
    urlstr下载地址
    sizeint大小单位字节
    md5strMD5 值
    silentint是否静默安装?
    upgrade_typeint升级类型?
    cycleint升级周期?
    policyint升级策略?
    policy_urlstr升级策略链接?
    ptimeint发布时间

    示例:

    curl -G 'https://app.bilibili.com/x/v2/version/fawkes/upgrade' \\
    +--url-query 'build=1145141' \\
    +--url-query 'channel=apt' \\
    +--url-query 'mobi_app=android' \\
    +--url-query 'nt=awa' \\
    +--url-query 'ov=qwq' \\
    +--url-query 'platform=archlinux' \\
    +--url-query 'sn=919810' \\
    +--url-query 'vn=!!!'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "title": "升级提醒",
    +    "content": "-修复了一些bug,并优化了一些搜索和播放体验~\\n-让我们举起双手,把力量借给备考的小伙伴们!",
    +    "version": "7.81.0",
    +    "version_code": 7810200,
    +    "url": "https://dl.hdslb.com/mobile/pack/android/15013586/iBiliPlayer-apinkRelease-7.81.0-b15013586.apk",
    +    "size": 138723520,
    +    "md5": "60f83fb828bc05aefdac67504ba72ea9",
    +    "silent": 0,
    +    "upgrade_type": 1,
    +    "cycle": 4,
    +    "policy": 0,
    +    "policy_url": "",
    +    "ptime": 1717554395
    +  }
    +}
    +
    `,14),o=[e];function r(p,l){return n(),s("div",null,o)}const c=t(d,[["render",r],["__file","ver.html.vue"]]);export{c as default}; diff --git a/assets/ver.html-b7ca0cfa.js b/assets/ver.html-b7ca0cfa.js new file mode 100644 index 0000000000..9331fdfc98 --- /dev/null +++ b/assets/ver.html-b7ca0cfa.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-5a599330","path":"/docs/APP_widget/ver.html","title":"获取最新 APP 版本","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"版本升级","slug":"版本升级","link":"#版本升级","children":[]}],"git":{},"filePathRelative":"docs/APP_widget/ver.md"}');export{e as data}; diff --git a/assets/video_room.html-6222ad7b.js b/assets/video_room.html-6222ad7b.js new file mode 100644 index 0000000000..66a43ed682 --- /dev/null +++ b/assets/video_room.html-6222ad7b.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-7b9cff31","path":"/docs/broadcast/video_room.html","title":"视频实时信息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"认证包(上行)","slug":"认证包-上行","link":"#认证包-上行","children":[]},{"level":2,"title":"认证包回复(下行)","slug":"认证包回复-下行","link":"#认证包回复-下行","children":[]},{"level":2,"title":"心跳包(上行)","slug":"心跳包-上行","link":"#心跳包-上行","children":[]},{"level":2,"title":"心跳包回复(实时观看数)(下行)","slug":"心跳包回复-实时观看数-下行","link":"#心跳包回复-实时观看数-下行","children":[]},{"level":2,"title":"普通包(实时弹幕)(下行)","slug":"普通包-实时弹幕-下行","link":"#普通包-实时弹幕-下行","children":[]}],"git":{},"filePathRelative":"docs/broadcast/video_room.md"}');export{l as data}; diff --git a/assets/video_room.html-bf5197aa.js b/assets/video_room.html-bf5197aa.js new file mode 100644 index 0000000000..0adee28d5f --- /dev/null +++ b/assets/video_room.html-bf5197aa.js @@ -0,0 +1,33 @@ +import{_ as n,r as i,o as r,c as o,a as t,b as d,d as s,e}from"./app-3168cb19.js";const l={},c=e(`

    视频实时信息

    认证包(上行)

    正文内容json:

    根对象:

    字段类型内容备注
    room_idstr目标视频video://{稿件avid}/{视频cid}
    platformstr平台标识默认为web
    acceptsarray操作标识

    array数组:

    类型内容备注
    0num1000作用尚不明确
    1num1015作用尚不明确

    示例:

    发送视频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:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为OK
    versionnum版本号

    示例:

    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:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为OK
    dataobj信息本体

    data对象:

    字段类型内容备注
    roomobj视频实时观看信息

    data中的room对象:

    字段类型内容备注
    onlinenum实时观看人数
    room_idstr目标视频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:

    根数组:

    `,37),u=t("thead",null,[t("tr",null,[t("th",null,"项"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"备注")])],-1),h=t("td",null,"0",-1),b=t("td",null,"str",-1),v=t("td",null,"弹幕属性信息",-1),m={href:"https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/danmaku_xml.md",target:"_blank",rel:"noopener noreferrer"},p=t("tr",null,[t("td",null,"1"),t("td",null,"str"),t("td",null,"弹幕内容"),t("td")],-1),g=e(`

    示例:

    弹幕属性为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                                                |]|
    +
    `,4);function f(q,_){const a=i("ExternalLinkIcon");return r(),o("div",null,[c,t("table",null,[u,t("tbody",null,[t("tr",null,[h,b,v,t("td",null,[d("详见"),t("a",m,[d("「弹幕」中的属性 p"),s(a)])])]),p])]),g])}const y=n(l,[["render",f],["__file","video_room.html.vue"]]);export{y as default}; diff --git a/assets/video_up-3b7a0949.svg b/assets/video_up-3b7a0949.svg new file mode 100644 index 0000000000..e8987f58fe --- /dev/null +++ b/assets/video_up-3b7a0949.svg @@ -0,0 +1,6 @@ + + + diff --git a/assets/video_zone.html-57dc301a.js b/assets/video_zone.html-57dc301a.js new file mode 100644 index 0000000000..95f19d30bd --- /dev/null +++ b/assets/video_zone.html-57dc301a.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-63d42d8c","path":"/docs/video/video_zone.html","title":"视频分区一览","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"动画","slug":"动画","link":"#动画","children":[]},{"level":2,"title":"番剧","slug":"番剧","link":"#番剧","children":[]},{"level":2,"title":"国创","slug":"国创","link":"#国创","children":[]},{"level":2,"title":"音乐","slug":"音乐","link":"#音乐","children":[]},{"level":2,"title":"舞蹈","slug":"舞蹈","link":"#舞蹈","children":[]},{"level":2,"title":"游戏","slug":"游戏","link":"#游戏","children":[]},{"level":2,"title":"知识","slug":"知识","link":"#知识","children":[]},{"level":2,"title":"科技","slug":"科技","link":"#科技","children":[]},{"level":2,"title":"运动","slug":"运动","link":"#运动","children":[]},{"level":2,"title":"汽车","slug":"汽车","link":"#汽车","children":[]},{"level":2,"title":"生活","slug":"生活","link":"#生活","children":[]},{"level":2,"title":"美食","slug":"美食","link":"#美食","children":[]},{"level":2,"title":"动物圈","slug":"动物圈","link":"#动物圈","children":[]},{"level":2,"title":"鬼畜","slug":"鬼畜","link":"#鬼畜","children":[]},{"level":2,"title":"时尚","slug":"时尚","link":"#时尚","children":[]},{"level":2,"title":"资讯","slug":"资讯","link":"#资讯","children":[]},{"level":2,"title":"广告","slug":"广告","link":"#广告","children":[]},{"level":2,"title":"娱乐","slug":"娱乐","link":"#娱乐","children":[]},{"level":2,"title":"影视","slug":"影视","link":"#影视","children":[]},{"level":2,"title":"纪录片","slug":"纪录片","link":"#纪录片","children":[]},{"level":2,"title":"电影","slug":"电影","link":"#电影","children":[]},{"level":2,"title":"电视剧","slug":"电视剧","link":"#电视剧","children":[]}],"git":{},"filePathRelative":"docs/video/video_zone.md"}');export{l as data}; diff --git a/assets/video_zone.html-f7319cb2.js b/assets/video_zone.html-f7319cb2.js new file mode 100644 index 0000000000..04f9a8b197 --- /dev/null +++ b/assets/video_zone.html-f7319cb2.js @@ -0,0 +1 @@ +import{_ as s,r as i,o as d,c as _,a as t,b as l,d as e,e as o}from"./app-3168cb19.js";const r="/bilibili-API-collect/assets/douga-551968c9.svg",h="/bilibili-API-collect/assets/anime-b33a4df8.svg",u="/bilibili-API-collect/assets/guochuang-2887858d.svg",c="/bilibili-API-collect/assets/music-1d6aa097.svg",a="/bilibili-API-collect/assets/dance-26e4156b.svg",b="/bilibili-API-collect/assets/game-158a0730.svg",w="/bilibili-API-collect/assets/knowledge-65fd8dce.svg",f="/bilibili-API-collect/assets/tech-8f2eb72e.svg",m="/bilibili-API-collect/assets/digital-d249bb54.svg",p="/bilibili-API-collect/assets/sports-bfc825f3.svg",v="/bilibili-API-collect/assets/car-c766485c.svg",g="/bilibili-API-collect/assets/life-1f4a6ef5.svg",k="/bilibili-API-collect/assets/food-5883d8d8.svg",y="/bilibili-API-collect/assets/animal-95ff87f2.svg",A="/bilibili-API-collect/assets/kichiku-8f960ae2.svg",I="/bilibili-API-collect/assets/fashion-773241bb.svg",x="/bilibili-API-collect/assets/information-d98c5ed0.svg",P="/bilibili-API-collect/assets/ad-9ab8d23b.svg",M="/bilibili-API-collect/assets/ent-ed6247e0.svg",V="/bilibili-API-collect/assets/cinephile-c8d74b94.svg",C="/bilibili-API-collect/assets/documentary-2c550e67.svg",D="/bilibili-API-collect/assets/movie-693cc994.svg",G="/bilibili-API-collect/assets/teleplay-1f3272a8.svg",O={},L=o('

    视频分区一览

    用于通过稿件 avid 判断所在的分区,或推荐分区视频等.......

    亦可用于更深♂入了解B站的分区

    动画

    ',5),E=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),N=t("td",null,"动画(主分区)",-1),B=t("td",null,"douga",-1),j=t("td",null,"1",-1),F=t("td",null,null,-1),T={href:"https://www.bilibili.com/v/douga",target:"_blank",rel:"noopener noreferrer"},Y=t("td",null,"MAD·AMV",-1),z=t("td",null,"mad",-1),K=t("td",null,"24",-1),S=t("td",null,"具有一定制作程度的动画或静画的二次创作视频",-1),U={href:"https://www.bilibili.com/v/douga/mad",target:"_blank",rel:"noopener noreferrer"},R=t("td",null,"MMD·3D",-1),q=t("td",null,"mmd",-1),H=t("td",null,"25",-1),J=t("td",null,"使用MMD(MikuMikuDance)和其他3D建模类软件制作的视频",-1),Q={href:"https://www.bilibili.com/v/douga/mmd",target:"_blank",rel:"noopener noreferrer"},W=t("td",null,"短片·手书",-1),X=t("td",null,"handdrawn",-1),Z=t("td",null,"47",-1),$=t("td",null,"追求个人特色和创意表达的动画短片及手书(绘)",-1),tt={href:"https://www.bilibili.com/v/douga/handdrawn",target:"_blank",rel:"noopener noreferrer"},lt=t("td",null,"配音",-1),nt=t("td",null,"voice",-1),et=t("td",null,"257",-1),ot=t("td",null,"使用ACGN相关画面或台本素材进行人工配音创作的内容",-1),st={href:"https://www.bilibili.com/v/douga/voice",target:"_blank",rel:"noopener noreferrer"},it=t("td",null,"手办·模玩",-1),dt=t("td",null,"garage_kit",-1),_t=t("td",null,"210",-1),rt=t("td",null,"手办模玩的测评、改造或其他衍生内容",-1),ht={href:"https://www.bilibili.com/v/douga/garage_kit",target:"_blank",rel:"noopener noreferrer"},ut=t("td",null,"特摄",-1),ct=t("td",null,"tokusatsu",-1),at=t("td",null,"86",-1),bt=t("td",null,"特摄相关衍生视频",-1),wt={href:"https://www.bilibili.com/v/douga/tokusatsu",target:"_blank",rel:"noopener noreferrer"},ft=t("td",null,"动漫杂谈",-1),mt=t("td",null,"acgntalks",-1),pt=t("td",null,"253",-1),vt=t("td",null,"以谈话形式对ACGN文化圈进行的鉴赏、吐槽、评点、解说、推荐、科普等内容",-1),gt={href:"https://www.bilibili.com/v/douga/acgntalks",target:"_blank",rel:"noopener noreferrer"},kt=t("td",null,"综合",-1),yt=t("td",null,"other",-1),At=t("td",null,"27",-1),It=t("td",null,"以动画及动画相关内容为素材,包括但不仅限于音频替换、恶搞改编、排行榜等内容",-1),xt={href:"https://www.bilibili.com/v/douga/other",target:"_blank",rel:"noopener noreferrer"},Pt=t("h2",{id:"番剧",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#番剧","aria-hidden":"true"},"#"),l(" 番剧")],-1),Mt=t("img",{src:h,width:"100",height:"100"},null,-1),Vt=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Ct=t("td",null,"番剧(主分区)",-1),Dt=t("td",null,"anime",-1),Gt=t("td",null,"13",-1),Ot=t("td",null,null,-1),Lt={href:"https://www.bilibili.com/anime",target:"_blank",rel:"noopener noreferrer"},Et=t("td",null,"资讯",-1),Nt=t("td",null,"information",-1),Bt=t("td",null,"51",-1),jt=t("td",null,"动画番剧相关资讯视频",-1),Ft={href:"https://www.bilibili.com/v/anime/information",target:"_blank",rel:"noopener noreferrer"},Tt=t("td",null,"官方延伸",-1),Yt=t("td",null,"offical",-1),zt=t("td",null,"152",-1),Kt=t("td",null,"动画番剧为主题的宣传节目、采访视频,及声优相关视频",-1),St={href:"https://www.bilibili.com/v/anime/offical",target:"_blank",rel:"noopener noreferrer"},Ut=t("td",null,"完结动画",-1),Rt=t("td",null,"finish",-1),qt=t("td",null,"32",-1),Ht=t("td",null,"已完结的动画番剧合集",-1),Jt={href:"https://www.bilibili.com/v/anime/finish",target:"_blank",rel:"noopener noreferrer"},Qt=t("td",null,"连载动画",-1),Wt=t("td",null,"serial",-1),Xt=t("td",null,"33",-1),Zt=t("td",null,"当季连载的动画番剧",-1),$t={href:"https://www.bilibili.com/v/anime/serial",target:"_blank",rel:"noopener noreferrer"},tl=t("h2",{id:"国创",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#国创","aria-hidden":"true"},"#"),l(" 国创")],-1),ll=t("img",{src:u,width:"100",height:"100"},null,-1),nl=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),el=t("td",null,"国创(主分区)",-1),ol=t("td",null,"guochuang",-1),sl=t("td",null,"167",-1),il=t("td",null,null,-1),dl={href:"https://www.bilibili.com/guochuang",target:"_blank",rel:"noopener noreferrer"},_l=t("td",null,"国产动画",-1),rl=t("td",null,"chinese",-1),hl=t("td",null,"153",-1),ul=t("td",null,"我国出品的PGC动画",-1),cl={href:"https://www.bilibili.com/v/guochuang/chinese",target:"_blank",rel:"noopener noreferrer"},al=t("td",null,"国产原创相关",-1),bl=t("td",null,"original",-1),wl=t("td",null,"168",-1),fl=t("td",null,null,-1),ml={href:"https://www.bilibili.com/v/guochuang/original",target:"_blank",rel:"noopener noreferrer"},pl=t("td",null,"布袋戏",-1),vl=t("td",null,"puppetry",-1),gl=t("td",null,"169",-1),kl=t("td",null,null,-1),yl={href:"https://www.bilibili.com/v/guochuang/puppetry",target:"_blank",rel:"noopener noreferrer"},Al=t("td",null,"资讯",-1),Il=t("td",null,"information",-1),xl=t("td",null,"170",-1),Pl=t("td",null,null,-1),Ml={href:"https://www.bilibili.com/v/guochuang/information",target:"_blank",rel:"noopener noreferrer"},Vl=t("td",null,"动态漫·广播剧",-1),Cl=t("td",null,"motioncomic",-1),Dl=t("td",null,"195",-1),Gl=t("td",null,null,-1),Ol={href:"https://www.bilibili.com/v/guochuang/motioncomic",target:"_blank",rel:"noopener noreferrer"},Ll=t("h2",{id:"音乐",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#音乐","aria-hidden":"true"},"#"),l(" 音乐")],-1),El=t("img",{src:c,width:"100",height:"100"},null,-1),Nl=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Bl=t("td",null,"音乐(主分区)",-1),jl=t("td",null,"music",-1),Fl=t("td",null,"3",-1),Tl=t("td",null,null,-1),Yl={href:"https://www.bilibili.com/v/music",target:"_blank",rel:"noopener noreferrer"},zl=t("td",null,"原创音乐",-1),Kl=t("td",null,"original",-1),Sl=t("td",null,"28",-1),Ul=t("td",null,"原创歌曲及纯音乐,包括改编、重编曲及remix",-1),Rl={href:"https://www.bilibili.com/v/music/original",target:"_blank",rel:"noopener noreferrer"},ql=t("td",null,"翻唱",-1),Hl=t("td",null,"cover",-1),Jl=t("td",null,"31",-1),Ql=t("td",null,"对曲目的人声再演绎视频",-1),Wl={href:"https://www.bilibili.com/v/music/cover",target:"_blank",rel:"noopener noreferrer"},Xl=t("td",null,"VOCALOID·UTAU",-1),Zl=t("td",null,"vocaloid",-1),$l=t("td",null,"30",-1),tn=t("td",null,"以VOCALOID等歌声合成引擎为基础,运用各类音源进行的创作",-1),ln={href:"https://www.bilibili.com/v/music/vocaloid",target:"_blank",rel:"noopener noreferrer"},nn=t("td",null,"演奏",-1),en=t("td",null,"perform",-1),on=t("td",null,"59",-1),sn=t("td",null,"乐器和非传统乐器器材的演奏作品。",-1),dn={href:"https://www.bilibili.com/v/music/perform",target:"_blank",rel:"noopener noreferrer"},_n=t("td",null,"MV",-1),rn=t("td",null,"mv",-1),hn=t("td",null,"193",-1),un=t("td",null,"为音乐作品配合拍摄或制作的音乐录影带(Music Video),以及自制拍摄、剪辑、翻拍MV",-1),cn={href:"https://www.bilibili.com/v/music/mv",target:"_blank",rel:"noopener noreferrer"},an=t("td",null,"音乐现场",-1),bn=t("td",null,"live",-1),wn=t("td",null,"29",-1),fn=t("td",null,"音乐表演的实况视频,包括官方/个人拍摄的综艺节目、音乐剧、音乐节、演唱会等",-1),mn={href:"https://www.bilibili.com/v/music/live",target:"_blank",rel:"noopener noreferrer"},pn=t("td",null,"音乐综合",-1),vn=t("td",null,"other",-1),gn=t("td",null,"130",-1),kn=t("td",null,"所有无法被收纳到其他音乐二级分区的音乐类视频",-1),yn={href:"https://www.bilibili.com/v/music/other",target:"_blank",rel:"noopener noreferrer"},An=t("td",null,"乐评盘点",-1),In=t("td",null,"commentary",-1),xn=t("td",null,"243",-1),Pn=t("td",null,"音乐类新闻、盘点、点评、reaction、榜单、采访、幕后故事、唱片开箱等",-1),Mn={href:"https://www.bilibili.com/v/music/commentary",target:"_blank",rel:"noopener noreferrer"},Vn=t("td",null,"音乐教学",-1),Cn=t("td",null,"tutorial",-1),Dn=t("td",null,"244",-1),Gn=t("td",null,"以音乐教学为目的的内容",-1),On={href:"https://www.bilibili.com/v/music/tutorial",target:"_blank",rel:"noopener noreferrer"},Ln=t("tr",null,[t("td",null,[t("s",null,"电音"),l("(已下线)")]),t("td",null,[t("s",null,"electronic")]),t("td",null,[t("s",null,"194")]),t("td",null,[t("s",null,"以电子合成器、音乐软体等产生的电子声响制作的音乐")]),t("td",null,[t("s",null,"/v/music/electronic")])],-1),En=t("h2",{id:"舞蹈",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#舞蹈","aria-hidden":"true"},"#"),l(" 舞蹈")],-1),Nn=t("img",{src:a,width:"100",height:"100"},null,-1),Bn=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),jn=t("td",null,"舞蹈(主分区)",-1),Fn=t("td",null,"dance",-1),Tn=t("td",null,"129",-1),Yn=t("td",null,null,-1),zn={href:"https://www.bilibili.com/v/dance",target:"_blank",rel:"noopener noreferrer"},Kn=t("td",null,"宅舞",-1),Sn=t("td",null,"otaku",-1),Un=t("td",null,"20",-1),Rn=t("td",null,"与ACG相关的翻跳、原创舞蹈",-1),qn={href:"https://www.bilibili.com/v/dance/otaku",target:"_blank",rel:"noopener noreferrer"},Hn=t("td",null,"舞蹈综合",-1),Jn=t("td",null,"three_d",-1),Qn=t("td",null,"154",-1),Wn=t("td",null,"收录无法定义到其他舞蹈子分区的舞蹈视频",-1),Xn={href:"https://www.bilibili.com/v/dance/three_d",target:"_blank",rel:"noopener noreferrer"},Zn=t("td",null,"舞蹈教程",-1),$n=t("td",null,"demo",-1),te=t("td",null,"156",-1),le=t("td",null,"镜面慢速,动作分解,基础教程等具有教学意义的舞蹈视频",-1),ne={href:"https://www.bilibili.com/v/dance/demo",target:"_blank",rel:"noopener noreferrer"},ee=t("td",null,"街舞",-1),oe=t("td",null,"hiphop",-1),se=t("td",null,"198",-1),ie=t("td",null,"收录街舞相关内容,包括赛事现场、舞室作品、个人翻跳、FREESTYLE等",-1),de={href:"https://www.bilibili.com/v/dance/hiphop",target:"_blank",rel:"noopener noreferrer"},_e=t("td",null,"明星舞蹈",-1),re=t("td",null,"star",-1),he=t("td",null,"199",-1),ue=t("td",null,"国内外明星发布的官方舞蹈及其翻跳内容",-1),ce={href:"https://www.bilibili.com/v/dance/star",target:"_blank",rel:"noopener noreferrer"},ae=t("td",null,"国风舞蹈",-1),be=t("td",null,"china",-1),we=t("td",null,"200",-1),fe=t("td",null,"收录国风向舞蹈内容,包括中国舞、民族民间舞、汉唐舞、国风爵士等",-1),me={href:"https://www.bilibili.com/v/dance/china",target:"_blank",rel:"noopener noreferrer"},pe=t("td",null,"手势·网红舞",-1),ve=t("td",null,"gestures",-1),ge=t("td",null,"255",-1),ke=t("td",null,"手势舞及网红流行舞蹈、短视频舞蹈等相关视频",-1),ye={href:"https://www.bilibili.com/v/dance/gestures",target:"_blank",rel:"noopener noreferrer"},Ae=t("h2",{id:"游戏",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#游戏","aria-hidden":"true"},"#"),l(" 游戏")],-1),Ie=t("img",{src:b,width:"100",height:"100"},null,-1),xe=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Pe=t("td",null,"游戏(主分区)",-1),Me=t("td",null,"game",-1),Ve=t("td",null,"4",-1),Ce=t("td",null,null,-1),De={href:"https://www.bilibili.com/v/game",target:"_blank",rel:"noopener noreferrer"},Ge=t("td",null,"单机游戏",-1),Oe=t("td",null,"stand_alone",-1),Le=t("td",null,"17",-1),Ee=t("td",null,"以所有平台(PC、主机、移动端)的单机或联机游戏为主的视频内容,包括游戏预告、CG、实况解说及相关的评测、杂谈与视频剪辑等",-1),Ne={href:"https://www.bilibili.com/v/game/stand_alone",target:"_blank",rel:"noopener noreferrer"},Be=t("td",null,"电子竞技",-1),je=t("td",null,"esports",-1),Fe=t("td",null,"171",-1),Te=t("td",null,"具有高对抗性的电子竞技游戏项目,其相关的赛事、实况、攻略、解说、短剧等视频。",-1),Ye={href:"https://www.bilibili.com/v/game/esports",target:"_blank",rel:"noopener noreferrer"},ze=t("td",null,"手机游戏",-1),Ke=t("td",null,"mobile",-1),Se=t("td",null,"172",-1),Ue=t("td",null,"以手机及平板设备为主要平台的游戏,其相关的实况、攻略、解说、短剧、演示等视频。",-1),Re={href:"https://www.bilibili.com/v/game/mobile",target:"_blank",rel:"noopener noreferrer"},qe=t("td",null,"网络游戏",-1),He=t("td",null,"online",-1),Je=t("td",null,"65",-1),Qe=t("td",null,"由网络运营商运营的多人在线游戏,以及电子竞技的相关游戏内容。包括赛事、攻略、实况、解说等相关视频",-1),We={href:"https://www.bilibili.com/v/game/online",target:"_blank",rel:"noopener noreferrer"},Xe=t("td",null,"桌游棋牌",-1),Ze=t("td",null,"board",-1),$e=t("td",null,"173",-1),to=t("td",null,"桌游、棋牌、卡牌对战等及其相关电子版游戏的实况、攻略、解说、演示等视频。",-1),lo={href:"https://www.bilibili.com/v/game/board",target:"_blank",rel:"noopener noreferrer"},no=t("td",null,"GMV",-1),eo=t("td",null,"gmv",-1),oo=t("td",null,"121",-1),so=t("td",null,"由游戏素材制作的MV视频。以游戏内容或CG为主制作的,具有一定创作程度的MV类型的视频",-1),io={href:"https://www.bilibili.com/v/game/gmv",target:"_blank",rel:"noopener noreferrer"},_o=t("td",null,"音游",-1),ro=t("td",null,"music",-1),ho=t("td",null,"136",-1),uo=t("td",null,"各个平台上,通过配合音乐与节奏而进行的音乐类游戏视频",-1),co={href:"https://www.bilibili.com/v/game/music",target:"_blank",rel:"noopener noreferrer"},ao=t("td",null,"Mugen",-1),bo=t("td",null,"mugen",-1),wo=t("td",null,"19",-1),fo=t("td",null,"以Mugen引擎为平台制作、或与Mugen相关的游戏视频",-1),mo={href:"https://www.bilibili.com/v/game/mugen",target:"_blank",rel:"noopener noreferrer"},po=t("h2",{id:"知识",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#知识","aria-hidden":"true"},"#"),l(" 知识")],-1),vo=t("img",{src:w,width:"100",height:"100"},null,-1),go=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),ko=t("td",null,"知识(主分区)",-1),yo=t("td",null,"knowledge",-1),Ao=t("td",null,"36",-1),Io=t("td",null,null,-1),xo={href:"https://www.bilibili.com/v/knowledge",target:"_blank",rel:"noopener noreferrer"},Po=t("td",null,"科学科普",-1),Mo=t("td",null,"science",-1),Vo=t("td",null,"201",-1),Co=t("td",null,"回答你的十万个为什么",-1),Do={href:"https://www.bilibili.com/v/knowledge/science",target:"_blank",rel:"noopener noreferrer"},Go=t("td",null,[l("社科·法律·心理("),t("s",null,"原社科人文、原趣味科普人文"),l(")")],-1),Oo=t("td",null,"social_science",-1),Lo=t("td",null,"124",-1),Eo=t("td",null,"基于社会科学、法学、心理学展开或个人观点输出的知识视频",-1),No={href:"https://www.bilibili.com/v/knowledge/social_science",target:"_blank",rel:"noopener noreferrer"},Bo=t("td",null,"人文历史",-1),jo=t("td",null,"humanity_history",-1),Fo=t("td",null,"228",-1),To=t("td",null,"看看古今人物,聊聊历史过往,品品文学典籍",-1),Yo={href:"https://www.bilibili.com/v/knowledge/humanity_history",target:"_blank",rel:"noopener noreferrer"},zo=t("td",null,"财经商业",-1),Ko=t("td",null,"business",-1),So=t("td",null,"207",-1),Uo=t("td",null,"说金融市场,谈宏观经济,一起畅聊商业故事",-1),Ro={href:"https://www.bilibili.com/v/knowledge/finance",target:"_blank",rel:"noopener noreferrer"},qo=t("td",null,"校园学习",-1),Ho=t("td",null,"campus",-1),Jo=t("td",null,"208",-1),Qo=t("td",null,"老师很有趣,学生也有才,我们一起搞学习",-1),Wo={href:"https://www.bilibili.com/v/knowledge/campus",target:"_blank",rel:"noopener noreferrer"},Xo=t("td",null,"职业职场",-1),Zo=t("td",null,"career",-1),$o=t("td",null,"209",-1),ts=t("td",null,"职业分享、升级指南,一起成为最有料的职场人",-1),ls={href:"https://www.bilibili.com/v/knowledge/career",target:"_blank",rel:"noopener noreferrer"},ns=t("td",null,"设计·创意",-1),es=t("td",null,"design",-1),os=t("td",null,"229",-1),ss=t("td",null,"天马行空,创意设计,都在这里",-1),is={href:"https://www.bilibili.com/v/knowledge/design",target:"_blank",rel:"noopener noreferrer"},ds=t("td",null,"野生技术协会",-1),_s=t("td",null,"skill",-1),rs=t("td",null,"122",-1),hs=t("td",null,"技能党集合,是时候展示真正的技术了",-1),us={href:"https://www.bilibili.com/v/knowledge/skill",target:"_blank",rel:"noopener noreferrer"},cs=t("tr",null,[t("td",null,[t("s",null,"演讲·公开课"),l("(已下线)")]),t("td",null,[t("s",null,"speech_course")]),t("td",null,[t("s",null,"39")]),t("td",null,[t("s",null,"涨知识的好地方,给爱学习的你")]),t("td",null,[t("s",null,"/v/technology/speech_course")])],-1),as=t("tr",null,[t("td",null,[t("s",null,"星海"),l("(已下线)")]),t("td",null,[t("s",null,"military")]),t("td",null,[t("s",null,"96")]),t("td",null,[t("s",null,"军事类内容的圣地")]),t("td",null,[t("s",null,"/v/technology/military")])],-1),bs=t("tr",null,[t("td",null,[t("s",null,"机械"),l("(已下线)")]),t("td",null,[t("s",null,"mechanical")]),t("td",null,[t("s",null,"98")]),t("td",null,[t("s",null,"机械设备展示或制作视频")]),t("td",null,[t("s",null,"/v/technology/mechanical")])],-1),ws=t("h2",{id:"科技",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#科技","aria-hidden":"true"},"#"),l(" 科技")],-1),fs=t("p",null,[l("新:"),t("img",{src:f,width:"100",height:"100"}),l("旧:"),t("img",{src:m,width:"100",height:"100"})],-1),ms=t("p",null,[t("s",null,"原数码分区")],-1),ps=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),vs=t("td",null,"科技(主分区)",-1),gs=t("td",null,"tech",-1),ks=t("td",null,"188",-1),ys=t("td",null,null,-1),As={href:"https://www.bilibili.com/v/tech",target:"_blank",rel:"noopener noreferrer"},Is=t("td",null,[l("数码("),t("s",null,"原手机平板"),l(")")],-1),xs=t("td",null,"digital",-1),Ps=t("td",null,"95",-1),Ms=t("td",null,"科技数码产品大全,一起来做发烧友",-1),Vs={href:"https://www.bilibili.com/v/tech/digital",target:"_blank",rel:"noopener noreferrer"},Cs=t("td",null,"软件应用",-1),Ds=t("td",null,"application",-1),Gs=t("td",null,"230",-1),Os=t("td",null,"超全软件应用指南",-1),Ls={href:"https://www.bilibili.com/v/tech/application",target:"_blank",rel:"noopener noreferrer"},Es=t("td",null,"计算机技术",-1),Ns=t("td",null,"computer_tech",-1),Bs=t("td",null,"231",-1),js=t("td",null,"研究分析、教学演示、经验分享......有关计算机技术的都在这里",-1),Fs={href:"https://www.bilibili.com/v/tech/computer_tech",target:"_blank",rel:"noopener noreferrer"},Ts=t("td",null,[l("科工机械 ("),t("s",null,"原工业·工程·机械"),l(")")],-1),Ys=t("td",null,"industry",-1),zs=t("td",null,"232",-1),Ks=t("td",null,"从小芯片到大工程,一起见证科工力量",-1),Ss={href:"https://www.bilibili.com/v/tech/industry",target:"_blank",rel:"noopener noreferrer"},Us=t("td",null,"极客DIY",-1),Rs=t("td",null,"diy",-1),qs=t("td",null,"233",-1),Hs=t("td",null,"炫酷技能,极客文化,硬核技巧,准备好你的惊讶",-1),Js={href:"https://www.bilibili.com/v/tech/diy",target:"_blank",rel:"noopener noreferrer"},Qs=t("tr",null,[t("td",null,[t("s",null,"电脑装机"),l("(已下线)")]),t("td",null,[t("s",null,"pc")]),t("td",null,[t("s",null,"189")]),t("td",null,[t("s",null,"电脑、笔记本、装机配件、外设和软件教程等相关视频")]),t("td",null,[t("s",null,"/v/digital/pc")])],-1),Ws=t("tr",null,[t("td",null,[t("s",null,"摄影摄像"),l("(已下线)")]),t("td",null,[t("s",null,"photography")]),t("td",null,[t("s",null,"190")]),t("td",null,[t("s",null,"摄影摄像器材、拍摄剪辑技巧、拍摄作品分享等相关视频")]),t("td",null,[t("s",null,"/v/digital/photography")])],-1),Xs=t("tr",null,[t("td",null,[t("s",null,"影音智能"),l("(已下线)")]),t("td",null,[t("s",null,"intelligence_av")]),t("td",null,[t("s",null,"191")]),t("td",null,[t("s",null,"影音设备、智能产品等相关视频")]),t("td",null,[t("s",null,"/v/digital/intelligence_av")])],-1),Zs=t("h2",{id:"运动",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#运动","aria-hidden":"true"},"#"),l(" 运动")],-1),$s=t("img",{src:p,width:"100",height:"100"},null,-1),ti=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),li=t("td",null,"运动(主分区)",-1),ni=t("td",null,"sports",-1),ei=t("td",null,"234",-1),oi=t("td",null,null,-1),si={href:"https://www.bilibili.com/v/sports",target:"_blank",rel:"noopener noreferrer"},ii=t("td",null,"篮球",-1),di=t("td",null,"basketball",-1),_i=t("td",null,"235",-1),ri=t("td",null,"与篮球相关的视频,包括但不限于篮球赛事、教学、评述、剪辑、剧情等相关内容",-1),hi={href:"https://www.bilibili.com/v/sports/basketball",target:"_blank",rel:"noopener noreferrer"},ui=t("td",null,"足球",-1),ci=t("td",null,"football",-1),ai=t("td",null,"249",-1),bi=t("td",null,"与足球相关的视频,包括但不限于足球赛事、教学、评述、剪辑、剧情等相关内容",-1),wi={href:"https://www.bilibili.com/v/sports/football",target:"_blank",rel:"noopener noreferrer"},fi=t("td",null,"健身",-1),mi=t("td",null,"aerobics",-1),pi=t("td",null,"164",-1),vi=t("td",null,"与健身相关的视频,包括但不限于瑜伽、CrossFit、健美、力量举、普拉提、街健等相关内容",-1),gi={href:"https://www.bilibili.com/v/sports/aerobics",target:"_blank",rel:"noopener noreferrer"},ki=t("td",null,"竞技体育",-1),yi=t("td",null,"athletic",-1),Ai=t("td",null,"236",-1),Ii=t("td",null,"与竞技体育相关的视频,包括但不限于乒乓、羽毛球、排球、赛车等竞技项目的赛事、评述、剪辑、剧情等相关内容",-1),xi={href:"https://www.bilibili.com/v/sports/culture",target:"_blank",rel:"noopener noreferrer"},Pi=t("td",null,"运动文化",-1),Mi=t("td",null,"culture",-1),Vi=t("td",null,"237",-1),Ci=t("td",null,"与运动文化相关的视频,包络但不限于球鞋、球衣、球星卡等运动衍生品的分享、解读,体育产业的分析、科普等相关内容",-1),Di={href:"https://www.bilibili.com/v/sports/culture",target:"_blank",rel:"noopener noreferrer"},Gi=t("td",null,"运动综合",-1),Oi=t("td",null,"comprehensive",-1),Li=t("td",null,"238",-1),Ei=t("td",null,"与运动综合相关的视频,包括但不限于钓鱼、骑行、滑板等日常运动分享、教学、Vlog等相关内容",-1),Ni={href:"https://www.bilibili.com/v/sports/comprehensive",target:"_blank",rel:"noopener noreferrer"},Bi=t("h2",{id:"汽车",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#汽车","aria-hidden":"true"},"#"),l(" 汽车")],-1),ji=t("img",{src:v,width:"100",height:"100"},null,-1),Fi=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Ti=t("td",null,"汽车(主分区)",-1),Yi=t("td",null,"car",-1),zi=t("td",null,"223",-1),Ki=t("td",null,null,-1),Si={href:"https://www.bilibili.com/v/car",target:"_blank",rel:"noopener noreferrer"},Ui=t("td",null,"汽车知识科普",-1),Ri=t("td",null,"knowledge",-1),qi=t("td",null,"258",-1),Hi=t("td",null,"关于汽车技术与文化的硬核科普,以及生活中学车、用车、养车的相关知识",-1),Ji={href:"https://www.bilibili.com/v/car/knowledge",target:"_blank",rel:"noopener noreferrer"},Qi=t("td",null,"赛车",-1),Wi=t("td",null,"racing",-1),Xi=t("td",null,"245",-1),Zi=t("td",null,"F1等汽车运动相关",-1),$i={href:"https://www.bilibili.com/v/car/racing",target:"_blank",rel:"noopener noreferrer"},td=t("td",null,"改装玩车",-1),ld=t("td",null,"modifiedvehicle",-1),nd=t("td",null,"246",-1),ed=t("td",null,"汽车文化及改装车相关内容,包括改装车、老车修复介绍、汽车聚会分享等内容",-1),od={href:"https://www.bilibili.com/v/car/modifiedvehicle",target:"_blank",rel:"noopener noreferrer"},sd=t("td",null,"新能源车",-1),id=t("td",null,"newenergyvehicle",-1),dd=t("td",null,"247",-1),_d=t("td",null,"新能源汽车相关内容,包括电动汽车、混合动力汽车等车型种类,包含不限于新车资讯、试驾体验、专业评测、技术解读、知识科普等内容",-1),rd={href:"https://www.bilibili.com/v/car/newenergyvehicle",target:"_blank",rel:"noopener noreferrer"},hd=t("td",null,"房车",-1),ud=t("td",null,"touringcar",-1),cd=t("td",null,"248",-1),ad=t("td",null,"房车及营地相关内容,包括不限于产品介绍、驾驶体验、房车生活和房车旅行等内容",-1),bd={href:"https://www.bilibili.com/v/car/touringcar",target:"_blank",rel:"noopener noreferrer"},wd=t("td",null,"摩托车",-1),fd=t("td",null,"motorcycle",-1),md=t("td",null,"240",-1),pd=t("td",null,"骑士们集合啦",-1),vd={href:"https://www.bilibili.com/v/car/motorcycle",target:"_blank",rel:"noopener noreferrer"},gd=t("td",null,"购车攻略",-1),kd=t("td",null,"strategy",-1),yd=t("td",null,"227",-1),Ad=t("td",null,"丰富详实的购车建议和新车体验",-1),Id={href:"https://www.bilibili.com/v/car/strategy",target:"_blank",rel:"noopener noreferrer"},xd=t("td",null,"汽车生活",-1),Pd=t("td",null,"life",-1),Md=t("td",null,"176",-1),Vd=t("td",null,"分享汽车及出行相关的生活体验类视频",-1),Cd={href:"https://www.bilibili.com/v/car/life",target:"_blank",rel:"noopener noreferrer"},Dd=t("tr",null,[t("td",null,[t("s",null,"汽车文化"),l("(已下线)")]),t("td",null,[t("s",null,"culture")]),t("td",null,[t("s",null,"224")]),t("td",null,[t("s",null,"车迷的精神圣地,包括汽车赛事、品牌历史、汽车改装、经典车型和汽车模型等")]),t("td",null,[t("s",null,"/v/car/culture")])],-1),Gd=t("tr",null,[t("td",null,[t("s",null,"汽车极客"),l("(已下线)")]),t("td",null,[t("s",null,"geek")]),t("td",null,[t("s",null,"225")]),t("td",null,[t("s",null,"汽车硬核达人聚集地,包括DIY造车、专业评测和技术知识分享")]),t("td",null,[t("s",null,"/v/car/geek")])],-1),Od=t("tr",null,[t("td",null,[t("s",null,"智能出行"),l("(已下线)")]),t("td",null,[t("s",null,"smart")]),t("td",null,[t("s",null,"226")]),t("td",null,[t("s",null,"探索新能源汽车和未来智能出行的前沿阵地")]),t("td",null,[t("s",null,"/v/car/smart")])],-1),Ld=t("h2",{id:"生活",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#生活","aria-hidden":"true"},"#"),l(" 生活")],-1),Ed=t("img",{src:g,width:"100",height:"100"},null,-1),Nd=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Bd=t("td",null,"生活(主分区)",-1),jd=t("td",null,"life",-1),Fd=t("td",null,"160",-1),Td=t("td",null,null,-1),Yd={href:"https://www.bilibili.com/v/life",target:"_blank",rel:"noopener noreferrer"},zd=t("td",null,"搞笑",-1),Kd=t("td",null,"funny",-1),Sd=t("td",null,"138",-1),Ud=t("td",null,"各种沙雕有趣的搞笑剪辑,挑战,表演,配音等视频",-1),Rd={href:"https://www.bilibili.com/v/life/funny",target:"_blank",rel:"noopener noreferrer"},qd=t("td",null,"出行",-1),Hd=t("td",null,"travel",-1),Jd=t("td",null,"250",-1),Qd=t("td",null,"为达到观光游览、休闲娱乐为目的的远途旅行、中近途户外生活、本地探店",-1),Wd={href:"https://www.bilibili.com/v/life/travel",target:"_blank",rel:"noopener noreferrer"},Xd=t("td",null,"三农",-1),Zd=t("td",null,"rurallife",-1),$d=t("td",null,"251",-1),t_=t("td",null,"分享美好农村生活",-1),l_={href:"https://www.bilibili.com/v/life/rurallife",target:"_blank",rel:"noopener noreferrer"},n_=t("td",null,"家居房产",-1),e_=t("td",null,"home",-1),o_=t("td",null,"239",-1),s_=t("td",null,"与买房、装修、居家生活相关的分享",-1),i_={href:"https://www.bilibili.com/v/life/home",target:"_blank",rel:"noopener noreferrer"},d_=t("td",null,"手工",-1),__=t("td",null,"handmake",-1),r_=t("td",null,"161",-1),h_=t("td",null,"手工制品的制作过程或成品展示、教程、测评类视频",-1),u_={href:"https://www.bilibili.com/v/life/handmake",target:"_blank",rel:"noopener noreferrer"},c_=t("td",null,"绘画",-1),a_=t("td",null,"painting",-1),b_=t("td",null,"162",-1),w_=t("td",null,"绘画过程或绘画教程,以及绘画相关的所有视频",-1),f_={href:"https://www.bilibili.com/v/life/painting",target:"_blank",rel:"noopener noreferrer"},m_=t("td",null,"日常",-1),p_=t("td",null,"daily",-1),v_=t("td",null,"21",-1),g_=t("td",null,"记录日常生活,分享生活故事",-1),k_={href:"https://www.bilibili.com/v/life/daily",target:"_blank",rel:"noopener noreferrer"},y_=t("td",null,"亲子",-1),A_=t("td",null,"parenting",-1),I_=t("td",null,"254",-1),x_=t("td",null,"分享亲子、萌娃、母婴、育儿相关的视频",-1),P_={href:"https://www.bilibili.com/v/life/parenting",target:"_blank",rel:"noopener noreferrer"},M_=t("tr",null,[t("td",null,[t("s",null,"美食圈"),l("(重定向)")]),t("td",null,[t("s",null,"food")]),t("td",null,[t("s",null,"76")]),t("td",null,[t("s",null,"美食鉴赏&料理制作教程")]),t("td",null,[t("s",null,"/v/life/food")])],-1),V_=t("tr",null,[t("td",null,[t("s",null,"动物圈"),l("(重定向)")]),t("td",null,[t("s",null,"animal")]),t("td",null,[t("s",null,"75")]),t("td",null,[t("s",null,"萌萌的动物都在这里哦")]),t("td",null,[t("s",null,"/v/life/animal")])],-1),C_=t("tr",null,[t("td",null,[t("s",null,"运动"),l("(重定向)")]),t("td",null,[t("s",null,"sports")]),t("td",null,[t("s",null,"163")]),t("td",null,[t("s",null,"运动相关的记录、教程、装备评测和精彩瞬间剪辑视频")]),t("td",null,[t("s",null,"/v/life/sports")])],-1),D_=t("tr",null,[t("td",null,[t("s",null,"汽车"),l("(重定向)")]),t("td",null,[t("s",null,"automobile")]),t("td",null,[t("s",null,"176")]),t("td",null,[t("s",null,"专业汽车资讯,分享车生活")]),t("td",null,[t("s",null,"/v/life/automobile")])],-1),G_=t("tr",null,[t("td",null,[t("s",null,"其他"),l("(已下线)")]),t("td",null,[t("s",null,"other")]),t("td",null,[t("s",null,"174")]),t("td",null,[t("s",null,"对于分区归属不明的视频进行归纳整合的特定分区")]),t("td",null,[t("s",null,"/v/life/other")])],-1),O_=t("h2",{id:"美食",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#美食","aria-hidden":"true"},"#"),l(" 美食")],-1),L_=t("img",{src:k,width:"100",height:"100"},null,-1),E_=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),N_=t("td",null,"美食(主分区)",-1),B_=t("td",null,"food",-1),j_=t("td",null,"211",-1),F_=t("td",null,null,-1),T_={href:"https://www.bilibili.com/v/food",target:"_blank",rel:"noopener noreferrer"},Y_=t("td",null,[l("美食制作("),t("s",null,"原[生活]->[美食圈]"),l(")")],-1),z_=t("td",null,"make",-1),K_=t("td",null,"76",-1),S_=t("td",null,"学做人间美味,展示精湛厨艺",-1),U_={href:"https://www.bilibili.com/v/food/make",target:"_blank",rel:"noopener noreferrer"},R_=t("td",null,"美食侦探",-1),q_=t("td",null,"detective",-1),H_=t("td",null,"212",-1),J_=t("td",null,"寻找美味餐厅,发现街头美食",-1),Q_={href:"https://www.bilibili.com/v/food/detective",target:"_blank",rel:"noopener noreferrer"},W_=t("td",null,"美食测评",-1),X_=t("td",null,"measurement",-1),Z_=t("td",null,"213",-1),$_=t("td",null,"吃货世界,品尝世间美味",-1),tr={href:"https://www.bilibili.com/v/food/measurement",target:"_blank",rel:"noopener noreferrer"},lr=t("td",null,"田园美食",-1),nr=t("td",null,"rural",-1),er=t("td",null,"214",-1),or=t("td",null,"品味乡野美食,寻找山与海的味道",-1),sr={href:"https://www.bilibili.com/v/food/rural",target:"_blank",rel:"noopener noreferrer"},ir=t("td",null,"美食记录",-1),dr=t("td",null,"record",-1),_r=t("td",null,"215",-1),rr=t("td",null,"记录一日三餐,给生活添一点幸福感",-1),hr={href:"https://www.bilibili.com/v/food/record",target:"_blank",rel:"noopener noreferrer"},ur=t("h2",{id:"动物圈",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#动物圈","aria-hidden":"true"},"#"),l(" 动物圈")],-1),cr=t("img",{src:y,width:"100",height:"100"},null,-1),ar=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),br=t("td",null,"动物圈(主分区)",-1),wr=t("td",null,"animal",-1),fr=t("td",null,"217",-1),mr=t("td",null,null,-1),pr={href:"https://www.bilibili.com/v/animal",target:"_blank",rel:"noopener noreferrer"},vr=t("td",null,"喵星人",-1),gr=t("td",null,"cat",-1),kr=t("td",null,"218",-1),yr=t("td",null,"喵喵喵喵喵",-1),Ar={href:"https://www.bilibili.com/v/animal/cat",target:"_blank",rel:"noopener noreferrer"},Ir=t("td",null,"汪星人",-1),xr=t("td",null,"dog",-1),Pr=t("td",null,"219",-1),Mr=t("td",null,"汪汪汪汪汪",-1),Vr={href:"https://www.bilibili.com/v/animal/dog",target:"_blank",rel:"noopener noreferrer"},Cr=t("td",null,"动物二创",-1),Dr=t("td",null,"second_edition",-1),Gr=t("td",null,"220",-1),Or=t("td",null,"解说、配音、剪辑、混剪",-1),Lr={href:"https://www.bilibili.com/v/animal/second_edition",target:"_blank",rel:"noopener noreferrer"},Er=t("td",null,"野生动物",-1),Nr=t("td",null,"wild_animal",-1),Br=t("td",null,"221",-1),jr=t("td",null,"内有“猛兽”出没",-1),Fr={href:"https://www.bilibili.com/v/animal/wild_animal",target:"_blank",rel:"noopener noreferrer"},Tr=t("td",null,"小宠异宠",-1),Yr=t("td",null,"reptiles",-1),zr=t("td",null,"222",-1),Kr=t("td",null,"奇妙宠物大赏",-1),Sr={href:"https://www.bilibili.com/v/animal/reptiles",target:"_blank",rel:"noopener noreferrer"},Ur=t("td",null,"动物综合",-1),Rr=t("td",null,"animal_composite",-1),qr=t("td",null,"75",-1),Hr=t("td",null,"收录除上述子分区外,其余动物相关视频以及非动物主体或多个动物主体的动物相关延伸内容",-1),Jr={href:"https://www.bilibili.com/v/animal/animal_composite",target:"_blank",rel:"noopener noreferrer"},Qr=t("h2",{id:"鬼畜",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#鬼畜","aria-hidden":"true"},"#"),l(" 鬼畜")],-1),Wr=t("img",{src:A,width:"100",height:"100"},null,-1),Xr=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Zr=t("td",null,"鬼畜(主分区)",-1),$r=t("td",null,"kichiku",-1),th=t("td",null,"119",-1),lh=t("td",null,null,-1),nh={href:"https://www.bilibili.com/v/kichiku",target:"_blank",rel:"noopener noreferrer"},eh=t("td",null,"鬼畜调教",-1),oh=t("td",null,"guide",-1),sh=t("td",null,"22",-1),ih=t("td",null,"使用素材在音频、画面上做一定处理,达到与BGM一定的同步感",-1),dh={href:"https://www.bilibili.com/v/kichiku/guide",target:"_blank",rel:"noopener noreferrer"},_h=t("td",null,"音MAD",-1),rh=t("td",null,"mad",-1),hh=t("td",null,"26",-1),uh=t("td",null,"使用素材音频进行一定的二次创作来达到还原原曲的非商业性质稿件",-1),ch={href:"https://www.bilibili.com/v/kichiku/mad",target:"_blank",rel:"noopener noreferrer"},ah=t("td",null,"人力VOCALOID",-1),bh=t("td",null,"manual_vocaloid",-1),wh=t("td",null,"126",-1),fh=t("td",null,"将人物或者角色的无伴奏素材进行人工调音,使其就像VOCALOID一样歌唱的技术",-1),mh={href:"https://www.bilibili.com/v/kichiku/manual_vocaloid",target:"_blank",rel:"noopener noreferrer"},ph=t("td",null,"鬼畜剧场",-1),vh=t("td",null,"theatre",-1),gh=t("td",null,"216",-1),kh=t("td",null,"使用素材进行人工剪辑编排的有剧情的作品",-1),yh={href:"https://www.bilibili.com/v/kichiku/theatre",target:"_blank",rel:"noopener noreferrer"},Ah=t("td",null,"教程演示",-1),Ih=t("td",null,"course",-1),xh=t("td",null,"127",-1),Ph=t("td",null,"鬼畜相关的教程演示",-1),Mh={href:"https://www.bilibili.com/v/kichiku/course",target:"_blank",rel:"noopener noreferrer"},Vh=t("h2",{id:"时尚",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#时尚","aria-hidden":"true"},"#"),l(" 时尚")],-1),Ch=t("img",{src:I,width:"100",height:"100"},null,-1),Dh=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Gh=t("td",null,"时尚(主分区)",-1),Oh=t("td",null,"fashion",-1),Lh=t("td",null,"155",-1),Eh=t("td",null,null,-1),Nh={href:"https://www.bilibili.com/v/fashion",target:"_blank",rel:"noopener noreferrer"},Bh=t("td",null,"美妆护肤",-1),jh=t("td",null,"makeup",-1),Fh=t("td",null,"157",-1),Th=t("td",null,"彩妆护肤、美甲美发、仿妆、医美相关内容分享或产品测评",-1),Yh={href:"https://www.bilibili.com/v/fashion/makeup",target:"_blank",rel:"noopener noreferrer"},zh=t("td",null,"仿妆cos",-1),Kh=t("td",null,"cos",-1),Sh=t("td",null,"252",-1),Uh=t("td",null,"对二次元、三次元人物角色进行模仿、还原、展示、演绎的内容",-1),Rh={href:"https://www.bilibili.com/v/fashion/cos",target:"_blank",rel:"noopener noreferrer"},qh=t("td",null,"穿搭",-1),Hh=t("td",null,"clothing",-1),Jh=t("td",null,"158",-1),Qh=t("td",null,"穿搭风格、穿搭技巧的展示分享,涵盖衣服、鞋靴、箱包配件、配饰(帽子、钟表、珠宝首饰)等",-1),Wh={href:"https://www.bilibili.com/v/fashion/clothing",target:"_blank",rel:"noopener noreferrer"},Xh=t("td",null,"时尚潮流",-1),Zh=t("td",null,"catwalk",-1),$h=t("td",null,"159",-1),tu=t("td",null,"时尚街拍、时装周、时尚大片,时尚品牌、潮流等行业相关记录及知识科普",-1),lu={href:"https://www.bilibili.com/v/fashion/catwalk",target:"_blank",rel:"noopener noreferrer"},nu=t("tr",null,[t("td",null,[t("s",null,"健身"),l("(重定向)")]),t("td",null,[t("s",null,"aerobics")]),t("td",null,[t("s",null,"164")]),t("td",null,[t("s",null,"器械、有氧、拉伸运动等,以达到强身健体、减肥瘦身、形体塑造目的")]),t("td",null,[t("s",null,"/v/fashion/aerobics")])],-1),eu=t("tr",null,[t("td",null,[t("s",null,"风尚标"),l("(已下线)")]),t("td",null,[t("s",null,"trends")]),t("td",null,[t("s",null,"192")]),t("td",null,[t("s",null,"时尚明星专访、街拍、时尚购物相关知识科普")]),t("td",null,[t("s",null,"/v/fashion/trends")])],-1),ou=t("h2",{id:"资讯",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#资讯","aria-hidden":"true"},"#"),l(" 资讯")],-1),su=t("p",null,[t("strong",null,"注:该分区无排名功能")],-1),iu=t("img",{src:x,width:"100",height:"100"},null,-1),du=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),_u=t("td",null,"资讯(主分区)",-1),ru=t("td",null,"information",-1),hu=t("td",null,"202",-1),uu=t("td",null,null,-1),cu={href:"https://www.bilibili.com/v/information",target:"_blank",rel:"noopener noreferrer"},au=t("td",null,"热点",-1),bu=t("td",null,"hotspot",-1),wu=t("td",null,"203",-1),fu=t("td",null,"全民关注的时政热门资讯",-1),mu={href:"https://www.bilibili.com/v/information/hotspot",target:"_blank",rel:"noopener noreferrer"},pu=t("td",null,"环球",-1),vu=t("td",null,"global",-1),gu=t("td",null,"204",-1),ku=t("td",null,"全球范围内发生的具有重大影响力的事件动态",-1),yu={href:"https://www.bilibili.com/v/information/global",target:"_blank",rel:"noopener noreferrer"},Au=t("td",null,"社会",-1),Iu=t("td",null,"social",-1),xu=t("td",null,"205",-1),Pu=t("td",null,"日常生活的社会事件、社会问题、社会风貌的报道",-1),Mu={href:"https://www.bilibili.com/v/information/social",target:"_blank",rel:"noopener noreferrer"},Vu=t("td",null,"综合",-1),Cu=t("td",null,"multiple",-1),Du=t("td",null,"206",-1),Gu=t("td",null,"除上述领域外其它垂直领域的综合资讯",-1),Ou={href:"https://www.bilibili.com/v/information/multiple",target:"_blank",rel:"noopener noreferrer"},Lu=o('

    广告

    该分区已下线

    名称代号tid简介url路由
    广告(主分区)ad165/v/ad
    广告(已下线)ad166/v/ad/ad

    娱乐

    ',6),Eu=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Nu=t("td",null,"娱乐(主分区)",-1),Bu=t("td",null,"ent",-1),ju=t("td",null,"5",-1),Fu=t("td",null,null,-1),Tu={href:"https://www.bilibili.com/v/ent",target:"_blank",rel:"noopener noreferrer"},Yu=t("td",null,"综艺",-1),zu=t("td",null,"variety",-1),Ku=t("td",null,"71",-1),Su=t("td",null,"所有综艺相关,全部一手掌握!",-1),Uu={href:"https://www.bilibili.com/v/ent/variety",target:"_blank",rel:"noopener noreferrer"},Ru=t("td",null,"娱乐杂谈",-1),qu=t("td",null,"talker",-1),Hu=t("td",null,"241",-1),Ju=t("td",null,"娱乐人物解读、娱乐热点点评、娱乐行业分析",-1),Qu={href:"https://www.bilibili.com/v/ent/talker",target:"_blank",rel:"noopener noreferrer"},Wu=t("td",null,"粉丝创作",-1),Xu=t("td",null,"fans",-1),Zu=t("td",null,"242",-1),$u=t("td",null,"粉丝向创作视频",-1),tc={href:"https://www.bilibili.com/v/ent/fans",target:"_blank",rel:"noopener noreferrer"},lc=t("td",null,"明星综合",-1),nc=t("td",null,"celebrity",-1),ec=t("td",null,"137",-1),oc=t("td",null,"娱乐圈动态、明星资讯相关",-1),sc={href:"https://www.bilibili.com/v/ent/celebrity",target:"_blank",rel:"noopener noreferrer"},ic=t("tr",null,[t("td",null,[t("s",null,"Korea相关"),l("(已下线)")]),t("td",null,[t("s",null,"korea")]),t("td",null,[t("s",null,"131")]),t("td",null,[t("s",null,"Korea相关音乐、舞蹈、综艺等视频")]),t("td",null,[t("s",null,"/v/ent/korea")])],-1),dc=t("h2",{id:"影视",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#影视","aria-hidden":"true"},"#"),l(" 影视")],-1),_c=t("img",{src:V,width:"100",height:"100"},null,-1),rc=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),hc=t("td",null,"影视(主分区)",-1),uc=t("td",null,"cinephile",-1),cc=t("td",null,"181",-1),ac=t("td",null,null,-1),bc={href:"https://www.bilibili.com/v/cinephile",target:"_blank",rel:"noopener noreferrer"},wc=t("td",null,"影视杂谈",-1),fc=t("td",null,"cinecism",-1),mc=t("td",null,"182",-1),pc=t("td",null,"影视评论、解说、吐槽、科普等",-1),vc={href:"https://www.bilibili.com/v/cinephile/cinecism",target:"_blank",rel:"noopener noreferrer"},gc=t("td",null,"影视剪辑",-1),kc=t("td",null,"montage",-1),yc=t("td",null,"183",-1),Ac=t("td",null,"对影视素材进行剪辑再创作的视频",-1),Ic={href:"https://www.bilibili.com/v/cinephile/montage",target:"_blank",rel:"noopener noreferrer"},xc=t("td",null,"小剧场",-1),Pc=t("td",null,"shortfilm",-1),Mc=t("td",null,"85",-1),Vc=t("td",null,"有场景、有剧情的演绎类内容",-1),Cc={href:"https://www.bilibili.com/v/cinephile/shortfilm",target:"_blank",rel:"noopener noreferrer"},Dc=t("td",null,"预告·资讯",-1),Gc=t("td",null,"trailer_info",-1),Oc=t("td",null,"184",-1),Lc=t("td",null,"影视类相关资讯,预告,花絮等视频",-1),Ec={href:"https://www.bilibili.com/v/cinephile/trailer_info",target:"_blank",rel:"noopener noreferrer"},Nc=t("td",null,"短片",-1),Bc=t("td",null,"shortfilm",-1),jc=t("td",null,"256",-1),Fc=t("td",null,"各种类型的短片",-1),Tc={href:"https://www.bilibili.com/v/cinephile/shortfilm",target:"_blank",rel:"noopener noreferrer"},Yc=t("h2",{id:"纪录片",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#纪录片","aria-hidden":"true"},"#"),l(" 纪录片")],-1),zc=t("img",{src:C,width:"100",height:"100"},null,-1),Kc=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Sc=t("td",null,"纪录片(主分区)",-1),Uc=t("td",null,"documentary",-1),Rc=t("td",null,"177",-1),qc=t("td",null,null,-1),Hc={href:"https://www.bilibili.com/documentary",target:"_blank",rel:"noopener noreferrer"},Jc=t("td",null,"人文·历史",-1),Qc=t("td",null,"history",-1),Wc=t("td",null,"37",-1),Xc=t("td",null,null,-1),Zc={href:"https://www.bilibili.com/v/documentary/history",target:"_blank",rel:"noopener noreferrer"},$c=t("td",null,"科学·探索·自然",-1),ta=t("td",null,"science",-1),la=t("td",null,"178",-1),na=t("td",null,null,-1),ea={href:"https://www.bilibili.com/v/documentary/science",target:"_blank",rel:"noopener noreferrer"},oa=t("td",null,"军事",-1),sa=t("td",null,"military",-1),ia=t("td",null,"179",-1),da=t("td",null,null,-1),_a={href:"https://www.bilibili.com/v/documentary/military",target:"_blank",rel:"noopener noreferrer"},ra=t("td",null,"社会·美食·旅行",-1),ha=t("td",null,"travel",-1),ua=t("td",null,"180",-1),ca=t("td",null,null,-1),aa={href:"https://www.bilibili.com/v/documentary/travel",target:"_blank",rel:"noopener noreferrer"},ba=t("h2",{id:"电影",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#电影","aria-hidden":"true"},"#"),l(" 电影")],-1),wa=t("img",{src:D,width:"100",height:"100"},null,-1),fa=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),ma=t("td",null,"电影(主分区)",-1),pa=t("td",null,"movie",-1),va=t("td",null,"23",-1),ga=t("td",null,null,-1),ka={href:"https://www.bilibili.com/movie",target:"_blank",rel:"noopener noreferrer"},ya=t("td",null,"华语电影",-1),Aa=t("td",null,"chinese",-1),Ia=t("td",null,"147",-1),xa=t("td",null,null,-1),Pa={href:"https://www.bilibili.com/v/movie/chinese",target:"_blank",rel:"noopener noreferrer"},Ma=t("td",null,"欧美电影",-1),Va=t("td",null,"west",-1),Ca=t("td",null,"145",-1),Da=t("td",null,null,-1),Ga={href:"https://www.bilibili.com/v/movie/west",target:"_blank",rel:"noopener noreferrer"},Oa=t("td",null,"日本电影",-1),La=t("td",null,"japan",-1),Ea=t("td",null,"146",-1),Na=t("td",null,null,-1),Ba={href:"https://www.bilibili.com/v/movie/japan",target:"_blank",rel:"noopener noreferrer"},ja=t("td",null,"其他国家",-1),Fa=t("td",null,"movie",-1),Ta=t("td",null,"83",-1),Ya=t("td",null,null,-1),za={href:"https://www.bilibili.com/v/movie/movie",target:"_blank",rel:"noopener noreferrer"},Ka=t("h2",{id:"电视剧",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#电视剧","aria-hidden":"true"},"#"),l(" 电视剧")],-1),Sa=t("img",{src:G,width:"100",height:"100"},null,-1),Ua=t("thead",null,[t("tr",null,[t("th",null,"名称"),t("th",null,"代号"),t("th",null,"tid"),t("th",null,"简介"),t("th",null,"url路由")])],-1),Ra=t("td",null,"电视剧(主分区)",-1),qa=t("td",null,"tv",-1),Ha=t("td",null,"11",-1),Ja=t("td",null,null,-1),Qa={href:"https://www.bilibili.com/tv",target:"_blank",rel:"noopener noreferrer"},Wa=t("td",null,"国产剧",-1),Xa=t("td",null,"mainland",-1),Za=t("td",null,"185",-1),$a=t("td",null,null,-1),t1={href:"https://www.bilibili.com/v/tv/mainland",target:"_blank",rel:"noopener noreferrer"},l1=t("td",null,"海外剧",-1),n1=t("td",null,"overseas",-1),e1=t("td",null,"187",-1),o1=t("td",null,null,-1),s1={href:"https://www.bilibili.com/v/tv/overseas",target:"_blank",rel:"noopener noreferrer"};function i1(d1,_1){const n=i("ExternalLinkIcon");return d(),_("div",null,[L,t("table",null,[E,t("tbody",null,[t("tr",null,[N,B,j,F,t("td",null,[t("a",T,[l("/v/douga"),e(n)])])]),t("tr",null,[Y,z,K,S,t("td",null,[t("a",U,[l("/v/douga/mad"),e(n)])])]),t("tr",null,[R,q,H,J,t("td",null,[t("a",Q,[l("/v/douga/mmd"),e(n)])])]),t("tr",null,[W,X,Z,$,t("td",null,[t("a",tt,[l("/v/douga/handdrawn"),e(n)])])]),t("tr",null,[lt,nt,et,ot,t("td",null,[t("a",st,[l("/v/douga/voice"),e(n)])])]),t("tr",null,[it,dt,_t,rt,t("td",null,[t("a",ht,[l("/v/douga/garage_kit"),e(n)])])]),t("tr",null,[ut,ct,at,bt,t("td",null,[t("a",wt,[l("/v/douga/tokusatsu"),e(n)])])]),t("tr",null,[ft,mt,pt,vt,t("td",null,[t("a",gt,[l("/v/douga/acgntalks"),e(n)])])]),t("tr",null,[kt,yt,At,It,t("td",null,[t("a",xt,[l("/v/douga/other"),e(n)])])])])]),Pt,Mt,t("table",null,[Vt,t("tbody",null,[t("tr",null,[Ct,Dt,Gt,Ot,t("td",null,[t("a",Lt,[l("/anime"),e(n)])])]),t("tr",null,[Et,Nt,Bt,jt,t("td",null,[t("a",Ft,[l("/v/anime/information"),e(n)])])]),t("tr",null,[Tt,Yt,zt,Kt,t("td",null,[t("a",St,[l("/v/anime/offical"),e(n)])])]),t("tr",null,[Ut,Rt,qt,Ht,t("td",null,[t("a",Jt,[l("/v/anime/finish"),e(n)])])]),t("tr",null,[Qt,Wt,Xt,Zt,t("td",null,[t("a",$t,[l("/v/anime/serial"),e(n)])])])])]),tl,ll,t("table",null,[nl,t("tbody",null,[t("tr",null,[el,ol,sl,il,t("td",null,[t("a",dl,[l("/guochuang"),e(n)])])]),t("tr",null,[_l,rl,hl,ul,t("td",null,[t("a",cl,[l("/v/guochuang/chinese"),e(n)])])]),t("tr",null,[al,bl,wl,fl,t("td",null,[t("a",ml,[l("/v/guochuang/original"),e(n)])])]),t("tr",null,[pl,vl,gl,kl,t("td",null,[t("a",yl,[l("/v/guochuang/puppetry"),e(n)])])]),t("tr",null,[Al,Il,xl,Pl,t("td",null,[t("a",Ml,[l("/v/guochuang/information"),e(n)])])]),t("tr",null,[Vl,Cl,Dl,Gl,t("td",null,[t("a",Ol,[l("/v/guochuang/motioncomic"),e(n)])])])])]),Ll,El,t("table",null,[Nl,t("tbody",null,[t("tr",null,[Bl,jl,Fl,Tl,t("td",null,[t("a",Yl,[l("/v/music"),e(n)])])]),t("tr",null,[zl,Kl,Sl,Ul,t("td",null,[t("a",Rl,[l("/v/music/original"),e(n)])])]),t("tr",null,[ql,Hl,Jl,Ql,t("td",null,[t("a",Wl,[l("/v/music/cover"),e(n)])])]),t("tr",null,[Xl,Zl,$l,tn,t("td",null,[t("a",ln,[l("/v/music/vocaloid"),e(n)])])]),t("tr",null,[nn,en,on,sn,t("td",null,[t("a",dn,[l("/v/music/perform"),e(n)])])]),t("tr",null,[_n,rn,hn,un,t("td",null,[t("a",cn,[l("/v/music/mv"),e(n)])])]),t("tr",null,[an,bn,wn,fn,t("td",null,[t("a",mn,[l("/v/music/live"),e(n)])])]),t("tr",null,[pn,vn,gn,kn,t("td",null,[t("a",yn,[l("/v/music/other"),e(n)])])]),t("tr",null,[An,In,xn,Pn,t("td",null,[t("a",Mn,[l("/v/music/commentary"),e(n)])])]),t("tr",null,[Vn,Cn,Dn,Gn,t("td",null,[t("a",On,[l("/v/music/tutorial"),e(n)])])]),Ln])]),En,Nn,t("table",null,[Bn,t("tbody",null,[t("tr",null,[jn,Fn,Tn,Yn,t("td",null,[t("a",zn,[l("/v/dance"),e(n)])])]),t("tr",null,[Kn,Sn,Un,Rn,t("td",null,[t("a",qn,[l("/v/dance/otaku"),e(n)])])]),t("tr",null,[Hn,Jn,Qn,Wn,t("td",null,[t("a",Xn,[l("/v/dance/three_d"),e(n)])])]),t("tr",null,[Zn,$n,te,le,t("td",null,[t("a",ne,[l("/v/dance/demo"),e(n)])])]),t("tr",null,[ee,oe,se,ie,t("td",null,[t("a",de,[l("/v/dance/hiphop"),e(n)])])]),t("tr",null,[_e,re,he,ue,t("td",null,[t("a",ce,[l("/v/dance/star"),e(n)])])]),t("tr",null,[ae,be,we,fe,t("td",null,[t("a",me,[l("/v/dance/china"),e(n)])])]),t("tr",null,[pe,ve,ge,ke,t("td",null,[t("a",ye,[l("/v/dance/gestures"),e(n)])])])])]),Ae,Ie,t("table",null,[xe,t("tbody",null,[t("tr",null,[Pe,Me,Ve,Ce,t("td",null,[t("a",De,[l("/v/game"),e(n)])])]),t("tr",null,[Ge,Oe,Le,Ee,t("td",null,[t("a",Ne,[l("/v/game/stand_alone"),e(n)])])]),t("tr",null,[Be,je,Fe,Te,t("td",null,[t("a",Ye,[l("/v/game/esports"),e(n)])])]),t("tr",null,[ze,Ke,Se,Ue,t("td",null,[t("a",Re,[l("/v/game/mobile"),e(n)])])]),t("tr",null,[qe,He,Je,Qe,t("td",null,[t("a",We,[l("/v/game/online"),e(n)])])]),t("tr",null,[Xe,Ze,$e,to,t("td",null,[t("a",lo,[l("/v/game/board"),e(n)])])]),t("tr",null,[no,eo,oo,so,t("td",null,[t("a",io,[l("/v/game/gmv"),e(n)])])]),t("tr",null,[_o,ro,ho,uo,t("td",null,[t("a",co,[l("/v/game/music"),e(n)])])]),t("tr",null,[ao,bo,wo,fo,t("td",null,[t("a",mo,[l("/v/game/mugen"),e(n)])])])])]),po,vo,t("table",null,[go,t("tbody",null,[t("tr",null,[ko,yo,Ao,Io,t("td",null,[t("a",xo,[l("/v/knowledge"),e(n)])])]),t("tr",null,[Po,Mo,Vo,Co,t("td",null,[t("a",Do,[l("/v/knowledge/science"),e(n)])])]),t("tr",null,[Go,Oo,Lo,Eo,t("td",null,[t("a",No,[l("/v/knowledge/social_science"),e(n)])])]),t("tr",null,[Bo,jo,Fo,To,t("td",null,[t("a",Yo,[l("/v/knowledge/humanity_history"),e(n)])])]),t("tr",null,[zo,Ko,So,Uo,t("td",null,[t("a",Ro,[l("/v/knowledge/finance"),e(n)])])]),t("tr",null,[qo,Ho,Jo,Qo,t("td",null,[t("a",Wo,[l("/v/knowledge/campus"),e(n)])])]),t("tr",null,[Xo,Zo,$o,ts,t("td",null,[t("a",ls,[l("/v/knowledge/career"),e(n)])])]),t("tr",null,[ns,es,os,ss,t("td",null,[t("a",is,[l("/v/knowledge/design"),e(n)])])]),t("tr",null,[ds,_s,rs,hs,t("td",null,[t("a",us,[l("/v/knowledge/skill"),e(n)])])]),cs,as,bs])]),ws,fs,ms,t("table",null,[ps,t("tbody",null,[t("tr",null,[vs,gs,ks,ys,t("td",null,[t("a",As,[l("/v/tech"),e(n)])])]),t("tr",null,[Is,xs,Ps,Ms,t("td",null,[t("a",Vs,[l("/v/tech/digital"),e(n)])])]),t("tr",null,[Cs,Ds,Gs,Os,t("td",null,[t("a",Ls,[l("/v/tech/application"),e(n)])])]),t("tr",null,[Es,Ns,Bs,js,t("td",null,[t("a",Fs,[l("/v/tech/computer_tech"),e(n)])])]),t("tr",null,[Ts,Ys,zs,Ks,t("td",null,[t("a",Ss,[l("/v/tech/industry"),e(n)])])]),t("tr",null,[Us,Rs,qs,Hs,t("td",null,[t("a",Js,[l("/v/tech/diy"),e(n)])])]),Qs,Ws,Xs])]),Zs,$s,t("table",null,[ti,t("tbody",null,[t("tr",null,[li,ni,ei,oi,t("td",null,[t("a",si,[l("/v/sports"),e(n)])])]),t("tr",null,[ii,di,_i,ri,t("td",null,[t("a",hi,[l("/v/sports/basketball"),e(n)])])]),t("tr",null,[ui,ci,ai,bi,t("td",null,[t("a",wi,[l("/v/sports/football"),e(n)])])]),t("tr",null,[fi,mi,pi,vi,t("td",null,[t("a",gi,[l("/v/sports/aerobics"),e(n)])])]),t("tr",null,[ki,yi,Ai,Ii,t("td",null,[t("a",xi,[l("/v/sports/culture"),e(n)])])]),t("tr",null,[Pi,Mi,Vi,Ci,t("td",null,[t("a",Di,[l("/v/sports/culture"),e(n)])])]),t("tr",null,[Gi,Oi,Li,Ei,t("td",null,[t("a",Ni,[l("/v/sports/comprehensive"),e(n)])])])])]),Bi,ji,t("table",null,[Fi,t("tbody",null,[t("tr",null,[Ti,Yi,zi,Ki,t("td",null,[t("a",Si,[l("/v/car"),e(n)])])]),t("tr",null,[Ui,Ri,qi,Hi,t("td",null,[t("a",Ji,[l("/v/car/knowledge"),e(n)])])]),t("tr",null,[Qi,Wi,Xi,Zi,t("td",null,[t("a",$i,[l("/v/car/racing"),e(n)])])]),t("tr",null,[td,ld,nd,ed,t("td",null,[t("a",od,[l("/v/car/modifiedvehicle"),e(n)])])]),t("tr",null,[sd,id,dd,_d,t("td",null,[t("a",rd,[l("/v/car/newenergyvehicle"),e(n)])])]),t("tr",null,[hd,ud,cd,ad,t("td",null,[t("a",bd,[l("/v/car/touringcar"),e(n)])])]),t("tr",null,[wd,fd,md,pd,t("td",null,[t("a",vd,[l("/v/car/motorcycle"),e(n)])])]),t("tr",null,[gd,kd,yd,Ad,t("td",null,[t("a",Id,[l("/v/car/strategy"),e(n)])])]),t("tr",null,[xd,Pd,Md,Vd,t("td",null,[t("a",Cd,[l("/v/car/life"),e(n)])])]),Dd,Gd,Od])]),Ld,Ed,t("table",null,[Nd,t("tbody",null,[t("tr",null,[Bd,jd,Fd,Td,t("td",null,[t("a",Yd,[l("/v/life"),e(n)])])]),t("tr",null,[zd,Kd,Sd,Ud,t("td",null,[t("a",Rd,[l("/v/life/funny"),e(n)])])]),t("tr",null,[qd,Hd,Jd,Qd,t("td",null,[t("a",Wd,[l("/v/life/travel"),e(n)])])]),t("tr",null,[Xd,Zd,$d,t_,t("td",null,[t("a",l_,[l("/v/life/rurallife"),e(n)])])]),t("tr",null,[n_,e_,o_,s_,t("td",null,[t("a",i_,[l("/v/life/home"),e(n)])])]),t("tr",null,[d_,__,r_,h_,t("td",null,[t("a",u_,[l("/v/life/handmake"),e(n)])])]),t("tr",null,[c_,a_,b_,w_,t("td",null,[t("a",f_,[l("/v/life/painting"),e(n)])])]),t("tr",null,[m_,p_,v_,g_,t("td",null,[t("a",k_,[l("/v/life/daily"),e(n)])])]),t("tr",null,[y_,A_,I_,x_,t("td",null,[t("a",P_,[l("/v/life/parenting"),e(n)])])]),M_,V_,C_,D_,G_])]),O_,L_,t("table",null,[E_,t("tbody",null,[t("tr",null,[N_,B_,j_,F_,t("td",null,[t("a",T_,[l("/v/food"),e(n)])])]),t("tr",null,[Y_,z_,K_,S_,t("td",null,[t("a",U_,[l("/v/food/make"),e(n)])])]),t("tr",null,[R_,q_,H_,J_,t("td",null,[t("a",Q_,[l("/v/food/detective"),e(n)])])]),t("tr",null,[W_,X_,Z_,$_,t("td",null,[t("a",tr,[l("/v/food/measurement"),e(n)])])]),t("tr",null,[lr,nr,er,or,t("td",null,[t("a",sr,[l("/v/food/rural"),e(n)])])]),t("tr",null,[ir,dr,_r,rr,t("td",null,[t("a",hr,[l("/v/food/record"),e(n)])])])])]),ur,cr,t("table",null,[ar,t("tbody",null,[t("tr",null,[br,wr,fr,mr,t("td",null,[t("a",pr,[l("/v/animal"),e(n)])])]),t("tr",null,[vr,gr,kr,yr,t("td",null,[t("a",Ar,[l("/v/animal/cat"),e(n)])])]),t("tr",null,[Ir,xr,Pr,Mr,t("td",null,[t("a",Vr,[l("/v/animal/dog"),e(n)])])]),t("tr",null,[Cr,Dr,Gr,Or,t("td",null,[t("a",Lr,[l("/v/animal/second_edition"),e(n)])])]),t("tr",null,[Er,Nr,Br,jr,t("td",null,[t("a",Fr,[l("/v/animal/wild_animal"),e(n)])])]),t("tr",null,[Tr,Yr,zr,Kr,t("td",null,[t("a",Sr,[l("/v/animal/reptiles"),e(n)])])]),t("tr",null,[Ur,Rr,qr,Hr,t("td",null,[t("a",Jr,[l("/v/animal/animal_composite"),e(n)])])])])]),Qr,Wr,t("table",null,[Xr,t("tbody",null,[t("tr",null,[Zr,$r,th,lh,t("td",null,[t("a",nh,[l("/v/kichiku"),e(n)])])]),t("tr",null,[eh,oh,sh,ih,t("td",null,[t("a",dh,[l("/v/kichiku/guide"),e(n)])])]),t("tr",null,[_h,rh,hh,uh,t("td",null,[t("a",ch,[l("/v/kichiku/mad/v/kichiku/mad"),e(n)])])]),t("tr",null,[ah,bh,wh,fh,t("td",null,[t("a",mh,[l("/v/kichiku/manual_vocaloid"),e(n)])])]),t("tr",null,[ph,vh,gh,kh,t("td",null,[t("a",yh,[l("/v/kichiku/theatre"),e(n)])])]),t("tr",null,[Ah,Ih,xh,Ph,t("td",null,[t("a",Mh,[l("/v/kichiku/course"),e(n)])])])])]),Vh,Ch,t("table",null,[Dh,t("tbody",null,[t("tr",null,[Gh,Oh,Lh,Eh,t("td",null,[t("a",Nh,[l("/v/fashion"),e(n)])])]),t("tr",null,[Bh,jh,Fh,Th,t("td",null,[t("a",Yh,[l("/v/fashion/makeup"),e(n)])])]),t("tr",null,[zh,Kh,Sh,Uh,t("td",null,[t("a",Rh,[l("/v/fashion/cos"),e(n)])])]),t("tr",null,[qh,Hh,Jh,Qh,t("td",null,[t("a",Wh,[l("/v/fashion/clothing"),e(n)])])]),t("tr",null,[Xh,Zh,$h,tu,t("td",null,[t("a",lu,[l("/v/fashion/catwalk"),e(n)])])]),nu,eu])]),ou,su,iu,t("table",null,[du,t("tbody",null,[t("tr",null,[_u,ru,hu,uu,t("td",null,[t("a",cu,[l("/v/information"),e(n)])])]),t("tr",null,[au,bu,wu,fu,t("td",null,[t("a",mu,[l("/v/information/hotspot"),e(n)])])]),t("tr",null,[pu,vu,gu,ku,t("td",null,[t("a",yu,[l("/v/information/global"),e(n)])])]),t("tr",null,[Au,Iu,xu,Pu,t("td",null,[t("a",Mu,[l("/v/information/social"),e(n)])])]),t("tr",null,[Vu,Cu,Du,Gu,t("td",null,[t("a",Ou,[l("/v/information/multiple"),e(n)])])])])]),Lu,t("table",null,[Eu,t("tbody",null,[t("tr",null,[Nu,Bu,ju,Fu,t("td",null,[t("a",Tu,[l("/v/ent"),e(n)])])]),t("tr",null,[Yu,zu,Ku,Su,t("td",null,[t("a",Uu,[l("/v/ent/variety"),e(n)])])]),t("tr",null,[Ru,qu,Hu,Ju,t("td",null,[t("a",Qu,[l("/v/ent/talker"),e(n)])])]),t("tr",null,[Wu,Xu,Zu,$u,t("td",null,[t("a",tc,[l("/v/ent/fans"),e(n)])])]),t("tr",null,[lc,nc,ec,oc,t("td",null,[t("a",sc,[l("/v/ent/celebrity"),e(n)])])]),ic])]),dc,_c,t("table",null,[rc,t("tbody",null,[t("tr",null,[hc,uc,cc,ac,t("td",null,[t("a",bc,[l("/v/cinephile"),e(n)])])]),t("tr",null,[wc,fc,mc,pc,t("td",null,[t("a",vc,[l("/v/cinephile/cinecism"),e(n)])])]),t("tr",null,[gc,kc,yc,Ac,t("td",null,[t("a",Ic,[l("/v/cinephile/montage"),e(n)])])]),t("tr",null,[xc,Pc,Mc,Vc,t("td",null,[t("a",Cc,[l("/v/cinephile/shortfilm"),e(n)])])]),t("tr",null,[Dc,Gc,Oc,Lc,t("td",null,[t("a",Ec,[l("/v/cinephile/trailer_info"),e(n)])])]),t("tr",null,[Nc,Bc,jc,Fc,t("td",null,[t("a",Tc,[l("/v/cinephile/shortfilm"),e(n)])])])])]),Yc,zc,t("table",null,[Kc,t("tbody",null,[t("tr",null,[Sc,Uc,Rc,qc,t("td",null,[t("a",Hc,[l("/documentary"),e(n)])])]),t("tr",null,[Jc,Qc,Wc,Xc,t("td",null,[t("a",Zc,[l("/v/documentary/history"),e(n)])])]),t("tr",null,[$c,ta,la,na,t("td",null,[t("a",ea,[l("/v/documentary/science"),e(n)])])]),t("tr",null,[oa,sa,ia,da,t("td",null,[t("a",_a,[l("/v/documentary/military"),e(n)])])]),t("tr",null,[ra,ha,ua,ca,t("td",null,[t("a",aa,[l("/v/documentary/travel"),e(n)])])])])]),ba,wa,t("table",null,[fa,t("tbody",null,[t("tr",null,[ma,pa,va,ga,t("td",null,[t("a",ka,[l("/movie"),e(n)])])]),t("tr",null,[ya,Aa,Ia,xa,t("td",null,[t("a",Pa,[l("/v/movie/chinese"),e(n)])])]),t("tr",null,[Ma,Va,Ca,Da,t("td",null,[t("a",Ga,[l("/v/movie/west"),e(n)])])]),t("tr",null,[Oa,La,Ea,Na,t("td",null,[t("a",Ba,[l("/v/movie/japan"),e(n)])])]),t("tr",null,[ja,Fa,Ta,Ya,t("td",null,[t("a",za,[l("/v/movie/movie"),e(n)])])])])]),Ka,Sa,t("table",null,[Ua,t("tbody",null,[t("tr",null,[Ra,qa,Ha,Ja,t("td",null,[t("a",Qa,[l("/tv"),e(n)])])]),t("tr",null,[Wa,Xa,Za,$a,t("td",null,[t("a",t1,[l("/v/tv/mainland"),e(n)])])]),t("tr",null,[l1,n1,e1,o1,t("td",null,[t("a",s1,[l("/v/tv/overseas"),e(n)])])])])])])}const h1=s(O,[["render",i1],["__file","video_zone.html.vue"]]);export{h1 as default}; diff --git a/assets/videos.html-38ec2be9.js b/assets/videos.html-38ec2be9.js new file mode 100644 index 0000000000..ff9b691148 --- /dev/null +++ b/assets/videos.html-38ec2be9.js @@ -0,0 +1,338 @@ +import{_ as n,o as s,c as a,e as t}from"./app-3168cb19.js";const p={},o=t(`

    视频相关杂项

    获取稿件列表

    https://member.bilibili.com/x2/creative/web/archives/sp

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    注: 该接口返回内容大多为无实际意义的空值, 具体内容建议通过常规接口获取

    URL参数:

    参数名类型内容必要性备注
    pnnum页码必要默认为 1
    psnum每页数量必要默认为 10, 留空为 100

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    classnull作用尚不明确
    arc_auditsarray稿件列表
    pageobj分页信息
    play_typenum1

    arc_audits 数组中的对象:

    字段类型内容备注
    Archiveobj稿件信息
    Videosnull
    statobj稿件统计信息
    state_panelnum0
    parent_tnamestr
    typenamestr
    open_appealnum0
    activitynull
    season_add_statenum是否可加入合集0: 可以
    1: 不可以

    Archive 对象:

    字段类型内容备注
    aidnumav 号
    bvidstrbv 号
    midnum0
    tidnum0
    tp_infonull
    titlestr稿件标题
    authorstr
    coverstr封面图位于 bfs 需要自行拼接 URL
    reject_reasonstr
    reject_reason_urlstr
    tagstr
    durationnum0
    copyrightnum0
    no_reprintnum0
    ugcpaynum0
    order_idnum0
    order_namestr
    adorder_idnum0
    adorder_namestr
    adorder_nostr
    online_timenum0
    new_adorder_infonull
    descstr稿件简介
    mission_idnum0
    mission_namestr
    attributenum0
    statenum0
    state_descstr
    state_panelnum0
    sourcestr
    desc_format_idnum0
    attrsnull
    pordernull
    dynamicstr
    poi_objectnull
    dtimenum0
    ptimenum0
    ctimenum0
    ugcpay_infonull
    staffsnull
    votenull
    activitynull
    interactivenum0
    hlnull
    no_backgroundnum0
    dynamic_videonum0
    no_publicnum0
    is_360num0
    is_dolbynum0
    lossless_musicnum0
    bs_editornum0
    up_fromnum0
    desc_v2null
    dynamic_v2null
    topic_idnum0
    topic_namestr
    topic_statnum0
    premierenum0
    is_ugcpay_v2num0
    recreatenull
    charging_paynum0
    neutral_markstr
    previewnull
    upower_levelnull
    cover43str
    had_passedboolfalse
    is_staffnum0
    is_pugvnum0
    upower_modenum0
    upower_unit_pricenum0

    stat 对象:

    字段类型内容备注
    aidnumav 号
    viewnum播放量
    danmakunum弹幕数
    replynum评论数
    favoritenum收藏数
    coinnum硬币数
    sharenum分享数
    now_ranknum0当前排名
    his_ranknum0历史最高排名
    likenum点赞数
    dislikenum点踩数恒为 0
    vtnum0
    vvnum播放量

    示例:

    curl -G "https://member.bilibili.com/x2/creative/web/archives/sp" \\
    +--data-urlencode "pn=1" \\
    +--data-urlencode "ps=3" \\
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "class": null,
    +    "arc_audits": [
    +      {
    +        "Archive": {
    +          "aid": 1906473802,
    +          "bvid": "BV1MU411S7iJ",
    +          "mid": 0,
    +          "tid": 0,
    +          "tp_info": null,
    +          "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +          "author": "",
    +          "cover": "/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
    +          "reject_reason": "",
    +          "reject_reason_url": "",
    +          "tag": "",
    +          "duration": 0,
    +          "copyright": 0,
    +          "no_reprint": 0,
    +          "ugcpay": 0,
    +          "order_id": 0,
    +          "order_name": "",
    +          "adorder_id": 0,
    +          "adorder_name": "",
    +          "adorder_no": "",
    +          "online_time": 0,
    +          "new_adorder_info": null,
    +          "desc": "",
    +          "mission_id": 0,
    +          "mission_name": "",
    +          "attribute": 0,
    +          "state": 0,
    +          "state_desc": "",
    +          "state_panel": 0,
    +          "source": "",
    +          "desc_format_id": 0,
    +          "attrs": null,
    +          "porder": null,
    +          "dynamic": "",
    +          "poi_object": null,
    +          "dtime": 0,
    +          "ptime": 0,
    +          "ctime": 0,
    +          "ugcpay_info": null,
    +          "staffs": null,
    +          "vote": null,
    +          "activity": null,
    +          "interactive": 0,
    +          "hl": null,
    +          "no_background": 0,
    +          "dynamic_video": 0,
    +          "no_public": 0,
    +          "is_360": 0,
    +          "is_dolby": 0,
    +          "lossless_music": 0,
    +          "bs_editor": 0,
    +          "up_from": 0,
    +          "desc_v2": null,
    +          "dynamic_v2": null,
    +          "topic_id": 0,
    +          "topic_name": "",
    +          "topic_stat": 0,
    +          "premiere": 0,
    +          "is_ugcpay_v2": 0,
    +          "recreate": null,
    +          "political_media": 0,
    +          "political_editable": 0,
    +          "charging_pay": 0,
    +          "neutral_mark": "",
    +          "preview": null,
    +          "upower_level": null,
    +          "cover43": "",
    +          "had_passed": false,
    +          "is_staff": 0,
    +          "is_pugv": 0,
    +          "upower_mode": 0,
    +          "upower_unit_price": 0
    +        },
    +        "Videos": null,
    +        "stat": {
    +          "aid": 1906473802,
    +          "view": 4036,
    +          "danmaku": 8,
    +          "reply": 56,
    +          "favorite": 53,
    +          "coin": 12,
    +          "share": 8,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 99,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 4036
    +        },
    +        "state_panel": 0,
    +        "parent_tname": "",
    +        "typename": "",
    +        "open_appeal": 0,
    +        "activity": null,
    +        "season_add_state": 0
    +      },
    +      {
    +        "Archive": {
    +          "aid": 1956170305,
    +          "bvid": "BV1Ay411i7Ph",
    +          "mid": 0,
    +          "tid": 0,
    +          "tp_info": null,
    +          "title": "十多年前的电脑运行Debian12的启动过程",
    +          "author": "",
    +          "cover": "/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
    +          "reject_reason": "",
    +          "reject_reason_url": "",
    +          "tag": "",
    +          "duration": 0,
    +          "copyright": 0,
    +          "no_reprint": 0,
    +          "ugcpay": 0,
    +          "order_id": 0,
    +          "order_name": "",
    +          "adorder_id": 0,
    +          "adorder_name": "",
    +          "adorder_no": "",
    +          "online_time": 0,
    +          "new_adorder_info": null,
    +          "desc": "",
    +          "mission_id": 0,
    +          "mission_name": "",
    +          "attribute": 0,
    +          "state": 0,
    +          "state_desc": "",
    +          "state_panel": 0,
    +          "source": "",
    +          "desc_format_id": 0,
    +          "attrs": null,
    +          "porder": null,
    +          "dynamic": "",
    +          "poi_object": null,
    +          "dtime": 0,
    +          "ptime": 0,
    +          "ctime": 0,
    +          "ugcpay_info": null,
    +          "staffs": null,
    +          "vote": null,
    +          "activity": null,
    +          "interactive": 0,
    +          "hl": null,
    +          "no_background": 0,
    +          "dynamic_video": 0,
    +          "no_public": 0,
    +          "is_360": 0,
    +          "is_dolby": 0,
    +          "lossless_music": 0,
    +          "bs_editor": 0,
    +          "up_from": 0,
    +          "desc_v2": null,
    +          "dynamic_v2": null,
    +          "topic_id": 0,
    +          "topic_name": "",
    +          "topic_stat": 0,
    +          "premiere": 0,
    +          "is_ugcpay_v2": 0,
    +          "recreate": null,
    +          "political_media": 0,
    +          "political_editable": 0,
    +          "charging_pay": 0,
    +          "neutral_mark": "",
    +          "preview": null,
    +          "upower_level": null,
    +          "cover43": "",
    +          "had_passed": false,
    +          "is_staff": 0,
    +          "is_pugv": 0,
    +          "upower_mode": 0,
    +          "upower_unit_price": 0
    +        },
    +        "Videos": null,
    +        "stat": {
    +          "aid": 1956170305,
    +          "view": 2747,
    +          "danmaku": 13,
    +          "reply": 37,
    +          "favorite": 11,
    +          "coin": 14,
    +          "share": 4,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 42,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2747
    +        },
    +        "state_panel": 0,
    +        "parent_tname": "",
    +        "typename": "",
    +        "open_appeal": 0,
    +        "activity": null,
    +        "season_add_state": 0
    +      },
    +      {
    +        "Archive": {
    +          "aid": 910326709,
    +          "bvid": "BV1GM4y1a7Vn",
    +          "mid": 0,
    +          "tid": 0,
    +          "tp_info": null,
    +          "title": "Minecraft终末之诗,但是谷歌翻译20遍",
    +          "author": "",
    +          "cover": "/bfs/archive/09b7f2542f3e66973ec7de1a3c806cdd45b95426.jpg",
    +          "reject_reason": "",
    +          "reject_reason_url": "",
    +          "tag": "",
    +          "duration": 0,
    +          "copyright": 0,
    +          "no_reprint": 0,
    +          "ugcpay": 0,
    +          "order_id": 0,
    +          "order_name": "",
    +          "adorder_id": 0,
    +          "adorder_name": "",
    +          "adorder_no": "",
    +          "online_time": 0,
    +          "new_adorder_info": null,
    +          "desc": "原内容来源:Minecraft Wiki\\n使用的工具:Google Translate\\n视频仅供娱乐,请勿当真",
    +          "mission_id": 0,
    +          "mission_name": "",
    +          "attribute": 0,
    +          "state": 0,
    +          "state_desc": "",
    +          "state_panel": 0,
    +          "source": "",
    +          "desc_format_id": 0,
    +          "attrs": null,
    +          "porder": null,
    +          "dynamic": "",
    +          "poi_object": null,
    +          "dtime": 0,
    +          "ptime": 0,
    +          "ctime": 0,
    +          "ugcpay_info": null,
    +          "staffs": null,
    +          "vote": null,
    +          "activity": null,
    +          "interactive": 0,
    +          "hl": null,
    +          "no_background": 0,
    +          "dynamic_video": 0,
    +          "no_public": 0,
    +          "is_360": 0,
    +          "is_dolby": 0,
    +          "lossless_music": 0,
    +          "bs_editor": 0,
    +          "up_from": 0,
    +          "desc_v2": null,
    +          "dynamic_v2": null,
    +          "topic_id": 0,
    +          "topic_name": "",
    +          "topic_stat": 0,
    +          "premiere": 0,
    +          "is_ugcpay_v2": 0,
    +          "recreate": null,
    +          "political_media": 0,
    +          "political_editable": 0,
    +          "charging_pay": 0,
    +          "neutral_mark": "",
    +          "preview": null,
    +          "upower_level": null,
    +          "cover43": "",
    +          "had_passed": false,
    +          "is_staff": 0,
    +          "is_pugv": 0,
    +          "upower_mode": 0,
    +          "upower_unit_price": 0
    +        },
    +        "Videos": null,
    +        "stat": {
    +          "aid": 910326709,
    +          "view": 533,
    +          "danmaku": 6,
    +          "reply": 4,
    +          "favorite": 15,
    +          "coin": 13,
    +          "share": 4,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 29,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 533
    +        },
    +        "state_panel": 0,
    +        "parent_tname": "",
    +        "typename": "",
    +        "open_appeal": 0,
    +        "activity": null,
    +        "season_add_state": 0
    +      }
    +    ],
    +    "page": {
    +      "pn": 1,
    +      "ps": 3,
    +      "count": 32
    +    },
    +    "play_type": 1
    +  }
    +}
    +

    视频基础信息

    https://member.bilibili.com/x/web/archive/videos

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    aidnumav 号必要

    JSON回复:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    archiveobj稿件信息
    videosarray视频信息

    archive 对象:

    字段类型内容备注
    aidnumav 号
    bvidstrbvid
    titlestr标题

    videos 数组:

    字段类型内容备注
    cidnum分P cid
    indexnum分P 序号
    titlestr分P 标题
    durationnum0

    示例:

    curl -G "https://member.bilibili.com/x/web/archive/videos" \\
    +--data-urlencode "aid=1906473802" \\
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "archive": {
    +      "aid": 1906473802,
    +      "bvid": "BV1MU411S7iJ",
    +      "title": "Linux小寄巧: 原地卸载内核然后尝试救活!"
    +    },
    +    "videos": [
    +      {
    +        "cid": 1625992822,
    +        "index": 1,
    +        "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +        "duration": 0
    +      }
    +    ]
    +  }
    +}
    +
    `,39),e=[o];function r(l,u){return s(),a("div",null,e)}const d=n(p,[["render",r],["__file","videos.html.vue"]]);export{d as default}; diff --git a/assets/videos.html-6d040dc8.js b/assets/videos.html-6d040dc8.js new file mode 100644 index 0000000000..0713369237 --- /dev/null +++ b/assets/videos.html-6d040dc8.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-b13d7c1e","path":"/docs/creativecenter/videos.html","title":"视频相关杂项","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取稿件列表","slug":"获取稿件列表","link":"#获取稿件列表","children":[]},{"level":2,"title":"视频基础信息","slug":"视频基础信息","link":"#视频基础信息","children":[]}],"git":{},"filePathRelative":"docs/creativecenter/videos.md"}');export{e as data}; diff --git a/assets/videostream_url.html-0a0e9cbe.js b/assets/videostream_url.html-0a0e9cbe.js new file mode 100644 index 0000000000..a895fbd5d9 --- /dev/null +++ b/assets/videostream_url.html-0a0e9cbe.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-1efa602b","path":"/docs/cheese/videostream_url.html","title":"课程视频流URL","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取课程视频流URL(web端)","slug":"获取课程视频流url-web端","link":"#获取课程视频流url-web端","children":[]}],"git":{},"filePathRelative":"docs/cheese/videostream_url.md"}');export{e as data}; diff --git a/assets/videostream_url.html-17311e3a.js b/assets/videostream_url.html-17311e3a.js new file mode 100644 index 0000000000..fce0431db1 --- /dev/null +++ b/assets/videostream_url.html-17311e3a.js @@ -0,0 +1,93 @@ +import{_ as e}from"./download-d77df227.js";import{_ as d,r as l,o as r,c as u,a as t,b as n,d as a,w as o,e as p}from"./app-3168cb19.js";const c={},i=p('

    课程视频流URL

    获取课程视频流URL(web端)

    https://api.bilibili.com/pugv/player/web/playurl

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    注:

    ',7),k=t("li",null,"本接口为课程视频专用,故与普通视频不互通",-1),v=t("p",null,[t("strong",null,"url参数:")],-1),m=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1),b=t("tr",null,[t("td",null,"avid"),t("td",null,"num"),t("td",null,"课程avid"),t("td",null,"必要"),t("td")],-1),q=t("tr",null,[t("td",null,"ep_id"),t("td",null,"num"),t("td",null,"课程epid"),t("td",null,"必要"),t("td")],-1),h=t("tr",null,[t("td",null,"cid"),t("td",null,"num"),t("td",null,"视频cid"),t("td",null,"必要"),t("td")],-1),_=t("td",null,"qn",-1),g=t("td",null,"num",-1),y=t("td",null,"视频清晰度选择",-1),f=t("td",null,"非必要",-1),N=t("td",null,"fnver",-1),E=t("td",null,"num",-1),B=t("td",null,"视频流版本",-1),x=t("td",null,"非必要",-1),A=t("td",null,"fnval",-1),T=t("td",null,"num",-1),j=t("td",null,"视频流类型",-1),C=t("td",null,"非必要",-1),P=t("tr",null,[t("td",null,"fourk"),t("td",null,"num"),t("td",null,"是否允许4K视频"),t("td",null,"非必要"),t("td",null,[n("默认为0"),t("br"),n("画质最高1080P:0"),t("br"),n("画质最高4K:1")])],-1),V=p(`

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    -403:权限不足(未购买)
    messagestr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    accept_formatstr视频支持的分辨率的格式
    codenum0
    durlarray视频分段
    seek_paramstrstart
    no_rexcodenum0
    formatstr视频格式
    fnvalnum0
    video_projectbooltrue
    fnvernum0
    messagestr
    typestr视频格式
    accept_qualityarray视频支持的分辨率列表
    qualitynum视频分辨率代码值含义见上表
    timelengthnum视频长度单位为毫秒
    不同分辨率可能有略微差异
    resultstrsuee作用尚不明确
    seek_typestroffset作用尚不明确
    has_paidboolfalse作用尚不明确
    supportFormatsarray视频分辨率详细列表
    fromstrlocal作用尚不明确
    video_codecidnum???作用尚不明确
    accept_descriptionarray视频支持的分辨率列表
    statusnum0作用尚不明确

    data中的durl数组:

    类型内容备注
    0obj视频分段1信息
    nobj视频分段(n+1)信息
    ……obj……

    durl数组中的对象:

    字段类型内容备注
    sizenum视频大小单位为Byte
    aheadstr作用尚不明确
    lengthnum视频长度单位为毫秒
    vheadstr作用尚不明确
    backup_urlarray备用视频流
    urlstr视频流url链接有效时间为120min
    ordernum视频分段序号某些视频会分为多个片段

    durl数组中的对象中的backup_url数组:

    类型内容备注
    0str备用视频流url有效时间为120min

    data中的supportFormats数组:

    类型内容备注
    0obj分辨率详细信息1
    nobj分辨率详细信息(n+1)
    ……obj…………

    supportFormats数组中的对象:

    字段类型内容备注
    formatstr分辨率名称
    descriptionatr分辨率备注
    qualitynum分辨率代码

    data中的accept_description数组:

    类型内容备注
    0str分辨率名称1
    nstr分辨率名称(n+1)
    ……str…………

    示例:

    获取课程ep790(cid=132105993,avid=76973173)的视频流url,清晰度为1080P60

    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'
    +
    查看响应示例:
    {
    +    "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"
    +}
    +
    `,21);function M(F,w){const s=l("RouterLink");return r(),u("div",null,[i,t("ol",null,[k,t("li",null,[n("大部分使用方法及视频的取流方法继承"),a(s,{to:"/docs/video/videostream_url.html"},{default:o(()=>[n("视频流url文档")]),_:1})])]),v,t("table",null,[m,t("tbody",null,[b,q,h,t("tr",null,[_,g,y,f,t("td",null,[n("参考"),a(s,{to:"/docs/video/videostream_url.html#qn%E8%A7%86%E9%A2%91%E6%B8%85%E6%99%B0%E5%BA%A6%E6%A0%87%E8%AF%86"},{default:o(()=>[n("qn定义")]),_:1})])]),t("tr",null,[N,E,B,x,t("td",null,[n("参考"),a(s,{to:"/docs/video/videostream_url.html#fnver%E8%A7%86%E9%A2%91%E6%B5%81%E7%89%88%E6%9C%AC%E6%A0%87%E8%AF%86"},{default:o(()=>[n("fnver定义")]),_:1})])]),t("tr",null,[A,T,j,C,t("td",null,[n("参考"),a(s,{to:"/docs/video/videostream_url.html#fnval%E8%A7%86%E9%A2%91%E6%B5%81%E6%A0%BC%E5%BC%8F%E6%A0%87%E8%AF%86"},{default:o(()=>[n("fnval定义")]),_:1})])]),P])]),V])}const Z=d(c,[["render",M],["__file","videostream_url.html.vue"]]);export{Z as default}; diff --git a/assets/videostream_url.html-7da33be4.js b/assets/videostream_url.html-7da33be4.js new file mode 100644 index 0000000000..917010777e --- /dev/null +++ b/assets/videostream_url.html-7da33be4.js @@ -0,0 +1,872 @@ +import{_ as i}from"./download-d77df227.js";import{_ as c,r as o,o as r,c as l,a as n,b as a,d as s,w as u,e as p}from"./app-3168cb19.js";const d={},m=p('

    视频流URL

    视频为 DASH 或 MP4 流媒体,需调用取流 API 传参视频 id 获取

    qn视频清晰度标识

    注:该值在 DASH 格式下无效,因为 DASH 格式会取到所有分辨率的流地址

    ',5),v={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/606",target:"_blank",rel:"noopener noreferrer"},k={href:"https://www.bilibili.com/read/cv949156/",target:"_blank",rel:"noopener noreferrer"},q=p('
    含义备注
    6240P 极速仅 MP4 格式支持
    platform=html5时有效
    16360P 流畅
    32480P 清晰
    64720P 高清WEB 端默认值
    B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址
    无 720P 时则为 720P60
    74720P60 高帧率登录认证
    801080P 高清TV 端与 APP 端默认值
    登录认证
    1121080P+ 高码率大会员认证
    1161080P60 高帧率大会员认证
    1204K 超清需要fnval&128=128fourk=1
    大会员认证
    125HDR 真彩色仅支持 DASH 格式
    需要fnval&64=64
    大会员认证
    126杜比视界仅支持 DASH 格式
    需要fnval&512=512
    大会员认证
    1278K 超高清仅支持 DASH 格式
    需要fnval&1024=1024
    大会员认证

    例如:请求 1080P+ 的视频,则qn=112

    fnver视频流版本标识

    目前该值恒为 0,即fnver=0

    fnval视频流格式标识

    该代码为二进制属性位,如需组合功能需要使用OR运算结合一下数值

    目前 FLV 格式已下线,应避免使用fnval=0

    含义备注
    0FLV 格式FLV 格式已下线
    仅 H.264 编码
    部分老视频存在分段现象
    与 MP4、DASH 格式互斥
    1MP4 格式仅 H.264 编码
    FLV、DASH 格式互斥
    16DASH 格式与 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

    视频编码代码

    含义备注
    7AVC 编码8K 视频不支持该格式
    12HEVC 编码
    13AV1 编码

    视频伴音音质代码

    含义
    3021664K
    30232132K
    30280192K
    30250杜比全景声
    30251Hi-Res无损

    获取视频流地址_web端

    https://api.bilibili.com/x/player/wbi/playurl

    https://api.bilibili.com/x/player/playurl (旧链接)

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    ',18),b=p(`

    关于视频流会员鉴权:

    • 获取 720P 及以上清晰度视频时需要登录(Cookie)

    • 获取高帧率(1080P60)/ 高码率(1080P+)/ HDR / 杜比视界 视频时需要有大会员的账号登录(Cookie)

    • 获取会员专属视频时需要登录(Cookie)

    • 部分特殊视频(如平台宣传片、活动视频等)不需要大会员账号认证


    获取 url 有效时间为 120min,超时失效需要重新获取

    部分视频会有分段,需要特别注意(FLV 格式已下线,不可能出现分段

    若视频有分P,仅为单P视频的 url,换P则需传参对应 CID 重新获取

    url参数:

    参数名类型内容必要性备注
    avidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    cidnum视频 cid必要
    qnnum视频清晰度选择非必要未登录默认 32(480P),登录后默认 64(720P)
    含义见 上表
    DASH 格式时无效
    fnvalnum视频流格式标识非必要默认值为1(MP4 格式)
    含义见 上表
    fnvernum0非必要
    fourknum是否允许 4K 视频非必要画质最高 1080P:0(默认)
    画质最高 4K:1
    sessionstr非必要从视频播放页的 HTML 中设置 window.__playinfo__ 处获取,或者通过 buvid3 + 当前UNIX毫秒级时间戳 经过md5获取
    otypestr非必要固定为json
    typestr非必要目前为空
    platformstr非必要pc:web播放(默认值,视频流存在 referer鉴权)
    html5:移动端 HTML5 播放(仅支持 MP4 格式,无 referer 鉴权可以直接使用video标签播放)
    high_qualitynum是否高画质非必要platform=html5时,此值为1可使画质为1080p

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    数据本体

    data对象:

    字段类型内容备注
    fromstrlocal
    resultstrsuee
    messagestr空?
    qualitynum清晰度标识含义见 上表
    formatstr视频格式mp4/flv
    timelengthnum视频长度单位为毫秒
    不同分辨率 / 格式可能有略微差异
    accept_formatstr支持的全部格式每项用,分隔
    accept_descriptionarray支持的清晰度列表(文字说明)
    accept_qualityarray支持的清晰度列表(代码)含义见 上表
    video_codecidnum默认选择视频流的编码id含义见 上表
    seek_paramstrstart
    seek_typestroffset(DASH / FLV)?
    second(MP4)?
    durlarray视频分段流信息注:仅 FLV / MP4 格式存在此字段
    dashobjDASH 流信息注:仅 DASH 格式存在此字段
    support_formatsarray支持格式的详细信息
    high_formatnull(?)
    last_play_timenum上次播放进度毫秒值
    last_play_cidnum上次播放分P的 cid

    data中的accept_description数组:

    类型内容备注
    0str分辨率名称1
    nstr分辨率名称(n+1)
    ……str……

    data中的accept_quality数组:

    类型内容备注
    0num分辨率代码1含义见 上表
    nnum分辨率代码(n+1)
    ……num……

    data中的support_formats数组:

    类型内容备注
    0obj播放格式详细信息1
    nobj播放格式详细信息(n+1)
    ……obj……

    support_formats数组中的对象:

    字段类型内容备注
    qualitynum视频清晰度代码含义见 上表
    formatstr视频格式
    new_descriptionstr格式描述
    display_descstr格式描述
    superscriptstr(?)
    codecsarray可用编码格式列表

    support_formats中的codecs数组:

    类型内容备注
    0str例:av01.0.13M.08.0.110.01.01.01.0使用AV1编码
    1str例子:avc1.640034使用AVC编码
    2str例子:hev1.1.6.L153.90使用HEVC编码

    由于 MP4 / FLV 与 DASH 格式的返回结构不同,以下内容需要分类讨论durldash字段的内容


    FLV/MP4格式

    data中的durl数组:

    类型内容备注
    0obj视频分段 1 信息目前由于 FLV 格式已经下线,不会存在分段现象,故无需关心
    nobj视频分段 (n+1) 信息
    ……obj……

    durl数组中的对象:

    字段类型内容备注
    ordernum视频分段序号某些视频会分为多个片段(从1顺序增长)
    lengthnum视频长度单位为毫秒
    sizenum视频大小单位为 Byte
    aheadstr(?)
    vheadstr(?)
    urlstr默认流 URL注意 unicode 转义符
    有效时间为120min
    backup_urlarray备用视频流

    durl数组中的对象中的backup_url数组:

    类型内容备注
    0str备用流 URL 1注意 unicode 转义符
    有效时间为120min
    nstr备用流 URL (n+1)
    ……str……

    示例:

    视频无分段时:

    获取视频av99999999/BV1y7411Q7Eq中的 1P(cid=171776208)的视频流 URL,清晰度为 1080P+,使用 FLV 方式获取

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +  "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
    +  }
    +}
    +

    视频有分段时:

    以下内容无参考价值,仅做历史保存

    查看响应示例:
    {
    +    "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对象:

    字段类型内容备注
    durationnum视频长度秒值
    minBufferTimenum1.5?
    min_buffer_timenum1.5?
    videoarray视频流信息
    audioarray伴音流信息当视频没有音轨时,此项为 null
    dolbyobj杜比全景声伴音信息
    flacobj无损音轨伴音信息当视频没有无损音轨时,此项为 null

    dash中的video数组:

    类型内容备注
    0obj视频码流 1同一清晰度可拥有 H.264 / H.265 / AV1 多种码流
    HDR 仅支持 H.265
    nobj视频码流(n+1)
    ……obj……

    dash中的audio数组:

    类型内容备注
    0obj清晰度1
    nobj清晰度(n+1)
    ……obj……

    videoaudio数组中的对象:

    字段类型内容备注
    idnum音视频清晰度代码参考上表
    qn视频清晰度标识
    视频伴音音质代码
    baseUrlstr默认流 URL注意 unicode 转义符
    有效时间为 120min
    base_urlstr同上
    backupUrlarray备用流 URL
    backup_urlarray同上
    bandwidthnum所需最低带宽单位为 Byte
    mimeTypestr格式 mimetype 类型
    mime_typestr同上
    codecsstr编码/音频类型eg:avc1.640032
    widthnum视频宽度单位为像素
    仅视频流存在该字段
    heightnum视频高度单位为像素
    仅视频流存在该字段
    frameRatestr视频帧率仅视频流存在该字段
    frame_ratestr同上
    sarstrSample Aspect Ratio(单个像素的宽高比)音频流该值恒为空
    startWithSapnumStream Access Point(流媒体访问位点)音频流该值恒为空
    start_with_sapnum同上
    SegmentBaseobj见下表url 对应 m4s 文件中,头部的位置
    音频流该值恒为空
    segment_baseobj同上
    codecidnum码流编码标识代码含义见 上表
    音频流该值恒为0

    video数组中的对象中的backup_url数组:

    类型内容备注
    0str备用流 URL 1注意 unicode 转义符
    有效时间为120min
    nstr备用流 URL (n+1)
    ……str……

    video数组中的对象中的SegmentBase对象:

    字段类型内容备注
    initializationstr\${init_first}-\${init_last}eg:0-821
    ftyp (file type) box 加上 moov box 在 m4s 文件中的范围(单位为 bytes)
    如 0-821 表示开头 820 个字节
    index_rangestr\${sidx_first}-\${sidx_last}eg:822-1309
    sidx (segment index) box 在 m4s 文件中的范围(单位为 bytes)
    sidx 的核心是一个数组,记录了各关键帧的时间戳及其在文件中的位置,
    其作用是索引 (拖进度条)

    常规 MP4 文件的索引信息放在 moov box 中,其中包含每一帧 (不止是关键帧) 的一些信息。在 DASH 方式下,关键帧信息移到了 sidx box 里,其他的则分散到了各个 moof (movie fragment) box 中。

    `,59),N={href:"https://www.iso.org/standard/83102.html",target:"_blank",rel:"noopener noreferrer"},g={href:"https://baike.baidu.com/item/mp4/9218018",target:"_blank",rel:"noopener noreferrer"},f=p(`

    dash中的dolby对象:

    此项为”杜比视界“视频独有

    字段类型内容备注
    typenum杜比音效类型1:普通杜比音效
    2:全景杜比音效
    audioarray杜比伴音流列表

    dolby对象中的audio数组:

    类型内容备注
    0obj杜比伴音流信息同上文 DASH 流中videoaudio数组中的对象

    dash中的flac对象:

    类型内容备注
    displaybool是否在播放器显示切换Hi-Res无损音轨按钮
    audioobj音频流信息同上文 DASH 流中videoaudio数组中的对象

    示例:

    获取视频av969628065/BV1rp4y1e745中的 1P(cid=244954665)的视频流 URL,使用 DASH 方式获取

    avid 方式:

    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 方式:

    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'
    +
    查看响应示例:
    {
    +    "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 格式需要杜比或无损的伴音,需要取对应dolbyflac字段中的流
    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 标签<video>播放

    实例:

    下载 FLV / MP4 格式视频:

    wget 'http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=hwbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=5f469cb4c190ed54b89bd40cc37eddff&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000' \\
    +    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    +    --referer 'https://www.bilibili.com' \\
    +    -O 'Download_video.flv'
    +

    下载 DASH 格式视频:

    # 下载视频流
    +wget '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=1674137769&gen=playurlv2&os=bcache&oi=606633952&trid=0000524e9cc80dea41dca72b59782270b5d3u&mid=293793435&platform=pc&upsig=c4206c80b1d0dc18c0545a7758d56eee&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' \\
    +    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    +    --referer 'https://www.bilibili.com' \\
    +    -O 'video.m4s'
    +# 下载伴音流
    +wget 'https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674137769&gen=playurlv2&os=mcdn&oi=606633952&trid=0000524e9cc80dea41dca72b59782270b5d3u&mid=293793435&platform=pc&upsig=e5feff4626de4c6fd2ed9c6061c324a0&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' \\
    +    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    +    --referer 'https://www.bilibili.com' \\
    +    -O 'audio.m4s'
    +# 进行混流
    +ffmpeg -i video.m4s -i audio.m4s -c:v copy -c:a copy -f mp4 Download_video.mp4
    +
    `,26);function B(E,y){const t=o("ExternalLinkIcon"),e=o("RouterLink");return r(),l("div",null,[m,n("p",null,[a("又注: B站对于新的视频更新了播放设置, 较高分辨率均采用 DASH, 较低分辨率与老视频还保留了 MP4, 这导致较新视频无法获取 MP4 格式的高分辨率视频, 参见 "),n("a",v,[a("#606"),s(t)]),a(" 或 "),n("a",k,[a("cv949156"),s(t)])]),q,n("p",null,[a("鉴权方式:"),s(e,{to:"/docs/misc/sign/wbi.html"},{default:u(()=>[a("Wbi 签名")]),_:1})]),b,n("p",null,[a("对这里的文件结构感兴趣的,可以参考标准文档 "),n("a",N,[a("ISO/IEC 14496-12"),s(t)]),a(",如果不想那么深入的话可以百度「"),n("a",g,[a("MP4 文件结构"),s(t)]),a("」")]),f])}const h=c(d,[["render",B],["__file","videostream_url.html.vue"]]);export{h as default}; diff --git a/assets/videostream_url.html-c73eea90.js b/assets/videostream_url.html-c73eea90.js new file mode 100644 index 0000000000..ba7f931806 --- /dev/null +++ b/assets/videostream_url.html-c73eea90.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-0acb47c6","path":"/docs/video/videostream_url.html","title":"视频流URL","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"qn视频清晰度标识","slug":"qn视频清晰度标识","link":"#qn视频清晰度标识","children":[]},{"level":2,"title":"fnver视频流版本标识","slug":"fnver视频流版本标识","link":"#fnver视频流版本标识","children":[]},{"level":2,"title":"fnval视频流格式标识","slug":"fnval视频流格式标识","link":"#fnval视频流格式标识","children":[]},{"level":2,"title":"视频编码代码","slug":"视频编码代码","link":"#视频编码代码","children":[]},{"level":2,"title":"视频伴音音质代码","slug":"视频伴音音质代码","link":"#视频伴音音质代码","children":[]},{"level":2,"title":"获取视频流地址_web端","slug":"获取视频流地址-web端","link":"#获取视频流地址-web端","children":[{"level":3,"title":"FLV/MP4格式","slug":"flv-mp4格式","link":"#flv-mp4格式","children":[]},{"level":3,"title":"DASH格式","slug":"dash格式","link":"#dash格式","children":[]}]},{"level":2,"title":"视频取流说明","slug":"视频取流说明","link":"#视频取流说明","children":[]}],"git":{},"filePathRelative":"docs/video/videostream_url.md"}');export{l as data}; diff --git a/assets/videostream_url.html-ecea5d0c.js b/assets/videostream_url.html-ecea5d0c.js new file mode 100644 index 0000000000..94fd655dbc --- /dev/null +++ b/assets/videostream_url.html-ecea5d0c.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-172498ff","path":"/docs/bangumi/videostream_url.html","title":"视频流URL","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"qn视频清晰度标识","slug":"qn视频清晰度标识","link":"#qn视频清晰度标识","children":[]},{"level":2,"title":"fnver视频流版本标识","slug":"fnver视频流版本标识","link":"#fnver视频流版本标识","children":[]},{"level":2,"title":"fnval视频流格式标识","slug":"fnval视频流格式标识","link":"#fnval视频流格式标识","children":[]},{"level":2,"title":"视频编码代码","slug":"视频编码代码","link":"#视频编码代码","children":[]},{"level":2,"title":"视频伴音音质代码","slug":"视频伴音音质代码","link":"#视频伴音音质代码","children":[]},{"level":2,"title":"获取番剧视频流URL","slug":"获取番剧视频流url","link":"#获取番剧视频流url","children":[]},{"level":2,"title":"视频的取流(web端及APP端)","slug":"视频的取流-web端及app端","link":"#视频的取流-web端及app端","children":[]}],"git":{},"filePathRelative":"docs/bangumi/videostream_url.md"}');export{l as data}; diff --git a/assets/videostream_url.html-f0ad9cde.js b/assets/videostream_url.html-f0ad9cde.js new file mode 100644 index 0000000000..8489ab8dec --- /dev/null +++ b/assets/videostream_url.html-f0ad9cde.js @@ -0,0 +1,83 @@ +import{_ as t}from"./download-d77df227.js";import{_ as s,o as n,c as a,e as d}from"./app-3168cb19.js";const e={},p=d('

    视频流URL

    B站的番剧视频为http流媒体,需要对应的api以视频id获取取流url,并进行取流

    qn视频清晰度标识

    注:该值在dash模式且非下载模式时无效

    含义备注
    6240P 极速仅mp4方式支持
    16360P 流畅
    32480P 清晰
    64720P 高清web端默认值
    B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到720P的取流地址
    无720P时则为720P60
    74720P60 高帧率需要认证登录账号
    801080P 高清TV端与APP端默认值
    需要认证登录账号
    100智能修复仅支持dash方式
    需要fnval&12240=12240
    需要认证登录账号
    1121080P+ 高码率大多情况需求认证大会员账号
    1161080P60 高帧率大多情况需求认证大会员账号
    1204K 超清需要fnval&128=128fourk=1
    大多情况需求认证大会员账号
    125HDR 真彩色仅支持dash方式
    需要fnval&64=64
    大多情况需求认证大会员账号
    126杜比视界仅支持dash方式
    需要fnval&512=512
    大多情况需求认证大会员账号
    1278K 超高清仅支持dash方式
    需要fnval&1024=1024
    大多情况需求认证大会员账号

    例如:请求1080P+的视频,则qn=112

    fnver视频流版本标识

    目前该值恒为0,即fnver=0

    fnval视频流格式标识

    该代码为二进制属性位,如需组合功能需要使用OR运算结合一下数值

    含义备注
    0flv格式仅H.264编码
    部分老视频存在分段现象
    与mp4格式及dash格式互斥
    1mp4格式仅H.264编码
    不存在视频分段
    与flv格式及dash格式互斥
    16dash格式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格式
    12240是否需求智能修复必须为dash格式
    需要认证大会员账号

    例如:请求dash格式且需要HDR的视频流,则fnval=16|64=80

    视频编码代码

    含义备注
    7AVC编码8K视频无此格式
    12HEVC编码
    13AV1编码

    视频伴音音质代码

    含义
    3021664K
    30232132K
    30280192K

    获取番剧视频流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参数:

    参数名类型内容必要性备注
    avidnum稿件avid非必要
    bvidstr稿件bvid非必要
    ep_idnum稿件epid必要(可选)ep_id与cid任选一个
    cidnum视频cid必要(可选)ep_id与cid任选一个
    qnnum视频清晰度选择非必要未登录默认32(480P)
    登录默认64(720P)
    值含义见上表
    注:dash方式无效
    fnvalnum视频获取方式选择非必要默认为0
    0 2:flv方式(可能会有分段)
    1:低清mp4方式(仅240P与360P,且限速65K/s)
    16 80:dash方式(音视频分流,支持H.265)
    fnvernum0非必要固定为0
    fourknum是否允许4K视频非必要默认为0
    画质最高1080P:0
    画质最高4K:1
    sessionstr非必要从视频播放页的网页源码中获取
    from_clientstrBROWSER非必要
    drm_tech_typenum2非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息成功为success
    result有效时:obj
    无效时:null
    数据本体

    result对象:

    字段类型内容备注
    codenum0作用尚不明确
    is_previewnum0作用尚不明确
    fnvernum请求时提供的fnver
    fnvalnum请求时提供的fnval
    video_projectbooltrue
    typestr视频流类型(DASH、FLV、MP4)DASH
    bpnum是否可以承包0
    vip_typenum当前用户大会员类型
    vip_statusnum当前用户大会员状态
    is_drmboolfalse
    no_rexcodenum0
    has_paidboolfalse
    statusnum2
    fromstrlocal作用尚不明确
    resultstrsuee作用尚不明确
    messagestr作用尚不明确
    qualitynum当前的视频分辨率代码值含义见上表
    formatstr视频格式
    timelengthnum视频长度单位为毫秒
    不同分辨率/格式可能有略微差异
    accept_formatstr视频支持的全部格式每项用,分隔
    accept_descriptionarray视频支持的分辨率列表
    accept_qualityarray视频支持的分辨率代码列表值含义见上表
    video_codecidnum默认选择视频流的编码id视频编码代码
    seek_paramstr固定值:start作用尚不明确
    seek_typestroffset(dash、flv)
    second(mp4)
    作用尚不明确
    durlarray视频分段注:仅flv/mp4存在此项
    dashobjdash音视频流信息注:仅dash存在此项
    support_formatsarray支持格式的详细信息
    clip_info_listarray空,待补充
    record_infoobj备案登记信息

    result中的accept_description数组:

    类型内容备注
    0str分辨率名称1
    nstr分辨率名称(n+1)
    ……str……

    result中的accept_quality数组:

    类型内容备注
    0str分辨率代码1
    nstr分辨率代码(n+1)
    ……str……

    result中的support_formats数组:

    类型内容备注
    0obj播放格式详细信息1
    nobj播放格式详细信息(n+1)
    ……obj……

    support_formats数组中的对象:

    字段类型内容备注
    qualitynum视频清晰度代码
    formatstr视频格式
    new_descriptionstr格式描述
    descriptionstr格式描述
    display_descstr格式描述
    superscriptstr(?)
    codecsarray编码格式列表
    need_loginbool需要登录
    need_vipbool需要大会员

    support_formats中的codecs数组:

    类型内容备注
    0str编码格式如:avc1.640032,意为AVC编码
    1str编码格式如:hev1.1.6.L153.90,意为HEVC编码

    result中的record_info对象:

    类型内容备注
    record_iconstr空串
    recordstr显示文案登记号:10417060172092207

    flv/mp4方式:

    result中的durl数组:

    类型内容备注
    0obj视频分段1信息注:仅flv方式具有分段
    nobj视频分段(n+1)信息
    ……obj……

    durl数组中的对象:

    字段类型内容备注
    ordernum视频分段序号某些视频会分为多个片段(从1顺序增长)
    lengthnum视频长度单位为毫秒
    sizenum视频大小单位为Byte
    vheadstr作用尚不明确
    urlstr视频流url注:url内容存在转义符
    有效时间为120min
    backup_urlarray备用视频流

    durl数组中的对象中的backup_url数组:

    类型内容备注
    0str备用视频流url 1注:url内容存在转义符
    有效时间为120min
    nstr备用视频流url (n+1)
    ……str……

    示例:

    视频无分段时:

    获取视频ep85046/av2325306中的1P(cid=3629601)的视频流url,清晰度为480p,使用flv方式获取

    avid/epid方式:

    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

    查看响应示例:
    {
    +    "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为例:

    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文件

    `,69),o=[p];function r(l,c){return n(),a("div",null,o)}const m=s(e,[["render",r],["__file","videostream_url.html.vue"]]);export{m as default}; diff --git a/assets/wbi.html-5acf1126.js b/assets/wbi.html-5acf1126.js new file mode 100644 index 0000000000..1a5296daeb --- /dev/null +++ b/assets/wbi.html-5acf1126.js @@ -0,0 +1,1128 @@ +import{_ as i,r as o,o as k,c as r,a as n,b as s,d as a,w as e,e as p}from"./app-3168cb19.js";const d={},m=n("h1",{id:"wbi-签名",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#wbi-签名","aria-hidden":"true"},"#"),s(" WBI 签名")],-1),b=n("code",null,"w_rid",-1),v=n("code",null,"wts",-1),g=p(`

    经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 w_rid 与时间戳 wts 缺失、错误,会返回 v_voucher,如:

    {"code":0,"message":"0","ttl":1,"data":{"v_voucher":"voucher_******"}}
    +
    `,2),y={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/631",target:"_blank",rel:"noopener noreferrer"},f={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/885",target:"_blank",rel:"noopener noreferrer"},w=n("h2",{id:"wbi-签名算法",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#wbi-签名算法","aria-hidden":"true"},"#"),s(" WBI 签名算法")],-1),q=n("p",null,[s("获取实时口令 "),n("code",null,"img_key"),s("、"),n("code",null,"sub_key")],-1),_=n("code",null,"img_url",-1),h=n("code",null,"sub_url",-1),S=n("code",null,"img",-1),x=n("code",null,"sub",-1),K=p(`

    注:img_urlsub_url 两个字段的值看似为存于 BFS 中的 png 图片 url,实则只是经过伪装的实时 Token,故无需且不能试图访问这两个 url

    {"code":-101,"message":"账号未登录","ttl":1,"data":{"isLogin":false,"wbi_img":{"img_url":"https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png","sub_url":"https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png"}}}
    +

    截取其文件名,分别记为 img_keysub_key,如上述例子中的 7cd084941338484aae1ad9425b84077c4932caff0ff746eab6f01bf08b70ac45

    img_keysub_key 全站统一使用,观测知应为每日更替,使用时建议做好缓存和刷新处理。

    特别地,发现部分接口将 img_keysub_key 硬编码进 JavaScript 文件内,如搜索接口 https://s1.hdslb.com/bfs/static/laputa-search/client/assets/index.1ea39bea.js,暂不清楚原因及影响。

    `,5),T=p(`
  • 打乱重排实时口令获得 mixin_key

    把上一步获取到的 sub_key 拼接在 img_key 后面(下例记为 raw_wbi_key),遍历重排映射表 MIXIN_KEY_ENC_TAB,取出 raw_wbi_key 中对应位置的字符拼接得到新的字符串,截取前 32 位,即为 mixin_key

    重排映射表 MIXIN_KEY_ENC_TAB 长为 64,内容如下:

    const MIXIN_KEY_ENC_TAB: [u8; 64] = [
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +    33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +    61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +    36, 20, 34, 44, 52
    +]
    +

    重排操作如下例:

     fn gen_mixin_key(raw_wbi_key: impl AsRef<[u8]>) -> String {
    +     const MIXIN_KEY_ENC_TAB: [u8; 64] = [
    +         46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42,
    +         19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60,
    +         51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52,
    +     ];
    +     let raw_wbi_key = raw_wbi_key.as_ref();
    +     let mut mixin_key = {
    +         let binding = MIXIN_KEY_ENC_TAB
    +             .iter()
    +             // 此步操作即遍历 MIXIN_KEY_ENC_TAB,取出 raw_wbi_key 中对应位置的字符
    +             .map(|n| raw_wbi_key[*n as usize])
    +             // 并收集进数组内
    +             .collect::<Vec<u8>>();
    +         unsafe { String::from_utf8_unchecked(binding) }
    +     };
    +     let _ = mixin_key.split_off(32); // 截取前 32 位字符
    +     mixin_key
    + }
    +

    img_key -> 7cd084941338484aae1ad9425b84077csub_key -> 4932caff0ff746eab6f01bf08b70ac45 经过上述操作后得到 mixin_key -> ea1db124af3c7062474693fa704f4ff8

  • 计算签名(即 w_rid

    若下方内容为欲签名的原始请求参数(以 JavaScript Object 为例)

    {
    +     foo: '114',
    +     bar: '514',
    +     zab: 1919810
    +}
    +

    wts 字段的值应为当前以秒为单位的 Unix 时间戳,如 1702204169

    复制一份参数列表,添加 wts 参数,即:

    {
    +     foo: '114',
    +     bar: '514',
    +     zab: 1919810,
    +     wts: 1702204169
    +}
    +

    随后按键名升序排序后编码 URL Query,拼接前面得到的 mixin_key,如 bar=514&foo=114&wts=1702204169&zab=1919810ea1db124af3c7062474693fa704f4ff8,计算其 MD5 即为 w_rid

    需要注意的是:如果参数值含中文或特殊字符等,编码字符字母应当大写 (部分库会编码为小写字母),空格应当编码为 %20(部分库按 application/x-www-form-urlencoded 约定编码为 +)。

    例如:

    {
    +     foo: 'one one four',
    +     bar: '五一四',
    +     baz: 1919810
    +}
    +

    应该被编码为 bar=%E4%BA%94%E4%B8%80%E5%9B%9B&baz=1919810&foo=one%20one%20four

  • 向原始请求参数中添加 w_ridwts 字段

    将上一步得到的 w_rid 以及前面的 wts 追加到原始请求参数编码得到的 URL Query 后即可,目前看来无需对原始请求参数排序。

    如前例最终得到 bar=514&foo=114&zab=1919810&w_rid=8f6f2b5b3d485fe1886cec6a0be8c5d4&wts=1702204169

  • `,3),E=p(`

    Demo

    PythonJavaScriptGolangC#JavaKotlinSwiftC++Rust 语言编写的 Demo 。

    Python

    需要requests依赖

    from functools import reduce
    +from hashlib import md5
    +import urllib.parse
    +import time
    +import requests
    +
    +mixinKeyEncTab = [
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +    33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +    61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +    36, 20, 34, 44, 52
    +]
    +
    +def getMixinKey(orig: str):
    +    '对 imgKey 和 subKey 进行字符顺序打乱编码'
    +    return reduce(lambda s, i: s + orig[i], mixinKeyEncTab, '')[:32]
    +
    +def encWbi(params: dict, img_key: str, sub_key: str):
    +    '为请求参数进行 wbi 签名'
    +    mixin_key = getMixinKey(img_key + sub_key)
    +    curr_time = round(time.time())
    +    params['wts'] = curr_time                                   # 添加 wts 字段
    +    params = dict(sorted(params.items()))                       # 按照 key 重排参数
    +    # 过滤 value 中的 "!'()*" 字符
    +    params = {
    +        k : ''.join(filter(lambda chr: chr not in "!'()*", str(v)))
    +        for k, v 
    +        in params.items()
    +    }
    +    query = urllib.parse.urlencode(params)                      # 序列化参数
    +    wbi_sign = md5((query + mixin_key).encode()).hexdigest()    # 计算 w_rid
    +    params['w_rid'] = wbi_sign
    +    return params
    +
    +def getWbiKeys() -> tuple[str, str]:
    +    '获取最新的 img_key 和 sub_key'
    +    headers = {
    +        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    +        'Referer': 'https://www.bilibili.com/'
    +    }
    +    resp = requests.get('https://api.bilibili.com/x/web-interface/nav', headers=headers)
    +    resp.raise_for_status()
    +    json_content = resp.json()
    +    img_url: str = json_content['data']['wbi_img']['img_url']
    +    sub_url: str = json_content['data']['wbi_img']['sub_url']
    +    img_key = img_url.rsplit('/', 1)[1].split('.')[0]
    +    sub_key = sub_url.rsplit('/', 1)[1].split('.')[0]
    +    return img_key, sub_key
    +
    +img_key, sub_key = getWbiKeys()
    +
    +signed_params = encWbi(
    +    params={
    +        'foo': '114',
    +        'bar': '514',
    +        'baz': 1919810
    +    },
    +    img_key=img_key,
    +    sub_key=sub_key
    +)
    +query = urllib.parse.urlencode(signed_params)
    +print(signed_params)
    +print(query)
    +

    输出内容分别是进行 Wbi 签名的后参数的 key-Value 以及 url query 形式

    {'bar': '514', 'baz': '1919810', 'foo': '114', 'wts': '1702204169', 'w_rid': 'd3cbd2a2316089117134038bf4caf442'}
    +bar=514&baz=1919810&foo=114&wts=1702204169&w_rid=d3cbd2a2316089117134038bf4caf442
    +

    JavaScript

    需要 fetch(浏览器、NodeJS等环境自带)、md5 依赖

    `,9),C=n("div",{class:"language-javascript line-numbers-mode","data-ext":"js"},[n("pre",{class:"language-javascript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(" md5 "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},"'md5'"),s(` + +`),n("span",{class:"token keyword"},"const"),s(" mixinKeyEncTab "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s(` + `),n("span",{class:"token number"},"46"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"47"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"18"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"2"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"53"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"8"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"23"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"32"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"15"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"50"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"10"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"31"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"58"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"45"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"35"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"27"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"43"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"49"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token number"},"33"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"42"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"19"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"29"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"28"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"14"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"39"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"12"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"38"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"41"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"13"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"37"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"48"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"16"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"24"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"55"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"40"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token number"},"61"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"26"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"17"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"60"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"51"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"30"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"22"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"25"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"54"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"21"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"56"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"59"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"6"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"63"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"57"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"62"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"11"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token number"},"36"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"34"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"44"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"52"),s(` +`),n("span",{class:"token punctuation"},"]"),s(` + +`),n("span",{class:"token comment"},"// 对 imgKey 和 subKey 进行字符顺序打乱编码"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token function-variable function"},"getMixinKey"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},"orig"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(" mixinKeyEncTab"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"map"),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},"n"),s(),n("span",{class:"token operator"},"=>"),s(" orig"),n("span",{class:"token punctuation"},"["),s("n"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"join"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"''"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"slice"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"32"),n("span",{class:"token punctuation"},")"),s(` + +`),n("span",{class:"token comment"},"// 为请求参数进行 wbi 签名"),s(` +`),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"encWbi"),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},[s("params"),n("span",{class:"token punctuation"},","),s(" img_key"),n("span",{class:"token punctuation"},","),s(" sub_key")]),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" mixin_key "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"getMixinKey"),n("span",{class:"token punctuation"},"("),s("img_key "),n("span",{class:"token operator"},"+"),s(" sub_key"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(` + curr_time `),n("span",{class:"token operator"},"="),s(" Math"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"round"),n("span",{class:"token punctuation"},"("),s("Date"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"now"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"/"),s(),n("span",{class:"token number"},"1000"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(` + chr_filter `),n("span",{class:"token operator"},"="),s(),n("span",{class:"token regex"},[n("span",{class:"token regex-delimiter"},"/"),n("span",{class:"token regex-source language-regex"},"[!'()*]"),n("span",{class:"token regex-delimiter"},"/"),n("span",{class:"token regex-flags"},"g")]),s(` + + Object`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"assign"),n("span",{class:"token punctuation"},"("),s("params"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token literal-property property"},"wts"),n("span",{class:"token operator"},":"),s(" curr_time "),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token comment"},"// 添加 wts 字段"),s(` + `),n("span",{class:"token comment"},"// 按照 key 重排参数"),s(` + `),n("span",{class:"token keyword"},"const"),s(" query "),n("span",{class:"token operator"},"="),s(` Object + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"keys"),n("span",{class:"token punctuation"},"("),s("params"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"sort"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"map"),n("span",{class:"token punctuation"},"("),n("span",{class:"token parameter"},"key"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token comment"},`// 过滤 value 中的 "!'()*" 字符`),s(` + `),n("span",{class:"token keyword"},"const"),s(" value "),n("span",{class:"token operator"},"="),s(" params"),n("span",{class:"token punctuation"},"["),s("key"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"toString"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"replace"),n("span",{class:"token punctuation"},"("),s("chr_filter"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},"''"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token template-string"},[n("span",{class:"token template-punctuation string"},"`"),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token function"},"encodeURIComponent"),n("span",{class:"token punctuation"},"("),s("key"),n("span",{class:"token punctuation"},")"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token string"},"="),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token function"},"encodeURIComponent"),n("span",{class:"token punctuation"},"("),s("value"),n("span",{class:"token punctuation"},")"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token template-punctuation string"},"`")]),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"join"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'&'"),n("span",{class:"token punctuation"},")"),s(` + + `),n("span",{class:"token keyword"},"const"),s(" wbi_sign "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"md5"),n("span",{class:"token punctuation"},"("),s("query "),n("span",{class:"token operator"},"+"),s(" mixin_key"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token comment"},"// 计算 w_rid"),s(` + + `),n("span",{class:"token keyword"},"return"),s(" query "),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token string"},"'&w_rid='"),s(),n("span",{class:"token operator"},"+"),s(` wbi_sign +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token comment"},"// 获取最新的 img_key 和 sub_key"),s(` +`),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"getWbiKeys"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" res "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'https://api.bilibili.com/x/web-interface/nav'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token literal-property property"},"headers"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token comment"},"// SESSDATA 字段"),s(` + `),n("span",{class:"token literal-property property"},"Cookie"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'SESSDATA=xxxxxx'"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token string-property property"},"'User-Agent'"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token literal-property property"},"Referer"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'https://www.bilibili.com/'"),n("span",{class:"token comment"},"//对于直接浏览器调用可能不适用"),s(` + `),n("span",{class:"token punctuation"},"}"),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token literal-property property"},"data"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token literal-property property"},"wbi_img"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(" img_url"),n("span",{class:"token punctuation"},","),s(" sub_url "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" res"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"json"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` + + `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token literal-property property"},"img_key"),n("span",{class:"token operator"},":"),s(" img_url"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"slice"),n("span",{class:"token punctuation"},"("),s(` + img_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'/'"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},","),s(` + img_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'.'"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token literal-property property"},"sub_key"),n("span",{class:"token operator"},":"),s(" sub_url"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"slice"),n("span",{class:"token punctuation"},"("),s(` + sub_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'/'"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},","),s(` + sub_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'.'"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"}"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"main"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" web_keys "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"getWbiKeys"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token keyword"},"const"),s(" params "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token literal-property property"},"foo"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'114'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token literal-property property"},"bar"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'514'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token literal-property property"},"baz"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"1919810"),s(),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` + img_key `),n("span",{class:"token operator"},"="),s(" web_keys"),n("span",{class:"token punctuation"},"."),s("img_key"),n("span",{class:"token punctuation"},","),s(` + sub_key `),n("span",{class:"token operator"},"="),s(" web_keys"),n("span",{class:"token punctuation"},"."),s(`sub_key + `),n("span",{class:"token keyword"},"const"),s(" query "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"encWbi"),n("span",{class:"token punctuation"},"("),s("params"),n("span",{class:"token punctuation"},","),s(" img_key"),n("span",{class:"token punctuation"},","),s(" sub_key"),n("span",{class:"token punctuation"},")"),s(` + console`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("query"),n("span",{class:"token punctuation"},")"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token function"},"main"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),A=n("div",{class:"language-typescript line-numbers-mode","data-ext":"ts"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(" md5 "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},"'md5'"),s(` + +`),n("span",{class:"token keyword"},"const"),s(" mixinKeyEncTab "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),s(` + `),n("span",{class:"token number"},"46"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"47"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"18"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"2"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"53"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"8"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"23"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"32"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"15"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"50"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"10"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"31"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"58"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"45"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"35"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"27"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"43"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"49"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token number"},"33"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"9"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"42"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"19"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"29"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"28"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"14"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"39"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"12"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"38"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"41"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"13"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"37"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"48"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"7"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"16"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"24"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"55"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"40"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token number"},"61"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"26"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"17"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"60"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"51"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"30"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"22"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"25"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"54"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"21"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"56"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"59"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"6"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"63"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"57"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"62"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"11"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token number"},"36"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"34"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"44"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"52"),s(` +`),n("span",{class:"token punctuation"},"]"),s(` + +`),n("span",{class:"token comment"},"// 对 imgKey 和 subKey 进行字符顺序打乱编码"),s(` +`),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token function-variable function"},"getMixinKey"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"("),s("orig"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(` + mixinKeyEncTab + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"map"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),s("n"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(" orig"),n("span",{class:"token punctuation"},"["),s("n"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"join"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"slice"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token number"},"32"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + +`),n("span",{class:"token comment"},"// 为请求参数进行 wbi 签名"),s(` +`),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"encWbi"),n("span",{class:"token punctuation"},"("),s(` + params`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token punctuation"},"["),s("key"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),s(),n("span",{class:"token operator"},"|"),s(),n("span",{class:"token builtin"},"number"),s(),n("span",{class:"token operator"},"|"),s(" object "),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` + img_key`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),n("span",{class:"token punctuation"},","),s(` + sub_key`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),s(` +`),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" mixin_key "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"getMixinKey"),n("span",{class:"token punctuation"},"("),s("img_key "),n("span",{class:"token operator"},"+"),s(" sub_key"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(` + curr_time `),n("span",{class:"token operator"},"="),s(" Math"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"round"),n("span",{class:"token punctuation"},"("),s("Date"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"now"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"/"),s(),n("span",{class:"token number"},"1000"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(` + chr_filter `),n("span",{class:"token operator"},"="),s(),n("span",{class:"token regex"},[n("span",{class:"token regex-delimiter"},"/"),n("span",{class:"token regex-source language-regex"},"[!'()*]"),n("span",{class:"token regex-delimiter"},"/"),n("span",{class:"token regex-flags"},"g")]),n("span",{class:"token punctuation"},";"),s(` + + Object`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"assign"),n("span",{class:"token punctuation"},"("),s("params"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),s(" wts"),n("span",{class:"token operator"},":"),s(" curr_time "),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(),n("span",{class:"token comment"},"// 添加 wts 字段"),s(` + `),n("span",{class:"token comment"},"// 按照 key 重排参数"),s(` + `),n("span",{class:"token keyword"},"const"),s(" query "),n("span",{class:"token operator"},"="),s(" Object"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"keys"),n("span",{class:"token punctuation"},"("),s("params"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"sort"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"map"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),s("key"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token comment"},`// 过滤 value 中的 "!'()*" 字符`),s(` + `),n("span",{class:"token keyword"},"const"),s(" value "),n("span",{class:"token operator"},"="),s(" params"),n("span",{class:"token punctuation"},"["),s("key"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"toString"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"replace"),n("span",{class:"token punctuation"},"("),s("chr_filter"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token template-string"},[n("span",{class:"token template-punctuation string"},"`"),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token function"},"encodeURIComponent"),n("span",{class:"token punctuation"},"("),s("key"),n("span",{class:"token punctuation"},")"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token string"},"="),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token function"},"encodeURIComponent"),n("span",{class:"token punctuation"},"("),s("value"),n("span",{class:"token punctuation"},")"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token template-punctuation string"},"`")]),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"join"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"&"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` + + `),n("span",{class:"token keyword"},"const"),s(" wbi_sign "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"md5"),n("span",{class:"token punctuation"},"("),s("query "),n("span",{class:"token operator"},"+"),s(" mixin_key"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(),n("span",{class:"token comment"},"// 计算 w_rid"),s(` + + `),n("span",{class:"token keyword"},"return"),s(" query "),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token string"},'"&w_rid="'),s(),n("span",{class:"token operator"},"+"),s(" wbi_sign"),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` +`),n("span",{class:"token comment"},"// 获取最新的 img_key 和 sub_key"),s(` +`),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"getWbiKeys"),n("span",{class:"token punctuation"},"("),n("span",{class:"token constant"},"SESSDATA"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" res "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'https://api.bilibili.com/x/web-interface/nav'"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),s(` + headers`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token comment"},"// SESSDATA 字段"),s(` + Cookie`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token template-string"},[n("span",{class:"token template-punctuation string"},"`"),n("span",{class:"token string"},"SESSDATA="),n("span",{class:"token interpolation"},[n("span",{class:"token interpolation-punctuation punctuation"},"${"),n("span",{class:"token constant"},"SESSDATA"),n("span",{class:"token interpolation-punctuation punctuation"},"}")]),n("span",{class:"token template-punctuation string"},"`")]),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token string-property property"},"'User-Agent'"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'"),n("span",{class:"token punctuation"},","),s(` + Referer`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'https://www.bilibili.com/'"),n("span",{class:"token comment"},"//对于直接浏览器调用可能不适用"),s(` + `),n("span",{class:"token punctuation"},"}"),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token punctuation"},"{"),s(` + data`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(` + wbi_img`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(" img_url"),n("span",{class:"token punctuation"},","),s(" sub_url "),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` + `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"await"),s(" res"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"json"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token punctuation"},"{"),s(` + data`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(` + wbi_img`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token punctuation"},"{"),s(" img_url"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),n("span",{class:"token punctuation"},";"),s(" sub_url"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"string"),s(),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},";"),s(` + + `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"{"),s(` + img_key`),n("span",{class:"token operator"},":"),s(" img_url"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"slice"),n("span",{class:"token punctuation"},"("),s(` + img_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'/'"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},","),s(` + img_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'.'"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),s(` + sub_key`),n("span",{class:"token operator"},":"),s(" sub_url"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"slice"),n("span",{class:"token punctuation"},"("),s(` + sub_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'/'"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"+"),s(),n("span",{class:"token number"},"1"),n("span",{class:"token punctuation"},","),s(` + sub_url`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"lastIndexOf"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'.'"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token punctuation"},"}"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token keyword"},"function"),s(),n("span",{class:"token function"},"main"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` + `),n("span",{class:"token keyword"},"const"),s(" web_keys "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"getWbiKeys"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"SESSDATA的值"'),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token keyword"},"const"),s(" params "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"{"),s(" foo"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'114'"),n("span",{class:"token punctuation"},","),s(" bar"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token string"},"'514'"),n("span",{class:"token punctuation"},","),s(" baz"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"1919810"),s(),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` + img_key `),n("span",{class:"token operator"},"="),s(" web_keys"),n("span",{class:"token punctuation"},"."),s("img_key"),n("span",{class:"token punctuation"},","),s(` + sub_key `),n("span",{class:"token operator"},"="),s(" web_keys"),n("span",{class:"token punctuation"},"."),s(`sub_key + `),n("span",{class:"token keyword"},"const"),s(" query "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"encWbi"),n("span",{class:"token punctuation"},"("),s("params"),n("span",{class:"token punctuation"},","),s(" img_key"),n("span",{class:"token punctuation"},","),s(" sub_key"),n("span",{class:"token punctuation"},")"),s(` + `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("query"),n("span",{class:"token punctuation"},")"),s(` +`),n("span",{class:"token punctuation"},"}"),s(` + +`),n("span",{class:"token function"},"main"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),$=p(`

    输出内容为进行 Wbi 签名的后参数的 url query 形式

    bar=514&baz=1919810&foo=114&wts=1684805578&w_rid=bb97e15f28edf445a0e4420d36f0157e
    +

    Golang

    需要 github.com/tidwall/gjson 作为依赖

    package main
    +
    +import (
    +	"crypto/md5"
    +	"encoding/hex"
    +	"fmt"
    +	"io"
    +	"net/http"
    +	"net/url"
    +	"sort"
    +	"strconv"
    +	"strings"
    +	"sync"
    +	"time"
    +
    +	"github.com/tidwall/gjson"
    +)
    +
    +var (
    +	mixinKeyEncTab = []int{
    +		46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +		33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +		61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +		36, 20, 34, 44, 52,
    +	}
    +	cache          sync.Map
    +	lastUpdateTime time.Time
    +)
    +
    +func main() {
    +	urlStr := "https://api.bilibili.com/x/space/wbi/acc/info?mid=1850091"
    +	newUrlStr, err := signAndGenerateURL(urlStr)
    +	if err != nil {
    +		fmt.Printf("Error: %s", err)
    +		return
    +	}
    +	req, err := http.NewRequest("GET", newUrlStr, nil)
    +	if err != nil {
    +		fmt.Printf("Error: %s", err)
    +		return
    +	}
    +	req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
    +	req.Header.Set("Referer", "https://www.bilibili.com/")
    +	response, err := http.DefaultClient.Do(req)
    +	if err != nil {
    +		fmt.Printf("Request failed: %s", err)
    +		return
    +	}
    +	defer response.Body.Close()
    +	body, err := io.ReadAll(response.Body)
    +	if err != nil {
    +		fmt.Printf("Failed to read response: %s", err)
    +		return
    +	}
    +	fmt.Println(string(body))
    +}
    +
    +func signAndGenerateURL(urlStr string) (string, error) {
    +	urlObj, err := url.Parse(urlStr)
    +	if err != nil {
    +		return "", err
    +	}
    +	imgKey, subKey := getWbiKeysCached()
    +	query := urlObj.Query()
    +	params := map[string]string{}
    +	for k, v := range query {
    +		params[k] = v[0]
    +	}
    +	newParams := encWbi(params, imgKey, subKey)
    +	for k, v := range newParams {
    +		query.Set(k, v)
    +	}
    +	urlObj.RawQuery = query.Encode()
    +	newUrlStr := urlObj.String()
    +	return newUrlStr, nil
    +}
    +
    +func encWbi(params map[string]string, imgKey, subKey string) map[string]string {
    +	mixinKey := getMixinKey(imgKey + subKey)
    +	currTime := strconv.FormatInt(time.Now().Unix(), 10)
    +	params["wts"] = currTime
    +
    +	// Sort keys
    +	keys := make([]string, 0, len(params))
    +	for k := range params {
    +		keys = append(keys, k)
    +	}
    +	sort.Strings(keys)
    +
    +	// Remove unwanted characters
    +	for k, v := range params {
    +		v = sanitizeString(v)
    +		params[k] = v
    +	}
    +
    +	// Build URL parameters
    +	query := url.Values{}
    +	for _, k := range keys {
    +		query.Set(k, params[k])
    +	}
    +	queryStr := query.Encode()
    +
    +	// Calculate w_rid
    +	hash := md5.Sum([]byte(queryStr + mixinKey))
    +	params["w_rid"] = hex.EncodeToString(hash[:])
    +	return params
    +}
    +
    +func getMixinKey(orig string) string {
    +	var str strings.Builder
    +	for _, v := range mixinKeyEncTab {
    +		if v < len(orig) {
    +			str.WriteByte(orig[v])
    +		}
    +	}
    +	return str.String()[:32]
    +}
    +
    +func sanitizeString(s string) string {
    +	unwantedChars := []string{"!", "'", "(", ")", "*"}
    +	for _, char := range unwantedChars {
    +		s = strings.ReplaceAll(s, char, "")
    +	}
    +	return s
    +}
    +
    +func updateCache() {
    +	if time.Since(lastUpdateTime).Minutes() < 10 {
    +		return
    +	}
    +	imgKey, subKey := getWbiKeys()
    +	cache.Store("imgKey", imgKey)
    +	cache.Store("subKey", subKey)
    +	lastUpdateTime = time.Now()
    +}
    +
    +func getWbiKeysCached() (string, string) {
    +	updateCache()
    +	imgKeyI, _ := cache.Load("imgKey")
    +	subKeyI, _ := cache.Load("subKey")
    +	return imgKeyI.(string), subKeyI.(string)
    +}
    +
    +func getWbiKeys() (string, string) {
    +	client := &http.Client{}
    +	req, err := http.NewRequest("GET", "https://api.bilibili.com/x/web-interface/nav", nil)
    +	if err != nil {
    +		fmt.Printf("Error creating request: %s", err)
    +		return "", ""
    +	}
    +	req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
    +	req.Header.Set("Referer", "https://www.bilibili.com/")
    +	resp, err := client.Do(req)
    +	if err != nil {
    +		fmt.Printf("Error sending request: %s", err)
    +		return "", ""
    +	}
    +	defer resp.Body.Close()
    +	body, err := io.ReadAll(resp.Body)
    +	if err != nil {
    +		fmt.Printf("Error reading response: %s", err)
    +		return "", ""
    +	}
    +	json := string(body)
    +	imgURL := gjson.Get(json, "data.wbi_img.img_url").String()
    +	subURL := gjson.Get(json, "data.wbi_img.sub_url").String()
    +	imgKey := strings.Split(strings.Split(imgURL, "/")[len(strings.Split(imgURL, "/"))-1], ".")[0]
    +	subKey := strings.Split(strings.Split(subURL, "/")[len(strings.Split(subURL, "/"))-1], ".")[0]
    +	return imgKey, subKey
    +}
    +

    CSharp

    无需依赖外部库

    using System.Security.Cryptography;
    +using System.Text;
    +using System.Text.Json.Nodes;
    +
    +class Program
    +{
    +    private static HttpClient _httpClient = new();
    +
    +    private static readonly int[] MixinKeyEncTab =
    +    {
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39,
    +        12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63,
    +        57, 62, 11, 36, 20, 34, 44, 52
    +    };
    +
    +    //对 imgKey 和 subKey 进行字符顺序打乱编码
    +    private static string GetMixinKey(string orig)
    +    {
    +        return MixinKeyEncTab.Aggregate("", (s, i) => s + orig[i])[..32];
    +    }
    +
    +    private static Dictionary<string, string> EncWbi(Dictionary<string, string> parameters, string imgKey,
    +        string subKey)
    +    {
    +        string mixinKey = GetMixinKey(imgKey + subKey);
    +        string currTime = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
    +        //添加 wts 字段
    +        parameters["wts"] = currTime;
    +        // 按照 key 重排参数
    +        parameters = parameters.OrderBy(p => p.Key).ToDictionary(p => p.Key, p => p.Value);
    +        //过滤 value 中的 "!'()*" 字符
    +        parameters = parameters.ToDictionary(
    +            kvp => kvp.Key,
    +            kvp => new string(kvp.Value.Where(chr => !"!'()*".Contains(chr)).ToArray())
    +        );
    +        // 序列化参数
    +        string query = new FormUrlEncodedContent(parameters).ReadAsStringAsync().Result;
    +        //计算 w_rid
    +        using MD5 md5 = MD5.Create();
    +        byte[] hashBytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query + mixinKey));
    +        string wbiSign = BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
    +        parameters["w_rid"] = wbiSign;
    +
    +        return parameters;
    +    }
    +
    +    // 获取最新的 img_key 和 sub_key
    +      private static async Task<(string, string)> GetWbiKeys()
    +      {
    +          var httpClient = new HttpClient();
    +          httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36");
    +          httpClient.DefaultRequestHeaders.Referrer = new Uri("https://www.bilibili.com/");
    +      
    +          HttpResponseMessage responseMessage = await httpClient.SendAsync(new HttpRequestMessage
    +          {
    +              Method = HttpMethod.Get,
    +              RequestUri = new Uri("https://api.bilibili.com/x/web-interface/nav"),
    +          });
    +      
    +          JsonNode response = JsonNode.Parse(await responseMessage.Content.ReadAsStringAsync())!;
    +      
    +          string imgUrl = (string)response["data"]!["wbi_img"]!["img_url"]!;
    +          imgUrl = imgUrl.Split("/")[^1].Split(".")[0];
    +      
    +          string subUrl = (string)response["data"]!["wbi_img"]!["sub_url"]!;
    +          subUrl = subUrl.Split("/")[^1].Split(".")[0];
    +          return (imgUrl, subUrl);
    +      }
    +
    +
    +    public static async Task Main()
    +    {
    +        var (imgKey, subKey) = await GetWbiKeys();
    +
    +        Dictionary<string, string> signedParams = EncWbi(
    +            parameters: new Dictionary<string, string>
    +            {
    +                { "foo", "114" },
    +                { "bar", "514" },
    +                { "baz", "1919810" }
    +            },
    +            imgKey: imgKey,
    +            subKey: subKey
    +        );
    +
    +        string query = await new FormUrlEncodedContent(signedParams).ReadAsStringAsync();
    +
    +        Console.WriteLine(query);
    +    }
    +}
    +

    输出内容为进行 Wbi 签名的后参数的 url query 形式

    bar=514&baz=1919810&foo=114&wts=1687541921&w_rid=26e82b1b9b3a11dbb1807a9228a40d3b
    +

    Java

    import java.net.URLEncoder;
    +import java.nio.charset.StandardCharsets;
    +import java.security.MessageDigest;
    +import java.security.NoSuchAlgorithmException;
    +import java.util.*;
    +import java.util.stream.Collectors;
    +
    +public class WbiTest {
    +    private static final int[] mixinKeyEncTab = new int[]{
    +            46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +            33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +            61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +            36, 20, 34, 44, 52
    +    };
    +
    +    private static final char[] hexDigits = "0123456789abcdef".toCharArray();
    +
    +    public static String md5(String input) {
    +        try {
    +            MessageDigest md = MessageDigest.getInstance("MD5");
    +            byte[] messageDigest = md.digest(input.getBytes(StandardCharsets.UTF_8));
    +            char[] result = new char[messageDigest.length * 2];
    +            for (int i = 0; i < messageDigest.length; i++) {
    +                result[i * 2] = hexDigits[(messageDigest[i] >> 4) & 0xF];
    +                result[i * 2 + 1] = hexDigits[messageDigest[i] & 0xF];
    +            }
    +            return new String(result);
    +        } catch (NoSuchAlgorithmException e) {
    +            return null;
    +        }
    +    }
    +
    +    public static String getMixinKey(String imgKey, String subKey) {
    +        String s = imgKey + subKey;
    +        StringBuilder key = new StringBuilder();
    +        for (int i = 0; i < 32; i++)
    +            key.append(s.charAt(mixinKeyEncTab[i]));
    +        return key.toString();
    +    }
    +
    +    public static String encodeURIComponent(Object o) {
    +        return URLEncoder.encode(o.toString(), StandardCharsets.UTF_8).replace("+", "%20");
    +    }
    +
    +    public static void main(String[] args) {
    +        String imgKey = "653657f524a547ac981ded72ea172057";
    +        String subKey = "6e4909c702f846728e64f6007736a338";
    +        String mixinKey = getMixinKey(imgKey, subKey);
    +        System.out.println(mixinKey); // 72136226c6a73669787ee4fd02a74c27
    +
    +        // 用TreeMap自动排序
    +        TreeMap<String, Object> map = new TreeMap<>();
    +        map.put("foo", "one one four");
    +        map.put("bar", "五一四");
    +        map.put("baz", 1919810);
    +        map.put("wts", System.currentTimeMillis() / 1000);
    +        String param = map.entrySet().stream()
    +                .map(it -> String.format("%s=%s", it.getKey(), encodeURIComponent(it.getValue())))
    +                .collect(Collectors.joining("&"));
    +        String s = param + mixinKey;
    +
    +        String wbiSign = md5(s);
    +        System.out.println(wbiSign);
    +        String finalParam = param + "&w_rid=" + wbiSign;
    +        System.out.println(finalParam);
    +    }
    +}
    +

    Kotlin

    说明: 为了便于使用和缓存, 重新编写为实体类形式, 并拆分了多个文件. 使用官方的JSON序列化. (可以根据需要换成其他的)

    WbiParams.kt

    import kotlinx.serialization.Serializable
    +import kotlinx.serialization.json.JsonElement
    +import kotlinx.serialization.json.JsonObject
    +import kotlinx.serialization.json.jsonPrimitive
    +
    +private fun JsonElement?.get(): String {
    +    check(this != null) { "No contents found" }
    +    return this.jsonPrimitive.content.split('/').last().removeSuffix(".png")
    +}
    +
    +private val mixinKeyEncTab = intArrayOf(
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +    33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +    61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +    36, 20, 34, 44, 52
    +)
    +
    +@Serializable
    +data class WbiParams(
    +    val imgKey: String,
    +    val subKey: String,
    +) {
    +    // 此处整合了切分参数(直接传入{img_url:string, sub_url:string}即可), 不需要可以删掉
    +    constructor(wbiImg: JsonObject) : this(wbiImg["img_url"].get(), wbiImg["sub_url"].get())
    +
    +    private val mixinKey: String
    +        get() = (imgKey + subKey).let { s ->
    +            buildString {
    +                repeat(32) {
    +                    append(s[mixinKeyEncTab[it]])
    +                }
    +            }
    +        }
    +
    +    // 创建对象(GET获取或者读缓存, 比如Redis)之后, 直接调用此函数处理
    +    fun enc(params: Map<String, Any?>): String {
    +        val sorted = params.filterValues { it != null }.toSortedMap()
    +        return buildString {
    +            append(sorted.toQueryString())
    +            val wts = System.currentTimeMillis() / 1000
    +            sorted["wts"] = wts
    +            append("&wts=")
    +            append(wts)
    +            append("&w_rid=")
    +            append((sorted.toQueryString() + mixinKey).toMD5())
    +        }
    +    }
    +}
    +

    Extensions.kt

    import java.security.MessageDigest
    +
    +private val hexDigits = "0123456789abcdef".toCharArray()
    +
    +fun ByteArray.toHexString() = buildString(this.size shl 1) {
    +    this@toHexString.forEach { byte ->
    +        append(hexDigits[byte.toInt() ushr 4 and 15])
    +        append(hexDigits[byte.toInt() and 15])
    +    }
    +}
    +
    +fun String.toMD5(): String {
    +    val md = MessageDigest.getInstance("MD5")
    +    val digest = md.digest(this.toByteArray())
    +    return digest.toHexString()
    +}
    +
    +fun Map<String, Any?>.toQueryString() = this.filterValues { it != null }.entries.joinToString("&") { (k, v) ->
    +    "\${k.encodeURIComponent()}=\${v!!.encodeURIComponent()}"
    +}
    +

    获取和使用案例略

    PHP

    `,20),j={href:"https://github.com/SocialSisterYi/bilibili-API-collect/issues/813",target:"_blank",rel:"noopener noreferrer"},R=p(`
    <?php
    +/**
    + * B站 Wbi 测试
    + * @author Prk
    + */
    +
    +
    +class Bilibili {
    +
    +    private $mixinKeyEncTab = [
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +        33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +        61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +        36, 20, 34, 44, 52
    +    ];
    +
    +    function __construct() {
    +    }
    +
    +    public function reQuery(array $query) {
    +        $wbi_keys = $this->getWbiKeys();
    +        return $this->encWbi($query, $wbi_keys['img_key'], $wbi_keys['sub_key']);
    +    }
    +
    +    private function getMixinKey($orig) {
    +        $t = '';
    +        foreach ($this->mixinKeyEncTab as $n) $t .= $orig[$n];
    +        return substr($t, 0, 32);
    +    }
    +
    +    private function encWbi($params, $img_key, $sub_key) {
    +        $mixin_key = $this->getMixinKey($img_key . $sub_key);
    +        $curr_time = time();
    +        $chr_filter = "/[!'()*]/";
    +
    +        $query = [];
    +        $params['wts'] = $curr_time;
    +
    +        ksort($params);
    +
    +        foreach ($params as $key => $value) {
    +            $value = preg_replace($chr_filter, '', $value);
    +            $query[] = urlencode($key) . '=' . urlencode($value);
    +        }
    +
    +        $query = implode('&', $query);
    +        $wbi_sign = md5($query . $mixin_key);
    +
    +        return $query . '&w_rid=' . $wbi_sign;
    +    }
    +
    +    private function getWbiKeys() {
    +        $resp = @json_decode(
    +            $this->curl_get(
    +                'https://api.bilibili.com/x/web-interface/nav',
    +                null,
    +                'https://www.bilibili.com/'
    +            ), true
    +        );
    +
    +        if (!$resp) throw new Exception('请求失败');
    +
    +        $img_url = $resp['data']['wbi_img']['img_url'];
    +        $sub_url = $resp['data']['wbi_img']['sub_url'];
    +
    +        return [
    +            'img_key' => substr(basename($img_url), 0, strpos(basename($img_url), '.')),
    +            'sub_key' => substr(basename($sub_url), 0, strpos(basename($sub_url), '.'))
    +        ];
    +    }
    +
    +    private function curl_get($url, $cookies = null, $referer = 'https://www.bilibili.com/', $ua = null, $proxy = null, $header = []) {
    +        $ch = curl_init();
    +        $header[] = "Accept: */*";
    +        $header[] = "Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7";
    +        $header[] = "Connection: close";
    +        $header[]="Referer:https://www.bilibili.com/";
    +        $header[] = "Cache-Control: max-age=0";
    +        curl_setopt_array($ch, [
    +            CURLOPT_HTTPGET         =>  1,
    +            CURLOPT_CUSTOMREQUEST   =>  'GET',
    +            CURLOPT_RETURNTRANSFER  =>  1,
    +            CURLOPT_HTTPHEADER      =>  $header,
    +            CURLOPT_ENCODING        =>  '',
    +            CURLOPT_URL             =>  $url,
    +            CURLOPT_USERAGENT       =>  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.39',
    +            CURLOPT_TIMEOUT         =>  15
    +        ]);
    +
    +        if ($cookies) curl_setopt(
    +            $ch,
    +            CURLOPT_COOKIE,
    +            $cookies
    +        );
    +
    +        if ($referer) curl_setopt_array($ch, [
    +            CURLOPT_AUTOREFERER =>  $referer,
    +            CURLOPT_REFERER     =>  $referer
    +        ]);
    +
    +        $content = curl_exec($ch);
    +        curl_close($ch);
    +        return $content;
    +    }
    +}
    +
    +$c = new Bilibili();
    +echo $c->reQuery(['foo' => '114', 'bar' => '514', 'baz' => 1919810]);
    +// bar=514&baz=1919810&foo=114&wts=1700384803&w_rid=4614cb98d60a43e50c3a3033fe3d116b
    +

    Rust

    需要 serde、serde_json、reqwest、tokio 以及 md5

    use reqwest::header::USER_AGENT;
    +use serde::Deserialize;
    +use std::time::{SystemTime, UNIX_EPOCH};
    +
    +const MIXIN_KEY_ENC_TAB: [usize; 64] = [
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29,
    +    28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25,
    +    54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52,
    +];
    +
    +#[derive(Deserialize)]
    +struct WbiImg {
    +    img_url: String,
    +    sub_url: String,
    +}
    +
    +#[derive(Deserialize)]
    +struct Data {
    +    wbi_img: WbiImg,
    +}
    +
    +#[derive(Deserialize)]
    +struct ResWbi {
    +    data: Data,
    +}
    +
    +// 对 imgKey 和 subKey 进行字符顺序打乱编码
    +fn get_mixin_key(orig: &[u8]) -> String {
    +    MIXIN_KEY_ENC_TAB
    +        .iter()
    +        .take(32)
    +        .map(|&i| orig[i] as char)
    +        .collect::<String>()
    +}
    +
    +fn get_url_encoded(s: &str) -> String {
    +    s.chars()
    +        .filter_map(|c| match c.is_ascii_alphanumeric() || "-_.~".contains(c) {
    +            true => Some(c.to_string()),
    +            false => {
    +                // 过滤 value 中的 "!'()*" 字符
    +                if "!'()*".contains(c) {
    +                    return None;
    +                }
    +                let encoded = c
    +                    .encode_utf8(&mut [0; 4])
    +                    .bytes()
    +                    .fold("".to_string(), |acc, b| acc + &format!("%{:02X}", b));
    +                Some(encoded)
    +            }
    +        })
    +        .collect::<String>()
    +}
    +
    +// 为请求参数进行 wbi 签名
    +fn encode_wbi(params: Vec<(&str, String)>, (img_key, sub_key): (String, String)) -> String {
    +    let cur_time = match SystemTime::now().duration_since(UNIX_EPOCH) {
    +        Ok(t) => t.as_secs(),
    +        Err(_) => panic!("SystemTime before UNIX EPOCH!"),
    +    };
    +    _encode_wbi(params, (img_key, sub_key), cur_time)
    +}
    +
    +fn _encode_wbi(
    +    mut params: Vec<(&str, String)>,
    +    (img_key, sub_key): (String, String),
    +    timestamp: u64,
    +) -> String {
    +    let mixin_key = get_mixin_key((img_key + &sub_key).as_bytes());
    +    // 添加当前时间戳
    +    params.push(("wts", timestamp.to_string()));
    +    // 重新排序
    +    params.sort_by(|a, b| a.0.cmp(b.0));
    +    // 拼接参数
    +    let query = params
    +        .iter()
    +        .map(|(k, v)| format!("{}={}", get_url_encoded(k), get_url_encoded(v)))
    +        .collect::<Vec<_>>()
    +        .join("&");
    +    // 计算签名
    +    let web_sign = format!("{:?}", md5::compute(query.clone() + &mixin_key));
    +    // 返回最终的 query
    +    query + &format!("&w_rid={}", web_sign)
    +}
    +
    +async fn get_wbi_keys() -> Result<(String, String), reqwest::Error> {
    +    let client = reqwest::Client::new();
    +    let ResWbi { data:Data{wbi_img} } = client
    +    .get("https://api.bilibili.com/x/web-interface/nav")
    +    .header(USER_AGENT,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
    +    .header("Referer","https://www.bilibili.com/")
    +     // SESSDATA=xxxxx
    +    .header("Cookie", "SESSDATA=xxxxx")
    +    .send()
    +    .await?
    +    .json::<ResWbi>()
    +    .await?;
    +    Ok((
    +        take_filename(wbi_img.img_url).unwrap(),
    +        take_filename(wbi_img.sub_url).unwrap(),
    +    ))
    +}
    +
    +fn take_filename(url: String) -> Option<String> {
    +    url.rsplit_once('/')
    +        .and_then(|(_, s)| s.rsplit_once('.'))
    +        .map(|(s, _)| s.to_string())
    +}
    +
    +#[tokio::main]
    +async fn main() {
    +    let keys = get_wbi_keys().await.unwrap();
    +    let params = vec![
    +        ("foo", String::from("114")),
    +        ("bar", String::from("514")),
    +        ("baz", String::from("1919810")),
    +    ];
    +    let query = encode_wbi(params, keys);
    +    println!("{}", query);
    +}
    +
    +// 取自文档描述的测试用例
    +#[cfg(test)]
    +mod tests {
    +    use super::*;
    +
    +    #[test]
    +    fn test_get_filename() {
    +        assert_eq!(
    +            take_filename(
    +                "https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png".to_string()
    +            ),
    +            Some("7cd084941338484aae1ad9425b84077c".to_string())
    +        );
    +    }
    +
    +    #[test]
    +    fn test_get_mixin_key() {
    +        let concat_key =
    +            "7cd084941338484aae1ad9425b84077c".to_string() + "4932caff0ff746eab6f01bf08b70ac45";
    +        assert_eq!(
    +            get_mixin_key(concat_key.as_bytes()),
    +            "ea1db124af3c7062474693fa704f4ff8"
    +        );
    +    }
    +
    +    #[test]
    +    fn test_encode_wbi() {
    +        let params = vec![
    +            ("foo", String::from("114")),
    +            ("bar", String::from("514")),
    +            ("zab", String::from("1919810")),
    +        ];
    +        assert_eq!(
    +            _encode_wbi(
    +                params,
    +                (
    +                    "7cd084941338484aae1ad9425b84077c".to_string(),
    +                    "4932caff0ff746eab6f01bf08b70ac45".to_string()
    +                ),
    +                1702204169
    +            ),
    +            "bar=514&foo=114&wts=1702204169&zab=1919810&w_rid=8f6f2b5b3d485fe1886cec6a0be8c5d4"
    +                .to_string()
    +        )
    +    }
    +}
    +

    Swift

    `,5),W={href:"https://github.com/Alamofire/Alamofire",target:"_blank",rel:"noopener noreferrer"},M={href:"https://github.com/SwiftyJSON/SwiftyJSON",target:"_blank",rel:"noopener noreferrer"},P=p(`
    import Foundation
    +import CommonCrypto
    +import Alamofire
    +import SwiftyJSON
    +
    +func biliWbiSign(param: String, completion: @escaping (String?) -> Void) {
    +    func getMixinKey(orig: String) -> String {
    +        return String(mixinKeyEncTab.map { orig[orig.index(orig.startIndex, offsetBy: $0)] }.prefix(32))
    +    }
    +    
    +    func encWbi(params: [String: Any], imgKey: String, subKey: String) -> [String: Any] {
    +        var params = params
    +        let mixinKey = getMixinKey(orig: imgKey + subKey)
    +        let currTime = round(Date().timeIntervalSince1970)
    +        params["wts"] = currTime
    +        params = params.sorted { $0.key < $1.key }.reduce(into: [:]) { $0[$1.key] = $1.value }
    +        params = params.mapValues { String(describing: $0).filter { !"!'()*".contains($0) } }
    +        let query = params.map { "\\($0.key)=\\($0.value)" }.joined(separator: "&")
    +        let wbiSign = calculateMD5(string: query + mixinKey)
    +        params["w_rid"] = wbiSign
    +        return params
    +    }
    +    
    +   func getWbiKeys(completion: @escaping (Result<(imgKey: String, subKey: String), Error>) -> Void) {
    +       let headers: HTTPHeaders = [
    +           "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    +           "Referer": "https://www.bilibili.com/"
    +       ]
    +       
    +       AF.request("https://api.bilibili.com/x/web-interface/nav", headers: headers).responseJSON { response in
    +           switch response.result {
    +           case .success(let value):
    +               let json = JSON(value)
    +               let imgURL = json["data"]["wbi_img"]["img_url"].string ?? ""
    +               let subURL = json["data"]["wbi_img"]["sub_url"].string ?? ""
    +               let imgKey = imgURL.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? ""
    +               let subKey = subURL.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? ""
    +               completion(.success((imgKey, subKey)))
    +           case .failure(let error):
    +               completion(.failure(error))
    +           }
    +       }
    +   }
    +
    +    
    +    func calculateMD5(string: String) -> String {
    +        let data = Data(string.utf8)
    +        var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
    +        _ = data.withUnsafeBytes {
    +            CC_MD5($0.baseAddress, CC_LONG(data.count), &digest)
    +        }
    +        return digest.map { String(format: "%02hhx", $0) }.joined()
    +    }
    +    
    +    let mixinKeyEncTab = [
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +        33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +        61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +        36, 20, 34, 44, 52
    +    ]
    +    
    +    getWbiKeys { result in
    +        switch result {
    +        case .success(let keys):
    +            let spdParam = param.components(separatedBy: "&")
    +            var spdDicParam = [String: String]()
    +            spdParam.forEach { pair in
    +                let components = pair.components(separatedBy: "=")
    +                if components.count == 2 {
    +                    spdDicParam[components[0]] = components[1]
    +                }
    +            }
    +            
    +            let signedParams = encWbi(params: spdDicParam, imgKey: keys.imgKey, subKey: keys.subKey)
    +            let query = signedParams.map { "\\($0.key)=\\($0.value)" }.joined(separator: "&")
    +            completion(query)
    +        case .failure(let error):
    +            print("Error getting keys: \\(error)")
    +            completion(nil)
    +        }
    +    }
    +}
    +
    +

    CPlusPlus

    `,2),U={href:"https://github.com/libcpr/cpr",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/weidai11/cryptopp",target:"_blank",rel:"noopener noreferrer"},D={href:"https://github.com/nlohmann/json",target:"_blank",rel:"noopener noreferrer"},N=p(`
    #include <array>    // std::array
    +#include <locale>   // std::locale
    +#include <print>    // std::println
    +
    +/// thrid party libraries
    +#include <cpr/cpr.h>
    +#include <cryptopp/md5.h>
    +#include <cryptopp/hex.h>
    +#include <nlohmann/json.hpp>
    +
    +/*
    + * 注意,假定不会发生错误!
    + */
    +class Wbi {
    +    constexpr static std::array<uint8_t, 64> MIXIN_KEY_ENC_TAB_ = {
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35,
    +        27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13,
    +        37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4,
    +        22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52
    +    };
    +
    +    /* 获取 md5 hex(lower) */
    +    static std::string Get_md5_hex(const std::string &Input_str) {
    +        CryptoPP::Weak1::MD5 hash;
    +        std::string          md5_hex;
    +
    +        CryptoPP::StringSource ss(Input_str, true,
    +            new CryptoPP::HashFilter(hash,
    +                new CryptoPP::HexEncoder(
    +                    new CryptoPP::StringSink(md5_hex)
    +                )
    +            )
    +        );
    +
    +        std::ranges::for_each(md5_hex, [](char &x) { x = std::tolower(x); });
    +        return md5_hex;
    +    }
    +
    +public:
    +    /* 将 json 转换为 url 编码字符串 */
    +    static std::string Json_to_url_encode_str(const nlohmann::json &Json) {
    +        std::string encode_str;
    +        for (const auto &[key, value]: Json.items()) {
    +            encode_str.append(key).append("=").append(cpr::util::urlEncode(value.is_string() ? value.get<std::string>() : to_string(value))).append("&");
    +        }
    +
    +        // remove the last '&'
    +        encode_str.resize(encode_str.size() - 1, '\\0');
    +        return encode_str;
    +    }
    +
    +    /* 获取 wbi key */
    +    static std::pair<std::string, std::string> Get_wbi_key() {
    +        const auto url    = cpr::Url {"https://api.bilibili.com/x/web-interface/nav"};
    +        const auto cookie = cpr::Cookies {
    +            {"SESSDATA", "xxxxxxxxxxxx"},
    +        };
    +        const auto header = cpr::Header {
    +            {"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"},
    +            {"Referer", "https://www.bilibili.com/"},
    +        };
    +        const auto response = cpr::Get(url, cookie, header);
    +
    +        nlohmann::json json = nlohmann::json::parse(response.text);
    +
    +        const std::string img_url = json["data"]["wbi_img"]["img_url"];
    +        const std::string sub_url = json["data"]["wbi_img"]["sub_url"];
    +
    +        std::string img_key = img_url.substr(img_url.find("wbi/") + 4, img_url.find(".png") - img_url.find("wbi/") - 4);
    +        std::string sub_key = sub_url.substr(sub_url.find("wbi/") + 4, sub_url.find(".png") - sub_url.find("wbi/") - 4);
    +        return {img_key, sub_key};
    +    }
    +
    +    /* 获取 mixin key */
    +    static std::string Get_mixin_key(const std::string &Img_key, const std::string &Sub_key) {
    +        std::string raw_wbi_key_str = Img_key + Sub_key;
    +        std::string result;
    +
    +        std::ranges::for_each(MIXIN_KEY_ENC_TAB_, [&result, &raw_wbi_key_str](const uint8_t x) {
    +            result.push_back(raw_wbi_key_str.at(x));
    +        });
    +
    +        return result.substr(0, 32);
    +    }
    +
    +    /* 计算签名(w_rid) */
    +    static std::string Calc_sign(nlohmann::json &Params, const std::string &Mixin_key) {
    +        Params["wts"] = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
    +
    +        const std::string encode_str = Json_to_url_encode_str(Params).append(Mixin_key);
    +        return Get_md5_hex(encode_str);
    +    }
    +};
    +
    +
    +int main() {
    +    nlohmann::json Params;
    +    // qn=32&fnver=0&fnval=4048&fourk=1&avid=1755630705&cid=1574294582
    +    Params["qn"]    = 32;
    +    Params["fnver"] = 0;
    +    Params["fnval"] = 4048;
    +    Params["fourk"] = 1;
    +    Params["avid"]  = 1755630705;
    +    Params["cid"]   = 1574294582;
    +
    +    auto       [img_key, sub_key] = Wbi::Get_wbi_key();
    +    const auto mixin_key          = Wbi::Get_mixin_key(img_key, sub_key);
    +    const auto w_rid              = Wbi::Calc_sign(Params, mixin_key);
    +    std::println("{}", Wbi::Json_to_url_encode_str(Params) + "&w_rid=" + w_rid);
    +}
    +
    avid=1755630705&cid=1574294582&fnval=4048&fnver=0&fourk=1&qn=32&wts=1717922933&w_rid=43571b838a1611fa121189083cfc1784
    +
    `,2);function B(O,L){const c=o("RouterLink"),t=o("ExternalLinkIcon"),u=o("CodeGroupItem"),l=o("CodeGroup");return k(),r("div",null,[m,n("p",null,[s("自 2023 年 3 月起,Bilibili Web 端部分接口开始采用 WBI 签名鉴权,表现在 REST API 请求时在 Query param 中添加了 "),b,s(" 和 "),v,s(" 字段。WBI 签名鉴权独立于 "),a(c,{to:"/docs/misc/sign/APP.html"},{default:e(()=>[s("APP 鉴权")]),_:1}),s(" 与其他 Cookie 鉴权,目前被认为是一种 Web 端风控手段。")]),g,n("p",null,[s("感谢 "),n("a",y,[s("#631"),a(t)]),s(" 的研究与逆向工程。")]),n("p",null,[s("细节更新:"),n("a",f,[s("#885"),a(t)]),s("。")]),w,n("ol",null,[n("li",null,[q,n("p",null,[s("从 "),a(c,{to:"/docs/login/login_info.html#%E5%AF%BC%E8%88%AA%E6%A0%8F%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF"},{default:e(()=>[s("nav 接口")]),_:1}),s(" 中获取 "),_,s("、"),h,s(" 两个字段的参数。 或从 "),a(c,{to:"/docs/misc/sign/bili_ticket.html#%E6%8E%A5%E5%8F%A3"},{default:e(()=>[s("bili_ticket 接口")]),_:1}),s(" 中获取 "),S,s(),x,s(" 两个字段的参数。")]),K]),T]),E,a(l,null,{default:e(()=>[a(u,{title:"JavaScript"},{default:e(()=>[C]),_:1}),a(u,{title:"TypeScript"},{default:e(()=>[A]),_:1})]),_:1}),$,n("p",null,[s("来自"),n("a",j,[s("SocialSisterYi/bilibili-API-collect#813"),a(t)])]),R,n("p",null,[s("需要 "),n("a",W,[s("Alamofire"),a(t)]),s(" 和 "),n("a",M,[s("SwiftyJSON"),a(t)]),s(" 库")]),P,n("p",null,[s("需要 c++ 23 标准库,"),n("a",U,[s("cpr"),a(t)]),s("、"),n("a",I,[s("cryptopp"),a(t)]),s("、"),n("a",D,[s("nlohmann/json"),a(t)]),s(" 等依赖")]),N])}const G=i(d,[["render",B],["__file","wbi.html.vue"]]);export{G as default}; diff --git a/assets/wbi.html-ba871bc6.js b/assets/wbi.html-ba871bc6.js new file mode 100644 index 0000000000..8d35a608d7 --- /dev/null +++ b/assets/wbi.html-ba871bc6.js @@ -0,0 +1 @@ +const l=JSON.parse('{"key":"v-25192605","path":"/docs/misc/sign/wbi.html","title":"WBI 签名","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"WBI 签名算法","slug":"wbi-签名算法","link":"#wbi-签名算法","children":[]},{"level":2,"title":"Demo","slug":"demo","link":"#demo","children":[{"level":3,"title":"Python","slug":"python","link":"#python","children":[]},{"level":3,"title":"JavaScript","slug":"javascript","link":"#javascript","children":[]},{"level":3,"title":"Golang","slug":"golang","link":"#golang","children":[]},{"level":3,"title":"CSharp","slug":"csharp","link":"#csharp","children":[]},{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Kotlin","slug":"kotlin","link":"#kotlin","children":[]},{"level":3,"title":"PHP","slug":"php","link":"#php","children":[]},{"level":3,"title":"Rust","slug":"rust","link":"#rust","children":[]},{"level":3,"title":"Swift","slug":"swift","link":"#swift","children":[]},{"level":3,"title":"CPlusPlus","slug":"cplusplus","link":"#cplusplus","children":[]}]}],"git":{},"filePathRelative":"docs/misc/sign/wbi.md"}');export{l as data}; diff --git a/assets/webmask.html-63925768.js b/assets/webmask.html-63925768.js new file mode 100644 index 0000000000..d2feae5cae --- /dev/null +++ b/assets/webmask.html-63925768.js @@ -0,0 +1,29 @@ +import{_ as c,r as a,o as d,c as i,a as n,b as s,d as t,w as l,e}from"./app-3168cb19.js";const u={},r=n("h1",{id:"智能防挡弹幕",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#智能防挡弹幕","aria-hidden":"true"},"#"),s(" 智能防挡弹幕")],-1),k=n("p",null,"B 站部分视频提供“智能防挡弹幕”功能,其原理是提供了一个 webmask 二进制文件,其中保存了视频中各个位置的 svg 格式蒙版。",-1),m=n("p",null,"首先需要获取 webmask 资源的地址。",-1),b=n("h2",{id:"获取-webmask-资源地址",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#获取-webmask-资源地址","aria-hidden":"true"},"#"),s(" 获取 webmask 资源地址")],-1),v=e(`

    webmask 资源

    获取的 url 没有权鉴,不需要后面的参数也可以获取。

    示例:

    curl -G https://upos-sz-staticcos-cmask.bilivideo.com/cmaskboss/825851971_30_0.webmask >> 825851971_30_0.webmask
    +

    下载后是二进制文件。

    webmask 二进制读取

    `,6),h={href:"https://github.com/andrewvy/webmask-renderer",target:"_blank",rel:"noopener noreferrer"},f=e(`
    nameoffsetlengthtypedesc
    mask04char'MASK' 文件头
    version44int是1
    vU84?不知道是干什么的
    Ly124int后续数据的段数
    time_1168long第一段对应视频开始时间
    offset_1248long第一段蒙版信息开始处对应二进制偏移
    ...............
    time_{Ly}16+(Ly-1)*168longLy 段对应视频开始时间
    offset_{Ly}24+(Ly-1)*168longLy 段蒙版信息开始处对应二进制偏移
    segments_1由前面offset_1提供offset_2-offset_1 计算得到binary蒙版信息块,使用 gzip 压缩
    ...............

    蒙版信息块是经过 gzip 压缩文本得到的二进制。解压缩后得到一个字节串。

    前 16 字节是两个 long,记为 leftright,暂时不清楚其作用。left 似乎和平均每张蒙版的时间有关。right 总是 i*10000i 是从 0 开始数的数据段次序。

    后面是各个 svg 文本直接拼起来,可以直接通过 svg 格式头 data:image/svg+xml;base64, 分开。

    Python 示例:

    from struct import unpack
    +import gzip
    +
    +f = open('你的 webmask', 'rb')
    +buf = f.read()
    +_Ly = buf[12:16]
    +Ly = unpack('>i', _Ly)[0] # 大端序 int
    +
    +times = []
    +offsets = []
    +for idx in range(Ly):
    +    op = 16 + idx * 16  # 个人习惯,我算偏移时喜欢用 \`op\` 和 \`ed\` 作为开始和结束的名字。
    +    time = unpack('>q', buf[op: op+8])[0]
    +    offset = unpack('>q', buf[op+8: op+16])[0]
    +    times.append(time)
    +    offsets.append(offset)
    +
    +frames = []
    +for idx in range(Ly):
    +    op = offsets[idx]
    +    if idx == Ly - 1: ed = len(buf)
    +    else: ed = offsets[idx+1]
    +    ba = buf[op: ed]
    +    bad = gzip.decompress(ba)
    +    badl = bad.split(b'data:image/svg+xml;base64,')
    +    # badl[0]是16字节,\`left\` 和 \`right\`
    +    frames.append(badl[1: ])
    +
    `,6);function _(g,w){const p=a("RouterLink"),o=a("ExternalLinkIcon");return d(),i("div",null,[r,k,m,b,n("p",null,[s("通过 "),t(p,{to:"/docs/video/player.html"},{default:l(()=>[s("web 播放器资源接口")]),_:1}),s(" 获取 webmask 二进制文件的地址。")]),v,n("p",null,[s("参考:"),n("a",h,[s("andrewvy/webmask-renderer"),t(o)])]),f])}const x=c(u,[["render",_],["__file","webmask.html.vue"]]);export{x as default}; diff --git a/assets/webmask.html-cd2d5b20.js b/assets/webmask.html-cd2d5b20.js new file mode 100644 index 0000000000..226c2e31d5 --- /dev/null +++ b/assets/webmask.html-cd2d5b20.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-9d8df7d8","path":"/docs/danmaku/webmask.html","title":"智能防挡弹幕","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取 webmask 资源地址","slug":"获取-webmask-资源地址","link":"#获取-webmask-资源地址","children":[]},{"level":2,"title":"webmask 资源","slug":"webmask-资源","link":"#webmask-资源","children":[]},{"level":2,"title":"webmask 二进制读取","slug":"webmask-二进制读取","link":"#webmask-二进制读取","children":[]}],"git":{},"filePathRelative":"docs/danmaku/webmask.md"}');export{e as data}; diff --git a/assets/zone_upload.html-5153b09f.js b/assets/zone_upload.html-5153b09f.js new file mode 100644 index 0000000000..8c641bae40 --- /dev/null +++ b/assets/zone_upload.html-5153b09f.js @@ -0,0 +1,33 @@ +import{_ as t,o as n,c as s,e as a}from"./app-3168cb19.js";const p={},e=a(`

    分区当日投稿数

    获取分区当日投稿稿件数

    https://api.bilibili.com/x/web-interface/online

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    region_countobj分区当日投稿稿件数信息

    data中的region_count对象:

    字段类型内容备注
    1num当日投稿稿件数-动画(主分区)
    13num当日投稿稿件数-番剧(主分区)
    167num当日投稿稿件数-国创(主分区)
    3num当日投稿稿件数-音乐(主分区)
    129num当日投稿稿件数-舞蹈(主分区)
    4num当日投稿稿件数-游戏(主分区)
    17num当日投稿稿件数-单机游戏
    36num当日投稿稿件数-知识(主分区)
    188num当日投稿稿件数-数码(主分区)
    160num当日投稿稿件数-生活(主分区)
    138num当日投稿稿件数-搞笑
    76num当日投稿稿件数-美食圈
    75num当日投稿稿件数-动物圈
    119num当日投稿稿件数-鬼畜(主分区)
    155num当日投稿稿件数-时尚(主分区)
    202num当日投稿稿件数-资讯(主分区)
    165num当日投稿稿件数-广告(主分区)
    5num当日投稿稿件数-娱乐(主分区)
    181num当日投稿稿件数-影视(主分区)
    177num当日投稿稿件数-纪录片(主分区)
    23num当日投稿稿件数-电影(主分区)
    11num当日投稿稿件数-电视剧(主分区)

    示例:

    curl 'https://api.bilibili.com/x/web-interface/online'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "region_count": {
    +            "1": 28,
    +            "11": 0,
    +            "119": 0,
    +            "129": 13,
    +            "13": 2,
    +            "138": 21,
    +            "155": 13,
    +            "160": 215,
    +            "165": 0,
    +            "167": 3,
    +            "17": 86,
    +            "177": 0,
    +            "181": 61,
    +            "188": 5,
    +            "202": 0,
    +            "23": 0,
    +            "3": 67,
    +            "36": 27,
    +            "4": 235,
    +            "5": 33,
    +            "75": 12,
    +            "76": 17
    +        }
    +    }
    +}
    +
    `,14),d=[e];function o(r,u){return n(),s("div",null,d)}const l=t(p,[["render",o],["__file","zone_upload.html.vue"]]);export{l as default}; diff --git a/assets/zone_upload.html-d796767f.js b/assets/zone_upload.html-d796767f.js new file mode 100644 index 0000000000..4938c51f9c --- /dev/null +++ b/assets/zone_upload.html-d796767f.js @@ -0,0 +1 @@ +const e=JSON.parse('{"key":"v-33a4ed0a","path":"/docs/web_widget/zone_upload.html","title":"分区当日投稿数","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取分区当日投稿稿件数","slug":"获取分区当日投稿稿件数","link":"#获取分区当日投稿稿件数","children":[]}],"git":{},"filePathRelative":"docs/web_widget/zone_upload.md"}');export{e as data}; diff --git a/docs/APP_widget/splash.html b/docs/APP_widget/splash.html new file mode 100644 index 0000000000..ebc6ca1af6 --- /dev/null +++ b/docs/APP_widget/splash.html @@ -0,0 +1,340 @@ + + + + + + + + + APP端开屏图片 | BAC Document + + + + +

    APP端开屏图片

    获取APP端开屏图片列表

    https://app.bilibili.com/x/v2/splash/brand/list

    请求方式:GET

    鉴权方式:APP

    url参数:

    参数名类型内容必要性备注
    appkeystrAPP密钥APP方式必要
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pull_intervalnum1800作用尚不明确
    forciblyboolfalse作用尚不明确
    rulestrorder作用尚不明确
    listarray开屏图片列表
    showarray默认显示项

    data中的list数组:

    类型内容备注
    0obj开屏图片1
    nobj开屏图片(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum开屏图片id
    thumbstr开屏图片url
    logo_urlstr“bilibili”logo图片url

    data中的show数组:

    类型内容备注
    0obj套了个娃?

    show数组中的对象:

    字段类型内容备注
    idnum开屏图片id
    begin_timenum起始时间?时间戳
    end_timenum结束时间?时间戳
    probabilitynum0作用尚不明确
    durationnum显示时间?单位为毫秒

    示例:

    curl -G 'https://app.bilibili.com/x/v2/splash/brand/list' \
    +--data-urlencode 'appkey=1d8b6e7d45233436' \
    +--data-urlencode 'ts=0' \
    +--data-urlencode 'sign=78a89e153cd6231a4a4d55013aa063ce'
    +
    查看响应示例:
    {
    +    "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的图片为:

    获取APP端开屏幕广告信息

    https://app.bilibili.com/x/v2/splash/list

    请求方式: GET

    参数名类型内容必要性备注
    buildint客户端内部版本号必要
    mobi_appstrandroid, iphone, ipad必要
    platformstrandroid, ios必要
    heightint屏幕高度必要
    widthint屏幕宽度必要
    birthstr生日日期(四位数,例 0101)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    splash_request_id当前请求id长度为33, 前13位是当前秒级时间戳
    max_timeint最长显示时间?
    min_intervalint最少显示时间?千分之一秒单位
    pull_intervalint显示时间?
    keep_idsint显示时间?
    listlist广告 list

    list数组中的对象:

    字段类型内容备注
    idint广告id
    typeint1
    card_typeint39
    durationint持续时间?
    begin_timeint开始展示时间秒级时间戳
    end_timeint停止展示时间毫秒级时间戳
    thumburl广告图片
    hashstr作用尚不明确
    logo_urlstr空值
    logo_hashstr空值
    skipint是否跳转?
    uristr跳转的url
    video_urlstr视频url
    video_hashstr视频hash
    video_widthnum视频宽度
    video_heightnum视频高度
    uri_titlestr空值
    sourceint929
    cm_markint1
    ad_cbstr作用尚不明确
    resource_idint926
    request_idstr作用尚不明确
    client_ipstr客户端IP
    is_adbool作用尚不明确
    is_ad_locbool作用尚不明确
    schema_titlestr滑动进入第三方应用
    schema_callup_white_listarray跳转的 APP 的白名单
    extraobj显示信息?
    enable_pre_downloadbool是否可以当场下载 APP?
    enable_background_downloadbool是否可以静默下载 APP?
    interact_typeint是否可以跳转(互动)?
    interact_urlstr跳转(互动) url
    interact_distanceint作用尚不明确
    guide_button_listarray所有的按钮
    mark_with_skip_stylenum作用尚不明确
    skip_button_heightnum作用尚不明确

    extra对象:

    字段类型内容备注
    use_ad_web_v2bool
    show_urlsarray
    click_urlsarray
    show_1s_urlsarray
    download_whitelistarray
    open_whitelistarray
    cardobj
    report_timenum
    sales_typenum
    special_industrybool
    preload_landingpagenum
    share_infoobj
    upzone_entrance_typenum
    upzone_entrance_report_idnum
    topview_pic_urlstr
    topview_video_urlstr
    click_areanum
    shop_idnum
    up_midnum
    track_idstr
    enable_store_direct_launchint
    enable_double_jumpbool
    store_callup_cardbool
    enable_h5_alertbool
    special_industry_stylenum
    macro_replace_prioritynum
    feedback_panel_stylenum
    ad_content_typenum
    enable_h5_pre_loadnum
    hot_activity_idnum
    product_idnum
    landingpage_download_stylenum

    guide_button_list 中的对象:

    字段类型内容备注
    idint
    xint
    yint
    bg_colorstr
    bg_color_nightstr
    text_colorstr
    text_color_nightstr
    guide_instructionsstr
    guide_instructions_newstr空值
    widthstr
    jump_urlstr
    schema_package_namestr
    schema_titlestr
    schema_title_newstr空值
    heightstr
    slide_threshold_valuestr
    slide_border_colorstr
    guide_image_urlstr
    guide_image_md5str
    interact_stylestr
    jump_image_urlstr
    jump_image_md5str
    schema_image_urlstr
    schema_image_md5str
    click_expand_ratiostr
    logo_image_urlstr
    logo_image_md5str
    related_idsarray
    schema_listarray
    font_rationum
    seqnum
    degrade_typenum
    twist_anglenum
    twist_speednum
    secondary_guide_instructionsstr
    secondary_font_rationum
    secondary_text_colorstr
    secondary_text_color_nightstr
    activity_timenum秒级时间戳
    time_show_typenum

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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"
    +    }
    +}
    +
    + + + diff --git a/docs/APP_widget/ver.html b/docs/APP_widget/ver.html new file mode 100644 index 0000000000..029cb15c21 --- /dev/null +++ b/docs/APP_widget/ver.html @@ -0,0 +1,62 @@ + + + + + + + + + 获取最新 APP 版本 | BAC Document + + + + +

    获取最新 APP 版本

    版本升级

    https://app.bilibili.com/x/v2/version/fawkes/upgrade

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    appkeystrAPP 密钥不必要
    buildint当前 APP 版本号必要将会影响是否有新版本
    mobi_appstr目标客户端类型必要android
    ntstr任意非空串必要默认为 1
    ovstr任意非空串必要默认为 22
    platformstr设备平台必要任意非空串即可, 如 android
    snint设备序列号?必要任意数字即可, 如 4462369
    vnstr当前版本号必要任意非空串即可, 如 6.13.0

    JSON回复:

    根对象:

    字段类型内容备注
    codeint返回值0: 成功
    -304: 木有改动
    -400: 请求异常
    messagestr错误信息默认为 0
    ttlint1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    titlestr标题
    contentstr内容
    versionstr最新版本号
    version_codeint最新版本号build
    urlstr下载地址
    sizeint大小单位字节
    md5strMD5 值
    silentint是否静默安装?
    upgrade_typeint升级类型?
    cycleint升级周期?
    policyint升级策略?
    policy_urlstr升级策略链接?
    ptimeint发布时间

    示例:

    curl -G 'https://app.bilibili.com/x/v2/version/fawkes/upgrade' \
    +--url-query 'build=1145141' \
    +--url-query 'channel=apt' \
    +--url-query 'mobi_app=android' \
    +--url-query 'nt=awa' \
    +--url-query 'ov=qwq' \
    +--url-query 'platform=archlinux' \
    +--url-query 'sn=919810' \
    +--url-query 'vn=!!!'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "title": "升级提醒",
    +    "content": "-修复了一些bug,并优化了一些搜索和播放体验~\n-让我们举起双手,把力量借给备考的小伙伴们!",
    +    "version": "7.81.0",
    +    "version_code": 7810200,
    +    "url": "https://dl.hdslb.com/mobile/pack/android/15013586/iBiliPlayer-apinkRelease-7.81.0-b15013586.apk",
    +    "size": 138723520,
    +    "md5": "60f83fb828bc05aefdac67504ba72ea9",
    +    "silent": 0,
    +    "upgrade_type": 1,
    +    "cycle": 4,
    +    "policy": 0,
    +    "policy_url": "",
    +    "ptime": 1717554395
    +  }
    +}
    +
    + + + diff --git a/docs/activity/info.html b/docs/activity/info.html new file mode 100644 index 0000000000..f18ee07f37 --- /dev/null +++ b/docs/activity/info.html @@ -0,0 +1,63 @@ + + + + + + + + + 活动主题信息 | BAC Document + + + + +

    活动主题信息

    主题信息

    https://api.bilibili.com/x/activity/subject/info

    请求方式: GET

    URL参数:

    | 参数名 | 类型 | 内容 | 必要性 | 备注 | | - | - | - | - | - | - | - | | sid | num | 活动 id | 必要 | | | bvid | str | 来源视频 bvid | 非必要 | |

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    idnum活动 id
    oidnum0
    typenum13
    statenum1
    stimenum开始时间UNIX 秒级时间戳
    etimenum结束时间UNIX 秒级时间戳
    ctimenum创建时间UNIX 秒级时间戳
    mtimenum修改时间UNIX 秒级时间戳
    namestr活动名称
    act_urlstr活动链接
    lstimenum?作用尚不明确
    letimenum?作用尚不明确
    coverstr封面图片
    dicstr简介
    h5_coverstrH5 封面
    android_urlstrAndroid 端活动链接
    ios_urlstriOS 端活动链接
    child_sidsstr子活动 id?
    calendarstr日历?空 或 {}?
    lidnum?仅在传入 bvid 时存在

    示例:

    curl -G --url 'https://api.bilibili.com/x/activity/subject/info' \
    +--url-query 'sid=4017552' \
    +--url-query 'bvid=BV1mKY4e8ELy'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "id": 4017552,
    +    "oid": 0,
    +    "type": 13,
    +    "state": 1,
    +    "stime": 1720540800,
    +    "etime": 1728575999,
    +    "ctime": 1720439769,
    +    "mtime": 1720591285,
    +    "name": "科技猎手2024第2季",
    +    "act_url": "https://www.bilibili.com/blackboard/era/kejilieshou2PC.html",
    +    "lstime": 1720540800,
    +    "letime": 1728575999,
    +    "cover": "https://i0.hdslb.com/bfs/activity-plat/static/98bc38873cc71e154019070975cd20a0/fLOEOStVUV.jpg",
    +    "dic": "科技猎手召集中!投稿赢奖金>>",
    +    "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/98bc38873cc71e154019070975cd20a0/PTIFsXkV0o.jpg",
    +    "android_url": "https://www.bilibili.com/blackboard/era/kejilieshou2H5.html",
    +    "ios_url": "https://www.bilibili.com/blackboard/era/kejilieshou2H5.html",
    +    "child_sids": "",
    +    "calendar": "",
    +    "lid": 294258214
    +  }
    +}
    +
    + + + diff --git a/docs/activity/list.html b/docs/activity/list.html new file mode 100644 index 0000000000..5acd00f861 --- /dev/null +++ b/docs/activity/list.html @@ -0,0 +1,164 @@ + + + + + + + + + 活动列表 | BAC Document + + + + +

    活动列表

    获取活动列表

    https://api.bilibili.com/x/activity/page/list

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    platstr活动平台类型?必要可选范围 [1, 3], 以半角逗号分隔, 默认 1,3
    moldint0非必要
    httpint3非必要
    pnint目标页码非必要默认为 1
    psint每页条数非必要默认为 15

    JSON回复:

    根对象:

    字段类型内容备注
    codeint返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlint1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray活动列表
    numint当前页码
    sizeint每页条数
    totalint总条数

    list 数组中的对象:

    字段类型内容备注
    idint活动 ID
    stateint1
    stimeint开始时间UNIX 秒级时间戳
    etimeint结束时间UNIX 秒级时间戳
    ctimeint创建时间?UNIX 秒级时间戳, 可能为 0
    mtimeint修改时间?UNIX 秒级时间戳, 可能为 0
    namestr活动名称
    authorstr
    pc_urlstr
    rankint0
    h5_urlstr活动链接
    pc_coverstr
    h5_coverstr活动封面
    page_namestr页面名称
    platint活动平台类型?即 URL 中 plat 参数
    descstr活动描述
    clickint0
    typeint0
    moldint0
    seriesint0
    deptint0
    reply_idint0
    tp_idint0
    ptimeint0
    catalogint0
    creatorstr
    spm_idstr

    示例:

    curl -G 'https://api.bilibili.com/x/activity/page/list' \
    +--url-query 'plat=1,2,3' \
    +--url-query 'ps=4'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "id": 207,
    +        "state": 1,
    +        "stime": 1723262400,
    +        "etime": 1724774399,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "原神fes2024",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/DK8i0NS7fxwcLBgm.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/d32c2bb79f59192cb072d7bf79b61c6d/In2tYOLFTZ.png",
    +        "page_name": "原神fes2024",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      },
    +      {
    +        "id": 210,
    +        "state": 1,
    +        "stime": 1723219200,
    +        "etime": 1725983999,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "暗区突围端游海外版全员夺金冲榜挑战赛",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/UP8CZSTfboDVZuGr.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/f9a67e268d55d029e6b27d81246fc59a/LPN9dlcRlW.png",
    +        "page_name": "暗区突围端游海外版全员夺金冲榜挑战赛",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      },
    +      {
    +        "id": 199,
    +        "state": 1,
    +        "stime": 1723089600,
    +        "etime": 1725897599,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "剑与远征:启程公测创作者激励",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/HkHatvvW9nJZXEMh.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/7785e7ecb0434c85530b92e3586f32ff/CgKENr0ftC.jpeg",
    +        "page_name": "剑与远征:启程公测创作者激励",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      },
    +      {
    +        "id": 203,
    +        "state": 1,
    +        "stime": 1723089600,
    +        "etime": 1724255999,
    +        "ctime": 0,
    +        "mtime": 0,
    +        "name": "王者荣耀新英雄少司缘创作激励",
    +        "author": "",
    +        "pc_url": "",
    +        "rank": 0,
    +        "h5_url": "https://www.bilibili.com/blackboard/era/g0gn2j4ZENrCLYLn.html",
    +        "pc_cover": "",
    +        "h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/a99ba278036e9fbfa81b9100d13d9e7e/9UHZg6r0Y5.jpg",
    +        "page_name": "王者荣耀新英雄少司缘创作激励",
    +        "plat": 2,
    +        "desc": "",
    +        "click": 0,
    +        "type": 0,
    +        "mold": 0,
    +        "series": 0,
    +        "dept": 0,
    +        "reply_id": 0,
    +        "tp_id": 0,
    +        "ptime": 0,
    +        "catalog": 0,
    +        "creator": "",
    +        "spm_id": ""
    +      }
    +    ],
    +    "num": 1,
    +    "size": 4,
    +    "total": 5391
    +  }
    +}
    +
    + + + diff --git a/docs/album/action.html b/docs/album/action.html new file mode 100644 index 0000000000..c25b3df268 --- /dev/null +++ b/docs/album/action.html @@ -0,0 +1,68 @@ + + + + + + + + + 相簿操作 | BAC Document + + + + +

    相簿操作

    点赞相簿

    https://api.vc.bilibili.com/link_draw/v2/Vote/operate

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    doc_idnum相簿id必要
    typenum操作方式必要1:点赞
    2:取消赞
    csrf_tokenstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    3:未登录
    110022:已经操作过了
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    typenum操作方式1:点赞
    2:取消赞

    示例:

    点赞相簿id=99184721

    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'
    +
    查看响应示例:
    {
    +    "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_idnum相簿id必要
    biz_typenum2必要作用尚不明确
    csrf_tokenstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:参数错误
    -500:未登录
    -507:已收藏
    msgstr错误信息默认为OK
    messagestr错误信息默认为OK
    dataarray

    示例:

    收藏相簿id=99184721

    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'
    +
    查看响应示例:
    {
    +    "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_idnum相簿id必要
    biz_typenum2必要作用尚不明确
    csrf_tokenstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:参数错误
    -500:未登录
    msgstr错误信息默认为OK
    messagestr错误信息默认为OK
    dataarray

    示例:

    取消收藏相簿id=99184721

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "OK",
    +    "message": "OK",
    +    "data": []
    +}
    +
    + + + diff --git a/docs/album/activity_list.html b/docs/album/activity_list.html new file mode 100644 index 0000000000..c888fb2158 --- /dev/null +++ b/docs/album/activity_list.html @@ -0,0 +1,108 @@ + + + + + + + + + 相簿活动列表 | BAC Document + + + + +

    相簿活动列表

    获取相簿热门活动列表

    https://api.vc.bilibili.com/photo_activity/v2/Activity/list

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    typenum活动类型非必要0:全部
    1:展示类
    2:比赛类
    biznum分区非必要0:全部
    1:画友
    2:摄影
    默认为0
    page_numnum页码非必要默认为4
    page_sizenum每页项数非必要默认为0

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    total_countstr总计活动数
    itemsarray活动列表

    data中的items数组:

    类型内容备注
    0obj活动 1
    nobj活动 (n+1)
    ……obj…………

    data中的items数组中的对象:

    字段类型内容备注
    coverstr活动图片url
    titlestr活动标题
    linkstr活动页面url
    typenum活动类型1:展示类
    2:比赛类
    biznum所属分区1:画友
    2:摄影
    tagstr活动关联的TAG
    start_timenum开始时间时间戳
    end_timenum结束时间时间戳
    descstr备注
    desc_typenum活动状态1:已结束
    2:进行中

    示例:

    获取画友分区,全部类型的5条活动

    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'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    + + + diff --git a/docs/album/info.html b/docs/album/info.html new file mode 100644 index 0000000000..f3586f724e --- /dev/null +++ b/docs/album/info.html @@ -0,0 +1,127 @@ + + + + + + + + + 相簿基本信息 | BAC Document + + + + +

    相簿基本信息

    获取相簿详细信息

    https://api.vc.bilibili.com/link_draw/v1/doc/detail

    请求方式:GET

    认证方式:Cookie(SESSDSTA)

    url参数:

    参数名类型内容必要性备注
    doc_idnum目标相簿id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    110001:找不到目标相簿
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    userobj作者信息
    itemobj相簿信息

    data中的user对象:

    字段类型内容备注
    uidnum作者mid
    head_urlstr头像url
    namestr昵称
    vipobj会员信息
    upload_countstr相簿投稿数

    user中的vip对象:

    字段类型内容备注
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度及以上大会员
    vipDueDatenum会员到期时间毫秒 时间戳
    dueRemarkstr作用尚不明确
    accessStatusnum0作用尚不明确
    vipStatusnum会员开通状态0:无
    1:有
    vipStatusWarnstr作用尚不明确
    themeTypenum0作用尚不明确
    labelobj作用尚不明确

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确

    data中的item对象:

    字段类型内容备注
    biznum相簿分区1:画友
    2:摄影
    3:日常
    doc_idnum相簿id
    poster_uidnum作者mid
    categorystr子分区标识cos:cosplay
    daily:日常
    illustration:插画
    comic:漫画
    draw:其他
    sifu:私服
    typenum相簿类型0:原创
    1:同人
    titlestr标题
    tagsarray相簿TAG
    picturesarray相簿图片
    sourcenull作用尚不明确
    upload_timestr投稿时间(时间码)YYYY-MM-DD hh:mm:ss
    upload_timestampnum投稿时间(时间戳)
    upload_time_textstr投稿时间(文本)
    descriptionstr简介
    rolenull作用尚不明确
    settingsobj权限配置
    already_collectednum是否已收藏需要登录(Cookie)
    否则恒为0
    already_likednum0作用尚不明确
    user_statusnum0作用尚不明确
    at_controlstr作用尚不明确
    view_countnum观看数
    like_countnum0作用尚不明确
    collect_countnum收藏数
    verify_statusnum1作用尚不明确
    already_votednum是否已点赞需要登录(Cookie)
    否则恒为0
    vote_countnum点赞数
    comment_countnum评论数

    item中的tags数组:

    类型内容备注
    0objTAG 1
    nobjTAG (n+1)
    ……obj…………

    item中的tags数组中的对象:

    字段类型内容备注
    tagstrTAG名
    typenum类型?
    categorystrTAG所属子分区名
    linkstr活动页面url是活动TAG有此项
    textstrTAG名
    namestrTAG名

    item中的pictures数组:

    类型内容备注
    0obj图片 1
    nobj图片 (n+1)
    ……obj…………

    item中的pictures数组中的对象:

    字段类型内容备注
    img_srcstr图片url
    img_widthnum图片宽度
    img_heightnum图片高度
    img_sizenum图片大小单位为KByte

    item中的settings对象:

    字段类型内容备注
    copy_forbiddennum禁止转载标志0:不设置转载权限
    1:开放授权-署名-非商用转载
    2:作者授权-署名-非商用转载
    3:禁止转载

    示例:

    查询相簿id=99184721的详细信息

    curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/detail' \
    +--data-urlencode 'doc_id=99184721' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +
    + + + diff --git a/docs/album/list.html b/docs/album/list.html new file mode 100644 index 0000000000..a3a56843c3 --- /dev/null +++ b/docs/album/list.html @@ -0,0 +1,2195 @@ + + + + + + + + + 相簿列表 | BAC Document + + + + +

    相簿列表

    获取画友首页列表

    https://api.vc.bilibili.com/link_draw/v2/Doc/index

    请求方式:GET

    认证方式:Cookie(SESSDSTA)

    url参数:

    参数名类型内容必要性备注
    typestr排序方式必要recommend:推荐
    hot:最热
    new:最新
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    itemsarray相簿列表
    total_countnum总计条目数

    data中的items数组:

    类型内容备注
    0obj相簿 1
    nobj相簿 (n+1)
    ……obj…………

    data中的items数组中的对象:

    字段类型内容备注
    userobj作者信息
    itemobj相簿信息

    data中的items数组中的对象中的user对象:

    字段类型内容备注
    uidnum作者mid
    head_urlstr头像url
    namestr昵称

    data中的items数组中的对象中的item对象:

    字段类型内容备注
    doc_idnum相簿id
    poster_uidnum作者mid
    picturesarray相簿图片
    titlestr标题
    categorystr子分区名
    upload_timenum投稿时间时间戳
    already_likednum0作用尚不明确
    already_votednum是否已点赞需要登录(Cookie)
    否则恒为0

    item中的pictures数组:

    类型内容备注
    0obj图片 1
    nobj图片 (n+1)
    ……obj…………

    item中的pictures数组中的对象:

    字段类型内容备注
    img_srcstr图片url
    img_widthnum图片宽度
    img_heightnum图片高度

    示例:

    用按热度排序方式获取画友首页列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    typestr排序方式必要recommend:推荐
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    获取画友首页列表中的响应内容

    示例:

    用推荐方式获取画友首页列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    categorystr类型必要all:全部
    illustration:插画
    comic:漫画
    draw:其他
    typestr排序方式必要hot:最热
    new:最新
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    获取画友首页列表中的响应内容

    示例:

    用按热度排序方式获取全部类型的画友列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    categorystr类型必要cos:Cosplay
    sifu:私服
    typestr排序方式必要hot:最热
    new:最新
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    获取画友首页列表中的响应内容

    示例:

    用按热度排序方式获取Cosplay类型的摄影列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    biznum分区非必要0:全部
    1:画友
    2:摄影
    默认为0
    poster_uidnum作者mid必要默认为20
    page_numnum页码非必要默认为1
    page_sizenum每页项数非必要默认为45

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    total_countstr总计相簿数
    userobj作者信息
    itemsarray相簿列表

    data中的user对象:

    字段类型内容备注
    uidstr作者mid
    head_urlstr头像url
    namestr昵称

    data中的item对象:

    获取画友首页列表中的item对象

    示例:

    获取用户1360010的所有类型相簿

    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'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    + + + diff --git a/docs/album/recommend_author.html b/docs/album/recommend_author.html new file mode 100644 index 0000000000..f4c228c3f8 --- /dev/null +++ b/docs/album/recommend_author.html @@ -0,0 +1,111 @@ + + + + + + + + + 相簿推荐作者 | BAC Document + + + + +

    相簿推荐作者

    获取摄影推荐作者

    https://api.vc.bilibili.com/link_draw/v2/Photo/uper

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    numnum请求数量非必要默认为6

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataarray信息本体

    data数组:

    类型内容备注
    0obj作者 1
    nobj作者 (n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    uidnum作者mid
    head_urlstr头像url
    namestr昵称
    is_followednum0作用尚不明确

    示例:

    请求获取摄影推荐作者,数量为5

    curl -G 'https://api.vc.bilibili.com/link_draw/v2/Photo/uper' \
    +--data-urlencode 'num=5'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    numnum请求数量非必要默认为6

    json回复:

    获取摄影推荐作者中的响应内容

    示例:

    请求获取画友推荐作者,数量为5

    curl -G 'https://api.vc.bilibili.com/link_draw/v2/Doc/drawer' \
    +--data-urlencode 'num=5'
    +
    查看响应示例:
    {
    +    "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/action.html b/docs/article/action.html new file mode 100644 index 0000000000..482ca9ee3e --- /dev/null +++ b/docs/article/action.html @@ -0,0 +1,67 @@ + + + + + + + + + 专栏投币&点赞&收藏 | BAC Document + + + + +

    专栏投币&点赞&收藏

    点赞文章

    https://api.bilibili.com/x/article/like

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    idnum文章cvid必要
    typenum操作方式必要1:点赞
    2:取消赞
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    10003:不存在该稿件
    65006:已赞过
    65004:取消点赞失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为文章cv5806746点赞

    curl 'https://api.bilibili.com/x/article/like' \
    +--data-urlencode 'id=5806746' \
    +--data-urlencode 'type=1' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    投币文章

    https://api.bilibili.com/x/web-interface/coin/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum文章cvid必要
    upidnum文章作者mid必要
    multiplynum投币数量必要上限为2
    avtypenum2必要必须为2
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -104:硬币不足
    -111:csrf校验失败
    -400:请求错误
    10003:不存在该稿件
    34002:不能给自己投币
    34003:非法的投币数量
    34005:超过投币上限
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    已赞过则附加点赞失败

    示例:

    为文章cv5806746投币1枚

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    idnum文章cvid必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    messagestr错误信息正确为success
    dataobj信息本体

    示例:

    收藏文章cv5806746

    curl 'https://api.bilibili.com/x/article/favorites/add' \
    +--data-urlencode 'id=5806746' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/article/articles.html b/docs/article/articles.html new file mode 100644 index 0000000000..864b07e7b8 --- /dev/null +++ b/docs/article/articles.html @@ -0,0 +1,226 @@ + + + + + + + + + 文集基本信息 | BAC Document + + + + +

    文集基本信息

    获取文集基本信息

    https://api.bilibili.com/x/article/list/web/articles

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    idnum文集rlid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj文集概览
    articlesarray文集内的文章列表
    authorobj文集作者信息
    lastobj-作用尚不明确
    结构与data.articles[]中相似
    attentionbool是否关注文集作者false:未关注
    true:已关注
    需要登录(Cookie)
    未登录为false

    data中的list对象:

    字段类型内容备注
    idnum文集rlid
    midnum文集作者mid
    namestr文集名称
    image_urlstr文集封面图片url
    update_timenum文集更新时间时间戳
    ctimenum文集创建时间时间戳
    publish_timenum文集发布时间时间戳
    summarystr文集简介
    wordsnum文集字数
    readnum文集阅读量
    articles_countnum文集内文章数量
    statenum1或3作用尚不明确
    reasonstr作用尚不明确
    apply_timestr作用尚不明确
    check_timestr作用尚不明确

    data中的articles数组:

    类型内容备注
    0obj文集中第1篇文章
    nobj文集中第(n+1)篇文章

    data中的articles数组中的对象:

    字段类型内容备注
    idnum专栏cvid
    titlestr文章标题
    statenum0作用尚不明确
    publish_timenum发布时间秒时间戳
    wordsnum文章字数
    image_urlsarray文章封面
    categoryobj文章标签
    categoriesarray文章标签列表
    summarystr文章摘要
    statsobj文章状态数信息
    like_statenum是否点赞0:未点赞
    1:已点赞
    需要登录(Cookie)
    未登录为0

    articles数组中的对象中的stats

    字段类型内容备注
    viewnum阅读数
    favoritenum收藏数
    likenum点赞数
    dislikenum点踩数
    replynum评论数
    sharenum分享数
    coinnum投币数
    dynamicnum动态转发数

    articles数组中的对象中的author

    字段类型内容备注
    midnum作者mid
    namestr作者昵称
    facestr作者头像url
    official_verifyobj作者认证信息
    nameplateobj作者勋章
    vipobj作者大会员状态

    示例:

    查询文集rl207146的基本信息

    curl -G 'https://api.bilibili.com/x/article/list/web/articles' \
    +--data-urlencode 'id=207146' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    + + + diff --git a/docs/article/category.html b/docs/article/category.html new file mode 100644 index 0000000000..f06fa29b35 --- /dev/null +++ b/docs/article/category.html @@ -0,0 +1,33 @@ + + + + + + + + + 专栏分类 | BAC Document + + + + +

    专栏分类

    游戏

    idparent_idname
    10游戏
    61单机游戏
    71电子竞技
    81手机游戏
    91网络游戏
    101桌游棋牌

    动画

    idparent_idname
    20动画
    42动漫杂谈
    52动漫资讯
    312动画技术

    生活

    idparent_idname
    30生活
    133美食
    143时尚
    153日常
    213萌宠
    223运动

    轻小说

    idparent_idname
    160轻小说
    1816原创连载
    1916同人连载
    2016小说杂谈
    3216短篇小说

    科技

    idparent_idname
    170科技
    2517人文历史
    2617数码
    2717汽车
    3317自然
    3417学习

    影视

    idparent_idname
    280影视
    1228电影
    3528电视剧
    3628纪录片
    3728综艺

    兴趣

    idparent_idname
    290兴趣
    1129模型手办
    2329绘画
    2429手工
    3829摄影
    3929音乐舞蹈

    笔记

    idparent_idname
    410笔记
    4241全部笔记
    + + + diff --git a/docs/article/info.html b/docs/article/info.html new file mode 100644 index 0000000000..b9f57d355f --- /dev/null +++ b/docs/article/info.html @@ -0,0 +1,105 @@ + + + + + + + + + 专栏基本信息 | BAC Document + + + + +

    专栏基本信息

    获取专栏文章基本信息

    https://api.bilibili.com/x/article/viewinfo

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    idnum专栏cvid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    likenum是否点赞0:未点赞
    1:已点赞
    需要登录(Cookie)
    未登录为0
    attentionbool是否关注文章作者false:未关注
    true:已关注
    需要登录(Cookie)
    未登录为false
    favoritebool是否收藏false:未收藏
    true:已收藏
    需要登录(Cookie)
    未登录为false
    coinnum为文章投币数
    statsobj状态数信息
    titlestr文章标题
    banner_urlstr文章头图url
    midnum文章作者mid
    author_namestr文章作者昵称
    is_authorbooltrue作用尚不明确
    image_urlsarray动态封面
    origin_image_urlsarray封面图片
    shareablebooltrue作用尚不明确
    show_later_watchbooltrue作用尚不明确
    show_small_windowbooltrue作用尚不明确
    in_listbool是否收于文集false:否
    true:是
    prenum上一篇文章cvid无为0
    nextnum下一篇文章cvid无为0
    share_channelsarray分享方式列表
    typenum文章类别0:文章
    2:笔记

    stats对象:

    字段类型内容备注
    viewnum阅读数
    favoritenum收藏数
    likenum点赞数
    dislikenum点踩数
    replynum评论数
    sharenum分享数
    coinnum投币数
    dynamicnum动态转发数

    data中的image_urls数组:

    类型内容备注
    0str动态封面图片url

    data中的origin_image_urls数组:

    类型内容备注
    0str文章封面图片url

    data中的share_channels数组:

    类型内容备注
    0obj分享项:qq
    1obj分享项:qq空间
    2obj分享项:微信
    3obj分享项:朋友圈
    4obj分享项:微博

    data中的share_channels数组中的对象:

    字段类型内容备注
    namestr分享名称
    picturestr分享图片url
    share_channelstr分享代号

    示例:

    查询文章cv2的基本信息

    curl -G 'https://api.bilibili.com/x/article/viewinfo' \
    +--data-urlencode 'id=2' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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/list.html b/docs/article/list.html new file mode 100644 index 0000000000..7272286ce8 --- /dev/null +++ b/docs/article/list.html @@ -0,0 +1,442 @@ + + + + + + + + + 获取用户专栏信息 | BAC Document + + + + +

    获取用户专栏信息

    获取用户专栏文章列表

    https://api.bilibili.com/x/space/wbi/article

    https://api.bilibili.com/x/space/article(旧链接)

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Wbi 签名

    url参数:

    参数名类型内容必要性备注
    midnum用户uid
    pnnum默认:1
    psnum默认:30
    范围:[1,30]
    sortstrpublish_time:最新发布
    view:最多阅读
    fav:最多收藏
    默认:publish_time

    json回复:

    根对象

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    articlesarray专栏文章信息列表
    pnnum本次请求分页页数
    psnum本次请求分页大小
    countnum专栏文章总数

    data对象 -> articles数组中的对象

    字段名类型内容备注
    idnum专栏文章id
    categoryobj分类
    categoriesarray分类
    titlestr标题
    summarystr摘要
    banner_urlstr封面图
    template_idnum
    statenum
    authorobjUP主信息
    reprintnum
    image_urlsarray
    publish_timenum发布时间戳单位:秒
    ctimenum提交时间戳单位:秒
    statsobj专栏文章数据统计
    tagsarray标签
    wordsnum
    dynamicstr粉丝动态文案
    origin_image_urlsarray
    listnull
    is_likebool
    mediaobj
    apply_timestr空串
    check_timestr空串
    originalnum
    act_idnum
    disputenull
    authenMarknull
    cover_avidnum
    top_video_infonull
    typenum

    data对象 -> articles数组中的对象 -> category对象

    字段名类型内容备注
    idnum分类id
    parent_idnum父级分类id
    namestr分类名称

    data对象 -> articles数组中的对象 -> categories数组中的对象

    字段名类型内容备注
    idnum分类id
    parent_idnum父级分类id
    namestr分类名称

    data对象 -> articles数组中的对象 -> author对象

    字段名类型内容备注
    midnum用户uid
    namestr用户名
    facestr头像
    pendantobj头像框信息
    official_verifyobj账号认证信息
    nameplateobj成就勋章信息
    vipobj大会员信息

    data对象 -> articles数组中的对象 -> author对象 -> pendant对象

    字段名类型内容备注
    pidnum头像框id
    namestr头像框名称
    imagestr头像框图片url
    expirenum过期时间

    data对象 -> articles数组中的对象 -> author对象 -> official_verify对象

    字段名类型内容备注
    typenum是否认证-1:无
    0:个人认证
    1:机构认证
    descstr认证备注

    data对象 -> articles数组中的对象 -> author对象 -> nameplate对象

    字段名类型内容备注
    nidnum勋章id
    namestr勋章名称
    imagestr勋章图标
    image_smallstr勋章图标(小)
    levelstr勋章等级
    conditionstr获取条件

    data对象 -> articles数组中的对象 -> author对象 -> vip对象

    字段名类型内容备注
    typenum大会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum大会员状态0:无
    1:有
    due_datenum大会员过期时间时间戳单位:毫秒
    vip_pay_typenum支付类型
    theme_typenum0
    labelobj大会员标签
    avatar_subscriptnum是否显示大会员图标0:不显示
    1:显示
    nickname_colorstr大会员昵称颜色

    data对象 -> articles数组中的对象 -> author对象 -> vip对象 -> label对象

    字段名类型内容备注
    pathstr空串
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼

    data对象 -> articles数组中的对象 -> stats对象

    字段名类型内容备注
    viewnum浏览数
    favoritenum收藏数
    likenum点赞数
    dislikenum点踩数恒为0
    replynum回复数
    sharenum转发数
    coinnum投币数
    dynamicnum

    data对象 -> articles数组中的对象 -> tags数组中的对象

    字段名类型内容备注
    tidnum标签id
    namestr标签名称

    data对象 -> articles数组中的对象 -> media对象

    字段名类型内容备注
    scorenum0
    media_idnum0
    titlestr空串
    coverstr空串
    areastr空串
    type_idnum0
    type_namestr空串
    spoilernum0

    示例:

    curl -L -X GET 'https://api.bilibili.com/x/space/article?mid=300021061&pn=1&ps=2&sort=publish_time'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    midnum用户uid
    sortnum排序方式0:最近更新
    1:最多阅读
    jsonpstr
    callbackstr

    json回复:

    根对象

    字段名类型内容备注
    codenum响应码0:成功
    -400:请求错误
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    listsarray文集信息列表
    totalnum文集总数

    data对象 -> lists数组中的对象

    字段名类型内容备注
    idnum文集id
    midnum作者uid
    namestr文集名称
    image_urlstr封面
    update_timenum最后更新时间戳单位:秒
    ctimenum创建时间戳单位:秒
    publish_timenum单位:秒
    summarystr空串
    wordsnum总字数
    readnum阅读量
    articles_countnum包含文章数
    statenum1
    reasonstr空串
    apply_timestr空串
    check_timestr空串

    示例:

    curl -X GET 'https://api.bilibili.com/x/article/up/lists' \
    +    --data-urlencode 'mid=2859372' \
    +    --data-urlencode 'sort=0'
    +
    点击查看
    {
    +  "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.html b/docs/audio/action.html new file mode 100644 index 0000000000..612ca5663d --- /dev/null +++ b/docs/audio/action.html @@ -0,0 +1,57 @@ + + + + + + + + + 音频投币&收藏 | BAC Document + + + + +

    音频投币&收藏

    查询音频收藏状态

    https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:账号未登陆
    7201006:该音频不存在或已被下架
    msgstr错误信息默认为success
    databool是否收藏false:未收藏
    true:已收藏

    示例:

    查询音频au13598的收藏状态

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll' \
    +--data-urlencode 'sid=13598' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "success",
    +    "data": true
    +}
    +

    查询音频投币数

    https://www.bilibili.com/audio/music-service-c/web/coin/audio

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:账号未登陆
    7201006:该音频不存在或已被下架
    msgstr错误信息默认为success
    datanum投币数量0为未投币,上限为2

    示例:

    查询音频au13598的投币数

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/coin/audio' \
    +--data-urlencode 'sid=15664' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "success",
    +    "data": 1
    +}
    +

    投币音频

    https://www.bilibili.com/audio/music-service-c/web/coin/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    sidnum音频 auid必要
    multiplynum投币数量(最大为 2)必要
    csrfstrCSRF Token(位于 cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:账号未登陆
    7201006:该音频不存在或已被下架
    msgstr错误信息默认为 0
    datastr当前投币数量0 为未投币,上限为 2

    示例:

    为音频au13598投币

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/coin/add' \
    +--data-urlencode 'sid=15664' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "0",
    +    "data": "1"
    +}
    +
    + + + diff --git a/docs/audio/info.html b/docs/audio/info.html new file mode 100644 index 0000000000..f14b3bb99b --- /dev/null +++ b/docs/audio/info.html @@ -0,0 +1,200 @@ + + + + + + + + + 歌曲基本信息 | BAC Document + + + + +

    歌曲基本信息

    查询歌曲基本信息

    https://www.bilibili.com/audio/music-service-c/web/song/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    7201006:该音频不存在或已被下架
    72010027:版权音乐重定向
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    idnum音频auid
    uidnumUP主mid
    unamestrUP主昵称
    authorstr作者名
    titlestr歌曲标题
    coverstr封面图片url
    introstr歌曲简介
    lyricstrlrc歌词url
    crtypenum1作用尚不明确
    durationnum歌曲时间长度单位为秒
    passtimenum歌曲发布时间时间戳
    curtimenum当前请求时间时间戳
    aidnum关联稿件avid无为0
    bvidstr关联稿件bvid无为空
    cidnum关联视频cid无为0
    msidnum0作用尚不明确
    attrnum0作用尚不明确
    limitnum0作用尚不明确
    activityIdnum0作用尚不明确
    limitdescstr作用尚不明确
    ctimenull-作用尚不明确
    statisticobj状态数
    vipInfoobjUP主会员状态
    collectIdsarray歌曲所在的收藏夹mlid需要登录(SESSDATA)
    coin_numnum投币数

    data中的statistic对象:

    字段类型内容备注
    sidnum音频auid
    playnum播放次数
    collectnum收藏数
    commentnum评论数
    sharenum分享数

    data中的vipInfo对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月会员
    2:年会员
    statusnum会员状态0:无
    1:有
    due_datenum会员到期时间时间戳 毫秒
    vip_pay_typenum会员开通状态0:无
    1:有

    data中的collectIds数组:

    类型内容备注
    0num第1个所在的收藏夹mlid
    nnum第(n+1)个所在的收藏夹mlid
    ……num…………

    示例:

    查询音频au13598的基本信息

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/song/info' \
    +--data-urlencode 'sid=13598' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    dataarrayTAG列表无为空

    data数组:

    类型内容备注
    0strTAG1
    nstrTAG(n+1)
    ……str…………

    data数组中的对象:

    字段类型内容备注
    typestrsong作用尚不明确
    subtypenum???作用尚不明确
    keynumTAG id??作用尚不明确
    infostrTAG名

    示例:

    查询音频au15664的TAG

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/tag/song' \
    +--data-urlencode 'sid=15664'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    dataarray成员类型列表无为空

    data数组:

    类型内容备注
    0str成员类型1
    nstr成员类型(n+1)
    ……str…………

    data数组中的对象:

    字段类型内容备注
    listarray成员列表
    typenum成员类型代码1:歌手
    2:作词
    3:作曲
    4:编曲
    5:后期/混音
    7:封面制作
    8:音源
    9:调音
    10:演奏
    11:乐器
    127:UP主

    data数组中的对象中的list数组:

    类型内容备注
    0str成员1
    nstr成员(n+1)
    ……str…………

    list数组中的对象:

    字段类型内容备注
    midnum0作用尚不明确
    namestr成员名
    member_idnum成员id??作用尚不明确

    示例:

    查询音频au815861的创作成员信息

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/member/song' \
    +--data-urlencode 'sid=815861'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    data正确时:str
    错误时:null
    lrc格式歌词信息无为空

    示例:

    获取音频au15664的歌词信息

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/song/lyric' \
    +--data-urlencode 'sid=15664' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.html b/docs/audio/music_list.html new file mode 100644 index 0000000000..bb0b2f49d6 --- /dev/null +++ b/docs/audio/music_list.html @@ -0,0 +1,455 @@ + + + + + + + + + 歌单&音频收藏夹详细信息 | BAC Document + + + + +

    歌单&音频收藏夹详细信息

    查询自己创建的歌单

    https://www.bilibili.com/audio/music-service-c/web/collections/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    url参数:

    参数名类型内容必要性备注
    pnnum页码必要
    psnum每页项数必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    curPagenum当前页码
    pageCountnum总计页数
    totalSizenum总计收藏夹数
    pageSizenum当前页面项数
    dataarray歌单列表

    data中的data数组:

    类型内容备注
    0obj音频收藏夹mlid1
    nobj音频收藏夹mlid(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum音频收藏夹mlid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr歌单标题
    typenum收藏夹属性0:普通收藏夹
    1:默认收藏夹
    publishednum是否公开0:不公开
    1:公开
    coverstr歌单封面图片url
    ctimenum歌单创建时间时间戳
    songnum歌单中的音乐数量
    descstr歌单备注信息
    sidsarray歌单中的音乐
    menuIdnum音频收藏夹对应的歌单amid
    statisticobj歌单状态数信息

    data中的sids数组:

    类型内容备注
    0num收藏的音频auid1
    nnum收藏的音频auid(n+1)按照歌单顺序排列
    ……num…………

    data中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum播放数
    collectnum收藏数
    commentnull评论数
    sharenum分享数

    示例:

    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;'
    +

    共计创建了两个歌单,如下

    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    sidnum音频收藏夹mlid必要必须为默认收藏夹mlid

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    idnum音频收藏夹mlid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr默认歌单恒为默认歌单
    typenum1恒为1
    publishednum是否公开0:不公开
    1:公开
    coverstr歌单封面图片url
    ctimenum歌单创建时间时间戳
    songnum歌单中的音乐数量
    descstr恒为空
    sidsarray歌单中的音乐
    menuIdnum音频收藏夹对应的歌单amid与普通歌单不同通用
    statisticobj歌单状态数信息

    data中的sids数组:

    类型内容备注
    0num收藏的音频auid1
    nnum收藏的音频auid(n+1)按照歌单顺序排列
    ……num…………

    data中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum0
    collectnum0
    commentnull-
    sharenum0

    示例:

    查询我的默认歌单,id为15967839

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/info' \
    +--data-urlencode 'sid=15967839 ' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码必要
    psnum每页项数必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    curPagenum当前页码
    pageCountnum总计页数
    totalSizenum总计收藏夹数
    pageSizenum当前页面项数
    dataarray歌单列表

    data中的data数组:

    类型内容备注
    0obj音频收藏夹mlid1
    nobj音频收藏夹mlid(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    menuIdnum音频收藏夹对应的歌单amid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr歌单标题
    coverstr歌单封面图片url
    introstr歌单介绍
    typenum歌单属性1:普通歌单
    2:置顶歌单
    5:PGC歌单
    offnum歌单是否公开0:公开
    1:私密
    ctimenum歌单创建时间时间戳
    curtimenum当前时间时间戳
    statisticobj歌单状态数信息
    snumnum歌单包含歌曲个数

    data中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum播放数
    collectnum收藏数
    commentnum评论数
    sharenum分享数

    示例:

    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

    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码必要
    psnum每页项数必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    72010002:未登录
    msgstr错误信息默认为success
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    curPagenum当前页码
    pageCountnum总计页数
    totalSizenum总计收藏夹数
    pageSizenum当前页面项数
    dataarray歌单列表

    data中的data数组:

    类型内容备注
    0obj音频收藏夹mlid1
    nobj音频收藏夹mlid(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    menuIdnum音频收藏夹对应的歌单amid
    uidnum创建用户mid
    unamestr创建用户昵称
    titlestr歌单标题
    coverstr歌单封面图片url
    introstr歌单介绍
    typenum歌单属性1:普通歌单
    2:置顶歌单
    5:PGC歌单
    offnum歌单是否公开0:公开
    1:私密
    ctimenum歌单创建时间时间戳
    curtimenum当前时间时间戳
    statisticobj歌单状态数信息
    snumnum歌单包含歌曲个数
    audiosarray歌单中的音乐信息(部分)

    data数组中的statistic对象:

    字段类型内容备注
    sidnum音频收藏夹对应的歌单amid
    playnum收藏数
    collectnum点赞数
    commentnum评论数
    sharenum分享数

    data数组中的audios数组:

    类型内容备注
    0obj音频1
    nobj音频(n+1)
    ……obj…………

    audios数组中的audios对象:

    字段类型内容备注
    idnum音频id
    titlestr音频标题
    durationnum音频时长单位:秒(s)

    示例:

    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

    查看响应示例:
    {
    +    "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.html b/docs/audio/musicstream_url.html new file mode 100644 index 0000000000..dfc4f4050f --- /dev/null +++ b/docs/audio/musicstream_url.html @@ -0,0 +1,124 @@ + + + + + + + + + 音频流URL | BAC Document + + + + +

    音频流URL

    音质qn参数定义

    音质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参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    7201006:未找到或已下架
    72000000:请求错误
    msgstr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    sidnum音频auid
    typenum音质标识-1:试听片段(192K)
    1:192K
    infostr作用尚不明确
    timeoutnum有效时长单位为秒
    一般为3h
    sizenum文件大小单位为字节
    type为-1时size为0
    cdnsarray音频流url
    qualitiesnull-
    titlenull-
    covernull-

    data对象的cdns数组:

    类型内容备注
    0str音频流url
    1str备用音频流url

    示例:

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \
    +--data-urlencode 'sid=sid=15664'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    songidnum音频auid必要
    qualitynum音质代码必要详情见上表
    privilegenum必须为2必要
    midnum当前用户mid必要可为任意值
    platformstr平台标识必要可为任意值

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    7201006:未找到或已下架
    72000000:请求错误
    msgstr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    sidnum音频auid
    typenum音质标识-1:试听片段(192K)
    0:128K
    1:192K
    2:320K
    3:FLAC
    infostr作用尚不明确
    timeoutnum有效时长单位为秒
    一般为3h
    sizenum文件大小单位为字节
    type为-1时size为0
    cdnsarray音频流url
    qualitiesarray音质列表
    titlestr音频标题
    coverstr音频封面url

    data对象的cdns数组:

    类型内容备注
    0str音频流url
    1str备用音频流url

    data对象的qualities数组:

    类型内容备注
    0obj音质1音质由高向低顺序
    nobj音质(n+1)

    qualities数组中的对象:

    字段类型内容备注
    typenum音质代码详情见上表
    descstr音质名称
    sizenum该音质的文件大小单位为字节
    bpsstr比特率标签
    tagstr音质标签
    requirenum是否需要会员权限0:不需要
    1:需要
    requiredescstr会员权限标签

    示例:

    获取音频au682118的音频流url,音质为3(无损)

    Cookie方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +    "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为例:

    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/rank.html b/docs/audio/rank.html new file mode 100644 index 0000000000..8a3a5222a8 --- /dev/null +++ b/docs/audio/rank.html @@ -0,0 +1,944 @@ + + + + + + + + + 音频榜单 | BAC Document + + + + +

    音频榜单

    以下接口均来自页面 https://music.bilibili.com/pc/rank

    获取音频榜单每期列表

    https://api.bilibili.com/x/copyright-music-publicity/toplist/all_period

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    list_typenum榜单类型必要1:热榜
    2:原创榜
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj年份索引

    data中的list对象:

    字段类型内容备注
    {年份}array对应年份索引的每期信息
    ……array……

    list中的{年份}数组:

    类型内容备注
    0obj该年中的单期数据
    ……obj…………

    {年份}数组中的对象:

    字段类型内容备注
    IDnum榜单 id
    priodnum榜单期数
    publish_timenum发布时间秒时间戳

    示例:

    curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/all_period' \
    +	--data-urlencode 'list_type=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": {
    +            "2022": [
    +                {
    +                    "ID": 38,
    +                    "priod": 29,
    +                    "publish_time": 1672394399
    +                },
    +                {
    +                    "ID": 36,
    +                    "priod": 28,
    +                    "publish_time": 1671789599
    +                },
    +                {
    +                    "ID": 34,
    +                    "priod": 27,
    +                    "publish_time": 1671184800
    +                },
    +                {
    +                    "ID": 32,
    +                    "priod": 26,
    +                    "publish_time": 1670579999
    +                },
    +                {
    +                    "ID": 30,
    +                    "priod": 25,
    +                    "publish_time": 1669976540
    +                },
    +                {
    +                    "ID": 28,
    +                    "priod": 24,
    +                    "publish_time": 1669370757
    +                },
    +                {
    +                    "ID": 26,
    +                    "priod": 23,
    +                    "publish_time": 1668766987
    +                },
    +                {
    +                    "ID": 22,
    +                    "priod": 22,
    +                    "publish_time": 1668163419
    +                },
    +                {
    +                    "ID": 21,
    +                    "priod": 21,
    +                    "publish_time": 1667558276
    +                },
    +                {
    +                    "ID": 20,
    +                    "priod": 20,
    +                    "publish_time": 1666951199
    +                },
    +                {
    +                    "ID": 19,
    +                    "priod": 19,
    +                    "publish_time": 1666346399
    +                },
    +                {
    +                    "ID": 18,
    +                    "priod": 18,
    +                    "publish_time": 1665741599
    +                },
    +                {
    +                    "ID": 17,
    +                    "priod": 17,
    +                    "publish_time": 1665136799
    +                },
    +                {
    +                    "ID": 16,
    +                    "priod": 16,
    +                    "publish_time": 1664531999
    +                },
    +                {
    +                    "ID": 15,
    +                    "priod": 15,
    +                    "publish_time": 1663927199
    +                },
    +                {
    +                    "ID": 14,
    +                    "priod": 14,
    +                    "publish_time": 1663322399
    +                },
    +                {
    +                    "ID": 13,
    +                    "priod": 13,
    +                    "publish_time": 1662717599
    +                },
    +                {
    +                    "ID": 12,
    +                    "priod": 12,
    +                    "publish_time": 1662113559
    +                },
    +                {
    +                    "ID": 11,
    +                    "priod": 11,
    +                    "publish_time": 1661508657
    +                },
    +                {
    +                    "ID": 10,
    +                    "priod": 10,
    +                    "publish_time": 1660903199
    +                },
    +                {
    +                    "ID": 9,
    +                    "priod": 9,
    +                    "publish_time": 1660298400
    +                },
    +                {
    +                    "ID": 8,
    +                    "priod": 8,
    +                    "publish_time": 1659693599
    +                },
    +                {
    +                    "ID": 7,
    +                    "priod": 7,
    +                    "publish_time": 1659088799
    +                },
    +                {
    +                    "ID": 6,
    +                    "priod": 6,
    +                    "publish_time": 1658483999
    +                },
    +                {
    +                    "ID": 5,
    +                    "priod": 5,
    +                    "publish_time": 1657879200
    +                },
    +                {
    +                    "ID": 4,
    +                    "priod": 4,
    +                    "publish_time": 1657274399
    +                },
    +                {
    +                    "ID": 3,
    +                    "priod": 3,
    +                    "publish_time": 1656669600
    +                },
    +                {
    +                    "ID": 2,
    +                    "priod": 2,
    +                    "publish_time": 1656064800
    +                },
    +                {
    +                    "ID": 1,
    +                    "priod": 1,
    +                    "publish_time": 1655460091
    +                }
    +            ],
    +            "2023": [
    +                {
    +                    "ID": 76,
    +                    "priod": 48,
    +                    "publish_time": 1683885696
    +                },
    +                {
    +                    "ID": 74,
    +                    "priod": 47,
    +                    "publish_time": 1683281010
    +                },
    +                {
    +                    "ID": 72,
    +                    "priod": 46,
    +                    "publish_time": 1682675999
    +                },
    +                {
    +                    "ID": 70,
    +                    "priod": 45,
    +                    "publish_time": 1682071442
    +                },
    +                {
    +                    "ID": 68,
    +                    "priod": 44,
    +                    "publish_time": 1681466400
    +                },
    +                {
    +                    "ID": 66,
    +                    "priod": 43,
    +                    "publish_time": 1680861599
    +                },
    +                {
    +                    "ID": 64,
    +                    "priod": 42,
    +                    "publish_time": 1680256799
    +                },
    +                {
    +                    "ID": 62,
    +                    "priod": 41,
    +                    "publish_time": 1679652088
    +                },
    +                {
    +                    "ID": 60,
    +                    "priod": 40,
    +                    "publish_time": 1679047199
    +                },
    +                {
    +                    "ID": 58,
    +                    "priod": 39,
    +                    "publish_time": 1678442399
    +                },
    +                {
    +                    "ID": 56,
    +                    "priod": 38,
    +                    "publish_time": 1677837600
    +                },
    +                {
    +                    "ID": 54,
    +                    "priod": 37,
    +                    "publish_time": 1677232800
    +                },
    +                {
    +                    "ID": 52,
    +                    "priod": 36,
    +                    "publish_time": 1676628000
    +                },
    +                {
    +                    "ID": 50,
    +                    "priod": 35,
    +                    "publish_time": 1676023199
    +                },
    +                {
    +                    "ID": 48,
    +                    "priod": 34,
    +                    "publish_time": 1675418399
    +                },
    +                {
    +                    "ID": 46,
    +                    "priod": 33,
    +                    "publish_time": 1674813599
    +                },
    +                {
    +                    "ID": 44,
    +                    "priod": 32,
    +                    "publish_time": 1674208799
    +                },
    +                {
    +                    "ID": 42,
    +                    "priod": 31,
    +                    "publish_time": 1673603999
    +                },
    +                {
    +                    "ID": 40,
    +                    "priod": 30,
    +                    "publish_time": 1672999199
    +                }
    +            ]
    +        }
    +    }
    +}
    +

    查询音频榜单单期信息

    https://api.bilibili.com/x/copyright-music-publicity/toplist/detail

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    list_idnum榜单 id必要获取音频榜单每期列表
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listen_fidnum畅听版歌单收藏夹原始 id非真实收藏夹 mlid
    需要在后方拼接用户 mid 的后两位,如16484498->1648449844
    all_fidnum完整版歌单收藏夹原始 id非真实收藏夹 mlid
    算法同上
    fav_midnum绑定收藏夹用户的 mid例如1164440244音乐热榜botopen in new window账号)
    cover_urlstr榜单封面 url
    is_subscribebool是否已订阅榜单true:已订阅
    false:未订阅
    需要登录(Cookie 或 APP),未登录恒为false
    listen_countnum平台有版权音频的数量

    示例:

    查询 第 48 期音频榜单open in new window(id=76) 信息

    curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/detail' \
    +	--data-urlencode 'list_id=76'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "listen_fid": 23317138,
    +        "all_fid": 23672948,
    +        "fav_mid": 1164440244,
    +        "cover_url": "http://i0.hdslb.com/bfs/music-publicity/d8509dc6ee94dd5cc4658a2cbca4f525b4396df5.png",
    +        "is_subscribe": false,
    +        "listen_count": 5
    +    }
    +}
    +

    获取音频榜单单期内容

    https://api.bilibili.com/x/copyright-music-publicity/toplist/music_list

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    list_idnum榜单 id必要获取音频榜单每期列表
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray内容列表

    data中的list数组:

    类型内容备注
    0obj榜单内容 1
    nobj榜单内容 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    music_idstr音频 MAID例如MA409252256362326366
    music_titlestr音频标题
    singerstr音频作者
    albumstr音频专辑
    mv_aidnum音频 MV 的 avid若该音频无 MV 则该字段为 0
    mv_bvidstr音频 MV 的 bvid
    mv_coverstr音频封面 url
    heatnum热度值
    ranknum排序值1 为最高排序,DESC 方式
    can_listenbool平台是否有版权true:平台有版权
    false:平台无版权
    recommendationstr(?)
    creation_aidnum关联稿件 avid
    creation_bvidstr关联稿件 bvid
    creation_coverstr关联稿件封面 url
    creation_titlestr关联稿件标题
    creation_upnum关联稿件 UP 主 mid
    creation_nicknamestr关联稿件 UP 主昵称
    creation_durationnum关联稿件时长单位为秒
    creation_playnum关联稿件播放量
    creation_reasonstr关联稿件二级分区名
    achievementsarray获得成就
    material_idnum(?)
    material_use_numnum(?)
    material_durationnum(?)
    material_shownum(?)
    song_typenum(?)

    list数组中的对象中的achievements数组:

    类型内容备注
    0str成就文案 1
    nstr成就文案 (n+1)
    ……str…………

    示例:

    查询 第 48 期音频榜单open in new window(id=76) 榜单内容列表

    curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/music_list' \
    +	--data-urlencode 'list_id=76'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "music_id": "MA409252256362326366",
    +                "music_title": "極楽浄土",
    +                "singer": "GARNiDELiA",
    +                "album": "約束 -Promise code-",
    +                "mv_aid": 28361833,
    +                "mv_bvid": "BV1us41137Fd",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/07e0d9826c574e37df25387cab6df062.jpg",
    +                "heat": 5328979,
    +                "rank": 1,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 910787823,
    +                "creation_bvid": "BV1HM4y1b79Z",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/5780a05437ec9880301ed093537d6af97b0f8bdb.jpg",
    +                "creation_title": "【MARiA】乘风2023初舞台!《极乐净土》,虽迟但到!",
    +                "creation_up": 110352985,
    +                "creation_nickname": "GARNiDELiA",
    +                "creation_duration": 100,
    +                "creation_play": 13487670,
    +                "creation_reason": "官方现场",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA456045402056087707",
    +                "music_title": "アイドル",
    +                "singer": "YOASOBI",
    +                "album": "アイドル",
    +                "mv_aid": 227499491,
    +                "mv_bvid": "BV17h411u7sb",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/4bf2fe90e9d2361c3c4ddf59064c6e69.jpg",
    +                "heat": 1856277,
    +                "rank": 2,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 952765045,
    +                "creation_bvid": "BV1Ws4y1A7fS",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/8326350bab039ffee9274d7e1f94240d170fa096.jpg",
    +                "creation_title": "【中文字幕】我推的孩子「アイドル」官方MV(4K 60帧/Hi-Res)",
    +                "creation_up": 11585165,
    +                "creation_nickname": "爱莉丝青贝尔克",
    +                "creation_duration": 226,
    +                "creation_play": 3742892,
    +                "creation_reason": "音乐MV",
    +                "achievements": [
    +                    "本期排名持平",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA458652518440821364",
    +                "music_title": "野火wildfire",
    +                "singer": "HOYO- Mix,Jonathan Steingard",
    +                "album": "雪融于烬",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/e0825a2cfee22ce77f02d4d80826a1d9.jpg",
    +                "heat": 1767135,
    +                "rank": 3,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 355732312,
    +                "creation_bvid": "BV1ZX4y117Dx",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/c98bd629876e8b7b4c056d39bcfeaabe7327e996.jpg",
    +                "creation_title": "这首“野火”神曲,我还能再听亿遍!!!",
    +                "creation_up": 394861137,
    +                "creation_nickname": "Hanserのcece",
    +                "creation_duration": 219,
    +                "creation_play": 2158925,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "本期排名↑1",
    +                    "最高排名3"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA459088929228874460",
    +                "music_title": "不问别离",
    +                "singer": "指尖笑",
    +                "album": "不问别离",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/b1507c1649500a0dcf0295b4b68e4b15.jpg",
    +                "heat": 1576823,
    +                "rank": 4,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 740818022,
    +                "creation_bvid": "BV1Sk4y1E7qH",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/5301b2fee7ad520c8946b5eb92888cf8be563a80.jpg",
    +                "creation_title": "日推歌单 | \"我叹那春花秋月不问别离 长风起孤城笛声里全是你\" |《不问ciaga》",
    +                "creation_up": 550445292,
    +                "creation_nickname": "peach63",
    +                "creation_duration": 164,
    +                "creation_play": 274898,
    +                "creation_reason": "音乐MV",
    +                "achievements": [
    +                    "本期排名↑10",
    +                    "最高排名4"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA459819223808501000",
    +                "music_title": "Spicy",
    +                "singer": "aespa",
    +                "album": "MY WORLD - The 3rd Mini Album",
    +                "mv_aid": 570920682,
    +                "mv_bvid": "BV1qz4y1a7m8",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6455687e7d72dd838ffd2aa753fd7761.jpg",
    +                "heat": 1441365,
    +                "rank": 5,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 570920682,
    +                "creation_bvid": "BV1qz4y1a7m8",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/cd5456735bd645343a51b8df9b4a91236b08e657.jpg",
    +                "creation_title": "aespa《Spicy》MV",
    +                "creation_up": 3493085782739496,
    +                "creation_nickname": "SMTOWN",
    +                "creation_duration": 205,
    +                "creation_play": 2363321,
    +                "creation_reason": "官方MV",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名5"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA458946536466866804",
    +                "music_title": "UNFORGIVEN (feat. Nile Rodgers)",
    +                "singer": "LE SSERAFIM,Nile Rodgers",
    +                "album": "UNFORGIVEN",
    +                "mv_aid": 528370662,
    +                "mv_bvid": "BV1LM41137Pc",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/47e6685cfe44185ec4daab5e765e3b26.jpg",
    +                "heat": 1362593,
    +                "rank": 6,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 698312930,
    +                "creation_bvid": "BV1wm4y1y76i",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/4f097f5067fc3408118f7d59b2c36d8278660dd9.jpg",
    +                "creation_title": "假如让金采源唱全曲......",
    +                "creation_up": 496743369,
    +                "creation_nickname": "YuueFriloeyyy_",
    +                "creation_duration": 183,
    +                "creation_play": 319267,
    +                "creation_reason": "歌曲演唱",
    +                "achievements": [
    +                    "本期排名↑3",
    +                    "最高排名6"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA451591354456234292",
    +                "music_title": "雪 Distance",
    +                "singer": "Capper,罗言",
    +                "album": "Uniconfication",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/5899008cea7ed157b8bdb6f9b89dd7ff.jpg",
    +                "heat": 1233174,
    +                "rank": 7,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 355903423,
    +                "creation_bvid": "BV1QX4y127jq",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/e3542cf8d7cf7cc58268c840d845bb12d4c52662.jpg",
    +                "creation_title": "⚡️“可是雪啊,埋进土里”⚡️",
    +                "creation_up": 22169833,
    +                "creation_nickname": "寒了个羽",
    +                "creation_duration": 158,
    +                "creation_play": 2622705,
    +                "creation_reason": "音乐创作",
    +                "achievements": [
    +                    "本期排名↓1",
    +                    "最高排名3"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA460246447678301091",
    +                "music_title": "Ghost Face (鬼脸) (LIVE版)",
    +                "singer": "法老",
    +                "album": "中国说唱巅峰对决2023 第一期",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/0d4050feb7cac1a568849832d5fa9f67.jpg",
    +                "heat": 1163291,
    +                "rank": 8,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 355995337,
    +                "creation_bvid": "BV1qX4y1y78r",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/f5e7a51dbe1f48441042dad1e45148c400a3f9fe.jpg",
    +                "creation_title": "【法老Pharaoh】虽迟但到!说唱巅峰对决《Ghost Face》live",
    +                "creation_up": 12807175,
    +                "creation_nickname": "法老爷爷",
    +                "creation_duration": 79,
    +                "creation_play": 885856,
    +                "creation_reason": "官方现场",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名8"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA458974797167092444",
    +                "music_title": "F*ck My Life",
    +                "singer": "SEVENTEEN",
    +                "album": "SEVENTEEN 10th Mini Album 'FML'",
    +                "mv_aid": 313423265,
    +                "mv_bvid": "BV1tP41117mv",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6723df38fcca9b2ab85b564e3809426e.jpg",
    +                "heat": 735517,
    +                "rank": 9,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 313423265,
    +                "creation_bvid": "BV1tP41117mv",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/38377552bd74cc32851d6466343dc3a26983c3b6.jpg",
    +                "creation_title": "SEVENTEEN 'F*ck My Life' Official MV",
    +                "creation_up": 692206640,
    +                "creation_nickname": "SEVENTEEN",
    +                "creation_duration": 220,
    +                "creation_play": 1008830,
    +                "creation_reason": "官方MV",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名9"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA460247474041267107",
    +                "music_title": "Control's Wishes",
    +                "singer": "Steven Grove,塞壬唱片-MSR",
    +                "album": "孤星OST",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6068f2c64c6796f68b8dae7772f891ac.jpg",
    +                "heat": 628233,
    +                "rank": 10,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 740625544,
    +                "creation_bvid": "BV1ck4y1E7KJ",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/11381997120391d655c91b19bc08e110ca8201e5.jpg",
    +                "creation_title": "【小提琴/钢琴】明日方舟四周年孤星PV曲《Control's Wishes》",
    +                "creation_up": 2016022052,
    +                "creation_nickname": "-桑榆墨景-",
    +                "creation_duration": 193,
    +                "creation_play": 37881,
    +                "creation_reason": "器乐演奏",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名10"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA459266635128138957",
    +                "music_title": "花园种花(在小小的花园里种小小的花)",
    +                "singer": "桃子老师花开富贵",
    +                "album": "花园种花",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/fb1d6a44bb8337edf6c9d32c421e9c89.jpg",
    +                "heat": 623604,
    +                "rank": 11,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 398216313,
    +                "creation_bvid": "BV1uo4y1x7UF",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/9562b126010376f7dcfedf0397170696eb1a19c5.jpg",
    +                "creation_title": "姬子老师:开拓者家长们,路上有点堵车,这节挖呀挖呀挖课来晚了",
    +                "creation_up": 391636983,
    +                "creation_nickname": "动漫跳舞姬",
    +                "creation_duration": 33,
    +                "creation_play": 566777,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "新晋上榜",
    +                    "最高排名11"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA455203227252613620",
    +                "music_title": "Cupid",
    +                "singer": "FIFTY FIFTY",
    +                "album": "The Beginning: Cupid",
    +                "mv_aid": 226830843,
    +                "mv_bvid": "BV1sh41137rs",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/e91891c4e2573f4d4ada329db9a86b30.jpg",
    +                "heat": 562273,
    +                "rank": 12,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 485862497,
    +                "creation_bvid": "BV19T411b7nE",
    +                "creation_cover": "http://i2.hdslb.com/bfs/archive/ece27463e3eb13f9fbbcb799436375495a795e3c.jpg",
    +                "creation_title": "挑战在cp29和一百位coser比心!",
    +                "creation_up": 1477074,
    +                "creation_nickname": "菌儿rikushi",
    +                "creation_duration": 148,
    +                "creation_play": 1216246,
    +                "creation_reason": "COSPLAY创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名12"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA457806074590836885",
    +                "music_title": "星间旅行",
    +                "singer": "HOYO-MiX,茶理理理子",
    +                "album": "崩坏星穹铁道-星间旅行 Interstellar Journ",
    +                "mv_aid": 612992200,
    +                "mv_bvid": "BV1rh4y1n77f",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/20ddff696bbbd7f00fc8b76f7b5334f7.jpg",
    +                "heat": 515238,
    +                "rank": 13,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 995418876,
    +                "creation_bvid": "BV1vs4y197gt",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/2d6997320bd2bb20f50b363a894033f325fed871.jpg",
    +                "creation_title": "《星穹铁道玩家现状》",
    +                "creation_up": 551188239,
    +                "creation_nickname": "企鹅带带北极熊",
    +                "creation_duration": 88,
    +                "creation_play": 1570181,
    +                "creation_reason": "音乐创作",
    +                "achievements": [
    +                    "本期排名↓10",
    +                    "最高排名2"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA434298821720206219",
    +                "music_title": "可愛くてごめん (feat. かぴ)",
    +                "singer": "HoneyWorks,かぴ",
    +                "album": "告白実行委員会 -FLYING SONGS- 恋してる",
    +                "mv_aid": 779733306,
    +                "mv_bvid": "BV1iy4y1Z7Ri",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/45ce3f52d31386741589a3a5ca9a420c.jpg",
    +                "heat": 438720,
    +                "rank": 14,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 862702118,
    +                "creation_bvid": "BV1gG4y117nV",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/38d94515fe5f6294bf7712d8b26eb049ec3cf627.jpg",
    +                "creation_title": "这么可爱真是抱歉!❤️(*/∇\*)天台宅舞",
    +                "creation_up": 434476793,
    +                "creation_nickname": "优联酱uu",
    +                "creation_duration": 140,
    +                "creation_play": 1199819,
    +                "creation_reason": "舞蹈创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名2"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA440555130794857381",
    +                "music_title": "阳光开朗大男孩",
    +                "singer": "卦者灵风",
    +                "album": "阳光开朗大男孩",
    +                "mv_aid": 421697247,
    +                "mv_bvid": "BV1z341187Y9",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/220c674ca22acb91114f6e0705d0f426.jpg",
    +                "heat": 371851,
    +                "rank": 15,
    +                "can_listen": true,
    +                "recommendation": "",
    +                "creation_aid": 995281134,
    +                "creation_bvid": "BV1as4y1d7QR",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/4628837eb5baf879a2be79b16836c90e0466dd6c.jpg",
    +                "creation_title": "【灵能手书】阳光开朗大男孩",
    +                "creation_up": 8504036,
    +                "creation_nickname": "kipoki",
    +                "creation_duration": 81,
    +                "creation_play": 627123,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA406539170333366962",
    +                "music_title": "此生不换",
    +                "singer": "青鸟飞鱼",
    +                "album": "仙剑奇侠传三 电视剧原声带",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/450bd04688ef6a691b1adb816ace6155.jpg",
    +                "heat": 361410,
    +                "rank": 16,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 545438082,
    +                "creation_bvid": "BV1Cq4y1J7Ge",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/1b8b80f7ba9dccaf648cfb641b40e1d38965a4a4.jpg",
    +                "creation_title": "开口爷青回!男生宿舍回忆向翻唱仙剑3插曲《此生不换》|我和室友的翻唱日常.",
    +                "creation_up": 346782115,
    +                "creation_nickname": "陈家淇_B11",
    +                "creation_duration": 258,
    +                "creation_play": 2976435,
    +                "creation_reason": "歌曲演唱",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名15"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA444928930235832050",
    +                "music_title": "太空电梯",
    +                "singer": "阿鲲",
    +                "album": "流浪地球2电影原声大碟",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/c64c10b911ace04ae45b3172abe3a1d8.jpg",
    +                "heat": 352572,
    +                "rank": 17,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 269421756,
    +                "creation_bvid": "BV1ic41157cc",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/39a27b9d804750325b260f6bc69a3afa8c01a1dc.jpg",
    +                "creation_title": "都说是涂装问题了,看,这战斗力不就上来了吗!",
    +                "creation_up": 478832800,
    +                "creation_nickname": "大刀王五EP",
    +                "creation_duration": 87,
    +                "creation_play": 706377,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名1"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA400017093531020491",
    +                "music_title": "兰亭序",
    +                "singer": "周杰伦",
    +                "album": "魔杰座",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/a03f7d174c3b01e4c6b3907a115c5434.jpg",
    +                "heat": 347017,
    +                "rank": 18,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 825572396,
    +                "creation_bvid": "BV1kg4y1L7v6",
    +                "creation_cover": "http://i0.hdslb.com/bfs/archive/59e8436511ff45402e3d5dcf2c01feeb94897103.jpg",
    +                "creation_title": "无关风月我题序等你回《兰亭序》",
    +                "creation_up": 628615890,
    +                "creation_nickname": "qqq还在梦里",
    +                "creation_duration": 125,
    +                "creation_play": 522133,
    +                "creation_reason": "歌曲演唱",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名6"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA457811156946443719",
    +                "music_title": "I'll Do It",
    +                "singer": "Heidi Montag",
    +                "album": "Superficial",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/e1d95f62257da69db1dc36e949f789f5.jpg",
    +                "heat": 345773,
    +                "rank": 19,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 313275936,
    +                "creation_bvid": "BV1XP411y7UD",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/c42e54074a50ee1eaddbd5495091c2152aad8ecf.jpg",
    +                "creation_title": "“嗨,老婆” 【崩坏星穹铁道】",
    +                "creation_up": 14158002,
    +                "creation_nickname": "Ishi丶",
    +                "creation_duration": 61,
    +                "creation_play": 103542,
    +                "creation_reason": "动画创作",
    +                "achievements": [
    +                    "本期排名↓12",
    +                    "最高排名6"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            },
    +            {
    +                "music_id": "MA409255441550338398",
    +                "music_title": "失恋阵线联盟",
    +                "singer": "草蜢",
    +                "album": "失恋阵线联盟",
    +                "mv_aid": 0,
    +                "mv_bvid": "",
    +                "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/5d6b27035d5f7c0e7781b779871aca04.jpg",
    +                "heat": 337176,
    +                "rank": 20,
    +                "can_listen": false,
    +                "recommendation": "",
    +                "creation_aid": 415864088,
    +                "creation_bvid": "BV1QV411b7CT",
    +                "creation_cover": "http://i1.hdslb.com/bfs/archive/8735563d73f86ef7073ed580a41e12c409bd2a5b.jpg",
    +                "creation_title": "年会舞蹈《失恋阵线联盟》完整版",
    +                "creation_up": 451425930,
    +                "creation_nickname": "舞大师舞蹈工作室",
    +                "creation_duration": 135,
    +                "creation_play": 5336890,
    +                "creation_reason": "舞蹈创作",
    +                "achievements": [
    +                    "重回榜单",
    +                    "最高排名20"
    +                ],
    +                "material_id": 0,
    +                "material_use_num": 0,
    +                "material_duration": 0,
    +                "material_show": 1,
    +                "song_type": 2
    +            }
    +        ]
    +    }
    +}
    +

    订阅或退订榜单

    https://api.bilibili.com/x/copyright-music-publicity/toplist/subscribe/update

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    statenum操作代码必要1:订阅
    2:退订
    list_idnum榜单 id非必要获取音频榜单每期列表
    csrfstrCSRF Token(位于cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 验证失败
    400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/copyright-music-publicity/toplist/subscribe/update' \
    +	--data-urlencode 'state=1' \
    +	--data-urlencode 'state=76' \
    +	--data-urlencode 'csrf=xxx' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/audio/status_number.html b/docs/audio/status_number.html new file mode 100644 index 0000000000..bbe345229d --- /dev/null +++ b/docs/audio/status_number.html @@ -0,0 +1,46 @@ + + + + + + + + + 音频状态数 | BAC Document + + + + +

    音频状态数

    歌曲状态数

    https://www.bilibili.com/audio/music-service-c/web/stat/song

    请求方式:GET

    唯缺投币数2333333

    url参数:

    参数名类型内容必要性备注
    sidnum音频auid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    72000000:参数错误
    msgstr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    sidnum音频auid
    playnum播放次数
    collectnum收藏数
    commentnum评论数
    sharenum分享数

    示例:

    查询歌曲au15664的状态数

    curl -G 'https://www.bilibili.com/audio/music-service-c/web/stat/song' \
    +--data-urlencode 'sid=15664'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "success",
    +    "data": {
    +        "sid": 15664,
    +        "play": 1377390,
    +        "collect": 44340,
    +        "comment": 2756,
    +        "share": 4114
    +    }
    +}
    +
    + + + diff --git a/docs/bangumi/follow.html b/docs/bangumi/follow.html new file mode 100644 index 0000000000..682a2b2fee --- /dev/null +++ b/docs/bangumi/follow.html @@ -0,0 +1,59 @@ + + + + + + + + + 追番相关 | BAC Document + + + + +

    追番相关

    追番

    https://api.bilibili.com/pgc/web/follow/add

    请求方式:POST

    鉴权方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    season_idstr剧集ssid必要
    csrfstrcsrf token(位于cookies中的bili_jct)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    messagestr信息成功时:success
    resultobj见下表

    根对象中的result对象:

    字段类型内容备注
    fmidnum0
    relationboolfalse
    statusnum2
    toaststr自己追的番就要好好看完哟^o^

    示例:

    追番ssid=41410的番剧

    curl -G 'https://api.bilibili.com/pgc/web/follow/add' \
    +--data-urlencode 'season_id=41410' \
    +--data-urlencode 'csrf=xxx' \
    +
    查看响应示例:
    {
    +  "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_idstr剧集ssid必要
    csrfstrcsrf token(位于cookies中的bili_jct)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    messagestr信息成功时:success
    resultobj见下表

    根对象中的result对象:

    字段类型内容备注
    fmidnum0
    relationbooltrue
    statusnum0
    toaststr已取消追番

    示例:

    取消ssid=41410的追番

    curl -G 'https://api.bilibili.com/pgc/web/follow/del' \
    +--data-urlencode 'season_id=41410' \
    +--data-urlencode 'csrf=xxx' \
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "success",
    +  "result": {
    +    "fmid": 0,
    +    "relation": false,
    +    "status": 0,
    +    "toast": "已取消追番"
    +  }
    +}
    +
    + + + diff --git a/docs/bangumi/info.html b/docs/bangumi/info.html new file mode 100644 index 0000000000..438e150228 --- /dev/null +++ b/docs/bangumi/info.html @@ -0,0 +1,617 @@ + + + + + + + + + 剧集基本信息 | BAC Document + + + + +

    剧集基本信息

    剧集基本信息(mdid方式)

    https://api.bilibili.com/pgc/review/user

    请求方式:GET

    鉴权方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    media_idstr剧集mdid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:错误
    messagestr错误信息默认为success
    resultobj信息本体

    result对象:

    字段类型内容备注
    mediaobj剧集信息
    reviewobj用户操作信息仅登录时存在此项

    result中的media对象:

    字段类型内容备注
    areasarray地区
    coverstr封面图片url
    horizontal_picturestr横板封面图片url
    media_idnum剧集mdid
    new_epobj最新一话信息
    ratingobj评分信息
    season_idnum剧集ssid
    share_urlurl剧集详情页连接
    titlestr标题
    typenum剧集类型id1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    6:漫画
    7:综艺
    type_namestr剧集类型

    media中的areas数组:

    类型内容备注
    0obj地区信息1
    nobj地区信息(n+1)
    ……obj……

    areas数组中的对象:

    字段类型内容备注
    idnum所属地区编号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:哈萨克斯坦
    namestr所属地区名称

    media中的new_ep对象:

    字段类型内容备注
    idnum最新一话的epid
    indexstr最新一话名称
    index_showstr最新一话显示名称eg. 第1话更新至第4话

    media中的rating对象:

    字段类型内容备注
    countnum总计评分人数
    scorenum评分

    result中的review对象:

    字段类型内容备注
    is_coinnum0作用尚不明确
    is_opennum1作用尚不明确

    示例:

    查询剧集md28220978的基本信息

    curl -G 'https://api.bilibili.com/pgc/review/user' \
    +--data-urlencode 'media_id=28220978' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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_idnum番剧ssid必要(可选)season_id与ep_id任选其一
    ep_idnum剧集epid必要(可选)season_id与ep_id任选其一

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    ttlnum1作用尚不明确
    resultobj信息本体

    result对象:

    字段类型内容备注
    activityobj参与的活动
    aliasstr作用尚不明确
    bkg_coverstr网页背景图片url无则为空
    coverstr剧集封面图片url
    episodesarray正片剧集列表
    evaluatestr简介
    jp_titlestr作用尚不明确
    linkstr简介页面url
    media_idnum剧集mdid
    modenum2作用尚不明确
    new_epobj更新信息
    paymentobj会员&付费信息若无相关内容则无此项
    positiveobj
    publishobj发布信息
    ratingobj评分信息若无相关内容则无此项
    recordstr备案号无则为空
    rightsobj属性标志信息
    season_idnum番剧ssid
    season_titlestr剧集标题
    seasonsarray同系列所有季信息
    sectionarray花絮、PV、番外等非正片内容若无相关内容则无此项
    seriesobj系列信息
    share_copystr《{标题}》+{备注}
    share_sub_titlestr备注
    share_urlstr番剧播放页面url
    showobj网页全屏标志
    square_coverstr方形封面图片url
    statobj状态数
    statusnum
    subtitlestr剧集副标题
    titlestr剧集标题
    totalnum总计正片集数未完结:大多为-1
    已完结:正整数
    typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    up_infoobjUP主信息若无相关内容则无此项

    result中的activity对象:

    字段类型内容备注
    head_bg_urlstr作用尚不明确
    idnum活动id
    titlestr活动标题

    result中的episodes数组:

    类型内容备注
    0obj正片第1集
    nobj正片第(n+1)集按照顺序排列
    ……obj

    episodes数组中的对象:

    字段类型内容备注
    aidnum单集稿件avid
    badgestr标签文字例如会员限免
    badge_infoobj
    badge_typenum
    bvidstr单集稿件bvid
    cidnum视频cid
    coverstr单集封面url
    dimensionobj分辨率信息
    fromstr
    idnum单集epid
    linkstr单集网页url
    long_titlestr单集完整标题
    pub_timenum发布时间时间戳
    pvnum0作用尚不明确
    release_datestr作用尚不明确
    rightsobj
    share_copystr《{标题}》+第n话+{单集完整标题}
    share_urlstr单集网页url
    short_linkstr单集网页url短链接
    statusnum
    subtitlestr单集副标题观看次数文字
    titlestr单集标题
    vidstr单集vidvupload_+{cid}

    result中的new_ep对象:

    字段类型内容备注
    descstr更新备注
    idnum最新一话epid
    is_newnum是否最新发布0:否
    1:是
    titlestr最新一话标题

    result中的payment对象:

    字段类型内容备注
    discountnum折扣100为原价
    pay_typeobj支付相关
    pricestr售价
    promotionstr推广信息
    vip_discountnum大会员折扣
    vip_first_promotionstr
    vip_pricestr大会员售价
    vip_promotionstr大会员推广信息

    payment中的pay_type对象:

    字段类型内容备注
    allow_discountnum启用折扣0:否
    1:是
    下同
    allow_packnum
    allow_ticketnum启用票券
    allow_time_limitnum启用时间限制
    allow_vip_discountnum启用大会员折扣
    forbid_bbnum禁止使用B币券

    result中的positive对象:

    字段类型内容备注
    idnum
    titlestr

    result中的publish对象:

    字段类型内容备注
    is_finishnum完结状态0:未完结
    1:已完结
    is_startednum是否发布0:未发布
    1:已发布
    pub_timestr发布时间YYYY-MM-DDD hh:mm:ss
    pub_time_showstr发布时间文字介绍
    unknow_pub_datenum0作用尚不明确
    weekdaynum0作用尚不明确

    result中的rating对象:

    字段类型内容备注
    countnum总计评分人数
    scorenum评分

    result中的rights对象:

    字段类型内容备注
    allow_bpnum
    allow_bp_ranknum
    allow_downloadnum
    allow_reviewnum
    area_limitnum
    ban_area_shownum
    can_watchnum
    copyrightstr版权标志bilibili:授权
    dujia:独家
    forbid_prenum
    is_cover_shownum
    is_previewnum
    only_vip_downloadnum
    resourcestr
    watch_platformnum

    result中的seasons数组:

    类型内容备注
    0obj同系列剧集1
    nobj同系列剧集(n+1)按照顺序排列
    ……obj

    seasons数组中的对象:

    字段类型内容备注
    badgestr
    badge_infoobj
    badge_typenum
    coverstr
    media_idstr
    new_epnum
    season_idobj
    season_titlenum
    season_typestr
    statobj

    result中的section数组:

    类型内容备注
    0obj其他内容块1
    nobj其他内容块(n+1)按照顺序排列
    ……obj

    section数组中的对象:

    字段类型内容备注
    episode_idnum0
    episodesarray板块内容
    idnum板块id?
    titlestr板块标题
    typenum

    result中的series对象:

    字段类型内容备注
    series_idnum系列id
    series_titlestr系列名

    result中的show对象:

    字段类型内容备注
    wide_screennum是否全屏0:正常
    1:全屏

    result中的stat对象:

    字段类型内容备注
    coinsnum投币数
    danmakusnum弹幕数
    favoritesnum收藏数
    likesnum点赞数
    replynum评论数
    sharenum分享数
    viewsnum播放数

    result中的up_info对象:

    字段类型内容备注
    avatarstr头像图片url
    followernum粉丝数
    is_follownum0
    midnumUP主mid
    pendantobj
    theme_typenum0
    unamestrUP主昵称
    verify_typenum
    vip_statusnum
    vip_typenum

    获取剧集分集信息

    https://api.bilibili.com/pgc/web/season/section

    请求方式:GET

    鉴权方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    season_idstr剧集ssid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    resultobj信息本体

    result对象:

    字段类型内容备注
    main_sectionobj正片信息
    sectionarray花絮、PV等

    result中的main_section对象:

    字段类型内容备注
    episodesarray分集信息
    idnum分组id
    typenum0:正片
    1:PV&其他
    2:OP&ED
    titlestr

    episodes数组中的对象:

    字段类型内容备注
    aidnum视频av号
    badgestr
    badge_infoobj
    badge_typenum0
    cidnum分集cid
    coverstr分集封面
    fromstrbangumi
    idnum分集epId
    is_premierenum0
    long_titlestr长标题
    share_urlstr分集播放页url
    statusnum2
    titlestr短标题
    vidstr

    badge_info对象:

    字段类型内容备注
    bg_colorstr
    bg_color_nightstr
    textstr

    section数组中的对象:

    main_section对象

    示例:

    curl -L -X GET 'https://api.bilibili.com/pgc/web/season/section?season_id=42290'
    +
    查看响应示例:
    {
    +    "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
    +            }
    +        ]
    +    }
    +}
    +
    + + + diff --git a/docs/bangumi/timeline.html b/docs/bangumi/timeline.html new file mode 100644 index 0000000000..047d2876be --- /dev/null +++ b/docs/bangumi/timeline.html @@ -0,0 +1,744 @@ + + + + + + + + + 番剧或影视时间线 | BAC Document + + + + +

    番剧或影视时间线

    获取番剧或影视时间线

    https://api.bilibili.com/pgc/web/timeline 请求方式:GET

    鉴权方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    typesstr类别必要1:番剧
    3:电影
    4:国创
    beforenum开始于前几日必要∈N∩[0,7]
    afternum结束于后几日必要∈N∩[0,7]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:错误
    messagestr错误信息默认为success
    resultarray信息本体

    result数组:

    类型内容备注
    0objbefore天前信息
    nobjbefore天前开始第n天信息
    ……obj……

    result数组中的对象:

    字段类型内容备注
    datestr当日日期
    date_tsnum当日日期时间戳
    day_of_weeknum一周中第几天∈N∩[1,7]
    episodesarray剧集列表
    is_todaynum是否今日

    result数组中的对象中的episodes数组:

    类型内容备注
    0obj剧集1
    nobj剧集(n+1)
    ……obj……

    episodes数组中的对象:

    字段类型内容备注
    coverstr封面图url
    delaynum是否推迟
    delay_idnum推迟一话epid
    delay_indexstr推迟一话名称
    delay_reasonstr推迟原因
    ep_coverstr最新一话图url
    episode_idnum最新一话的epid
    pub_indexstr最新一话名称
    pub_timestr发布时间
    pub_tsnum发布时间戳
    publishednum是否已发布
    followsstr-
    playsstr-
    season_idnum剧集ssid
    square_coverstr缩略图url
    titlestr剧集标题

    示例:

    查询从3天前到7天后的番剧时间轴

    curl -G 'https://api.bilibili.com/pgc/web/timeline' \
    +--data-urlencode 'types=1' \
    +--data-urlencode 'before=3' \
    +--data-urlencode 'after=7' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    + + + diff --git a/docs/bangumi/videostream_url.html b/docs/bangumi/videostream_url.html new file mode 100644 index 0000000000..7350482e5c --- /dev/null +++ b/docs/bangumi/videostream_url.html @@ -0,0 +1,115 @@ + + + + + + + + + 视频流URL | BAC Document + + + + +

    视频流URL

    B站的番剧视频为http流媒体,需要对应的api以视频id获取取流url,并进行取流

    qn视频清晰度标识

    注:该值在dash模式且非下载模式时无效

    含义备注
    6240P 极速仅mp4方式支持
    16360P 流畅
    32480P 清晰
    64720P 高清web端默认值
    B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到720P的取流地址
    无720P时则为720P60
    74720P60 高帧率需要认证登录账号
    801080P 高清TV端与APP端默认值
    需要认证登录账号
    100智能修复仅支持dash方式
    需要fnval&12240=12240
    需要认证登录账号
    1121080P+ 高码率大多情况需求认证大会员账号
    1161080P60 高帧率大多情况需求认证大会员账号
    1204K 超清需要fnval&128=128fourk=1
    大多情况需求认证大会员账号
    125HDR 真彩色仅支持dash方式
    需要fnval&64=64
    大多情况需求认证大会员账号
    126杜比视界仅支持dash方式
    需要fnval&512=512
    大多情况需求认证大会员账号
    1278K 超高清仅支持dash方式
    需要fnval&1024=1024
    大多情况需求认证大会员账号

    例如:请求1080P+的视频,则qn=112

    fnver视频流版本标识

    目前该值恒为0,即fnver=0

    fnval视频流格式标识

    该代码为二进制属性位,如需组合功能需要使用OR运算结合一下数值

    含义备注
    0flv格式仅H.264编码
    部分老视频存在分段现象
    与mp4格式及dash格式互斥
    1mp4格式仅H.264编码
    不存在视频分段
    与flv格式及dash格式互斥
    16dash格式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格式
    12240是否需求智能修复必须为dash格式
    需要认证大会员账号

    例如:请求dash格式且需要HDR的视频流,则fnval=16|64=80

    视频编码代码

    含义备注
    7AVC编码8K视频无此格式
    12HEVC编码
    13AV1编码

    视频伴音音质代码

    含义
    3021664K
    30232132K
    30280192K

    获取番剧视频流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参数:

    参数名类型内容必要性备注
    avidnum稿件avid非必要
    bvidstr稿件bvid非必要
    ep_idnum稿件epid必要(可选)ep_id与cid任选一个
    cidnum视频cid必要(可选)ep_id与cid任选一个
    qnnum视频清晰度选择非必要未登录默认32(480P)
    登录默认64(720P)
    值含义见上表
    注:dash方式无效
    fnvalnum视频获取方式选择非必要默认为0
    0 2:flv方式(可能会有分段)
    1:低清mp4方式(仅240P与360P,且限速65K/s)
    16 80:dash方式(音视频分流,支持H.265)
    fnvernum0非必要固定为0
    fourknum是否允许4K视频非必要默认为0
    画质最高1080P:0
    画质最高4K:1
    sessionstr非必要从视频播放页的网页源码中获取
    from_clientstrBROWSER非必要
    drm_tech_typenum2非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息成功为success
    result有效时:obj
    无效时:null
    数据本体

    result对象:

    字段类型内容备注
    codenum0作用尚不明确
    is_previewnum0作用尚不明确
    fnvernum请求时提供的fnver
    fnvalnum请求时提供的fnval
    video_projectbooltrue
    typestr视频流类型(DASH、FLV、MP4)DASH
    bpnum是否可以承包0
    vip_typenum当前用户大会员类型
    vip_statusnum当前用户大会员状态
    is_drmboolfalse
    no_rexcodenum0
    has_paidboolfalse
    statusnum2
    fromstrlocal作用尚不明确
    resultstrsuee作用尚不明确
    messagestr作用尚不明确
    qualitynum当前的视频分辨率代码值含义见上表
    formatstr视频格式
    timelengthnum视频长度单位为毫秒
    不同分辨率/格式可能有略微差异
    accept_formatstr视频支持的全部格式每项用,分隔
    accept_descriptionarray视频支持的分辨率列表
    accept_qualityarray视频支持的分辨率代码列表值含义见上表
    video_codecidnum默认选择视频流的编码id视频编码代码
    seek_paramstr固定值:start作用尚不明确
    seek_typestroffset(dash、flv)
    second(mp4)
    作用尚不明确
    durlarray视频分段注:仅flv/mp4存在此项
    dashobjdash音视频流信息注:仅dash存在此项
    support_formatsarray支持格式的详细信息
    clip_info_listarray空,待补充
    record_infoobj备案登记信息

    result中的accept_description数组:

    类型内容备注
    0str分辨率名称1
    nstr分辨率名称(n+1)
    ……str……

    result中的accept_quality数组:

    类型内容备注
    0str分辨率代码1
    nstr分辨率代码(n+1)
    ……str……

    result中的support_formats数组:

    类型内容备注
    0obj播放格式详细信息1
    nobj播放格式详细信息(n+1)
    ……obj……

    support_formats数组中的对象:

    字段类型内容备注
    qualitynum视频清晰度代码
    formatstr视频格式
    new_descriptionstr格式描述
    descriptionstr格式描述
    display_descstr格式描述
    superscriptstr(?)
    codecsarray编码格式列表
    need_loginbool需要登录
    need_vipbool需要大会员

    support_formats中的codecs数组:

    类型内容备注
    0str编码格式如:avc1.640032,意为AVC编码
    1str编码格式如:hev1.1.6.L153.90,意为HEVC编码

    result中的record_info对象:

    类型内容备注
    record_iconstr空串
    recordstr显示文案登记号:10417060172092207

    flv/mp4方式:

    result中的durl数组:

    类型内容备注
    0obj视频分段1信息注:仅flv方式具有分段
    nobj视频分段(n+1)信息
    ……obj……

    durl数组中的对象:

    字段类型内容备注
    ordernum视频分段序号某些视频会分为多个片段(从1顺序增长)
    lengthnum视频长度单位为毫秒
    sizenum视频大小单位为Byte
    vheadstr作用尚不明确
    urlstr视频流url注:url内容存在转义符
    有效时间为120min
    backup_urlarray备用视频流

    durl数组中的对象中的backup_url数组:

    类型内容备注
    0str备用视频流url 1注:url内容存在转义符
    有效时间为120min
    nstr备用视频流url (n+1)
    ……str……

    示例:

    视频无分段时:

    获取视频ep85046/av2325306中的1P(cid=3629601)的视频流url,清晰度为480p,使用flv方式获取

    avid/epid方式:

    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

    查看响应示例:
    {
    +    "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为例:

    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.html b/docs/blackroom/banlist.html new file mode 100644 index 0000000000..5290695f80 --- /dev/null +++ b/docs/blackroom/banlist.html @@ -0,0 +1,131 @@ + + + + + + + + + 封禁公示 | BAC Document + + + + +

    封禁公示

    Enum类型代码

    表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参数:

    参数名类型内容必要性备注
    btypenum来源筛选非必要空:全部类型
    0:系统封禁
    1:风纪仲裁(仲裁系统升级后此类型已不再更新)
    otypenum类型筛选非必要表2
    默认为0:全部类型
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataarray公示列表

    data数组:

    类型内容备注
    0object封禁公示1
    nobject封禁公示(n+1)
    ……object…………

    data数组中的对象:

    字段类型内容备注
    idnum封禁公示id
    unamestr对象用户名
    facestr对象用户头像url
    uidnum对象用户mid
    originTitlestr来源标题
    blockedRemarkstr
    originUrlstr来源url
    originContentModifystr裁决正文
    originTypenum来源类型表2
    originTypeNamestr来源名
    punishTitlestr公示标题
    punishTimenum处罚时间时间戳
    punishTypenum处理手段类型2:封禁
    3:永久封禁
    punishTypeNamestr处理手段名
    moralNumnum0节操值被封禁用户节操值均为0
    blockedDaysnum封禁天数永封为0
    publishStatusnum1作用尚不明确
    blockedTypenum处理来源0:系统封禁
    1:风纪仲裁
    blockedForevernum是否永封0:非永封
    1:永封
    reasonTypenum封禁原因类型表1
    reasonTypeNamestr封禁原因类型名称
    operatorNamestr作用尚不明确
    caseIdnum仲裁信息id系统封禁时固定为0
    ctimenum创建时间时间戳
    commentSumnum该条目评论数

    示例:

    查询所有类型,所有来源的第1页的封禁公示列表

    curl -G 'https://api.bilibili.com/x/credit/blocked/list' \
    +--data-urlencode 'btype=' \
    +--data-urlencode 'otype=0' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +	"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": "<p>案情:</p><p>1、大量刷屏/引战</p><p>我看新闻了,竹鼠全部被ZF无害化处理了,看的爽死我了,亏死你们,啊哈哈哈(x10)</p><p>【BV16g4y187he,2020-4-21 10:46:23~10:46:47】</p><p>2、大量人身攻击</p><p>N * * L</p><p>Deine Mu**er ist tot. (x10)</p><p>【BV1rk4y1R7id,2020-4-21 20:31:08~20:32:23】</p><p>3、引战</p><p>每次看他厨房乱七八糟的,可能有数不清的小强,你们还看美食看的有味也是奇PA</p><p>【BV1Kg4y1z7mA,2020-4-22&nbsp; 00:52:37】<br/></p><p>批注:</p><p>满地狼藉招摇过,人皆愤懑怒拳握。</p><p>余恶不堪漏夜扫,正气于心涤龌龊。</p><p><br/></p><p>(发现违规引战、人身攻击、刷屏评论,请按照相应分类进行举报。若发现反复进行上述行为,可联系工作人员反馈相关违规账号信息,我们会予以排查。)</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p><p><br/></p>",
    +		"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": "<p>具体违规情况说明:</p><ol class=\" list-paddingleft-2\" style=\"list-style-type: decimal;\"><li><p>经查实确认,该账号<span style=\"text-decoration: underline;\">从未申请</span>亦<span style=\"text-decoration: underline;\">从未担任</span>过风纪委员职务。</p></li><li><p>发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。</p></li><li><p>谎称曾经封禁了某个up主,事实上风纪委员<span style=\"text-decoration: underline;\">无法封禁up主投稿</span>,且该up也从未被封禁。</p></li><li><p>威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。</p></li><li><p>故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。</p></li><li><p>误导他人“此评论区和弹幕无需保持礼仪”。</p></li></ol><p>批注:</p><p>如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p>",
    +		"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参数:

    参数名类型内容必要性备注
    idnum封禁公示id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    idnum封禁公示id
    unamestr对象用户名
    facestr对象用户头像url
    uidnum对象用户mid
    originTitlestr来源标题
    blockedRemarkstr
    originUrlstr来源url
    originContentModifystr裁决正文
    originTypenum来源类型表2
    originTypeNamestr来源名
    punishTitlestr公示标题
    punishTimenum处罚时间时间戳
    punishTypenum处理手段类型2:封禁
    3:永久封禁
    punishTypeNamestr处理手段名
    moralNumnum0节操值被封禁用户节操值均为0
    blockedDaysnum封禁天数永封为0
    publishStatusnum1作用尚不明确
    blockedTypenum处理来源0:系统封禁
    1:风纪仲裁
    blockedForevernum是否永封0:非永封
    1:永封
    reasonTypenum封禁原因类型表1
    reasonTypeNamestr封禁原因类型名称
    operatorNamestr作用尚不明确
    caseIdnum仲裁信息id系统封禁时固定为0
    ctimenum创建时间时间戳
    commentSumnum该条目评论数

    示例:

    查询公示id为1091621的公示详情

    curl -G 'https://api.bilibili.com/x/credit/blocked/info' \
    +--data-urlencode 'id=1091621'
    +
    查看响应示例:
    {
    +	"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": "<p>具体违规情况说明:</p><ol class=\" list-paddingleft-2\" style=\"list-style-type: decimal;\"><li><p>经查实确认,该账号<span style=\"text-decoration: underline;\">从未申请</span>亦<span style=\"text-decoration: underline;\">从未担任</span>过风纪委员职务。</p></li><li><p>发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。</p></li><li><p>谎称曾经封禁了某个up主,事实上风纪委员<span style=\"text-decoration: underline;\">无法封禁up主投稿</span>,且该up也从未被封禁。</p></li><li><p>威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。</p></li><li><p>故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。</p></li><li><p>误导他人“此评论区和弹幕无需保持礼仪”。</p></li></ol><p>批注:</p><p>如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p>",
    +		"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.html b/docs/blackroom/jury/action.html new file mode 100644 index 0000000000..c319c238d8 --- /dev/null +++ b/docs/blackroom/jury/action.html @@ -0,0 +1,104 @@ + + + + + + + + + 仲裁操作 | BAC Document + + + + +

    仲裁操作

    申请加入风纪委员会

    https://api.bilibili.com/x/credit/v2/jury/apply

    请求方式:POST

    认证方式:Cookie

    只有用户会员90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会

    申请成功后可获得30天资格

    正文参数( application/x-www-form-urlencoded):

    参数名类型内容必要性
    csrfstrcookie中bili_jct的值必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    25001:申请等级限制(会员等级<3)
    25002:没有实名认证
    25003:90天内有封禁记录
    25013:不能重复申请风纪委资格
    25016:当日风纪委员名额已发完
    messagestr信息默认为0
    ttlnum1
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    25001:申请等级限制(会员等级<3)
    25002:没有实名认证
    25003:90天内有封禁记录
    25013:不能重复申请风纪委资格
    25016:当日风纪委员名额已发完
    messagestr信息默认为0
    ttlnum1

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/jury/apply' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl 'https://api.bilibili.com/x/credit/jury/apply' \
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    拉取新案件

    https://api.bilibili.com/x/credit/v2/jury/case/next

    请求方式:GET

    认证方式:Cookie

    标头参数(Headers):

    参数名类型内容必要性备注
    CookiestrCookie必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    25006:风纪委员资格已过期
    25008:没有案件
    25014:已审满
    messagestr信息默认为0,当code不为0时,显示错误信息
    ttlnum1作用尚不明确
    dataobject数据本体

    data对象:

    字段类型内容备注
    case_idstr仲裁案件id

    示例:

    Cookie方式:

    curl -G 'https://api.bilibili.com/x/credit/v2/jury/case/next' \
    +--header 'cookie: XXXXX'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    25005:不是风纪委员
    25008:没有案件
    25014:已审满
    messagestr信息默认为0
    ttlnum1作用尚不明确
    dataobject数据本体

    data对象:

    字段类型内容备注
    idnum仲裁案件id

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/jury/caseObtain' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl 'https://api.bilibili.com/x/credit/jury/caseObtain' \
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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_idstr案件id必要
    votenum投票类型必要见「众裁信息」中表
    insidersnum是否观看此类视频非必要默认值为0
    见「众裁信息」中表
    contentstr理由非必要
    anonymousnum是否匿名非必要默认值为0
    0:不匿名
    1:匿名
    csrfstrcookie中bili_jct的值必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:未登录
    -111:csrf 错误
    -400:请求错误(投票类型错误)
    25005:不是风纪委员
    25011:投票类型错误
    25018:不能进行此操作

    注:新版本对于一个不存在的case_id,不会报错。
    messagestr信息默认为0
    ttlnum1作用尚不明确
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    cidnum案件id必要
    votenum投票类型必要见「众裁信息」中表
    contentstr理由非必要见「众裁信息」中表
    likesnums支持的观点非必要
    hatesnums反对的观点非必要
    attrnum是否匿名非必要0:匿名
    1:不匿名
    apply_typenum是否更改原因非必要0:保持原来原因
    1:投票给新原因
    origin_reasonnum原始原因非必要见「封禁公示」中表
    apply_reasonnum新原因非必要见「封禁公示」中表
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:未登录
    -111:csrf 错误
    -400:请求错误(投票类型错误)
    25005:不是风纪委员
    25009: 案件不存在
    25011:投票类型错误
    25012:重复投票
    messagestr信息默认为0
    ttlnum1作用尚不明确

    示例:

    为案件2333投票,建议封禁,无理由,不匿名,无支持/反对观点,不修改投票原因

    Cookie方式:

    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方式:

    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='
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/blackroom/jury/base_info.html b/docs/blackroom/jury/base_info.html new file mode 100644 index 0000000000..11d35855e1 --- /dev/null +++ b/docs/blackroom/jury/base_info.html @@ -0,0 +1,102 @@ + + + + + + + + + 风纪委员会用户基本信息 | BAC Document + + + + +

    风纪委员会用户基本信息

    基本数据

    https://api.bilibili.com/x/credit/v2/jury/jury

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url 参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr信息默认为 0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    allow_applybooltrue尚不明确(用户从未担任风纪委员时也为 true)
    apply_statusnum任期审核状态-1 资格失效,且未申请
    0 刚申请连任时
    5 申请后,等待审核
    3 申请连任成功,status 为 1
    case_totalnum总众裁数
    err_msgstr尚不明确
    facestr用户头像 url
    statusnum当前资格状态0 未曾拥有资格
    1 任期内
    2 资格失效
    term_endnum任期结束时间时间戳(秒级),无任期时为 0
    unamestr用户昵称

    基本数据(旧API)

    部分字段信息停留在 2021 年 10 月。

    查看折叠内容:

    https://api.bilibili.com/x/credit/jury/jury

    根数据与新 API 一致,data 对象:

    字段类型内容备注
    caseTotalnum总众裁数
    facestr用户头像 url
    restDaysnum当前资格剩余天数自 2021 年 10 月起,固定为 0
    rightRadionum当前裁决正确率百分比裁决数小于 3 时固定为 50
    statusnum当前状态1:具有资格
    2:资格失效
    unamestr用户昵称

    统计信息

    新API(2021年10月任期之后)

    https://api.bilibili.com/x/credit/v2/jury/kpi

    方式:GET

    认证方式:Cookie

    备注:该api只收录2021年10月开始,风纪委员改版之后的数据,且每次只返回一次任期的数据。

    url参数:

    参数名类型内容必要性备注
    term_idnum任期 id可不传此参数或将值留空或设为0未传参或留空时,返回最近一次已结束的任期的数据

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    25018:不能进行此操作(还没有成为新风纪委员,或传入了不属于你的term_id
    messagestr信息默认为 0
    ttlnum1
    dataobject数据本体

    data 对象:

    类型内容备注
    midnum用户 UID
    unamestr留空
    facestr留空
    term_idnum任期 ID未传入term_id时,返回的是最近一次已结束的任期的id
    term_startnum任期开始时间时间戳,精确到秒
    term_endnum任期结束时间时间戳,精确到秒
    case_totalnum任内总投票数
    active_daysnum活跃天数
    like_numnum发表观点,被点赞数
    accuracy_ratenum投中率所选观点与大多数风纪委员一致,记为一次“投中”
    passnum任期是否合格0 不合格
    1 合格
    statusnum当前资格状态0 未曾拥有资格
    1 任期内
    2 资格失效
    apply_statusnum当前资格申请状态-1 资格失效,且未申请
    0 刚申请连任时
    5 申请后,等待审核
    3 申请连任成功,status 为 1
    prev_term_idnum上一任期的任期 ID新版风纪委员启用后的第一个任期,此项的值为 0
    next_term_idnum下一任期的任期 ID若当前任期尚未结束,此项的值为 0
    rewardsobject任期奖励pendantcoin两个子项
    rewards.pendantnum头像挂件礼包 ID合格后一般为 1,不合格为 0
    rewards.coinnum硬币礼包 ID合格后一般为 3,不合格为 0
    查看响应示例:

    注:本示例未传入term_id,返回的是最近一次已结束任期的统计结果

    {
    +    "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)

    查看折叠内容:

    https://api.bilibili.com/x/credit/jury/kpi

    方式:GET

    认证方式:Cookie(SESSDATA)或APP

    备注:该api只统计到2021年9月任期,风纪委员改版之前。风纪委员改版之后的数据未收录

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr信息默认为0
    ttlnum1
    dataarray数据本体

    data数组:

    类型内容备注
    0obj第1个月统计
    nobj第(n+1)个月统计
    ……obj…………

    data 数组中的对象:

    字段类型内容备注
    idnum0
    midnum用户id
    numbernum风纪委员编号
    daynum数据生成时间(也是任期结束时间)时间戳,精确到秒
    ratenum任期完成度1=A;2=S;3=S+;4=S++
    ranknum尚不明确
    rankpernum尚不明确
    rankTotalnum尚不明确
    pointnum32767
    activeDaysnum活跃天数
    voteTotalnum投票总数
    voteRadionum投中率
    blockedTotalnum尚不明确
    termStartnum任期开始时间时间戳,精确到秒
    termEndnum任期结束时间(数据生成时间一致)时间戳,精确到秒
    opinion_likesnum观点获赞

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/jury/kpi' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/kpi' \
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    blockedbool是否被封禁true:是
    false:否
    下同
    certbool是否实名认证
    levelbool等级是否>=4新版无该字段
    rulebool是否90天内无违规

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/x/credit/v2/jury/requirement' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/v2/jury/requirement' \
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "blocked": false,
    +        "cert": true,
    +        "rule": true
    +    }
    +}
    +
    + + + diff --git a/docs/blackroom/jury/judgement_info.html b/docs/blackroom/jury/judgement_info.html new file mode 100644 index 0000000000..1f90ede418 --- /dev/null +++ b/docs/blackroom/jury/judgement_info.html @@ -0,0 +1,391 @@ + + + + + + + + + 众裁信息 | BAC Document + + + + +

    众裁信息

    Enum类型代码

    投票类型码总览

    代码含义
    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_keystrAPP登录TokenAPP方式必要
    case_idstr案件id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr信息默认为 0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    case_idstr案件id
    case_typenum任务类型1:单条评论
    2:评论氛围
    3:单条弹幕
    4:弹幕氛围
    jury_statenum1改版后未见过其它值
    participatenum是否投票0:未投票
    1:已投票
    vote_itemsobject投票选项见开头「投票选项码总览」
    default_votenum默认投票选项414无法判断
    statusnum裁决状态(新版)0:进行中
    1:已结束
    origin_startnum案件关联视频,播放进度条起始坐标单位:
    avidnum视频av号
    cidnum弹幕 dmid
    vote_cdnum-1暂不明确
    resultnum众议结论见开头「投票选项码总览」
    result_textstr众议结论文本见开头「投票选项码总览」
    titlestr视频标题
    case_infoobject案件信息
    my_pointobject我的观点仅自己投过票才有该字段
    vote_infoobject投票信息

    data 对象下的case_info对象

    字段类型内容备注
    commentobject单条评论信息仅当case_type1有值。见「对象:评论信息」
    danmu_imgstr弹幕截图仅当case_type4有值,截图URL
    commentsobject若干条评论仅当case_type2有值。见「对象:评论信息」
    single_danmustr单条弹幕信息仅当case_type3有值。见「对象:评论信息)」

    对象:评论信息

    字段类型内容备注
    midnum用户uid
    unamestr用户名
    facestr用户头像头像URL
    contentstr评论内容
    child_commentsobject子评论(对该评论的回复)见「对象:评论信息」,单条评论和子评论下无child_comments字段

    对象:弹幕信息

    字段类型内容备注
    id_strstr弹幕dmid
    contentstr弹幕内容
    progressnum尚不明确

    data 对象下的my_point对象

    记录了自己的投票(观点)信息,仅当自己投过票才有该字段。

    字段类型内容备注
    opidnum观点编号每当某个一个风纪委员给某个仲裁案件发表观点,就+1
    midnum风纪委员用户ID
    unamestr风纪委员用户名风纪委勾选匿名投票则显示“匿名用户”
    facestr头像URL头像
    votenum投票选项“合适题”分别为 1 或者 2 或者 3 或者 4
    对应:“合适”、“一般”、“不合适”、“无法判断”

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

    注释
    合适题:“单条弹幕(评论)是否合适?”
    氛围题:“弹幕(评论区)氛围如何”
    vote_text内容为空现在系统已不再展示其他风纪委所投的票
    contentstr观点内容该风纪委员所发表的观点内容
    anonymousnum0尚不明确
    likenum被点赞数量
    hatenum被点踩数量
    like_statusnum点赞(踩)状态本账号是否给该条评论点赞:
    0:没做操作;1:给评论点赞;2:给评论点踩
    vote_timenum投票时间时间戳,精确到秒
    insidersnum是否观看此类视频1:平时观看此类视频;0:平时不观看此类视频

    data 对象下的vote_info对象

    字段类型内容备注
    all_countnum总投票数
    countsarray观点分布格式:[合适, 一般, 不合适, 无法判断]
    insiders_countsarray行为分布格式:[平时会看此类视频, 平时不看此类视频]

    示例:

    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    cidnum案件id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    25010:没有权限查看案件
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    idnum案件id
    midnum被举报用户mid
    statusnum裁决状态1:投票中
    2:停止发放
    3:复核中(结案中)
    4:已裁决
    5:待重启
    6:未裁决
    7:冻结中
    8:队列中
    statusTitlestr封禁时间文字judgeType=1时有效
    originTypenum来源类型见「封禁公示」中表
    reasonTypenum原因类型见「封禁公示」中表
    originContentstr被举报的原文
    punishResultnum处理结果0:无
    1:封禁3天
    2:封禁7天
    3:永封
    4:其他封禁天数
    5:封禁15天
    6:仅删除不封禁
    punishTitlestr处罚原因
    judgeTypenum裁决类型status=4时有效
    0:未裁决
    1:违规
    2:不违规
    originUrlstr来源url
    blockedDaysnum封禁时间judgeType=1时有效
    putTotalnum???作用尚不明确
    voteRulenum投票不违规人数
    voteBreaknum投票建议封禁人数
    voteDeletenum投票建议删除人数
    startTimenum裁决起始时间时间戳
    endTimenum裁决截止时间时间戳
    未结案固定为24小时
    ctimenum举报创建时间时间戳
    mtimenum开始拉取时间时间戳
    originTitlestr来源标题
    relationIdstr违规关系标识字{评论rpid}-{违规类型id}-{来源对象id}
    facestr被举报用户头像url
    unamestr被举报用户昵称
    votenum我的投票见上表
    case_typenum众裁类型0:小众众裁
    1:大众众裁

    示例:

    查询案件1239790的信息

    Cookie方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \
    +--data-urlencode 'cid=1239790' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \
    +--data-urlencode 'access_key=xxx' \
    +--data-urlencode 'cid=1239790' \
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    cidnum案件id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    data有效时:object
    无效时:null
    数据本体

    data 对象:

    字段类型内容备注
    idnum案件id
    midnum被举报用户mid
    statusnum裁决状态1:投票中
    2:停止发放
    3:复核中(结案中)
    4:已裁决
    5:待重启
    6:未裁决
    7:冻结中
    8:队列中
    originTypenum来源类型见「封禁公示」中表
    reasonTypenum原因类型见「封禁公示」中表
    originContentstr被举报的原文
    punishResultnum处理结果0:无
    1:封禁3天
    2:封禁7天
    3:永封
    4:其他封禁天数
    5:封禁15天
    6:仅删除不封禁
    judgeTypenum裁决类型status=4时有效
    0:未裁决
    1:违规
    2:不违规
    originUrlstr来源url
    blockedDaysnum封禁时间judgeType=1时有效
    putTotalnum???作用尚不明确
    voteRulenum投票不违规人数
    voteBreaknum投票建议封禁人数
    voteDeletenum投票建议删除人数
    startTimenum裁决起始时间时间戳
    endTimenum裁决截止时间时间戳
    未结案固定为24小时
    ctimenum举报创建时间时间戳
    mtimenum开始拉取时间时间戳
    originTitlestr来源标题
    relationIdstr违规关系标识字{评论rpid}-{违规类型id}-{来源对象id}
    facestr被举报用户头像url
    unamestr被举报用户昵称
    votenum0固定为0
    case_typenum众裁类型0:小众众裁
    1:大众众裁

    示例:

    查询案件1239790的信息

    curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \
    +--data-urlencode 'cid=1239790'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码非必要默认为1
    psnum每页显示数量非必要默认为30
    最大30

    Headers参数

    参数名类型内容必要性备注
    cookiestr必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体
    data.totalnum仲裁案例数
    data.listarray仲裁记录列表

    list数组:

    类型内容备注
    0object仲裁记录1
    nobject仲裁记录(n+1)按照时间顺序
    ……object…………

    list数组中的对象:

    字段类型内容备注
    case_idstr案件id
    case_typenum案件类型1:单条评论
    2:评论氛围
    3:单条弹幕
    4:弹幕氛围
    statusnum裁决状态0:投票中
    1:已结束
    votenum投票选项“单条评论(弹幕)”分别为 1 或者 2 或者 3 或者 4
    对应:“合适”、“一般”、“不合适”、“无法判断”

    “评论(弹幕)氛围”分别为 11 或者 12 或者 13 或者 14
    对应:“好”、“一般”、“差”、“无法判断”
    vote_textstr投票选项文本参考上条
    vote_timenum投票时间时间戳,精确到秒
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    pnnum页码非必要默认为1
    psnum每页显示数量非必要默认为30
    最大30

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    dataarray仲裁记录列表

    data数组:

    类型内容备注
    0object仲裁记录1
    nobject仲裁记录(n+1)按照时间顺序
    ……object…………

    data数组中的对象:

    字段类型内容备注
    idnum案件id
    midnum被举报用户mid
    statusnum裁决状态1:投票中
    2:停止发放
    3:复核中(结案中)
    4:已裁决
    5:待重启
    6:未裁决
    7:冻结中
    8:队列中
    originTypenum来源类型见「封禁公示」中表
    reasonTypenum原因类型见「封禁公示」中表
    originContentstr被举报的原文
    punishResultnum处理结果0:无
    1:封禁3天
    2:封禁7天
    3:永封
    4:其他封禁天数
    5:封禁15天
    6:仅删除不封禁
    punishTitlestr处罚原因
    judgeTypenum裁决类型status=4时有效
    0:未裁决
    1:违规
    2:不违规
    originUrlstr来源url
    blockedDaysnum封禁时间judgeType=1时有效
    putTotalnum???作用尚不明确
    voteRulenum投票不违规人数
    voteBreaknum投票建议封禁人数
    voteDeletenum投票建议删除人数
    startTimenum裁决起始时间时间戳
    endTimenum裁决截止时间时间戳
    未结案固定为24小时
    ctimenum举报创建时间时间戳
    mtimenum开始拉取时间时间戳
    originTitlestr来源标题
    relationIdstr违规关系标识字{评论rpid}-{违规类型id}-{来源对象id}
    facestr被举报用户头像url
    unamestr被举报用户昵称
    votenum我的投票见上表
    voteTimenum我的裁决时间毫秒 时间戳
    case_typenum众裁类型0:小众众裁
    1:大众众裁

    示例:

    查询我的历史众裁,第1页,每页显示1个案件

    Cookie方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \
    +--data-urlencode 'ps=1' \
    +--data-urlencode 'pn=1' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \
    +--data-urlencode 'access_key=xxx' \
    +--data-urlencode 'ps=1' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "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):

    参数名类型内容必要性备注
    CookiestrCookie必要

    URL参数(Query Params):

    参数名类型内容备注
    case_idstr仲裁案件id必填
    pnnum显示第x页(default = 1)
    psnum每页显示y条观点(Max = 20)(default = 10)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功;
    -400:ps参数大于可允许的最大值20
    messagestr信息默认为0
    ttlnum1作用尚不明确
    dataobject数据本体

    data对象:

    字段类型内容备注
    totalnum当前案件众议观点总数
    listarray无数据时是一个空数组:“[]”

    data.list对象是一个数组,里面包含ps个object(参数ps见上文,object结构见「附表4」)

    示例:

    查看案件AC1xx411c7ac的众议观点,每页2项,查看第1

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    cidnum案件id必要
    psnum每页项数非必要默认为10
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr信息默认为0
    ttlnum1
    dataobject数据本体

    data 对象:

    字段类型内容备注
    countnum观点总数
    opinion有效时:array
    无效时:null
    观点列表

    data 中的opinion 数组:

    类型内容备注
    0object观点1
    nobject观点(n+1)按照时间顺序
    ……object…………

    opinion 数组中的对象:

    字段类型内容备注
    midnum用户mid仅非匿名有此项
    facestr用户头像仅非匿名有此项
    namestr用户昵称仅非匿名有此项
    opidnum观点id
    votenum投票选择见上表
    contentstr观点内容
    attrnum是否匿名0:匿名
    1:不匿名
    hatenum喜欢人数
    likenum不喜欢人数

    示例:

    查看案件1239790的众议观点,每页10项,查看第一页

    curl -G 'https://api.bilibili.com/x/credit/jury/case/opinion' \
    +--data-urlencode 'cid=1239790' \
    +--data-urlencode 'ps=10' \
    +--data-urlencode 'pn=1' \
    +
    查看响应示例:
    {
    +    "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/index.html b/docs/broadcast/index.html new file mode 100644 index 0000000000..bc8d29420d --- /dev/null +++ b/docs/broadcast/index.html @@ -0,0 +1,79 @@ + + + + + + + + + 全站广播 | BAC Document + + + + +

    全站广播

    获取广播服务器地址

    https://api.bilibili.com/x/web-interface/broadcast/servers

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    platformstr平台选择必要为web时输出域名
    其他时输出ip

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    domainstr广播服务器url
    tcp_portnumtcp端口
    ws_portnumwebsocket端口
    wss_portnumwebsocket ssl端口
    heartbeatnum最大心跳包间隔时间
    nodesarray服务节点地址列表
    backoffobj???
    heartbeat_maxnum???

    data中的nodes数组:

    类型内容备注
    0str服务节点1
    nstr服务节点(n+1)
    ……str……

    data中的backoff对象:

    字段类型内容备注
    max_delaynum???
    base_delaynum???
    factornum???
    jitternum???

    示例:

    platform=web时,不显示节点ip

    curl -G 'https://api.bilibili.com/x/web-interface/broadcast/servers' \
    +--data-urlencode 'platform=web'
    +
    查看响应示例:
    {
    +	"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

    curl -G 'https://api.bilibili.com/x/web-interface/broadcast/servers' \
    +--data-urlencode 'platform=1'
    +
    查看响应示例:
    {
    +	"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.空闲时间接收普通包

    数据包结构

    头部通用于上行和下行数据包

    头部格式:

    偏移量长度(字节)类型含义
    0x004uint32封包总大小(头部大小+正文大小)
    0x042uint16头部大小(一般为0x0012,18字节)
    0x062uint16协议版本,可取常数1
    0x084uint32操作码(包类型)
    见下表
    0x0C4uint32sequence(请求次数),可取常数1
    对于普通包恒为0
    0x102uint16保留,一般为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.html b/docs/broadcast/video_room.html new file mode 100644 index 0000000000..f28872c0e1 --- /dev/null +++ b/docs/broadcast/video_room.html @@ -0,0 +1,65 @@ + + + + + + + + + 视频实时信息 | BAC Document + + + + +

    视频实时信息

    认证包(上行)

    正文内容json:

    根对象:

    字段类型内容备注
    room_idstr目标视频video://{稿件avid}/{视频cid}
    platformstr平台标识默认为web
    acceptsarray操作标识

    array数组:

    类型内容备注
    0num1000作用尚不明确
    1num1015作用尚不明确

    示例:

    发送视频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:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为OK
    versionnum版本号

    示例:

    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:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为OK
    dataobj信息本体

    data对象:

    字段类型内容备注
    roomobj视频实时观看信息

    data中的room对象:

    字段类型内容备注
    onlinenum实时观看人数
    room_idstr目标视频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:

    根数组:

    类型内容备注
    0str弹幕属性信息详见「弹幕」中的属性 popen in new window
    1str弹幕内容

    示例:

    弹幕属性为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.html b/docs/cheese/info.html new file mode 100644 index 0000000000..6f008b517c --- /dev/null +++ b/docs/cheese/info.html @@ -0,0 +1,326 @@ + + + + + + + + + 课程基本信息 | BAC Document + + + + +

    课程基本信息

    课程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_idnum课程ssid必要(可选)season_id与ep_id任选其一
    与番剧ssid不互通
    ep_idnum课程epid必要(可选)season_id与ep_id任选其一
    与番剧epid不互通

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    briefobj课程概述信息
    couponobj优惠信息若无优惠则无此项
    coverstr课程封面url
    episode_pageobj课程分集信息
    episode_sortnum1作用尚不明确
    episodesarray课程分集列表
    faqobj常见问题信息1合并格式
    faq1obj常见问题信息2分离格式
    paymentobj付费信息
    purchase_noteobj购买须知信息
    purchase_protocolobj付费内容协议信息
    release_bottom_infostr底部更新状态文字
    release_infostr更新状态文字+更新连载状态文字
    release_info2str更新连载状态文字
    release_statusstr更新状态文字
    season_idnum课程ssid与番剧ssid不互通
    share_urlstr页面url
    short_linkstrbilibili uri链接
    statobj播放数信息
    statusnum10作用尚不明确
    subtitlestr课程简介信息
    titlestr课程标题
    up_infoobjUP主信息
    user_statusobj用户状态信息需要登录(SESSDATA)且referer为https://www.bilibili.com

    data中的brief对象:

    字段类型内容备注
    contentstr
    imgarray简介图片
    titlestr课程概述
    typenum2

    brief中的img数组:

    类型内容备注
    0obj简介图片1
    nobj简介图片(n+1)
    ……obj…………

    img数组中的对象:

    字段类型内容备注
    aspect_rationum???作用尚不明确
    urlstr简介图片url

    data中的coupon对象:

    字段类型内容备注
    amountnum折扣乘数
    expire_timestr结束时间YYYY-MM-DD HH:MM:SS
    start_timestr起始时间YYYY-MM-DD HH:MM:SS
    statusnum???作用尚不明确
    titlestr优惠标题
    tokenstr领取token

    data中的episode_page对象:

    字段类型内容备注
    nextboolfalse
    numnum1
    sizenum总计集数
    totalnum总计集数

    data中的episodes数组:

    类型内容备注
    0obj课程分集1
    nobj课程分集(n+1)
    ……obj…………

    episodes数组中的对象:

    字段类型内容备注
    aidnum课程分集avid与普通稿件avid部分不互通
    cidnum课程分集cid与普通视频cid部分不互通
    durationnum课程分集时间长度单位为秒
    fromstrpugv
    idnum课程分集epid与番剧epid不互通
    indexnum课程分集数
    pagenum1
    playnum课程分集播放量
    release_datenum课程分集发布时间时间戳
    statusnum分集权限属性1:可观看
    2:不可观看
    titlestr课程分集标题
    watchedbool是否观看该集需要登录(SESSDATA)且referer为https://www.bilibili.com
    false:未观看
    true:已观看
    watchedHistorynum该集观看历史需要登录(SESSDATA)且referer为https://www.bilibili.com

    data中的faq对象:

    字段类型内容备注
    contentstr常见问题信息
    linkstr常见问题页面url
    titlestr常见问题

    data中的faq1对象:

    字段类型内容备注
    itemsarray常见问题列表
    titlestr常见问题

    faq1中的items数组:

    类型内容备注
    0obj常见问题1
    nobj常见问题(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    answerstr回答信息
    questionstr问题信息

    data中的payment对象:

    字段类型内容备注
    descstr付费价格说明
    discount_descstr折扣说明信息若无优惠则无此项
    discount_prefixstr折扣类型前缀若无优惠则无此项
    pay_shadestr观看所有视频付费说明
    pricenum课程价格单位为B币(折扣后价格)
    price_formatstr课程价格单位为B币折扣后价格)

    data中的purchase_note对象:

    字段类型内容备注
    contentstr购买须知信息文字内容
    linkstr购买须知页面url
    titlestr购买须知

    data中的purchase_protocol对象:

    字段类型内容备注
    linkstr付费内容协议页面url
    titlestr付费内容协议

    data中的stat对象:

    字段类型内容备注
    playnum播放量
    play_descstr播放量文字信息

    data中的up_info对象:

    字段类型内容备注
    avatarstrUP主头像url
    briefstrUP主备注非个人签名
    followernumUP主粉丝数
    is_follownum是否关注UP主需要登录(SESSDATA)且referer为https://www.bilibili.com
    0:未关注
    1:已关注
    linkstrUP主空间url
    midnumUP主uid
    pendantobj???作用尚不明确
    unamestrUP主昵称

    up_info中的pendant对象:

    字段类型内容备注
    imagestr作用尚不明确
    namestr作用尚不明确
    followernum0作用尚不明确

    data中的user_status对象:

    字段类型内容备注
    favorednum是否收藏0:未收藏
    1:已收藏
    favored_countnum1作用尚不明确
    payednum是否购买0:未购买
    1:已购买
    progressobj课程进度未登录无此项

    user_status中的progress对象:

    字段类型内容备注
    last_ep_idnum最后观看的epid
    last_ep_indexstr最后观看的标题
    last_timenum最后观看的时间进度单位为秒

    示例:

    查询课程ss61或分集ep790的信息

    ssid方式:

    curl -G 'https://api.bilibili.com/pugv/view/web/season' \
    +--data-urlencode 'season_id=61' \
    +-b 'SESSDATA=xxx' \
    +-e 'https://www.bilibili.com'
    +

    epid方式:

    curl -G 'https://api.bilibili.com/pugv/view/web/season' \
    +--data-urlencode 'ep_id=790' \
    +-b 'SESSDATA=xxx' \
    +-e 'https://www.bilibili.com'
    +
    查看响应示例:
    {
    +    "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. 本内容为付费内容,购买成功后方可观看。<br/>2. 本内容为虚拟服务,已购买内容不支持退款,敬请谅解。<br/>3. 实际购买价格以页面展示的价格及订单结算页显示价格为准。<br/>4. 如您在购买付费内容时有任何疑问,可随时咨询在线客服。<br/>完整的购买协议,请点击阅读<a href=\"https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html\" color=\"#0ba395\" target=\"_blank\">《bilibili付费内容购买协议》</a>",
    +            "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_idnum课程ssid必要与番剧ssid不互通
    psnum每页项数非必要默认为50
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -404:错误
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    itemsarray课程分集列表
    pageobj列表分页信息

    data中的items数组:

    类型内容备注
    0obj课程分集1
    nobj课程分集(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    aidnum课程分集avid与普通稿件avid部分不互通
    cidnum课程分集cid与普通视频cid部分不互通
    durationnum课程分集时间长度单位为秒
    fromstrpugv
    idnum课程分集epid与番剧epid不互通
    indexnum课程分集数
    pagenum1
    playnum课程分集播放量
    release_datenum课程分集发布时间时间戳
    statusnum分集权限属性1:可观看
    2:不可观看
    titlestr课程分集标题
    watchedbool是否观看该集需要登录(SESSDATA)且referer为https://www.bilibili.com
    false:未观看
    true:已观看
    watchedHistorynum该集观看历史需要登录(SESSDATA)且referer为https://www.bilibili.com

    data中的page对象:

    字段类型内容备注
    nextbool是否存在下一页false:不存在下一页
    true:存在下一页
    numnum当前页码
    sizenum每页项数
    totalnum总价项数

    示例:

    按照每页5项查询课程ss61的分集列表第1页

    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'
    +
    查看响应示例:
    {
    +    "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.html b/docs/cheese/videostream_url.html new file mode 100644 index 0000000000..801f71c962 --- /dev/null +++ b/docs/cheese/videostream_url.html @@ -0,0 +1,125 @@ + + + + + + + + + 课程视频流URL | BAC Document + + + + +

    课程视频流URL

    获取课程视频流URL(web端)

    https://api.bilibili.com/pugv/player/web/playurl

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    注:

    1. 本接口为课程视频专用,故与普通视频不互通
    2. 大部分使用方法及视频的取流方法继承视频流url文档

    url参数:

    参数名类型内容必要性备注
    avidnum课程avid必要
    ep_idnum课程epid必要
    cidnum视频cid必要
    qnnum视频清晰度选择非必要参考qn定义
    fnvernum视频流版本非必要参考fnver定义
    fnvalnum视频流类型非必要参考fnval定义
    fourknum是否允许4K视频非必要默认为0
    画质最高1080P:0
    画质最高4K:1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    -403:权限不足(未购买)
    messagestr错误信息默认为success
    dataobj数据本体

    data对象:

    字段类型内容备注
    accept_formatstr视频支持的分辨率的格式
    codenum0
    durlarray视频分段
    seek_paramstrstart
    no_rexcodenum0
    formatstr视频格式
    fnvalnum0
    video_projectbooltrue
    fnvernum0
    messagestr
    typestr视频格式
    accept_qualityarray视频支持的分辨率列表
    qualitynum视频分辨率代码值含义见上表
    timelengthnum视频长度单位为毫秒
    不同分辨率可能有略微差异
    resultstrsuee作用尚不明确
    seek_typestroffset作用尚不明确
    has_paidboolfalse作用尚不明确
    supportFormatsarray视频分辨率详细列表
    fromstrlocal作用尚不明确
    video_codecidnum???作用尚不明确
    accept_descriptionarray视频支持的分辨率列表
    statusnum0作用尚不明确

    data中的durl数组:

    类型内容备注
    0obj视频分段1信息
    nobj视频分段(n+1)信息
    ……obj……

    durl数组中的对象:

    字段类型内容备注
    sizenum视频大小单位为Byte
    aheadstr作用尚不明确
    lengthnum视频长度单位为毫秒
    vheadstr作用尚不明确
    backup_urlarray备用视频流
    urlstr视频流url链接有效时间为120min
    ordernum视频分段序号某些视频会分为多个片段

    durl数组中的对象中的backup_url数组:

    类型内容备注
    0str备用视频流url有效时间为120min

    data中的supportFormats数组:

    类型内容备注
    0obj分辨率详细信息1
    nobj分辨率详细信息(n+1)
    ……obj…………

    supportFormats数组中的对象:

    字段类型内容备注
    formatstr分辨率名称
    descriptionatr分辨率备注
    qualitynum分辨率代码

    data中的accept_description数组:

    类型内容备注
    0str分辨率名称1
    nstr分辨率名称(n+1)
    ……str…………

    示例:

    获取课程ep790(cid=132105993,avid=76973173)的视频流url,清晰度为1080P60

    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'
    +
    查看响应示例:
    {
    +    "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"
    +}
    +
    + + + diff --git a/docs/clientinfo/ip.html b/docs/clientinfo/ip.html new file mode 100644 index 0000000000..6a422f5e2c --- /dev/null +++ b/docs/clientinfo/ip.html @@ -0,0 +1,81 @@ + + + + + + + + + 通过ip确定地理位置 | BAC Document + + + + +

    通过ip确定地理位置

    根据请求IP确定属地

    https://api.bilibili.com/x/web-interface/zone

    https://api.live.bilibili.com/xlive/web-room/v1/index/getIpInfo

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    addrstr公网IP地址
    countrystr国家/地区名
    provincestr省/州非必须存在项
    citystr城市非必须存在项
    ispstr运营商名
    latitudenum纬度
    longitudenum经度
    zone_idnumip数据库id第二个接口无
    country_codenum国家/地区代码第二个接口无

    示例:

    curl 'https://api.bilibili.com/x/web-interface/zone'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +}
    +

    查询任意 IP 地址的归属地

    https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr
    https://api.live.bilibili.com/client/v1/Ip/getInfoNew

    注: 以上接口等效

    请求方式:GET

    URL参数:

    参数名类型内容必要性备注
    ipstrIP地址不必要IPv4或IPv6地址不限, 留空与根据请求IP确定地理位置基本相同

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为空
    msgstr错误信息同message
    dataobj信息本体出错时为空数组

    data对象:

    根据请求IP确定地理位置回复的data对象基本相同, 但无 zone_id country_code 字段

    示例:

    查询请求IP地址的归属地:

    curl -G 'https://api.live.bilibili.com/client/v1/Ip/getInfoNew'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "message": "",
    +  "data": {
    +    "addr": "104.28.156.113",
    +    "country": "新加坡",
    +    "province": "新加坡",
    +    "city": "",
    +    "isp": "cloudflare.com",
    +    "latitude": "1.352083",
    +    "longitude": "103.819836"
    +  }
    +}
    +

    查询IP地址8.8.8.8的归属地:

    curl -G 'https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr' \
    +--data-urlencode 'ip=8.8.8.8'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "message": "",
    +  "data": {
    +    "addr": "8.8.8.8",
    +    "country": "GOOGLE.COM",
    +    "province": "GOOGLE.COM",
    +    "city": "",
    +    "isp": "level3.com",
    +    "latitude": "",
    +    "longitude": ""
    +  }
    +}
    +
    + + + diff --git a/docs/comment/action.html b/docs/comment/action.html new file mode 100644 index 0000000000..e587dd6387 --- /dev/null +++ b/docs/comment/action.html @@ -0,0 +1,250 @@ + + + + + + + + + 评论区操作 | BAC Document + + + + +

    评论区操作

    发表评论

    https://api.bilibili.com/x/v2/reply/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区id必要
    rootnum根评论rpid非必要二级评论以上使用
    parentnum父评论rpid非必要二级评论同根评论id
    大于二级评论为要回复的评论id
    messagestr发送评论内容必要最大1000字符
    表情使用表情转义符
    platnum发送平台标识非必要1:web端
    2:安卓客户端
    3:ios客户端
    4:wp客户端
    默认为1
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -509:请求过于频繁
    12001:已经存在评论主题
    12002:评论区已关闭
    12003:禁止回复
    12006:没有该评论
    12009:评论主体的type不合法
    12015:需要评论验证码
    12016:评论内容包含敏感信息
    12025:评论字数过多
    12035:该账号被UP主列入评论黑名单
    12051:重复评论,请勿刷屏
    12052:评论区已关闭
    12045:购买后即可发表评论
    (其他错误码有待补充)
    messagestr错误信息
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    success_actionnum0作用尚不明确
    success_toaststr状态文字
    need_captchaboolfalse评论需要验证码(未证实)
    urlstr作用尚不明确
    rpidnum评论rpid
    rpid_strstr评论rpid字串格式
    dialognum回复对方rpid若为一级评论则为0
    若为二级评论则为该评论id
    大于二级评论为上一级评论id
    dialog_strstr回复对方rpid字串格式
    rootnum根评论rpid若为一级评论则为0
    大于一级评论则为根评论id
    root_strstr根评论rpid字串格式
    parentnum回复父评论rpid若为一级评论则为0
    若为二级评论则为根评论id
    大于二级评论为上一级评论id
    parent_strstr回复父评论rpid字串格式
    emoteobj表情转义符信息对象定义见表
    reply有效时:obj
    无效时:null
    对象定义见表

    示例:

    给视频av243322853发送内容为测试test[泠鸢yousa_awsl]的评论(带有表情转义符),平台标识为1(web端)

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区id必要
    rpidnum目标评论rpid必要
    actionnum操作代码非必要默认为0
    0:取消赞
    1:点赞
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12004:禁止操作 赞或踩
    12006:没有该评论
    12009:评论主体的type不合法
    12011:不合法的赞或踩
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点赞视频av243322853下评论rpid=3039053308

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    点踩评论

    https://api.bilibili.com/x/v2/reply/hate

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    点踩成功后会同时消去该评论的点赞

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区id必要
    rpidnum目标评论rpid必要
    actionnum操作代码非必要默认为0
    0:取消踩
    1:点踩
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12004:禁止操作 赞或踩
    12006:没有该评论
    12009:评论主体的type不合法
    12011:不合法的赞或踩
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点踩视频av243322853下评论rpid=3039053308

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除评论

    https://api.bilibili.com/x/v2/reply/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    只能删除自己的评论,或自己管理的评论区下的评论

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区id必要
    rpidnum目标评论rpid必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -403:权限不足
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12009:评论主体的type不合法
    12022:已经被删除了
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1作用尚不明确

    示例:

    删除av243322853下评论rpid=3039053308

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    置顶评论

    https://api.bilibili.com/x/v2/reply/top

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    只能置顶自己管理的评论区中的一级评论

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区id必要
    rpidnum目标评论rpid必要
    actionnum操作代码非必要默认为0
    0:取消置顶
    1:设为置顶
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -403:权限不足
    -404:无此项
    -509:请求过于频繁
    12002:评论区已关闭
    12006:没有该评论
    12009:评论主体的type不合法
    12029:已经有置顶评论
    12030:不能置顶非一级评论
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    置顶视频av243322853下评论rpid=2940645593

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    举报评论

    https://api.bilibili.com/x/v2/reply/report

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区id必要
    rpidnum目标评论rpid必要
    reasonnum举报类型必要类型代码见下表
    contentstr其他举报备注非必要reason=0时有效
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    举报类型reason

    代码含义
    0其他
    1垃圾广告
    2色情
    3刷屏
    4引战
    5剧透
    6政治
    7人身攻击
    8内容不相关
    9违法违规
    10低俗
    11非法网站
    12赌博诈骗
    13传播不实信息
    14怂恿教唆信息
    15侵犯隐私
    16抢楼
    17青少年不良信息

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -403:权限不足
    -404:无此项
    -500:服务器错误
    -509:请求过于频繁
    12002:评论区已关闭
    12006:没有该评论
    12008:已经举报过了
    12009:评论主体的type不合法
    12019:举报过于频繁
    12077:其他举报理由过长或过短
    (其他错误码有待补充)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    举报视频av752881391下评论rpid=3062537442,理由是引战

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/comment/index.html b/docs/comment/index.html new file mode 100644 index 0000000000..b56575f4ea --- /dev/null +++ b/docs/comment/index.html @@ -0,0 +1,33 @@ + + + + + + + + + 评论区 | BAC Document + + + + +

    评论区

    评论系统为全站通用,且APP与web端接口共用,以type标明对象类型,以oid指向响应的对象id


    继续查看:

    评论区类型代码

    (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

    评论条目对象

    字段类型内容备注
    rpidnum评论 rpid
    oidnum评论区对象 id
    typenum评论区类型代码类型代码见上表
    midnum发送者 mid
    rootnum根评论 rpid若为一级评论则为 0
    大于一级评论则为根评论 id
    parentnum回复父评论 rpid若为一级评论则为 0
    若为二级评论则为根评论 rpid
    大于二级评论为上一级评 论 rpid
    dialognum回复对方 rpid若为一级评论则为 0
    若为二级评论则为该评论 rpid
    大于二级评论为上一级评论 rpid
    countnum二级评论条数
    rcountnum回复评论条数
    floornum评论楼层号注:若不支持楼层则无此项
    statenum(?)
    fansgradenum是否具有粉丝标签0:无
    1:有
    attrnum某属性位?
    ctimenum评论发送时间时间戳
    rpid_strstr评论rpid字串格式
    root_strstr根评论rpid字串格式
    parent_strstr回复父评论rpid字串格式
    likenum评论获赞数
    actionnum当前用户操作状态需要登录(Cookie 或 APP)
    否则恒为 0
    0:无
    1:已点赞
    2:已点踩
    memberobj评论发送者信息
    contentobj评论信息
    replies无效时:null
    有效时:array
    评论回复条目预览仅嵌套一层
    否则为 null
    assistnum(?)
    folderobj折叠信息
    up_actionobj评论 UP 主操作信息
    show_followbool(?)
    invisiblebool评论是否被隐藏
    card_labelobj右上角卡片标签信息
    reply_controlobj评论提示文案信息

    评论条目中的member对象:

    字段类型内容备注
    midstr发送者 mid
    unamestr发送者昵称
    sexstr发送者性别男 女 保密
    signstr发送者签名
    avatarstr发送者头像 url
    rankstr(?)
    DisplayRankstr(?)
    level_infoobj发送者等级
    pendantobj发送者头像框信息
    nameplateobj发送者勋章信息
    official_verifyobj发送者认证信息
    vipobj发送者会员信息
    fans_detail无效时:null
    有效时:obj
    发送者粉丝标签
    followingnum是否关注该用户需要登录(Cookie或APP)
    否则恒为0
    0:未关注
    1:已关注
    is_followednum是否被该用户关注需要登录(Cookie或APP)
    否则恒为0
    0:未关注
    1:已关注
    user_sailingobj发送者评论条目装扮信息
    is_contractorbool是否为合作用户?
    contract_descstr合作用户说明?

    member中的level_info对象:

    字段类型内容备注
    current_levelnum用户等级
    current_minnum0
    current_expnum0
    next_expnum0

    member中的pendant对象:

    字段类型内容备注
    pidnum头像框 id
    namestr头像框名称
    imagestr头像框图片 url
    expirenum0
    image_enhancestr头像框图片 url
    image_enhance_framestr(?)

    member中的nameplate对象:

    字段类型内容备注
    nidnum勋章 id
    namestr勋章名称
    imagestr挂件图片 url 正常
    image_smallstr勋章图片 url 小
    levelstr勋章等级
    conditionstr勋章条件

    member中的official_verify对象:

    字段类型内容备注
    typenum认证类型-1:无
    0:个人认证
    1:机构认证
    descstr认证信息无为空

    member中的vip对象:

    字段类型内容备注
    vipTypenum大会员类型0:无
    1:月会员
    2:年以上会员
    vipDueDatenum大会员到期时间毫秒 时间戳
    dueRemarkstr(?)
    accessStatusnum(?)
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr(?)
    theme_typenum会员样式 id
    labelobj会员铭牌样式
    avatar_subscriptnum(?)
    avatar_subscript_urlstr(?)
    nickname_colorstr昵称颜色

    vip中的label对象:

    字段类型内容备注
    pathstr(?)
    textstr会员类型文案
    label_themestr会员类型vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    text_colorstr文字颜色?
    bg_stylenum(?)
    bg_colorstr背景颜色?
    border_colorstr描边颜色?

    member中的fans_detail对象:

    字段类型内容备注
    uidnum用户 mid
    medal_idnum粉丝标签 id
    medal_namestr粉丝标签名
    scorenum(?)
    levelnum当前标签等级
    intimacynum(?)
    master_statusnum(?)
    is_receivenum(?)

    member中的user_sailing对象:

    字段类型内容备注
    pendant无效时:null
    有效时:obj
    头像框信息
    cardbg无效时:null
    有效时:obj
    评论卡片装扮
    cardbg_with_focusnull(?)

    user_sailing中的pendant对象:

    字段类型内容备注
    idnum头像框 id
    namestr头像框名称
    imagestr头像框图片 url
    jump_urlstr
    typestr装扮类型suit:一般装扮
    vip_suit:vip 装扮
    image_enhancestr(?)
    image_enhance_framestr(?)

    user_sailing中的cardbg对象:

    字段类型内容备注
    idnum评论条目装扮 id
    namestr评论条目装扮名称
    imagestr评论条目装扮图片 url
    jump_urlstr评论条目装扮商城页面 url
    fanobj粉丝专属信息
    typestr装扮类型suit:一般装扮
    vip_suit:vip 装扮

    cardbg中的fan对象:

    字段类型内容备注
    is_fannum是否为粉丝专属装扮0:否
    1:是
    numbernum粉丝专属编号
    colorstr数字颜色颜色码
    namestr装扮名称
    num_descstr粉丝专属编号字串格式

    评论条目中的content对象:

    字段类型内容备注
    messagestr评论内容重要
    platnum评论发送端1:web端
    2:安卓客户端
    3:ios 客户端
    4:wp 客户端
    devicestr评论发送平台设备
    membersarrayat 到的用户信息
    emoteobj需要渲染的表情转义评论内容无表情则无此项
    jump_urlobj需要高亮的超链转义
    max_linenum6收起最大行数
    picturesarray评论图片数组

    content中的members数组:

    类型内容备注
    0objat到的用户 1基本同评论条目中的member对象
    nobjat到的用户 (n+1)项数为at到的不同的用户数
    ……obj…………

    content中的emote对象:

    字段类型内容备注
    {表情转义符}obj表情转义符信息 1
    ……obj表情转义符信息 n向下扩展

    emote中的{表情转义符}对象:

    字段类型内容备注
    idnum表情 id
    package_idnum表情包 id
    statenum0
    typenum表情类型1:免费
    2:会员专属
    3:购买所得
    4:颜文字
    attrnum(?)
    textstr表情转义符
    urlstr表情图片 url
    metaobj属性信息
    mtimenum表情创建时间时间戳
    jump_titlestr表情名称

    {表情转义符}中的meta对象:

    字段类型内容备注
    sizenum表情尺寸信息1:小
    2:大
    aliasstr简写名无则无此项

    content中的jump_url对象:

    字段类型内容备注
    {超链转义}obj超链转义信息 1
    ……obj超链转义信息 n向下扩展

    jump_url中的{超链转义}对象:

    字段类型内容备注
    titlestr标题
    statenum图标 url
    prefixIconstr(?)
    appUrlSchemastr(?)
    appNamestr(?)
    appPackageNamestr(?)
    clickReportstr上报 id

    content中的pictures数组中的对象:

    字段类型内容备注
    img_srcstr图片地址
    img_widthnum图片宽度
    img_heightnum图片高度
    img_sizenum图片大小单位KB

    评论条目中的replies数组:

    类型内容备注
    0obj回复条目1为本对象的递归嵌套
    仅可嵌套一层
    按照热度顺序排列
    1obj回复条目2
    2obj回复条目3最后一项

    评论条目中的folder对象:

    字段类型内容备注
    has_foldedbool是否有被折叠的二级评论
    is_foldedbool评论是否被折叠
    rulestr相关规则页面 url

    评论条目中的up_action对象:

    字段类型内容备注
    likebool是否UP主觉得很赞false:否
    true:是
    replybool是否被UP主回复false:否
    true:是

    评论条目中的card_label对象:

    字段类型内容备注
    rpidnum评论 rpid
    text_contentstr标签文本已知有妙评
    text_color_daystr日间文本颜色十六进制颜色值,下同
    text_color_nightstr夜间文本颜色
    label_color_daystr日间标签颜色
    label_color_nightstr夜间标签颜色
    imagestr作用不明
    typestr1作用不明
    backgroundstr背景图片 url
    background_widthnum背景图片宽度
    background_heightnum背景图片高度
    jump_urlstr跳转链接
    effectnum0作用不明,可能用于控制动画,下同
    effect_start_timenum0

    评论条目中的reply_control对象:

    字段类型内容备注
    sub_reply_entry_textstr回复提示共 xx 条回复
    sub_reply_title_textstr回复提示相关回复共有 xx 条
    time_descstr时间提示xx 天/小时 前发布
    locationstrIP属地IP属地:xx
    评论者发送评论时的IP地址属地
    仅对2022-07-25 11:00及以后发布的评论有效
    需要登录
    + + + diff --git a/docs/comment/list.html b/docs/comment/list.html new file mode 100644 index 0000000000..522b1ba80f --- /dev/null +++ b/docs/comment/list.html @@ -0,0 +1,3015 @@ + + + + + + + + + 评论区明细 | BAC Document + + + + +

    评论区明细

    获取评论区明细_翻页加载

    https://api.bilibili.com/x/v2/reply

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区 id必要
    sortnum排序方式非必要默认为0
    0:按时间
    1:按点赞数
    2:按回复数
    nohotnum是否不显示热评非必要默认为0
    1:不显示
    0:显示
    psnum每页项数非必要默认为20
    定义域:1-20
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    pageobj页信息
    configobj评论区显示控制
    replies禁用时:null
    正常时:array
    评论列表
    hots禁用时:null
    正常时:array
    热评列表
    upperobj置顶评论
    topnull(?)
    notice无效时:null
    有效时:obj
    评论区公告信息
    votenum投票评论?
    blacklistnum(?)
    assistnum(?)
    modenum评论区类型id
    support_modearray评论区支持的类型id
    folderobj折叠相关信息
    lottery_cardnull(?)
    show_bvidbool显示bvid?
    controlobj评论区输入属性

    data中的page对象:

    字段类型内容备注
    numnum当前页码
    sizenum每页项数
    countnum根评论条数
    acountnum总计评论条数

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum(?)
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP 觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的replies数组:

    类型内容备注
    0obj评论条目 1对象定义见表
    nobj评论条目 (n+1)按照指定的顺序排列
    ……obj…………

    data中的hots数组:

    类型内容备注
    0obj热评条目 1对象定义见表
    nobj热评条目 (n+1)按照热评热度排列
    ……obj…………

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid
    top有效时:obj
    无效时:null
    置顶条目对象定义见表
    vote有效时:obj
    无效时:null
    投票评论?

    data中的notice对象:

    字段类型内容备注
    contentstr公告正文
    idnum公告 id
    linkstr公告页面链接 url
    titlestr公告标题

    data中的folder对象:

    字段类型内容备注
    has_foldedbool评论区是否存在折叠评论
    is_foldedbool是否折叠?
    rulestr相关规则页面 url

    data中的control对象:

    字段类型内容备注
    input_disablebool是否禁止新增评论用户涉及合约争议,锁定该用户所有稿件、动态的评论区,不允许新增评论,root_input_textchild_input_text值为“当前评论区不可新增评论”
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    示例:

    获取视频av2的评论区明细,不显示热评,按照热度排序,每页5项,查看第1页

    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'
    +
    查看响应示例:
    {
    +    "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/wbi/main

    https://api.bilibili.com/x/v2/reply/main

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    鉴权方式:Wbi 签名

    注: Wbi 签名错误时返回 -403 而非 -352

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区 id必要
    modenum排序方式非必要默认为 3
    0 3:仅按热度
    1:按热度+按时间
    2:仅按时间
    pagination_strobj分页信息非必要见下
    platnum平台类型非必要1
    seek_rpidstr非必要当获取第一页评论时存在
    web_locationstr1315875非必要

    pagination_str:

    参数名类型内容备注
    offsetstr一个套着字符串皮的 JSON Object上次响应 data.cursor.pagination_reply.next_offset 的值, 获取第一页时为空, 其余见下参考

    pagination_str 中的 offset:

    参数名类型内容备注
    typenum类型当 URL 参数 mode 为 2 时, 此项为 3
    当 URL 参数 mode 为 3 时, 此项为 1
    directionnum1
    dataobj分页数据当 type 为 1 时存在
    Dataobj分页数据当 type 为 3 时存在

    offset 中的 data (type=1):

    参数名类型内容备注
    pnnum页码 (上次响应 data.cursor.next 的值)

    offset 中的 Data (type=3):

    参数名类型内容备注
    cursornum上次响应 data.cursor.next 的值

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    cursorobj游标信息
    hots禁用时:null
    正常时:array
    热评列表
    notice无效时:null
    有效时:obj
    评论区公告信息
    replies禁用时:null
    正常时:array
    评论列表
    topobj置顶信息
    top_repliesobj置顶评论对象定义见表
    lottery_cardnull抽奖评论
    folderobj评论折叠信息
    up_selectionobj(?)
    cmobj广告
    cm_infoobj广告控制
    effectsobj(?)
    assistnum(?)
    blacklistnum(?)
    votenum(?)
    lotterynum(?)
    configobj评论区显示控制
    upperobjUP主信息
    show_bvidbool显示 bvid?
    controlobj评论区输入属性
    notenum1
    esports_grade_cardnull
    callbacksnull
    context_featurestr

    data中的cursor对象:

    字段类型内容备注
    all_countnum全部评论条数
    is_beginbool是否为第一页false:否
    true:是
    prevnum上页页码
    nextnum下页页码
    is_endbool是否为最后页false:否
    true:是
    modenum排序方式
    support_modearray支持的排序方式
    namestr评论区类型名
    pagination_replystr用于下一次请求的偏移信息
    session_idstr

    cursor中的pagination_reply对象:

    字段类型内容备注
    next_offsetstr用于下一次请求的偏移信息
    prev_offsetstr用于本次请求的偏移信息

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP 觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的hots数组:

    类型内容备注
    0obj热评条目 1对象定义见表
    nobj热评条目 (n+1)按照热评热度排列
    ……obj…………

    data中的replies数组:

    类型内容备注
    0obj评论条目 1对象定义见表
    nobj评论条目 (n+1)按照指定的顺序排列
    ……obj…………

    data中的top对象:

    字段类型内容备注
    admin有效时:obj
    无效时:null
    管理员置顶条目对象定义见表
    upper有效时:obj
    无效时:null
    UP 主置顶条目对象定义见表
    vote有效时:obj
    无效时:null
    投票置顶条目对象定义见表

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid

    data中的notice对象:

    字段类型内容备注
    contentstr公告正文
    idnum公告 id
    linkstr公告页面链接 url
    titlestr公告标题

    data中的folder对象:

    字段类型内容备注
    has_foldedbool评论区是否存在折叠评论
    is_foldedbool是否折叠?
    rulestr相关规则页面 url

    data中的control对象:

    字段类型内容备注
    input_disablebool(?)
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    示例:

    获取视频av2的评论区明细, 按时间排序, 第一页

    curl -G 'https://api.bilibili.com/x/v2/reply/wbi/main' \
    +--data-urlencode 'oid=2' \
    +--data-urlencode 'type=1' \
    +--data-urlencode 'mode=2' \
    +--data-urlencode 'w_rid=xxx' \
    +--data-urlencode 'wts=xxx' \
    +-b 'SESSDATA='
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "cursor": {
    +      "is_begin": true,
    +      "prev": 71880,
    +      "next": 71859,
    +      "is_end": false,
    +      "mode": 2,
    +      "mode_text": "",
    +      "all_count": 86234,
    +      "support_mode": [
    +        2,
    +        3
    +      ],
    +      "name": "最新评论",
    +      "pagination_reply": {
    +        "next_offset": "{\"type\":3,\"direction\":1,\"Data\":{\"cursor\":71859}}"
    +      },
    +      "session_id": ""
    +    },
    +    "replies": [
    +      {
    +        "rpid": 237740291920,
    +        "oid": 2,
    +        "type": 1,
    +        "mid": 1201423076,
    +        "root": 0,
    +        "parent": 0,
    +        "dialog": 0,
    +        "count": 0,
    +        "rcount": 0,
    +        "state": 0,
    +        "fansgrade": 0,
    +        "attr": 0,
    +        "ctime": 1723639342,
    +        "mid_str": "1201423076",
    +        "oid_str": "2",
    +        "rpid_str": "237740291920",
    +        "root_str": "0",
    +        "parent_str": "0",
    +        "dialog_str": "0",
    +        "like": 0,
    +        "action": 0,
    +        "member": {
    +          "mid": "1201423076",
    +          "uname": "天堂いyoulin",
    +          "sex": "保密",
    +          "sign": "",
    +          "avatar": "https://i2.hdslb.com/bfs/face/d0925e782198cadc0c400a3ed4fbdf94142357fb.jpg",
    +          "rank": "10000",
    +          "face_nft_new": 0,
    +          "is_senior_member": 0,
    +          "senior": {},
    +          "level_info": {
    +            "current_level": 4,
    +            "current_min": 0,
    +            "current_exp": 0,
    +            "next_exp": 0
    +          },
    +          "pendant": {
    +            "pid": 0,
    +            "name": "",
    +            "image": "",
    +            "expire": 0,
    +            "image_enhance": "",
    +            "image_enhance_frame": "",
    +            "n_pid": 0
    +          },
    +          "nameplate": {
    +            "nid": 0,
    +            "name": "",
    +            "image": "",
    +            "image_small": "",
    +            "level": "",
    +            "condition": ""
    +          },
    +          "official_verify": {
    +            "type": -1,
    +            "desc": ""
    +          },
    +          "vip": {
    +            "vipType": 0,
    +            "vipDueDate": 0,
    +            "dueRemark": "",
    +            "accessStatus": 0,
    +            "vipStatus": 0,
    +            "vipStatusWarn": "",
    +            "themeType": 0,
    +            "label": {
    +              "path": "",
    +              "text": "",
    +              "label_theme": "",
    +              "text_color": "",
    +              "bg_style": 0,
    +              "bg_color": "",
    +              "border_color": "",
    +              "use_img_label": true,
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png"
    +            },
    +            "avatar_subscript": 0,
    +            "nickname_color": ""
    +          },
    +          "fans_detail": null,
    +          "user_sailing": {
    +            "pendant": null,
    +            "cardbg": null,
    +            "cardbg_with_focus": null
    +          },
    +          "user_sailing_v2": {},
    +          "is_contractor": false,
    +          "contract_desc": "",
    +          "nft_interaction": null,
    +          "avatar_item": {
    +            "container_size": {
    +              "width": 1.8,
    +              "height": 1.8
    +            },
    +            "fallback_layers": {
    +              "layers": [
    +                {
    +                  "visible": true,
    +                  "general_spec": {
    +                    "pos_spec": {
    +                      "coordinate_pos": 2,
    +                      "axis_x": 0.9,
    +                      "axis_y": 0.9
    +                    },
    +                    "size_spec": {
    +                      "width": 1,
    +                      "height": 1
    +                    },
    +                    "render_spec": {
    +                      "opacity": 1
    +                    }
    +                  },
    +                  "layer_config": {
    +                    "tags": {
    +                      "AVATAR_LAYER": {}
    +                    },
    +                    "is_critical": true,
    +                    "layer_mask": {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "coordinate_pos": 2,
    +                          "axis_x": 0.9,
    +                          "axis_y": 0.9
    +                        },
    +                        "size_spec": {
    +                          "width": 1,
    +                          "height": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        }
    +                      },
    +                      "mask_src": {
    +                        "src_type": 3,
    +                        "draw": {
    +                          "draw_type": 1,
    +                          "fill_mode": 1,
    +                          "color_config": {
    +                            "day": {
    +                              "argb": "#FF000000"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    }
    +                  },
    +                  "resource": {
    +                    "res_type": 3,
    +                    "res_image": {
    +                      "image_src": {
    +                        "src_type": 1,
    +                        "placeholder": 6,
    +                        "remote": {
    +                          "url": "https://i2.hdslb.com/bfs/face/d0925e782198cadc0c400a3ed4fbdf94142357fb.jpg",
    +                          "bfs_style": "widget-layer-avatar"
    +                        }
    +                      }
    +                    }
    +                  }
    +                }
    +              ],
    +              "is_critical_group": true
    +            },
    +            "mid": "1201423076"
    +          }
    +        },
    +        "content": {
    +          "message": "好多20年和18年的[辣眼睛]",
    +          "members": [],
    +          "emote": {
    +            "[辣眼睛]": {
    +              "id": 2374,
    +              "package_id": 1,
    +              "state": 0,
    +              "type": 1,
    +              "attr": 0,
    +              "text": "[辣眼睛]",
    +              "url": "https://i0.hdslb.com/bfs/emote/35d62c496d1e4ea9e091243fa812866f5fecc101.png",
    +              "meta": {
    +                "size": 1,
    +                "suggest": [
    +                  ""
    +                ]
    +              },
    +              "mtime": 1668688325,
    +              "jump_title": "辣眼睛"
    +            }
    +          },
    +          "jump_url": {},
    +          "max_line": 6
    +        },
    +        "replies": [],
    +        "assist": 0,
    +        "up_action": {
    +          "like": false,
    +          "reply": false
    +        },
    +        "invisible": false,
    +        "reply_control": {
    +          "max_line": 6,
    +          "time_desc": "21分钟前发布",
    +          "location": "IP属地:河北"
    +        },
    +        "folder": {
    +          "has_folded": false,
    +          "is_folded": false,
    +          "rule": ""
    +        },
    +        "dynamic_id_str": "0",
    +        "note_cvid_str": "0",
    +        "track_info": ""
    +      },
    +      // ...
    +      {
    +        "rpid": 237689432448,
    +        "oid": 2,
    +        "type": 1,
    +        "mid": 1647250883,
    +        "root": 0,
    +        "parent": 0,
    +        "dialog": 0,
    +        "count": 0,
    +        "rcount": 0,
    +        "state": 0,
    +        "fansgrade": 0,
    +        "attr": 0,
    +        "ctime": 1723624563,
    +        "mid_str": "1647250883",
    +        "oid_str": "2",
    +        "rpid_str": "237689432448",
    +        "root_str": "0",
    +        "parent_str": "0",
    +        "dialog_str": "0",
    +        "like": 1,
    +        "action": 0,
    +        "member": {
    +          "mid": "1647250883",
    +          "uname": "小烟同学424",
    +          "sex": "保密",
    +          "sign": "墓前玩使命,墓前暑假",
    +          "avatar": "https://i2.hdslb.com/bfs/face/930661ca1bcacf8005efcca499b7380dcd4c2716.jpg",
    +          "rank": "10000",
    +          "face_nft_new": 0,
    +          "is_senior_member": 0,
    +          "senior": {},
    +          "level_info": {
    +            "current_level": 5,
    +            "current_min": 0,
    +            "current_exp": 0,
    +            "next_exp": 0
    +          },
    +          "pendant": {
    +            "pid": 0,
    +            "name": "",
    +            "image": "",
    +            "expire": 0,
    +            "image_enhance": "",
    +            "image_enhance_frame": "",
    +            "n_pid": 0
    +          },
    +          "nameplate": {
    +            "nid": 0,
    +            "name": "",
    +            "image": "",
    +            "image_small": "",
    +            "level": "",
    +            "condition": ""
    +          },
    +          "official_verify": {
    +            "type": -1,
    +            "desc": ""
    +          },
    +          "vip": {
    +            "vipType": 0,
    +            "vipDueDate": 0,
    +            "dueRemark": "",
    +            "accessStatus": 0,
    +            "vipStatus": 0,
    +            "vipStatusWarn": "",
    +            "themeType": 0,
    +            "label": {
    +              "path": "",
    +              "text": "",
    +              "label_theme": "",
    +              "text_color": "",
    +              "bg_style": 0,
    +              "bg_color": "",
    +              "border_color": "",
    +              "use_img_label": true,
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png"
    +            },
    +            "avatar_subscript": 0,
    +            "nickname_color": ""
    +          },
    +          "fans_detail": null,
    +          "user_sailing": {
    +            "pendant": null,
    +            "cardbg": null,
    +            "cardbg_with_focus": null
    +          },
    +          "user_sailing_v2": {},
    +          "is_contractor": false,
    +          "contract_desc": "",
    +          "nft_interaction": null,
    +          "avatar_item": {
    +            "container_size": {
    +              "width": 1.8,
    +              "height": 1.8
    +            },
    +            "fallback_layers": {
    +              "layers": [
    +                {
    +                  "visible": true,
    +                  "general_spec": {
    +                    "pos_spec": {
    +                      "coordinate_pos": 2,
    +                      "axis_x": 0.9,
    +                      "axis_y": 0.9
    +                    },
    +                    "size_spec": {
    +                      "width": 1,
    +                      "height": 1
    +                    },
    +                    "render_spec": {
    +                      "opacity": 1
    +                    }
    +                  },
    +                  "layer_config": {
    +                    "tags": {
    +                      "AVATAR_LAYER": {}
    +                    },
    +                    "is_critical": true,
    +                    "layer_mask": {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "coordinate_pos": 2,
    +                          "axis_x": 0.9,
    +                          "axis_y": 0.9
    +                        },
    +                        "size_spec": {
    +                          "width": 1,
    +                          "height": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        }
    +                      },
    +                      "mask_src": {
    +                        "src_type": 3,
    +                        "draw": {
    +                          "draw_type": 1,
    +                          "fill_mode": 1,
    +                          "color_config": {
    +                            "day": {
    +                              "argb": "#FF000000"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    }
    +                  },
    +                  "resource": {
    +                    "res_type": 3,
    +                    "res_image": {
    +                      "image_src": {
    +                        "src_type": 1,
    +                        "placeholder": 6,
    +                        "remote": {
    +                          "url": "https://i2.hdslb.com/bfs/face/930661ca1bcacf8005efcca499b7380dcd4c2716.jpg",
    +                          "bfs_style": "widget-layer-avatar"
    +                        }
    +                      }
    +                    }
    +                  }
    +                }
    +              ],
    +              "is_critical_group": true
    +            },
    +            "mid": "1647250883"
    +          }
    +        },
    +        "content": {
    +          "message": "还。。。有人吗?",
    +          "members": [],
    +          "jump_url": {},
    +          "max_line": 6
    +        },
    +        "replies": [],
    +        "assist": 0,
    +        "up_action": {
    +          "like": false,
    +          "reply": false
    +        },
    +        "invisible": false,
    +        "reply_control": {
    +          "max_line": 6,
    +          "time_desc": "4小时前发布",
    +          "location": "IP属地:陕西"
    +        },
    +        "folder": {
    +          "has_folded": false,
    +          "is_folded": false,
    +          "rule": ""
    +        },
    +        "dynamic_id_str": "0",
    +        "note_cvid_str": "0",
    +        "track_info": ""
    +      }
    +    ],
    +    "top": {
    +      "admin": null,
    +      "upper": null,
    +      "vote": null
    +    },
    +    "top_replies": [],
    +    "up_selection": {
    +      "pending_count": 0,
    +      "ignore_count": 0
    +    },
    +    "effects": {
    +      "preloading": ""
    +    },
    +    "assist": 0,
    +    "blacklist": 0,
    +    "vote": 0,
    +    "config": {
    +      "showtopic": 1,
    +      "show_up_flag": true,
    +      "read_only": false
    +    },
    +    "upper": {
    +      "mid": 2
    +    },
    +    "control": {
    +      "input_disable": false,
    +      "root_input_text": "你渴望拥有力量吗?评论让力量更强大",
    +      "child_input_text": "你渴望拥有力量吗?评论让力量更强大",
    +      "giveup_input_text": "不发没关系,请继续友善哦~",
    +      "screenshot_icon_state": 1,
    +      "upload_picture_icon_state": 1,
    +      "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!",
    +      "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png",
    +      "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12",
    +      "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6",
    +      "bg_text": "",
    +      "empty_page": null,
    +      "show_type": 1,
    +      "show_text": "",
    +      "web_selection": false,
    +      "disable_jump_emote": false,
    +      "enable_charged": false,
    +      "enable_cm_biz_helper": false,
    +      "preload_resources": null
    +    },
    +    "note": 1,
    +    "esports_grade_card": null,
    +    "callbacks": null,
    +    "context_feature": ""
    +  }
    +}
    +

    获取指定评论的回复

    https://api.bilibili.com/x/v2/reply/reply

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    按照回复顺序排序

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录 TokenAPP 方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区 id必要
    rootnum根回复 rpid必要
    psnum每页项数非必要默认为20
    定义域:1-49
    但 data_replies 的最大内容数为20,因此设置为49其实也只会有20条回复被返回
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    configobj评论区显示控制
    controlobj评论区输入属性
    pageobj页面信息
    repliesarray评论对话树列表最大内容数为20
    rootobj根评论信息对象定义见表
    show_bvidbool显示 bvid?
    show_textstr(?)
    show_typenum(?)
    upperobjUP主 mid

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的control对象:

    字段类型内容备注
    input_disablebool(?)
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    data中的page对象:

    字段类型内容备注
    countnum二级评论数
    numnum当前页码
    sizenum每页项数

    data中的replies数组:

    类型内容备注
    0obj对话评论条目 1对象定义见表
    nobj对话评论条目 (n+1)按照回复顺序排列
    ……obj…………

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid

    示例:

    获取视频av201022189下评论rpid=3030790837的回复,每页5项,获取第1页

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录 TokenAPP 方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区 id必要
    rootnum根回复 rpid必要
    dialognum对话树根 rpid必要
    sizenum每页最大项数必要
    min_floornum(?)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    cursorobj页楼层信息
    dialogobj对话楼层信息
    repliesarray评论对话树列表
    assistnum(?)
    blacklistnum(?)
    votenum(?)
    lotterynum(?)
    configobj评论区显示控制
    upperobjUP主 mid
    show_bvidbool显示 bvid?
    controlobj评论区输入属性
    notenum(?)

    data中的cursor对象:

    字段类型内容备注
    min_floornum本页最低对话楼层
    max_floornum本页最高对话楼层
    sizenum本页项数

    data中的dialog对象:

    字段类型内容备注
    min_floornum二级评论最低对话楼层
    max_floornum二级评论最高对话楼层

    data中的replies数组:

    类型内容备注
    0obj对话评论条目 1对象定义见表
    nobj对话评论条目 (n+1)按照对话链排列
    ……obj…………

    data中的config对象:

    字段类型内容备注
    showadminnum是否显示管理置顶
    showentrynum
    showfloornum是否显示楼层号
    showtopicnum是否显示话题
    show_up_flagbool是否显示“UP 觉得很赞”标志
    read_onlybool是否只读评论区
    show_del_logbool是否显示删除记录

    data中的upper对象:

    字段类型内容备注
    midnumUP 主 mid

    data中的control对象:

    字段类型内容备注
    input_disablebool(?)
    root_input_textstr评论框文字
    child_input_textstr评论框文字
    bg_textstr空评论区文字
    web_selectionbool评论是否筛选后可见false:无需筛选
    true:需要筛选
    answer_guide_textstr答题页面链接文字
    answer_guide_icon_urlstr答题页面图标 url
    answer_guide_ios_urlstr答题页面 ios url
    answer_guide_android_urlstr答题页面安卓 url

    示例:

    获取视频av201022189下评论rpid=3030790837的对话rpid=3030978856,每页最大5项

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录 TokenAPP 方式必要
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区 id必要
    rootnum根回复 rpid必要
    psnum每页项数非必要默认为20
    定义域:1-49
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12002:评论区已关闭
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    pageobj页面信息
    repliesobj热评列表

    data中的page对象:

    字段类型内容备注
    acountnum总评论数
    countnum热评数
    numnum当前页码
    sizenum每页项数

    data中的replies数组:

    类型内容备注
    0obj热评条目 1对象定义见表
    nobj热评条目 (n+1)按照热评排列
    ……obj…………

    示例:

    获取视频av2的评论区热评,每页5项,查看第1页

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    typenum评论区类型代码非必要类型代码见表
    oidnum目标评论区 id非必要
    rpidnum目标评论 rpid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    评论条目对象定义见表

    示例:

    获取视频av379743801评论区下rpid=95737567200的信息

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    typenum评论区类型代码必要类型代码见表
    oidnum目标评论区 id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无此项
    12009:评论主体的type不合法
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    数据本体

    data对象:

    字段类型内容备注
    countnum评论条数

    示例:

    获取视频av2的评论区总计评论条数

    curl -G 'https://api.bilibili.com/x/v2/reply/count' \
    +--data-urlencode 'type=1' \
    +--data-urlencode 'oid=2'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "count": 65521
    +    }
    +}
    +
    + + + diff --git a/docs/creativecenter/railgun.html b/docs/creativecenter/railgun.html new file mode 100644 index 0000000000..31b711711d --- /dev/null +++ b/docs/creativecenter/railgun.html @@ -0,0 +1,117 @@ + + + + + + + + + 电磁力相关 | BAC Document + + + + +

    电磁力相关

    电磁力每周日下午刷新

    获取电磁力等级(web端)

    https://api.bilibili.com/studio/up-rating/v3/rating/info

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum当前用户mid
    levelnum电磁力等级
    scorenum电磁力分数
    creditnum信用分
    statenum?一直是2

    示例:

    curl 'https://member.bilibili.com/x/web/elec/user' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "mid": ***,
    +        "level": 4,
    +        "score": 326,
    +        "credit": 100,
    +        "state": 2,
    +        "update_date": 1694966400
    +    }
    +}
    +

    (失效)获取电磁力详细数值(双端)

    https://api.bilibili.com/studio/up-rating/rating/summary

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    datestr数据刷新时间YYYY-MM-DD
    levelobj电磁力等级
    creativeobj创作力
    influenceobj影响力
    creditobj信用分

    data中的level creative influence credit对象:

    字段类型内容备注
    datanum数值
    prevnum???作用尚不明确
    descstr描述
    datenum刷新时间时间戳

    示例:

    Cookie方式:

    curl 'https://api.bilibili.com/studio/up-rating/rating/summary' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/studio/up-rating/rating/summary' \
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1创作力
    2影响力
    3信用分

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    datearray数据记录时间每周更新
    scorearray电磁力等级每周更新

    data中的date数组:

    类型内容备注
    0str1周前的日期MM-DD
    nstr(n+1)周前的日期与数值一一对应
    ……str…………
    7str8周前的日期最后一条

    data中的score数组:

    类型内容备注
    0num1周前的数值
    nnum(n+1)周前的数值与日期一一对应
    ……num…………
    7num8周前的数值最后一条

    示例:

    查询创作力的历史变化

    Cookie方式:

    curl -G 'https://api.bilibili.com/studio/up-rating/rating/history' \
    +--data-urlencode 'type=1' \
    +-b 'SESSDATA=xxx'
    +

    APP方式:

    curl -G 'https://api.bilibili.com/studio/up-rating/rating/history' \
    +--data-urlencode 'type=1' \
    +--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "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/season.html b/docs/creativecenter/season.html new file mode 100644 index 0000000000..2a0646ad6c --- /dev/null +++ b/docs/creativecenter/season.html @@ -0,0 +1,321 @@ + + + + + + + + + 合集管理 | BAC Document + + + + +

    合集管理

    关于用户空间的合集及视频列表参见 合集和视频列表信息

    获取合集列表

    https://member.bilibili.com/x2/creative/web/seasons

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    pnnum页码必要默认为 1
    psnum每页数量必要默认为 30
    orderstr排序方式不必要创建时间: ctime
    修改时间: mtime
    sortstr排序方式不必要创建时间: asc
    修改时间: desc
    draftnum1不必要作用尚不明确

    JSON回复:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seasonsarr合集列表
    tipobj内容 title url 均为空
    totalnum合集总数
    play_typenum1作用尚不明确

    seasons数组中的对象:

    字段类型内容备注
    seasonobj合集信息
    coursenull
    checkinobj审核信息?
    seasonStatobj合集统计信息
    sectionsobj小节列表
    part_episodesarr合集视频列表

    seasons数组中的对象中的season对象:

    字段类型内容备注
    idnum合集 ID
    titlestr合集标题
    descstr合集描述
    coverstr合集封面 URL
    isEndnum是否已完结?0: 未完结
    midnum合集作者 ID
    isActnum是否为活动合集?0: 否
    is_paynum是否付费?0: 否
    statenum合集状态?0: 正常显示
    -6: 正在审核
    partStatenum合集分段状态?0
    signStatenum合集签名状态?0
    rejectReasonstr合集拒绝原因?
    ctimenum创建时间
    mtimenum修改时间
    no_sectionnum是否设小节1: 不设小节
    forbidnum合集是否禁止?0: 否
    protocol_idstr
    ep_numnum0
    season_pricenum合集价格?0: 免费
    is_openednum是否公开?1: 公开
    has_charging_paynum是否充电付费?0: 否

    seasons数组中的对象中的checkin对象:

    字段类型内容备注
    statusnum状态?0: 正常显示
    status_reasonstr状态原因?
    season_statusnum合集审核状态?1: 审核通过

    seasons数组中的对象中的seasonStat对象:

    字段类型内容备注
    viewnum播放量
    danmakunum弹幕数
    replynum评论数
    favnum收藏数
    coinnum硬币数
    sharenum分享数
    nowRanknum当前排名?
    hisRanknum历史最高排名?
    likenum点赞数
    subscriptionnum订阅数
    vtnum0

    seasons数组中的对象中的sections对象:

    字段类型内容备注
    sectionsarr小节列表套了个娃

    seasons数组中的对象中的sections数组中的对象:

    字段类型内容备注
    idnum小节 ID
    typenum1
    seasonIdnum合集 ID
    titlestr小节标题
    ordernum排序
    statenum状态?0: 正常
    partStatenum合集分段状态?0: 正常
    rejectReasonstr拒绝原因?
    ctimenum创建时间
    mtimenum修改时间
    epCountnum视频数量
    coverstr封面 URL
    has_charging_paynum是否充电付费?0: 否
    Episodesnull

    seasons数组中的对象中的part_episodes数组中的对象:

    字段类型内容备注
    idnum合集内视频 ID
    titlestr视频标题
    aidnum视频 aid
    bvidstr视频 bvid
    cidnum视频 cid
    seasonIdnum合集 ID
    sectionIdnum小节 ID
    ordernum排序编号
    videoTitlestr
    archiveTitlestr
    archiveStatenum0
    rejectReasonstr拒绝理由?
    statenum0
    coverstr封面 URL
    is_freenum是否免费?0: 免费
    aid_ownerboolfalse
    charging_paynum充电付费?0: 否

    示例:

    curl -G 'https://member.bilibili.com/x2/creative/web/seasons' \
    +--data-urlencode 'pn=1' \
    +--data-urlencode 'ps=30' \
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "seasons": [
    +      {
    +        "season": {
    +          "id": 3541247,
    +          "title": "🍥Debian",
    +          "desc": "这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~",
    +          "cover": "https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg",
    +          "isEnd": 0,
    +          "mid": 645769214,
    +          "isAct": 0,
    +          "is_pay": 0,
    +          "state": 0,
    +          "partState": 0,
    +          "signState": 0,
    +          "rejectReason": "",
    +          "ctime": 1722573640,
    +          "mtime": 1722577206,
    +          "no_section": 1,
    +          "forbid": 0,
    +          "protocol_id": "",
    +          "ep_num": 0,
    +          "season_price": 0,
    +          "is_opened": 1,
    +          "has_charging_pay": 0
    +        },
    +        "course": null,
    +        "checkin": {
    +          "status": 0,
    +          "status_reason": "",
    +          "season_status": 1
    +        },
    +        "seasonStat": {
    +          "view": 6793,
    +          "danmaku": 21,
    +          "reply": 93,
    +          "fav": 64,
    +          "coin": 26,
    +          "share": 12,
    +          "nowRank": 0,
    +          "hisRank": 0,
    +          "like": 141,
    +          "subscription": 0,
    +          "vt": 0
    +        },
    +        "sections": {
    +          "sections": [
    +            {
    +              "id": 3954033,
    +              "type": 1,
    +              "seasonId": 3541247,
    +              "title": "正片",
    +              "order": 1,
    +              "state": 0,
    +              "partState": 0,
    +              "rejectReason": "",
    +              "ctime": 1722573640,
    +              "mtime": 1722577206,
    +              "epCount": 2,
    +              "cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
    +              "has_charging_pay": 0,
    +              "Episodes": null
    +            }
    +          ]
    +        },
    +        "part_episodes": [
    +          {
    +            "id": 77260687,
    +            "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +            "aid": 1906473802,
    +            "bvid": "BV1MU411S7iJ",
    +            "cid": 1625992822,
    +            "seasonId": 3541247,
    +            "sectionId": 3954033,
    +            "order": 1,
    +            "videoTitle": "",
    +            "archiveTitle": "",
    +            "archiveState": 0,
    +            "rejectReason": "",
    +            "state": 0,
    +            "cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
    +            "is_free": 0,
    +            "aid_owner": false,
    +            "charging_pay": 0
    +          },
    +          {
    +            "id": 77260688,
    +            "title": "十多年前的电脑运行Debian12的启动过程",
    +            "aid": 1956170305,
    +            "bvid": "BV1Ay411i7Ph",
    +            "cid": 1607067247,
    +            "seasonId": 3541247,
    +            "sectionId": 3954033,
    +            "order": 2,
    +            "videoTitle": "",
    +            "archiveTitle": "",
    +            "archiveState": 0,
    +            "rejectReason": "",
    +            "state": 0,
    +            "cover": "http://i0.hdslb.com/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
    +            "is_free": 0,
    +            "aid_owner": false,
    +            "charging_pay": 0
    +          }
    +        ]
    +      },
    +      {
    +        "season": {
    +          "id": 3541327,
    +          "title": "BACollect",
    +          "desc": "",
    +          "cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
    +          "isEnd": 0,
    +          "mid": 645769214,
    +          "isAct": 0,
    +          "is_pay": 0,
    +          "state": 0,
    +          "partState": 0,
    +          "signState": 0,
    +          "rejectReason": "",
    +          "ctime": 1722574656,
    +          "mtime": 1722574658,
    +          "no_section": 1,
    +          "forbid": 0,
    +          "protocol_id": "",
    +          "ep_num": 0,
    +          "season_price": 0,
    +          "is_opened": 1,
    +          "has_charging_pay": 0
    +        },
    +        "course": null,
    +        "checkin": {
    +          "status": 0,
    +          "status_reason": "",
    +          "season_status": 0
    +        },
    +        "seasonStat": {
    +          "view": 0,
    +          "danmaku": 0,
    +          "reply": 0,
    +          "fav": 0,
    +          "coin": 0,
    +          "share": 0,
    +          "nowRank": 0,
    +          "hisRank": 0,
    +          "like": 0,
    +          "subscription": 0,
    +          "vt": 0
    +        },
    +        "sections": {
    +          "sections": [
    +            {
    +              "id": 3954127,
    +              "type": 1,
    +              "seasonId": 3541327,
    +              "title": "正片",
    +              "order": 1,
    +              "state": 0,
    +              "partState": 0,
    +              "rejectReason": "",
    +              "ctime": 1722574656,
    +              "mtime": 1722574656,
    +              "epCount": 0,
    +              "cover": "http://static.hdslb.com/images/transparent.gif",
    +              "has_charging_pay": 0,
    +              "Episodes": null
    +            }
    +          ]
    +        },
    +        "part_episodes": null
    +      }
    +    ],
    +    "tip": {
    +      "title": "",
    +      "url": ""
    +    },
    +    "total": 2,
    +    "play_type": 1
    +  }
    +}
    +

    创建合集

    ttps://member.bilibili.com/x2/creative/web/season/add

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    注: 有人工审核

    正文参数:

    参数名类型内容必要性备注
    titlestr合集标题必要
    descstr合集简介不必要
    coverstr封面图必要上传封面 处获取
    season_pricenum0不必要作用尚不明确
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    datanum合集 ID

    示例:

    curl -X POST 'https://member.bilibili.com/x2/creative/web/season/add' \
    +--data-urlencode 'title=🍥Debian' \
    +--data-urlencode 'desc=这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~' \
    +--data-urlencode 'cover=https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg' \
    +--data-urlencode 'season_price=0' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": 3541247
    +}
    +

    添加视频到合集

    https://member.bilibili.com/x2/creative/web/season/section/episodes/add

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (application/json):

    根对象:

    参数名类型内容必要性备注
    episodearray视频列表必要
    section_idnum合集小节 ID必要

    episode 数组中的对象:

    参数名类型内容必要性备注
    aidnum视频 aid必要
    cidnum稿件 cid必要
    titlestr合集内单集标题必要
    charging_paynum0不必要作用尚不明确

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    假设您已经把请求有效荷载放在 payload.json 文件中:

    {
    +  "sectionId": 3954033,
    +  "episodes": [
    +    {
    +      "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +      "aid": 1906473802,
    +      "cid": 1625992822,
    +      "charging_pay": 0
    +    },
    +    {
    +      "title": "十多年前的电脑运行Debian12的启动过程",
    +      "aid": 1956170305,
    +      "cid": 1607067247,
    +      "charging_pay": 0
    +    }
    +  ]
    +}
    +
    curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/episodes/add' \
    +--url-query 'csrf=xxx' \
    +-H 'Content-Type: application/json' \
    +--data-binary @payload.json \
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    编辑合集小节

    https://member.bilibili.com/x2/creative/web/season/section/edit

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct)必要

    正文参数 (application/json):

    根对象:

    参数名类型内容必要性备注
    sectionobj小节信息必要
    sortsarray排序列表必要

    section 对象:

    参数名类型内容必要性备注
    idnum小节 ID必要
    seasonIdnum合集 ID必要
    titlestr小节标题必要
    typenum1必要

    sorts 数组中的对象:

    参数名类型内容必要性备注
    idnum合集内视频 ID必要
    ordernum排序位置必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    假设您已经把请求有效荷载放在 payload.json 文件中:

    {
    +  "section": {
    +    "id": 3954033,
    +    "type": 1,
    +    "seasonId": 3541247,
    +    "title": "正片"
    +  },
    +  "sorts": [
    +    {
    +      "id": 77260687,
    +      "sort": 1
    +    },
    +    {
    +      "id": 77260688,
    +      "sort": 2
    +    }
    +  ]
    +}
    +
    curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/edit' \
    +--url-query 'csrf=xxx' \
    +-H 'Content-Type: application/json' \
    +--data-binary @payload.json \
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    编辑合集信息

    https://member.bilibili.com/x2/creative/web/season/edit

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    注: 也有人工审核

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct)必要

    正文参数 (application/json):

    根对象:

    参数名类型内容必要性备注
    seasonobj合集信息必要
    sortsarray排序列表必要

    season 对象:

    参数名类型内容必要性备注
    idnum合集 ID必要
    titlestr合集标题必要
    coverstr封面图必要上传封面 处获取
    descstr合集简介不必要
    season_pricenum0不必要作用尚不明确
    isEndnum是否完结不必要0:未完结
    1:完结

    sorts 数组中的对象:

    参数名类型内容必要性备注
    idnum小节 ID必要
    sortnum排序位置必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    假设您已经把请求有效荷载放在 payload.json 文件中:

    {
    +  "season": {
    +    "cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
    +    "id": 3541327,
    +    "title": "IWILLBEDEL"
    +  },
    +  "sorts": [
    +    {
    +      "id": 3954127,
    +      "sort": 1
    +    }
    +  ]
    +}
    +
    curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/edit' \
    +--url-query 'csrf=xxx' \
    +-H 'Content-Type: application/json' \
    +--data-binary @payload.json \
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    删除合集

    https://member.bilibili.com/x2/creative/web/season/del

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    idnum合集 ID必要
    csrfstrCSRF Token (即 Cookie 中 bili_jct)必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1

    示例:

    删除合集 id=3541327

    curl -X POST 'https://member.bilibili.com/x2/creative/web/season/del' \
    +--data-urlencode 'id=3541327' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +
    + + + diff --git a/docs/creativecenter/statistics_data.html b/docs/creativecenter/statistics_data.html new file mode 100644 index 0000000000..90ade558d4 --- /dev/null +++ b/docs/creativecenter/statistics_data.html @@ -0,0 +1,322 @@ + + + + + + + + + 统计与数据 | BAC Document + + + + +

    统计与数据

    统计与数据次日中午12刷新

    UP主视频状态数据

    https://member.bilibili.com/x/web/index/stat

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    inc_coinnum新增投币数
    inc_elecnum新增充电数
    inc_favnum新增收藏数
    inc_likenum新增点赞数
    inc_sharenum新增分享数
    incr_clicknum新增播放数
    incr_dmnum新增弹幕数
    incr_fansnum新增粉丝数
    incr_replynum新增评论数
    total_clicknum总计播放数
    total_coinnum总计投币数
    total_dmnum总计弹幕数
    total_elecnum总计充电数
    total_fansnum总计粉丝数
    total_favnum总计收藏数
    total_likenum总计点赞数
    total_replynum总计评论数
    total_sharenum总计分享数

    示例:

    curl 'https://member.bilibili.com/x/web/index/stat' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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/archive_diagnose/compare

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    tnum时间戳可选
    sizenum比较最近的N条视频可选,默认5似乎没有最大值,或者最大值很大

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    listlist最近的视频

    data中的list项:

    [!TIP] 这里的数字一般都是百分比,小数点后保留两位,100代表1%,10000代表100%

    字段类型内容备注
    aidnumav号
    bvidstrbv号
    coverstr封面url
    titlestr标题
    pubtimenum发布时间
    durationnum视频长度(秒)
    playnum播放数
    vtnum未知
    likenum点赞数
    commentnum评论数
    dmnum弹幕数
    favnum收藏数
    coinnum投币数
    sharenum分享数
    full_play_rationum完播比,用户平均在百分之多少退出
    play_viewer_ratenum游客播放数,这个视频有多少是游客播放
    active_fans_ratenum粉丝观看率,多少粉丝看了这个视频
    active_fans_mednum?
    tm_ratenum封标点击率
    tm_rate_mednum你自己平均封标点击率
    tm_fan_simi_rate_mednum同类up粉丝封标点击率
    tm_viewer_simi_rate_mednum同类up游客封标点击率
    tm_fan_ratenum粉丝封标点击率
    tm_viewer_ratenum游客封标点击率
    tm_pass_ratenum封标点击率超过n%同类稿件
    tm_fan_pass_ratenum粉丝封标点击率超过n%同类稿件
    tm_viewer_pass_ratenum游客封标点击率超过n%同类稿件
    crash_ratenum3秒退出率
    crash_rate_mednum?
    crash_fan_simi_rate_mednum同类up粉丝3秒退出率
    crash_viewer_simi_rate_mednum同类up游客3秒退出率
    crash_fan_ratenum粉丝3秒退出率
    crash_viewer_ratenum游客3秒退出率
    interact_ratenum互动率
    interact_rate_mednum
    interact_fan_simi_rate_mednum同类up粉丝互动率
    interact_viewer_simi_rate_mednum同类up游客互动率
    interact_fan_ratenum粉丝互动率
    interact_viewer_ratenum游客互动率
    avg_play_timenum平均播放时间注意:此字段总是0,可能b站正在写代码,或者和播放量改播放时长有关?
    total_new_attention_cntnum涨粉
    play_trans_fan_ratenum播转粉率
    play_trans_fan_rate_mednum其他up平均播转粉率

    示例:

    curl 'https://member.bilibili.com/x/web/data/archive_diagnose/compare?size=10' \
    +-b 'SESSDATA=xxx'
    +

    UP主专栏状态数据

    https://member.bilibili.com/x/web/data/article

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    viewnum总计阅读数
    replynum总计评论数
    likenum总计点赞数
    coinnum总计投币数
    favnum总计收藏数
    sharenum总计分享数
    incr_viewnum新增阅读数
    incr_replynum新增评论数
    incr_likenum新增点赞数
    incr_coinnum新增投币数
    incr_favnum新增收藏数
    incr_sharenum新增分享数

    示例:

    curl 'https://member.bilibili.com/x/web/data/article' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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/pandect

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    数据为前30天

    url参数:

    参数名类型内容必要性备注
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1播放
    2弹幕
    3评论
    4分享
    5投币
    6收藏
    7充电
    8点赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataarray趋势列表

    data数组:

    类型内容备注
    0obj1天前的数据
    nobj(n+1)天前的数据
    ……obj…………
    29obj30天前的数据最后一条

    data数组中的对象:

    字段类型内容备注
    date_keynum对应时间时间戳 前一天的8:00
    total_incnum增加数量意义为数据类型决定

    示例:

    查询30天前的视频播放增量趋势,可知2020-04-05的播放增量为462020-04-04的播放增量为58

    curl -G 'https://member.bilibili.com/x/web/data/pandect' \
    +--data-urlencode 'type=1' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1阅读
    2评论
    3分享
    4投币
    5收藏
    6点赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataarray趋势列表

    data数组:

    类型内容备注
    0obj30天前的数据
    nobj(30-n)天前的数据
    ……obj…………
    29obj1天前的数据最后一条

    data数组中的对象:

    字段类型内容备注
    date_keynum对应时间时间戳 前一天的8:00
    total_incnum增加数量意义为数据类型决定

    示例:

    查询30天前的文章阅读增量趋势,可知2020-04-05的阅读增量为62020-04-04的阅读增量为6

    curl -G 'https://member.bilibili.com/x/web/data/article/thirty' \
    +--data-urlencode 'type=1' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    typenum目标数据类型必要类型代码见下表

    类型代码type

    代码含义
    1播放
    2弹幕
    3评论
    4分享
    5投币
    6收藏
    7充电
    8点赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    {YYYYMMDD}obj上一天的情况字段名为日期

    data中的{YYYYMMDD}对象:

    字段类型内容备注
    arc_incarray稿件情况
    total_incnum总计增长情况
    type_rankobj分区排名情况

    {YYYYMMDD}中的arc_inc数组:

    类型内容备注
    0obj稿件1
    nobj稿件(n+1)
    ……obj…………

    {YYYYMMDD}中的arc_inc数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    bvidstr稿件bvid
    daytimenum统计时间时间戳
    incrnum稿件增长情况数
    interactivenum0作用尚不明确
    ptimenum稿件发布时间时间戳
    titlestr稿件标题

    {YYYYMMDD}中的type_rank对象:

    字段类型内容备注
    {分区名}num该排名数
    ……num…………

    示例:

    查询我的稿件来源占比情况

    curl -G 'https://member.bilibili.com/x/web/data/survey' \
    +--data-urlencode 'type=1' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    page_sourceobj播放方式情况
    play_proportionobj播放平台情况

    data中的page_source对象:

    字段类型内容备注
    dynamicnum通过动态
    othernum其他方式
    related_videonum通过推荐列表
    searchnum通过搜索
    spacenum空间列表播放
    tenmanum天马(APP推荐信息流)来源

    data中的play_proportion对象:

    字段类型内容备注
    androidnum安卓端
    h5num移动端h5页面
    iosnumios端
    outnum站外
    pcnum电脑版网页

    示例:

    curl 'https://member.bilibili.com/x/web/data/playsource' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    periodobj提示信息
    viewer_areaobj播放地区情况
    viewer_baseobj播放数据情况

    data中的period对象:

    字段类型内容备注
    module_onestr???
    module_twostr???
    module_threestr???
    module_fourstr???

    data中的viewer_area对象:

    字段类型内容备注
    fanobj粉丝播放地区情况
    not_fanobj路人播放地区情况

    viewer_area中的fan对象:

    字段类型内容备注
    {行政区名}num该地区的粉丝播放量字段名为行政区名
    ……num…………

    viewer_area中的not_fan对象:

    字段类型内容备注
    {行政区名}num该地区的路人播放量字段名为行政区名
    ……num…………

    data中的viewer_base对象:

    字段类型内容备注
    fanobj粉丝播放数据情况
    not_fanobj路人播放数据情况

    viewer_base中的fan对象:

    字段类型内容备注
    malenum男性粉丝播放数
    femalenum女性粉丝播放数
    age_onenum0-16岁粉丝播放数
    age_twonum16-25岁粉丝播放数
    age_threenum25-40岁粉丝播放数
    age_fournum40+岁粉丝播放数
    plat_pcnumpc网页端粉丝播放数
    plat_h5num移动h5端粉丝播放数
    plat_outnum站外端粉丝播放数
    plat_iosnumios端粉丝播放数
    plat_androidnum安卓端粉丝播放数
    plat_other_appnum其他粉丝播放数

    viewer_base中的not_fan对象:

    字段类型内容备注
    malenum男性路人播放数
    femalenum女性路人播放数
    age_onenum0-16岁路人播放数
    age_twonum16-25岁路人播放数
    age_threenum25-40岁路人播放数
    age_fournum40+岁路人播放数
    plat_pcnumpc网页端路人播放数
    plat_h5num移动h5端路人播放数
    plat_outnum站外端路人播放数
    plat_iosnumios端路人播放数
    plat_androidnum安卓端路人播放数
    plat_other_appnum其他路人播放数

    示例:

    curl 'https://member.bilibili.com/x/web/data/base' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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/creativecenter/upload.html b/docs/creativecenter/upload.html new file mode 100644 index 0000000000..d5d71337bb --- /dev/null +++ b/docs/creativecenter/upload.html @@ -0,0 +1,525 @@ + + + + + + + + + 投稿 | BAC Document + + + + +

    投稿

    上传封面

    https://member.bilibili.com/x/vu/web/cover/up

    请求方式: POST

    认证方式:Cookie(SESSDATA)

    注: 目前看来上传的图片似乎不会自动删除

    URL参数:

    参数名类型内容必要性备注
    tsnum当前时间不必要UNIX 毫秒时间戳

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要
    coverbase64视频封面必要经过 base64 编码的图片数据

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    -111: csrf 校验失败
    -101: 账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    urlstr封面 URL

    示例:

    假设已经把需要发送的数据进行编码存放在文件 ./b64 中:

    csrf=xxxxxxxxxxxx&cover=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABA...
    +

    发送请求:

    curl -X POST --url "https://member.bilibili.com/x/vu/web/cover/up" \
    +--url-query "ts=$(date +%s%3N)" \
    +--data-binary @b64 \
    +-b "SESSDATA=xxxxxx; bili_jct=xxxxxx"
    +

    JavaScript (Node.js) 请求示例open in new window

    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "url": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg"
    +  }
    +}
    +

    预测稿件类型

    https://member.bilibili.com/x/vupre/web/archive/types/predict

    请求方式: POST

    认证方式: Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    tsnum当前时间不必要UNIX 毫秒时间戳
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要

    正文参数(multipart/form-data):

    参数名类型内容必要性备注
    filenamestr视频文件名必要从视频上传接口获取, 无后缀名, 可为空
    titlestr视频标题不必要
    upload_idstr上传 ID不必要616368979_1723455540876_8794

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    -111: csrf 校验失败
    -101: 账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataarray信息本体

    data 数组:

    类型内容备注
    0obj视频类型 1
    1obj视频类型 2
    ……obj……
    nobj视频类型 (n+1)

    data 数组中的对象:

    字段类型内容备注
    idnum子分区 ID
    parentnum总分区 ID
    parent_namestr总分区名称
    namestr子分区名称
    descriptionstr子分区描述
    descstr子分区描述description
    intro_originalstr原创简介说明
    intro_copystr转载简介说明
    noticestr注意事项
    copy_rightnum版权信息?0
    showbool是否显示?true
    ranknum排序权重?
    max_video_countnum最大视频数量?
    request_idstr

    示例:

    curl -X POST --url 'https://member.bilibili.com/x/vupre/web/archive/types/predict' \
    +--url-query 'csrf=d51eadf05ba3bc6c5f76def7fbcc0185' \
    +--data-urlencode 'filename=' \
    +-b '
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": [
    +    {
    +      "id": 122,
    +      "parent": 36,
    +      "parent_name": "知识",
    +      "name": "野生技能协会",
    +      "description": "技能展示或技能教学分享类视频",
    +      "desc": "技能展示或技能教学分享类视频",
    +      "intro_original": "可对视频内容进行补充说明,并对所使用的视频素材进行标明。\n如是系列,也可附带上期视频地址。\n请勿加入涉政或具较大争议性的文字简介,否则将做打回处理。",
    +      "intro_copy": "转载稿件需标明出处,请注明原作者、原作者频道名或原作者投稿地址。\n可对相关内容进行补充说明。\n请勿加入涉政或具较大争议性的文字简介,否则将做打回处理。\n如是系列,也可附带上期视频地址。",
    +      "notice": "清晰明了表明内容亮点的标题会更受观众欢迎哟!",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 75,
    +      "max_video_count": 100,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 21,
    +      "parent": 160,
    +      "parent_name": "生活",
    +      "name": "日常",
    +      "description": "一般日常向的生活类视频",
    +      "desc": "一般日常向的生活类视频",
    +      "intro_original": "能够选择自制的必须是up主个人或工作室自己制作剪辑的视频,除此之外的搬运视频字幕制作,对于视频进行加速、慢放等简易二次创作,在视频中添加前后贴片或者打水印等行为均不被认作自制",
    +      "intro_copy": "转载需写明请注明转载作品详细信息原作者、原标题及出处(需为该视频最原始出处,如所标注明显为非原始出处的话会被打回)",
    +      "notice": "",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 4,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 242,
    +      "parent": 5,
    +      "parent_name": "娱乐",
    +      "name": "娱乐粉丝创作",
    +      "description": "粉丝向创作视频",
    +      "desc": "粉丝向创作视频",
    +      "intro_original": "",
    +      "intro_copy": "",
    +      "notice": "清晰明了表明内容亮点的标题会更受观众欢迎哟!",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 40,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 65,
    +      "parent": 4,
    +      "parent_name": "游戏",
    +      "name": "网络游戏",
    +      "description": "多人在线游戏为主要内容的相关视频",
    +      "desc": "多人在线游戏为主要内容的相关视频",
    +      "intro_original": "建议在简介和TAG中添加正确的游戏名,以便在分区和搜索中得到更好的展示。\n录制他人直播(包括授权转载、授权录制)不属于自制内容,请选转载。",
    +      "intro_copy": "建议在简介和TAG中添加正确的游戏名。\n搬运转载内容请添加原作者、原链接地址信息。录制他人直播内容请添加原主播信息、直播时间。\n未添加正确转载、录播信息的稿件可能被打回。",
    +      "notice": "【UP主/节目名】+《游戏名》+主要标题+期号",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 30,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    },
    +    {
    +      "id": 138,
    +      "parent": 160,
    +      "parent_name": "生活",
    +      "name": "搞笑",
    +      "description": "搞笑挑战、剪辑、表演、配音以及各类日常沙雕视频",
    +      "desc": "搞笑挑战、剪辑、表演、配音以及各类日常沙雕视频",
    +      "intro_original": "能够选择自制的必须是up主个人或工作室自己制作剪辑的视频,除此之外的搬运视频字幕制作,对于视频进行加速、慢放等简易二次创作,在视频中添加前后贴片或者打水印等行为均不被认作自制",
    +      "intro_copy": "转载需写明请注明转载作品详细信息原作者、原标题及出处(需为该视频最原始出处,如所标注明显为非原始出处的话会被打回)",
    +      "notice": "",
    +      "copy_right": 0,
    +      "show": true,
    +      "rank": 30,
    +      "max_video_count": 50,
    +      "request_id": ""
    +    }
    +  ]
    +}
    +

    预测稿件标签

    https://member.bilibili.com/x/vupre/web/tag/recommend

    请求方式: GET

    认证方式: Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    upload_idstr预测稿件类型upload_id不必要
    subtype_idint子分区 ID不必要
    titlestr视频标题不必要
    filenamestr预测稿件类型filename不必要
    descriptionstr视频简介不必要
    cover_urlstr视频封面 URL不必要不含 https:http: 字串
    tint当前 UNIX 毫秒时间戳不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codeint返回值0: 成功
    -101: 账号未登录
    dataarray标签信息
    messagestr错误信息默认为 0
    request_idstr请求 ID

    data 数组:

    类型内容备注
    0obj标签 1
    1obj标签 2
    ……obj……
    nobj标签 (n+1)

    data 数组中的对象:

    字段类型内容备注
    tagstr标签名称
    checkedint0
    request_idstr请求 ID同根对象

    示例:

    curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \
    +--url-query 'subtype_id=122' \
    +--url-query 'title=Telnet手打HTTP' \
    +--url-query 'description=测试用 Telnet 手打 HTTP/1.x 协议访问本地服务器, 无 SSL/TLS 支持'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": [
    +    {
    +      "tag": "学习",
    +      "checked": 0,
    +      "request_id": "TAG_1723543336295_3371"
    +    },
    +    {
    +      "tag": "编程",
    +      "checked": 0,
    +      "request_id": ""
    +    },
    +    {
    +      "tag": "课程",
    +      "checked": 0,
    +      "request_id": ""
    +    },
    +    {
    +      "tag": "学习心得",
    +      "checked": 0,
    +      "request_id": ""
    +    },
    +    {
    +      "tag": "经验分享",
    +      "checked": 0,
    +      "request_id": ""
    +    }
    +  ],
    +  "message": "0",
    +  "request_id": "TAG_1723543336295_3371"
    +}
    +

    投递视频稿件

    https://member.bilibili.com/x/vu/web/add/v3

    请求方式: POST

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    tsnum当前时间不必要UNIX 毫秒时间戳
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要

    正文参数(application/json):

    根对象:

    参数名类型内容必要性备注
    videosarray视频信息必要若为分 P 视频, 请注意数组元素顺序
    coverstr视频封面 URL必要参见上传视频封面
    cover43str视频封面 URL (比例为 4:3)必要可为空
    titlestr视频标题必要最多 80 字
    copyrightnum1: 自制
    2: 转载
    必要
    tidnum分类 ID必要
    tagstr视频标签必要多个标签用 , 分隔, 最多 10 个
    desc_format_idnum简介格式 ID?必要9999: 纯文本
    descstr视频简介必要最多 2000 字
    recreatenum是否允许二创必要-1: 允许(默认)
    1: 不允许
    dynamicstr粉丝动态必要
    interactivenum互动视频?必要0: 否
    act_reserve_createnum活动预约?必要0: 否
    no_disturbancenum勿扰模式?必要0: 否
    no_reprintnum是否允许转载必要1: 允许
    0: 不允许
    subtitleobj字幕信息必要
    dolbynum杜比音效必要0: 否(默认)
    1: 是
    lossless_musicnum无损音乐必要0: 否(默认)
    1: 是
    up_selection_replybool精选评论必要
    up_close_replybool关闭评论必要
    up_close_danmubool关闭弹幕必要
    web_osnum平台类型?必要3

    videos 数组中的对象:

    参数名类型内容必要性备注
    filenamestr视频文件名必要从视频上传接口获取, 无后缀名
    titlestr分 P 标题必要
    descstr分 P 简介必要
    cidnum分 P cid必要从视频上传接口获取, 即 biz_id

    subtitle 对象:

    参数名类型内容必要性备注
    opennum是否启用字幕投稿必要0: 启用(默认)
    1: 不启用
    lanstr字幕投稿语言必要可为空

    示例:

    假设已经把需要发送的数据存放在文件 ./data.json 中:

    {
    +  "videos": [
    +    {
    +      "filename": "n240728ad33h52yqhxbtw51cb06sq9gx",
    +      "title": "Telnet手打HTTP",
    +      "desc": "",
    +      "cid": 500001629877726
    +    }
    +  ],
    +  "cover": "https://archive.biliimg.com/bfs/archive/85447ea20431ef799382c403c84b4bfb82a41053.jpg",
    +  "cover43": "",
    +  "title": "Telnet手打HTTP",
    +  "copyright": 1,
    +  "tid": 122,
    +  "tag": "telnet,socket,tcp,linux,http",
    +  "desc_format_id": 9999,
    +  "desc": "测试用 Telnet 手打 HTTP/1.x 协议访问本地服务器, 无 SSL/TLS 支持",
    +  "recreate": -1,
    +  "dynamic": "for testing",
    +  "interactive": 0,
    +  "act_reserve_create": 0,
    +  "no_disturbance": 0,
    +  "no_reprint": 1,
    +  "subtitle": {
    +    "open": 0,
    +    "lan": ""
    +  },
    +  "dolby": 0,
    +  "lossless_music": 0,
    +  "up_selection_reply": false,
    +  "up_close_reply": false,
    +  "up_close_danmu": false,
    +  "web_os": 3,
    +  "csrf": "xxxxxxxxxxxxxxxxxxxxxxxx"
    +}
    +

    发送请求:

    curl -X POST --url "https://member.bilibili.com/x/vu/web/add/v3" \
    +--url-query "ts=$(date +%s%3N)" \
    +--url-query "csrf=xxxxxxxxxxxxxxxxxxxxxxxx" \
    +-H "Content-Type: application/json; charset=utf-8" \
    +--data @data.json \
    +-b "SESSDATA=xxxxxx; bili_jct=xxxxxxxxxxxxxxxxxxxxxxxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "aid": 112861976201494,
    +    "bvid": "BV181vnexEmB"
    +  }
    +}
    +

    上传视频文件

    注: 目前看来上传的视频文件似乎不会自动删除, 而且似乎不是视频也可以上传的样子, 但是下载认证字段有效期只有 5 天

    上传流程

    整个上传流程较为复杂, 详细参见Demo

    1. GET preupload 接口, 获取上传元数据

    2. POST 第 1 步得到的地址, 上传视频元数据

    3. PUT 第 1 步得到的地址, 分片上传视频文件

    4. POST 第 1 步得到的地址, 结束上传视频文件

    5. GET 第 1 步得到的地址, 下载已上传的视频文件 , 确认上传成功 (可选)

    上传接口

    获取上传元数据 (预上传)

    https://member.bilibili.com/preupload

    请求方式: GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    namestr文件名必要会影响返回的上传地址
    rstr上传区域?必要upos
    profilestr上传配置?必要普通视频: ugcfx/bup
    提交反馈: feedback/bup
    probe_versionnum上传版本?不必要20221109
    upcdnstr上传 CDN?不必要txa
    zonestr上传区域?不必要cs
    sslnum是否使用 SSL?不必要0
    versionstr上传版本?不必要2.14.0.0
    buildstr上传版本?不必要2140000
    sizenum文件大小不必要视频文件大小, 单位 字节
    webVersionstr上传版本?不必要2.13.0

    JSON回复:

    根对象:

    字段类型内容备注
    OKnum1
    authstr上传凭证作为后面请求中请求头, 有效期 5 天
    biz_idnum业务 ID?
    chunk_retrynum重试次数?
    chunk_retry_delaynum重试延迟?
    chunk_sizenum分块大小后面要用
    endpointstr上传节点后面要用
    endpointsarray上传节点列表
    expose_paramsnull
    put_querystr上传参数?
    threadsnum上传线程数
    timeoutnum超时时间?
    uipstr你的 IP
    upos_uristr上传地址后面要用

    endpoints 数组:

    类型内容备注
    0str上传节点1
    ……str……
    nstr上传节点n

    示例:

    假设视频文件名为 2024-07-28_15-37-50.mkv, 视频大小为 305333744 字节

    curl -G "https://member.bilibili.com/preupload" \
    +--data-urlencode "name=2024-07-28_15-37-50.mkv" \
    +--data-urlencode "r=upos" \
    +--data-urlencode "profile=ugcfx/bup" \
    +-b "SESSDATA=xxxxxxxxxxx"
    +
    查看响应示例:
    {
    +  "OK": 1,
    +  "auth": "ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=b6c5cc520a281200906aea97e190b098&timestamp=1722155211.324&uid=616368979&uip=108.181.24.77&uport=52096&use_dqp=0",
    +  "biz_id": 500001630152509,
    +  "chunk_retry": 10,
    +  "chunk_retry_delay": 3,
    +  "chunk_size": 10485760,
    +  "endpoint": "//upos-cs-upcdntxa.bilivideo.com",
    +  "endpoints": [
    +    "//upos-cs-upcdntxa.bilivideo.com",
    +    "//upos-cs-upcdnalia.bilivideo.com"
    +  ],
    +  "expose_params": null,
    +  "put_query": "os=upos&profile=ugcfx%2Fbup",
    +  "threads": 3,
    +  "timeout": 1200,
    +  "uip": "108.181.24.77",
    +  "upos_uri": "upos://ugcfx2lf/n240728ad1p51if4g3ke4s3o95sznogy.mkv"
    +}
    +

    上传视频元数据

    URL 拼接格式: "https" + 上一个接口endpoint + 上一个接口的upos_uri去掉协议名
    JavaScript 模板字符串: https:${preupload.endpoint}/${endpoint.upos_uri.replace("upos://", "")}

    请求方式: POST

    认证方式:请求头 X-Upos-Auth 为上一接口得到的 auth

    URL参数:

    参数名类型内容必要性备注
    uploadsstr留空必要留空
    outputstr输出格式不必要默认为 json(推荐), 留空为 xml
    profilestr上传配置?必要与上一个接口保持相同
    filesizenum文件大小必要视频文件大小, 单位 字节
    feedback/bup 不必要
    partsizenum分块大小必要上一个接口返回, 且后面要用
    feedback/bup 不必要
    biz_idnum业务 ID?必要上一个接口返回, 且后面要用
    feedback/bup 不必要

    JSON回复:

    根对象:

    字段类型内容备注
    OKnum1
    bucketstr空间名?
    keystr文件名?
    upload_idstr上传 ID后面要用

    示例:

    假设上一接口返回的 authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=4004b35628e982bc90b59cec86f8c441&timestamp=1722173443.298&uid=616368979&uip=104.28.153.18&uport=44282&use_dqp=0, biz_id500001630454700, endpoint//upos-cs-upcdntxa.bilivideo.com, upos_uriupos://ugcfx2lf/n240728adhejliqv0kqyg2s5n6huv501.mkv, chunk_size10485760. 视频文件大小为 305333744 字节.

    curl -X POST --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240728adhejliqv0kqyg2s5n6huv501.mkv` \
    +--url-query "uploads=" \
    +--url-query "output=json" \
    +--url-query "profile=ugcfx/bup" \
    +--url-query "filesize=305333744" \
    +--url-query "partsize=10485760" \
    +--url-query "biz_id=500001630454700" \
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=4004b35628e982bc90b59cec86f8c441&timestamp=1722173443.298&uid=616368979&uip=104.28.153.18&uport=44282&use_dqp=0" \
    +-b "SESSDATA=xxxxxxxxx"
    +
    查看响应示例:
    {
    +  "OK": 1,
    +  "bucket": "ugcfx2lf",
    +  "key": "/n240728adhejliqv0kqyg2s5n6huv501.mkv",
    +  "upload_id": "26c674b4-0dce-45f5-a9cd-a199d9c982bf"
    +}
    +

    分片上传视频文件

    URL 同 上一个接口

    请求方式: PUT

    认证方式:请求头 X-Upos-Auth 为上上一接口得到的 auth

    URL参数:

    参数名类型内容必要性备注
    partNumbernum分块序号必要从 1 开始
    uploadIdstr上传 ID必要上一个接口返回
    chunknum分块序号必要从 0 开始
    chunksnum分块总数必要自行计算: 文件大小除以分块大小并向上取整
    sizenum该分块大小必要该实际上传字节数
    startnum该分块开始位置必要已实际上传字节数
    endnum该分块结束位置必要该分块上传结束后实际上传总字节数
    totalnum总大小必要视频文件大小, 单位 字节

    正文参数(application/octet-stream):

    视频文件在该分块的字节流

    纯文本回复:

    MULTIPART_PUT_SUCCESS
    +

    示例:

    假设上上一接口返回的 authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0, endpoint//upos-cs-upcdntxa.bilivideo.com, upos_uriupos://ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz, chunk_size10485760.

    上一接口返回的 upload_id8130090a-16f7-4fe6-8a29-198f5abce913.

    视频文件名为 20240724-remove-linux-then-install.tar.xz, 文件大小为 278255704 字节.

    假设您要上传的分块序号为 1, 该分块大小为 10485760, 该分块开始位置为 0, 该分块结束位置为 10485760, 该分块实际上传字节数为 10485760, 您已将文件分块存放至 part01.tar.xz, part02.tar.xz, ..., part27.tar.xz.

    curl -X PUT --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \
    +--url-query "partNumber=1" \
    +--url-query "uploadId=8130090a-16f7-4fe6-8a29-198f5abce913" \
    +--url-query "chunk=0" \
    +--url-query "chunks=27" \
    +--url-query "size=10485760" \
    +--url-query "start=0" \
    +--url-query "end=10485760" \
    +--url-query "total=278255704" \
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \
    +-H "Content-Type: application/octet-stream" \
    +--data-binary @part01.tar.xz \
    +-b "SESSDATA=xxxxxxxxx"
    +
    查看响应示例:
    MULTIPART_PUT_SUCCESS
    +

    结束上传视频文件

    URL 同 上一个接口

    请求方式: POST

    认证方式:请求头 X-Upos-Auth 为上上上一接口得到的 auth

    URL参数:

    参数名类型内容必要性备注
    outputstr输出格式不必要默认为 json(推荐), 留空为 xml
    namestr文件名必要视频文件名
    profilestr上传配置?必要与上一个接口相同, 普通视频: ugcfx/bup
    uploadIdstr上传 ID必要与上一个接口相同
    biz_idnum业务 ID?必要与上上一个接口相同

    正文参数(application/json):

    根对象:

    参数名类型内容必要性备注
    partsarray各分块信息必要按实际上传顺序而不是分块序号顺序

    parts 数组:

    类型内容必要性备注
    0obj分块信息1必要按实际上传顺序而不是分块序号顺序
    1obj分块信息2必要
    ……obj……
    nobj分块信息n必要

    parts 数组中的对象:

    参数名类型内容必要性备注
    partNumbernum分块序号必要从 1 开始
    eTagstretag必要

    JSON回复:

    上上一个接口 相同

    示例:

    假设上上上一接口返回的 authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0, endpoint//upos-cs-upcdntxa.bilivideo.com, upos_uriupos://ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz, biz_id500001630826789.

    上上一接口返回的 upload_id8130090a-16f7-4fe6-8a29-198f5abce913.

    视频文件名为 20240724-remove-linux-then-install.tar.xz, 文件大小为 278255704 字节.

    假设您已经全部上传完毕, 共上传 27 个分块, 本次请求上传的的内容存放在 body.json 文件中.

    curl -X PUT --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \
    +--url-query "output=json" \
    +--url-query "name=20240724-remove-linux-then-install.tar.xz" \
    +--url-query "profile=ugcfx%2Fbup" \
    +--url-query "uploadId=8130090a-16f7-4fe6-8a29-198f5abce913" \
    +--url-query "biz_id=500001630826789" \
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \
    +-H "Content-Type: application/json" \
    +--data-binary @body.json \
    +-b "SESSDATA=xxxxxxxxx"
    +
    查看响应示例:
    {
    +  "OK": 1,
    +  "location": "ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz",
    +  "bucket": "ugcfx2lf",
    +  "key": "/n240729ad7gxi43yaoml312h2nbt2pnf.xz"
    +}
    +

    下载已上传的视频文件

    URL 同 上一个接口

    请求方式: GET

    认证方式:请求头 X-Upos-Auth 为上上上上一接口得到的 auth

    注: 由于 X-Upos-Auth 有效期只有 5 天, 过期请求将返回 HTTP 403 如下

    HTTP/1.1 403 Forbidden
    +Bili-Trace-Id: 3e3f2db61366adbf
    +Server: upos@hcsgw@jscs-bvc-hcsgw-public-02
    +X-Bili-Trace-Id: 0d8ca1af6d3510253e3f2db61366adbf
    +X-Upos-Auth: AUTH_TS_GT_5DAY AUTH=ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0 Now=1722662669 DURATION=449893
    +Content-Length: 0
    +Connection: keep-alive
    +Date: Sat, 03 Aug 2024 05:24:29 GMT
    +EO-LOG-UUID: 4296647794590631154
    +EO-Cache-Status: MISS
    +

    字节流回复:

    视频文件字节流

    示例:

    假设请求上一接口时的 URL 为 https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz, 请求头的 X-Upos-Authak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0, 您想要下载到运行目录下的 file.tar.xz 文件

    curl -G "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \
    +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6&timestamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \
    +--output file.tar.xz
    +
    查看检查示例:
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    +                                 Dload  Upload   Total   Spent    Left  Speed
    +100  265M  100  265M    0     0  9493k      0  0:00:28  0:00:28 --:--:-- 10.3M
    +$ sha512sum file.tar.xz
    +abfbedf1ac4f251c81103beb4d5406af1e0b64b9d54e99bfc77d2a8a9c4913a9fd2f1751828ace8aac036f6385609d99e251437b07a0491caca2ad7069a57003  file.tar.xz
    +$ sha512sum ~/Documents/video-proj/20240724-remove-linux-then-install.tar.xz
    +abfbedf1ac4f251c81103beb4d5406af1e0b64b9d54e99bfc77d2a8a9c4913a9fd2f1751828ace8aac036f6385609d99e251437b07a0491caca2ad7069a57003  /home/sess/Documents/video-proj/20240724-remove-linux-then-install.tar.xz
    +

    Demo

    Java

    注: 需要 Gson 依赖, Java 8+, 单线程上传, 无异常处理, 仅供参考

    import java.io.ByteArrayOutputStream;
    +import java.io.File;
    +import java.io.FileInputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.net.HttpURLConnection;
    +import java.net.URI;
    +import java.net.URLEncoder;
    +import java.nio.charset.StandardCharsets;
    +import java.util.StringJoiner;
    +
    +import com.google.gson.Gson;
    +import com.google.gson.GsonBuilder;
    +import com.google.gson.JsonArray;
    +import com.google.gson.JsonObject;
    +import com.google.gson.JsonSyntaxException;
    +
    +/**
    + * A demo class for uploading videos to Bilibili.
    + * 
    + * @author SessX6cf
    + */
    +public class BiliVideoUploader {
    +
    +  private static String SESSDATA;
    +  private static File VIDEO_FILE;
    +
    +  public static void main(String[] args) throws IOException {
    +    long ts = System.currentTimeMillis();
    +    if (args.length < 2) {
    +      System.out.println("Usage: java BiliVideoUploader <video_file> <sessdata>");
    +      return;
    +    } else {
    +      VIDEO_FILE = new File(args[0]);
    +      if (!VIDEO_FILE.isFile()) {
    +        System.out.println("It is not a file!");
    +        return;
    +      } else if (!VIDEO_FILE.canRead()) {
    +        System.out.println("Cannot read the file!");
    +        return;
    +      } else if (VIDEO_FILE.isDirectory()) {
    +        System.out.println("You can play a directory?!");
    +        return;
    +      }
    +      SESSDATA = args[1];
    +    }
    +    // step 1: preupload video
    +    System.out.println("step 1: preupload video");
    +    JsonObject preuploadVideo = preuploadVideo();
    +    // step 2: post video meta
    +    System.out.println("step 2: post video meta");
    +    JsonObject postVideoMeta = postVideoMeta(preuploadVideo);
    +    // step 3: upload video
    +    System.out.println("step 3: upload video");
    +    int chunks = uploadVideo(preuploadVideo, postVideoMeta);
    +    // step 4: end upload
    +    System.out.println("step 4: end upload");
    +    endupload(preuploadVideo, postVideoMeta, chunks);
    +    // finished
    +    System.out.println("finished (" + (System.currentTimeMillis() - ts) + "ms)");
    +  }
    +
    +  private static String querypart(String key, String value) throws IOException {
    +    return key + "=" + URLEncoder.encode(value, "UTF-8");
    +  }
    +
    +  private static HttpURLConnection conn(String url, String method) throws IOException {
    +    HttpURLConnection conn;
    +    try {
    +      conn = (HttpURLConnection) new URI(url).toURL().openConnection();
    +    } catch (java.net.URISyntaxException e) {
    +      throw new IOException(e);
    +    }
    +    conn.setRequestMethod(method);
    +    // conn.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0");
    +    if (url.contains("bilibili.com")) conn.setRequestProperty("Cookie", "SESSDATA=" + SESSDATA);
    +    return conn;
    +  }
    +
    +  private static byte[] inputStreamToString(HttpURLConnection conn) throws IOException {
    +    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    +    InputStream in;
    +    in = conn.getInputStream();
    +    int b;
    +    while ((b = in.read()) != -1) {
    +      baos.write(b);
    +    }
    +    in.close();
    +    return baos.toByteArray();
    +  }
    +
    +  private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
    +
    +  private static JsonObject preuploadVideo() throws IOException {
    +    StringJoiner url = new StringJoiner("&", "https://member.bilibili.com/preupload?", "");
    +    url.add(querypart("name", VIDEO_FILE.getName()));
    +    // url.add(querypart("size", String.valueOf(VIDEO_FILE.length())));
    +    url.add(querypart("r", "upos"));
    +    url.add(querypart("profile", "ugcfx/bup"));
    +    HttpURLConnection conn = conn(url.toString(), "GET");
    +    System.out.println("GET " + url.toString());
    +    String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +    try {
    +      JsonObject json = GSON.fromJson(response, JsonObject.class);
    +      System.out.println(GSON.toJson(json));
    +      return json;
    +    } catch (JsonSyntaxException e) {
    +      System.out.println(response);
    +      throw e;
    +    }
    +  }
    +
    +  private static JsonObject postVideoMeta(JsonObject preuploadVideo) throws IOException {
    +    String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString();
    +    String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", "");
    +    StringJoiner url = new StringJoiner("&", schemeandhost + path + "?", "");
    +    url.add(querypart("uploads", "")); // WARNING: this is not a typo, it's required, or 404
    +    url.add(querypart("output", "json"));
    +    url.add(querypart("profile", "ugcfx/bup"));
    +    url.add(querypart("filesize", String.valueOf(VIDEO_FILE.length())));
    +    url.add(querypart("partsize", preuploadVideo.get("chunk_size").getAsString()));
    +    url.add(querypart("biz_id", preuploadVideo.get("biz_id").getAsString()));
    +    HttpURLConnection conn = conn(url.toString(), "POST");
    +    conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString()); // 403 without it
    +    System.out.println("POST " + url.toString());
    +    String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +    try {
    +      JsonObject json = GSON.fromJson(response, JsonObject.class);
    +      System.out.println(GSON.toJson(json));
    +      return json;
    +    } catch (JsonSyntaxException e) {
    +      System.out.println(response);
    +      throw e;
    +    }
    +  }
    +
    +  private static int uploadVideo(JsonObject preuploadVideo, JsonObject postVideoMeta) throws IOException {
    +    long startts = System.currentTimeMillis() - 1;
    +    String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString();
    +    String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", "");
    +    String urlp = schemeandhost + path + "?";
    +    long length = VIDEO_FILE.length();
    +    byte[] buffer = new byte[preuploadVideo.get("chunk_size").getAsInt()];
    +    int size = 0;
    +    int chunks = (int) Math.ceil(length / (double) buffer.length);
    +    InputStream in = new FileInputStream(VIDEO_FILE);
    +    for (int chunk = 0; chunk < chunks; chunk++) {
    +      System.out.println("speed: " + (chunk * buffer.length) / (System.currentTimeMillis() - startts) + "bytes/s");
    +      System.out.println("chunk: " + (chunk + 1) + "/" + chunks);
    +      size = in.read(buffer, 0, buffer.length);
    +      if (size == -1) {
    +        break;
    +      }
    +      StringJoiner url = new StringJoiner("&", urlp, "");
    +      url.add(querypart("partNumber", String.valueOf(chunk + 1)));
    +      url.add(querypart("uploadId", postVideoMeta.get("upload_id").getAsString()));
    +      url.add(querypart("chunk", String.valueOf(chunk)));
    +      url.add(querypart("chunks", String.valueOf(chunks)));
    +      url.add(querypart("size", String.valueOf(size)));
    +      url.add(querypart("start", String.valueOf(chunk * buffer.length)));
    +      url.add(querypart("end", String.valueOf((chunk) * buffer.length + size)));
    +      url.add(querypart("total", String.valueOf(length)));
    +      HttpURLConnection conn = conn(url.toString(), "PUT");
    +      conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString());
    +      conn.setRequestProperty("Content-Type", "application/octet-stream");
    +      conn.setRequestProperty("Content-Length", String.valueOf(size));
    +      conn.setDoOutput(true);
    +      conn.getOutputStream().write(buffer, 0, size);
    +      System.out.println("PUT " + url.toString());
    +      String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +      System.out.println(response);
    +    }
    +    in.close();
    +    return chunks;
    +  }
    +
    +  private static void endupload(JsonObject preuploadVideo, JsonObject postVideoMeta, int chunks) throws IOException {
    +    String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString();
    +    String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", "");
    +    StringJoiner url = new StringJoiner("&", schemeandhost + path + "?", "");
    +    url.add(querypart("output", "json"));
    +    url.add(querypart("name", VIDEO_FILE.getName()));
    +    url.add(querypart("profile", "ugcfx/bup"));
    +    url.add(querypart("uploadId", postVideoMeta.get("upload_id").getAsString()));
    +    url.add(querypart("biz_id", preuploadVideo.get("biz_id").getAsString()));
    +    JsonArray parts = new JsonArray();
    +    for (int i = 1; i <= chunks; i++) {
    +      JsonObject part = new JsonObject();
    +      part.addProperty("partNumber", i);
    +      part.addProperty("eTag", "etag");
    +      parts.add(part);
    +    }
    +    JsonObject body = new JsonObject();
    +    body.add("parts", parts);
    +    HttpURLConnection conn = conn(url.toString(), "POST");
    +    conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString());
    +    conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
    +    conn.setDoOutput(true);
    +    conn.getOutputStream().write(body.toString().getBytes(StandardCharsets.UTF_8));
    +    System.out.println("POST " + url.toString());
    +    String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8);
    +    try {
    +      JsonObject json = GSON.fromJson(response, JsonObject.class);
    +      System.out.println(GSON.toJson(json));
    +    } catch (JsonSyntaxException e) {
    +      System.out.println(response);
    +      throw e;
    +    }
    +  }
    +
    +}
    +
    + + + diff --git a/docs/creativecenter/videos.html b/docs/creativecenter/videos.html new file mode 100644 index 0000000000..efed26d80b --- /dev/null +++ b/docs/creativecenter/videos.html @@ -0,0 +1,370 @@ + + + + + + + + + 视频相关杂项 | BAC Document + + + + +

    视频相关杂项

    获取稿件列表

    https://member.bilibili.com/x2/creative/web/archives/sp

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    注: 该接口返回内容大多为无实际意义的空值, 具体内容建议通过常规接口获取

    URL参数:

    参数名类型内容必要性备注
    pnnum页码必要默认为 1
    psnum每页数量必要默认为 10, 留空为 100

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    classnull作用尚不明确
    arc_auditsarray稿件列表
    pageobj分页信息
    play_typenum1

    arc_audits 数组中的对象:

    字段类型内容备注
    Archiveobj稿件信息
    Videosnull
    statobj稿件统计信息
    state_panelnum0
    parent_tnamestr
    typenamestr
    open_appealnum0
    activitynull
    season_add_statenum是否可加入合集0: 可以
    1: 不可以

    Archive 对象:

    字段类型内容备注
    aidnumav 号
    bvidstrbv 号
    midnum0
    tidnum0
    tp_infonull
    titlestr稿件标题
    authorstr
    coverstr封面图位于 bfs 需要自行拼接 URL
    reject_reasonstr
    reject_reason_urlstr
    tagstr
    durationnum0
    copyrightnum0
    no_reprintnum0
    ugcpaynum0
    order_idnum0
    order_namestr
    adorder_idnum0
    adorder_namestr
    adorder_nostr
    online_timenum0
    new_adorder_infonull
    descstr稿件简介
    mission_idnum0
    mission_namestr
    attributenum0
    statenum0
    state_descstr
    state_panelnum0
    sourcestr
    desc_format_idnum0
    attrsnull
    pordernull
    dynamicstr
    poi_objectnull
    dtimenum0
    ptimenum0
    ctimenum0
    ugcpay_infonull
    staffsnull
    votenull
    activitynull
    interactivenum0
    hlnull
    no_backgroundnum0
    dynamic_videonum0
    no_publicnum0
    is_360num0
    is_dolbynum0
    lossless_musicnum0
    bs_editornum0
    up_fromnum0
    desc_v2null
    dynamic_v2null
    topic_idnum0
    topic_namestr
    topic_statnum0
    premierenum0
    is_ugcpay_v2num0
    recreatenull
    charging_paynum0
    neutral_markstr
    previewnull
    upower_levelnull
    cover43str
    had_passedboolfalse
    is_staffnum0
    is_pugvnum0
    upower_modenum0
    upower_unit_pricenum0

    stat 对象:

    字段类型内容备注
    aidnumav 号
    viewnum播放量
    danmakunum弹幕数
    replynum评论数
    favoritenum收藏数
    coinnum硬币数
    sharenum分享数
    now_ranknum0当前排名
    his_ranknum0历史最高排名
    likenum点赞数
    dislikenum点踩数恒为 0
    vtnum0
    vvnum播放量

    示例:

    curl -G "https://member.bilibili.com/x2/creative/web/archives/sp" \
    +--data-urlencode "pn=1" \
    +--data-urlencode "ps=3" \
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "class": null,
    +    "arc_audits": [
    +      {
    +        "Archive": {
    +          "aid": 1906473802,
    +          "bvid": "BV1MU411S7iJ",
    +          "mid": 0,
    +          "tid": 0,
    +          "tp_info": null,
    +          "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +          "author": "",
    +          "cover": "/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
    +          "reject_reason": "",
    +          "reject_reason_url": "",
    +          "tag": "",
    +          "duration": 0,
    +          "copyright": 0,
    +          "no_reprint": 0,
    +          "ugcpay": 0,
    +          "order_id": 0,
    +          "order_name": "",
    +          "adorder_id": 0,
    +          "adorder_name": "",
    +          "adorder_no": "",
    +          "online_time": 0,
    +          "new_adorder_info": null,
    +          "desc": "",
    +          "mission_id": 0,
    +          "mission_name": "",
    +          "attribute": 0,
    +          "state": 0,
    +          "state_desc": "",
    +          "state_panel": 0,
    +          "source": "",
    +          "desc_format_id": 0,
    +          "attrs": null,
    +          "porder": null,
    +          "dynamic": "",
    +          "poi_object": null,
    +          "dtime": 0,
    +          "ptime": 0,
    +          "ctime": 0,
    +          "ugcpay_info": null,
    +          "staffs": null,
    +          "vote": null,
    +          "activity": null,
    +          "interactive": 0,
    +          "hl": null,
    +          "no_background": 0,
    +          "dynamic_video": 0,
    +          "no_public": 0,
    +          "is_360": 0,
    +          "is_dolby": 0,
    +          "lossless_music": 0,
    +          "bs_editor": 0,
    +          "up_from": 0,
    +          "desc_v2": null,
    +          "dynamic_v2": null,
    +          "topic_id": 0,
    +          "topic_name": "",
    +          "topic_stat": 0,
    +          "premiere": 0,
    +          "is_ugcpay_v2": 0,
    +          "recreate": null,
    +          "political_media": 0,
    +          "political_editable": 0,
    +          "charging_pay": 0,
    +          "neutral_mark": "",
    +          "preview": null,
    +          "upower_level": null,
    +          "cover43": "",
    +          "had_passed": false,
    +          "is_staff": 0,
    +          "is_pugv": 0,
    +          "upower_mode": 0,
    +          "upower_unit_price": 0
    +        },
    +        "Videos": null,
    +        "stat": {
    +          "aid": 1906473802,
    +          "view": 4036,
    +          "danmaku": 8,
    +          "reply": 56,
    +          "favorite": 53,
    +          "coin": 12,
    +          "share": 8,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 99,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 4036
    +        },
    +        "state_panel": 0,
    +        "parent_tname": "",
    +        "typename": "",
    +        "open_appeal": 0,
    +        "activity": null,
    +        "season_add_state": 0
    +      },
    +      {
    +        "Archive": {
    +          "aid": 1956170305,
    +          "bvid": "BV1Ay411i7Ph",
    +          "mid": 0,
    +          "tid": 0,
    +          "tp_info": null,
    +          "title": "十多年前的电脑运行Debian12的启动过程",
    +          "author": "",
    +          "cover": "/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
    +          "reject_reason": "",
    +          "reject_reason_url": "",
    +          "tag": "",
    +          "duration": 0,
    +          "copyright": 0,
    +          "no_reprint": 0,
    +          "ugcpay": 0,
    +          "order_id": 0,
    +          "order_name": "",
    +          "adorder_id": 0,
    +          "adorder_name": "",
    +          "adorder_no": "",
    +          "online_time": 0,
    +          "new_adorder_info": null,
    +          "desc": "",
    +          "mission_id": 0,
    +          "mission_name": "",
    +          "attribute": 0,
    +          "state": 0,
    +          "state_desc": "",
    +          "state_panel": 0,
    +          "source": "",
    +          "desc_format_id": 0,
    +          "attrs": null,
    +          "porder": null,
    +          "dynamic": "",
    +          "poi_object": null,
    +          "dtime": 0,
    +          "ptime": 0,
    +          "ctime": 0,
    +          "ugcpay_info": null,
    +          "staffs": null,
    +          "vote": null,
    +          "activity": null,
    +          "interactive": 0,
    +          "hl": null,
    +          "no_background": 0,
    +          "dynamic_video": 0,
    +          "no_public": 0,
    +          "is_360": 0,
    +          "is_dolby": 0,
    +          "lossless_music": 0,
    +          "bs_editor": 0,
    +          "up_from": 0,
    +          "desc_v2": null,
    +          "dynamic_v2": null,
    +          "topic_id": 0,
    +          "topic_name": "",
    +          "topic_stat": 0,
    +          "premiere": 0,
    +          "is_ugcpay_v2": 0,
    +          "recreate": null,
    +          "political_media": 0,
    +          "political_editable": 0,
    +          "charging_pay": 0,
    +          "neutral_mark": "",
    +          "preview": null,
    +          "upower_level": null,
    +          "cover43": "",
    +          "had_passed": false,
    +          "is_staff": 0,
    +          "is_pugv": 0,
    +          "upower_mode": 0,
    +          "upower_unit_price": 0
    +        },
    +        "Videos": null,
    +        "stat": {
    +          "aid": 1956170305,
    +          "view": 2747,
    +          "danmaku": 13,
    +          "reply": 37,
    +          "favorite": 11,
    +          "coin": 14,
    +          "share": 4,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 42,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2747
    +        },
    +        "state_panel": 0,
    +        "parent_tname": "",
    +        "typename": "",
    +        "open_appeal": 0,
    +        "activity": null,
    +        "season_add_state": 0
    +      },
    +      {
    +        "Archive": {
    +          "aid": 910326709,
    +          "bvid": "BV1GM4y1a7Vn",
    +          "mid": 0,
    +          "tid": 0,
    +          "tp_info": null,
    +          "title": "Minecraft终末之诗,但是谷歌翻译20遍",
    +          "author": "",
    +          "cover": "/bfs/archive/09b7f2542f3e66973ec7de1a3c806cdd45b95426.jpg",
    +          "reject_reason": "",
    +          "reject_reason_url": "",
    +          "tag": "",
    +          "duration": 0,
    +          "copyright": 0,
    +          "no_reprint": 0,
    +          "ugcpay": 0,
    +          "order_id": 0,
    +          "order_name": "",
    +          "adorder_id": 0,
    +          "adorder_name": "",
    +          "adorder_no": "",
    +          "online_time": 0,
    +          "new_adorder_info": null,
    +          "desc": "原内容来源:Minecraft Wiki\n使用的工具:Google Translate\n视频仅供娱乐,请勿当真",
    +          "mission_id": 0,
    +          "mission_name": "",
    +          "attribute": 0,
    +          "state": 0,
    +          "state_desc": "",
    +          "state_panel": 0,
    +          "source": "",
    +          "desc_format_id": 0,
    +          "attrs": null,
    +          "porder": null,
    +          "dynamic": "",
    +          "poi_object": null,
    +          "dtime": 0,
    +          "ptime": 0,
    +          "ctime": 0,
    +          "ugcpay_info": null,
    +          "staffs": null,
    +          "vote": null,
    +          "activity": null,
    +          "interactive": 0,
    +          "hl": null,
    +          "no_background": 0,
    +          "dynamic_video": 0,
    +          "no_public": 0,
    +          "is_360": 0,
    +          "is_dolby": 0,
    +          "lossless_music": 0,
    +          "bs_editor": 0,
    +          "up_from": 0,
    +          "desc_v2": null,
    +          "dynamic_v2": null,
    +          "topic_id": 0,
    +          "topic_name": "",
    +          "topic_stat": 0,
    +          "premiere": 0,
    +          "is_ugcpay_v2": 0,
    +          "recreate": null,
    +          "political_media": 0,
    +          "political_editable": 0,
    +          "charging_pay": 0,
    +          "neutral_mark": "",
    +          "preview": null,
    +          "upower_level": null,
    +          "cover43": "",
    +          "had_passed": false,
    +          "is_staff": 0,
    +          "is_pugv": 0,
    +          "upower_mode": 0,
    +          "upower_unit_price": 0
    +        },
    +        "Videos": null,
    +        "stat": {
    +          "aid": 910326709,
    +          "view": 533,
    +          "danmaku": 6,
    +          "reply": 4,
    +          "favorite": 15,
    +          "coin": 13,
    +          "share": 4,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 29,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 533
    +        },
    +        "state_panel": 0,
    +        "parent_tname": "",
    +        "typename": "",
    +        "open_appeal": 0,
    +        "activity": null,
    +        "season_add_state": 0
    +      }
    +    ],
    +    "page": {
    +      "pn": 1,
    +      "ps": 3,
    +      "count": 32
    +    },
    +    "play_type": 1
    +  }
    +}
    +

    视频基础信息

    https://member.bilibili.com/x/web/archive/videos

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    aidnumav 号必要

    JSON回复:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    archiveobj稿件信息
    videosarray视频信息

    archive 对象:

    字段类型内容备注
    aidnumav 号
    bvidstrbvid
    titlestr标题

    videos 数组:

    字段类型内容备注
    cidnum分P cid
    indexnum分P 序号
    titlestr分P 标题
    durationnum0

    示例:

    curl -G "https://member.bilibili.com/x/web/archive/videos" \
    +--data-urlencode "aid=1906473802" \
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "archive": {
    +      "aid": 1906473802,
    +      "bvid": "BV1MU411S7iJ",
    +      "title": "Linux小寄巧: 原地卸载内核然后尝试救活!"
    +    },
    +    "videos": [
    +      {
    +        "cid": 1625992822,
    +        "index": 1,
    +        "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
    +        "duration": 0
    +      }
    +    ]
    +  }
    +}
    +
    + + + diff --git a/docs/customerservice/msg.html b/docs/customerservice/msg.html new file mode 100644 index 0000000000..74986c83e1 --- /dev/null +++ b/docs/customerservice/msg.html @@ -0,0 +1,56 @@ + + + + + + + + + 客服消息 | BAC Document + + + + +

    客服消息

    心跳

    https://customerservice.bilibili.com/x/custom/session_svr/v1/heart_beat

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    shop_idnum0非必要
    shop_father_idnum0非必要
    buildnum客户端版本非必要web: 0
    mobi_appstr客户端类型非必要web

    JSON回复:

    字段类型内容备注
    codenum返回值0: 成功
    msgstrok失败时不存在
    messagestr错误信息成功时为 ok
    ttlnum1

    示例:

    curl -G "https://customerservice.bilibili.com/x/custom/session_svr/v1/heart_beat" \
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "ok",
    +  "message": "ok",
    +  "ttl": 1
    +}
    +

    上传文件

    https://customerservice.bilibili.com/x/custom/msg_svr/v1/upload

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    注: 上传的文件 15 分钟内有效, 过期后下载会返回 HTTP 403

    正文参数 (multipart/form-data):

    参数名类型内容必要性备注
    filefile文件内容必要
    filenamestr文件名必要
    midnum用户 mid必要
    csrfstrCSRF Token (位于 Cookie 中 bili_jct)必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    1000011: 仅支持上传300M内的文件
    1200201: 获取用户信息失败
    messagestr错误信息成功时为 ok
    ttlnum1
    dataobj上传结果

    data 对象:

    字段类型内容备注
    keystr文件名
    urlstr文件 URL注意转义

    示例:

    上传文件 ./headers/xx-out.xcf, 文件名 ihavenoname

    curl -X POST "https://customerservice.bilibili.com/x/custom/msg_svr/v1/upload" \
    +-F 'file=@./headers/xx-out.xcf' \
    +-F 'filename=ihavenoname' \
    +-F 'mid=1070915568' \
    +-F 'csrf=xxx' \
    +-b 'SESSDATA=xxx; bili_jct=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "ok",
    +  "ttl": 1,
    +  "data": {
    +    "key": "1a0c88d240852155a111e4cc6893be39.xcf",
    +    "url": "https://jssz-boss.hdslb.com/customer-video-upload/1a0c88d240852155a111e4cc6893be39.xcf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=f9TxwsagojnE1DWM%2F20240803%2Fjssz%2Fs3%2Faws4_request&X-Amz-Date=20240803T115447Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=cef962c8e503c6ff564fd485bdef1079df1b4a7e38f4fbd9c21a5667207f406e"
    +  }
    +}
    +
    + + + diff --git a/docs/danmaku/action.html b/docs/danmaku/action.html new file mode 100644 index 0000000000..d3349b3754 --- /dev/null +++ b/docs/danmaku/action.html @@ -0,0 +1,230 @@ + + + + + + + + + 弹幕操作 | BAC Document + + + + +

    弹幕操作

    发送视频弹幕

    https://api.bilibili.com/x/v2/dm/post

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    此接口与漫画弹幕相同

    mode=6的逆向弹幕与mode=8的代码弹幕不可发送

    URL参数:

    参数名类型内容必要性备注
    web_locationstr普通视频: 1315873不必要
    csrfstrCSRF Token (即 Cookie 中 bili_jct)Cookie 方式必要
    w_ridstrWbi 签名必要参见 Wbi 签名
    wtsstrUNIX 秒级时间戳必要参见 Wbi 签名

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    typenum弹幕类选择必要1:视频弹幕
    2:漫画弹幕
    oidnum视频 cid必要
    msgstr弹幕内容必要长度小于 100 字符
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    progressnum弹幕出现在视频内的时间非必要单位为毫秒
    默认为0
    colornum弹幕颜色设置非必要十进制 RGB888 值
    16777215为 #FFFFFF 即白色
    fontsizenum弹幕字号设置非必要默认为 25
    极小:12
    超小:16
    小:18
    标准:25
    大:36
    超大:45
    极大:64
    poolnum弹幕池选择非必要0:普通池
    1:字幕池
    2:特殊池(代码/BAS弹幕)
    默认为0
    modenum弹幕类型选择必要1:普通弹幕
    4:底部弹幕
    5:顶部弹幕
    7:高级弹幕
    9:BAS弹幕(pool必须为2)
    rndnum当前时间戳*1000000非必要若无此项,则发送弹幕冷却时间限制为90s
    若有此项,则发送弹幕冷却时间限制为5s
    colorfulnum彩色弹幕非必要60001:专属渐变彩色(需要会员)
    checkbox_typenum是否带 UP 身份标识非必要0:普通
    4:带有标识
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值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:当日操作数量超过上限
    36718:目前您不是大会员,无法使用会员权益
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    actionstr(?)
    animationstr弹幕样式 Json?
    colorful_srcstr 或 obj渐变彩色样式信息?当请求参数colorful=60001时有效
    dm_contentstr(?)
    dmidnum弹幕 dmid
    dmid_strstr弹幕 dmid字串形式
    visiblebool(?)

    data中的colorful_src对象:

    字段类型内容备注
    typenum60001
    srcstr渐变色样式 Json?

    示例:

    为视频av2/BV1xx411c7mD(cid为62131)的 5000ms 位置发送一条弹幕前来考古(颜色为 #FFFFFF,字号 25,普通弹幕,游动弹幕)

    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'
    +
    查看响应示例:
    {
    +    "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主支持发布关联视频弹幕open in new window

    引导关注卡片open in new window

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum互动弹幕类型必要1:UP主头像弹幕
    2:关联视频弹幕
    5:视频内嵌引导关注按钮
    aidnum稿件avid必要
    cidnum视频cid必要
    progressnum弹幕出现在视频内的时间非必要单位为毫秒
    默认为0
    platnum平台标识必要1:web端
    2:安卓端
    8:视频管理页面
    datastrjson序列必要
    dmidnum修改互动弹幕的弹幕id非必要注:修改弹幕plat必须为8
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    data参数json序列:

    类型为【UP主头像弹幕】时:

    字段类型内容备注
    msgstr弹幕内容

    类型为【关联视频弹幕】时:

    字段类型内容备注
    msgstr弹幕内容
    bvidstr关联视频的bvid

    类型为【视频内嵌引导关注按钮】时:

    字段类型内容备注
    durationnum持续时间单位为毫秒
    posXnumX坐标区间:[118-549]
    posYnumY坐标区间:[82-293]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    -500:服务器错误
    36711:该视频禁止发送弹幕
    79026:发送失败,请勿填写当前稿件bvid
    79024:发送失败,请输入正确的bvid
    79036:该指令弹幕超出限制
    79037:关注弹幕坐标溢出
    messagestr错误信息默认为0
    ttlnum1
    data正确时:obj
    错误时:null
    信息本体

    data对象:

    字段类型内容备注
    commandstr指令?UP主头像弹幕:#UP#
    关联视频弹幕:#LINK#
    视频内嵌引导关注按钮:#ATTENTION#
    contentstr弹幕内容
    extrastr弹幕数据json序列
    idnum弹幕dmid
    idStrstr弹幕dmid字串形式
    midnum用户mid
    oidnum视频cid
    progressnum弹幕出现在视频内的时间
    typenum互动弹幕类型1:UP主头像弹幕
    2:关联视频弹幕
    5:视频内嵌引导关注按钮

    extra序列数据:

    类型为【UP主头像弹幕】时:

    字段类型内容备注
    iconstrUP主头像url

    类型为【关联视频弹幕】时:

    字段类型内容备注
    aidnum关联视频的avid
    titlestr关联视频的标题
    bvidstr关联视频的bvid

    类型为【视频内嵌引导关注按钮】时:

    字段类型内容备注
    durationnum持续时间单位为毫秒
    posXnumX坐标区间:[118-549]
    posYnumY坐标区间:[82-293]
    iconstr按钮图片url不应该是关注按钮吗,但这个是圆形的
    typenum关注按钮类型0:仅关注
    1:仅三联
    2:关注+三联

    示例:

    为视频av201947622(cid为230709860)的5000ms位置发送一条UP主头像弹幕test

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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/v2/dm/command/grade/post

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    aidnum稿件 aid必要
    cidnum分 P cid必要
    progressnum播放进度必要单位为毫秒
    grade_idnum打分 id必要
    grade_scorenum分数偶数, 最大 10
    polaris_app_idnum100不必要
    polaris_platfromnum5不必要
    spmidstr333.788.0.0不必要
    from_spmidstr来源 spmid不必要
    csrfstrCSRF Token (即 Cookie 中的 bili_jct)必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | | dmid | num | 弹幕dmid | | | dmid_str | str | 弹幕dmid | 字串形式 | | visible | bool | 是否可见 | | | action | str | 动作 | "grade:" + (请求的分数 / 2) |

    示例:

    curl -X POST 'https://api.bilibili.com/x/v2/dm/command/grade/post' \
    +--data-urlencode 'aid=112861976201494' \
    +--data-urlencode 'cid=500001629877726' \
    +--data-urlencode 'progress=32000' \
    +--data-urlencode 'grade_id=3651137' \
    +--data-urlencode 'grade_score=10' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "dmid": 1651556419721443584,
    +    "dmidStr": "1651556419721443584",
    +    "visible": true,
    +    "action": "grade:5"
    +  }
    +}
    +

    撤回弹幕

    https://api.bilibili.com/x/dm/recall

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    仅能撤回自己两分钟内的弹幕,且每天只有3次机会

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    dmidnum弹幕dmid必要
    cidnum视频cid必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    36301:撤回失败,弹幕发送已过2分钟
    36302:撤回失败,弹幕已经被删除或撤回
    36303:撤回失败,今天撤回的机会已经用完
    36304:撤回失败,服务器出错
    messagestr错误信息成功后显示剩余次数
    ttlnum1

    示例:

    撤回cid=168901231下的弹幕32310301474947077的弹幕

    curl 'https://api.bilibili.com/x/dm/recall' \
    +--data-urlencode 'cid=168901231' \
    +--data-urlencode 'dmid=32310301474947077' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "撤回成功,你还有3次撤回机会"
    +}
    +

    购买高级弹幕发送权限

    https://api.bilibili.com/x/dm/adv/buy

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    购买一次需要2硬币,同时向up主发送请求

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    modestrsp必要
    cidnum视频cid必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -107:硬币不足
    -400:请求错误
    36007:不允许购买
    36009:正在确认中
    36010:已购买
    messagestr返回信息
    ttlnum1

    示例:

    购买视频cid为168901231的高级弹幕发送权限

    curl 'https://api.bilibili.com/x/dm/adv/buy' \
    +--data-urlencode 'cid=168901231' \
    +--data-urlencode 'mode=sp' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"已成功购买"
    +}
    +

    检测高级弹幕发送权限

    https://api.bilibili.com/x/dm/adv/state

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    modestrsp必要
    cidnum视频cid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    --400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    有效时:信息本体

    data对象:

    字段类型内容备注
    coinsnum需要支付的硬币数
    confirmnum是否同意1:同意
    2:未同意
    未购买时无此项
    acceptbool是否允许申请true:允许
    false:不允许
    hasBuybool是否已购买true:已购买
    未购买时无此项

    示例:

    查询视频cid为168901231的视频高级弹幕权限购买状态

    当前状态为已购买且同意

    curl -G 'https://api.bilibili.com/x/dm/adv/state' \
    +--data-urlencode 'cid=168901231' \
    +--data-urlencode 'mode=sp' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "coins": 2,
    +        "confirm": 1,
    +        "accept": true,
    +        "hasBuy": true
    +    }
    +}
    +

    点赞弹幕

    https://api.bilibili.com/x/v2/dm/thumbup/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    查询指定弹幕点赞状态参阅文档 弹幕点赞查询

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    dmidnum目标弹幕 dmid必要
    oidnum目标弹幕所在视频 cid必要
    opnum操作必要1:点赞
    2:取消点赞
    platformstr平台标识非必要web_player:web 播放器
    android:安卓端
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    36106:该弹幕已被删除
    36805:该视频禁止点赞弹幕
    65004:取消赞失败 未点赞过
    65006:已赞过
    messagestr错误信息默认为0
    tllnum1

    示例

    cid=145928946下的弹幕35600074482384899点赞

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    举报弹幕

    https://api.bilibili.com/x/dm/report/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    cidnum视频cid必要
    dmidnum弹幕dmid必要
    reasonnum举报类型必要类型代码见下表
    contentstr其他举报备注非必要reason=11时有效
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    举报类型reason

    代码含义
    1违法违禁
    2色情低俗
    3赌博诈骗
    4人身攻击
    5侵犯隐私
    6垃圾广告
    7引战
    8剧透
    9恶意刷屏
    10视频无关
    11其他
    12青少年不良

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    36201:举报弹幕不存在
    36203:举报原因类型错误
    36204:已举报
    messagestr错误信息默认为空
    tllnum1举报失败时

    示例

    举报cid=145928946下的弹幕35600074482384899,理由是引战

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":""
    +}
    +

    保护&删除弹幕

    https://api.bilibili.com/x/v2/dm/edit/state

    请求方式:POST

    认证方式:Cookie(SESSDATA) 或APP

    注:只能操作自己的稿件或有骑士权限的稿件

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    typenum弹幕类选择必要1:视频弹幕
    oidnum视频cid必要
    dmidsnums弹幕dmid必要多个id之间用,分隔
    statenum操作代码必要1:删除弹幕
    2:弹幕保护
    3:取消保护
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例

    删除cid=145928946下的弹幕356000744823848993906730491851571739082777041174531

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    typenum弹幕类选择必要1:视频弹幕
    oidnum视频cid必要
    dmidsnums弹幕dmid必要多个id之间用,分隔
    poolnum操作代码必要0:移出字幕池
    1:移入字幕池
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例

    cid=145928946下的弹幕356000744823848993906730491851571739082777041174531移入字幕池

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +
    + + + diff --git a/docs/danmaku/buzzword.html b/docs/danmaku/buzzword.html new file mode 100644 index 0000000000..bd3a82de81 --- /dev/null +++ b/docs/danmaku/buzzword.html @@ -0,0 +1,253 @@ + + + + + + + + + 名词解释 | BAC Document + + + + +

    名词解释

    该功能用于解释和科普 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_idnum名词类型必要如:4代表“哔哩哔哩热词图鉴”
    5代表“语言类”
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    typeobj类型信息
    buzzwordsarray词语列表
    pageobj页面信息

    data中的type对象:

    字段类型内容备注
    idnum类型 id
    namestr类型名称
    name_pinyinobj拼音信息见副表

    data中的buzzwords数组:

    类型内容备注
    0obj名词条目 1
    nobj名词条目(n+1)
    ……obj…………

    buzzwords数组中的对象:

    字段类型内容备注
    idnum名词 id用于查询名词解释详情
    namestr名词
    name_pinyinobj拼音信息见副表
    picturestr名词图片 url

    data中的page对象:

    字段类型内容备注
    numnum当前页码
    sizenum每页项数
    totalnum总计项数
    cntnum(?)

    副表:拼音name_pinyin对象:

    字段类型内容备注
    对应单个汉字 1str拼音字串
    对应单个汉字 nstr拼音字串
    ……str…………

    示例:

    拉取对应哔哩哔哩热词图鉴的名词列表,以20项为一页拉取第1页

    curl -G 'https://api.bilibili.com/x/v2/dm/buzzword/list' \
    +--data-urlencode 'type_id=4' \
    +--data-urlencode 'ps=10' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    idnum名词id必要如:1代表“kksk”
    2代表“打脸”

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:不存在该名词
    messagestr错误信息默认为0
    ttlnum1
    data有数据时:obj
    无数据时:null
    数据本体

    data对象:

    字段类型内容备注
    idnum名词id
    namestr名词
    descriptionstr名词解释
    picturestr名词图片 url
    typesarray父分类列表该名词可能隶属多个父分类
    related_wordsarray近义词/相关词
    uppers有数据:array
    无数据:null
    相关 UP 列表该名词(梗)出处
    related_ugc有数据:array
    无数据:null
    相关 ucg 视频列表该名词(梗)出处
    related_ogv有数据:array
    无数据:null
    相关 pgc 视频列表该名词(梗)出处
    guidesobj推荐创作信息
    related_buzzwordsarray推荐名词列表
    topicobj关联话题信息
    show_dynamicbool是否展示话题动态聚合true展示
    false不展示

    data中的types数组:

    类型内容备注
    0obj父分类 1
    nobj父分类(n+1)
    ……obj…………

    types数组中的对象:

    字段类型内容备注
    idnum类型 id
    namestr类型名称
    name_pinyinnull
    levelnum权重?

    data中的related_words数组:

    类型内容备注
    0str近义词/相关词1
    nstr近义词/相关词(n+1)
    ……str…………

    data中的uppers数组:

    类型内容备注
    0obj相关 UP 1
    nobj相关 UP(n+1)
    ……obj…………

    uppers数组中的对象:

    字段类型内容备注
    idnumUP 主 mid
    recommendstr
    namestrUP 主昵称
    facestrUP 主头像 url
    officialobjUP 主认证信息
    followedbool是否关注需要登录(Cookie 或 APP)
    true已关注
    false未关注
    fans_countnum粉丝数

    data中的related_ugc数组:

    类型内容备注
    0obj相关 ucg 视频 1
    nobj相关 ucg 视频(n+1)
    ……obj…………

    related_ugc数组中的对象:

    字段类型内容备注
    aidnum稿件 avid
    cidnum视频 cid
    namestr视频标题
    linkstr
    playnum播放数
    danmakunum弹幕数
    durationnum视频时长单位为秒
    coverstr视频封面 url

    data中的related_ogv数组:

    类型内容备注
    0obj相关 pgc 视频 1
    nobj相关 pgc 视频(n+1)
    ……obj…………

    related_ogv数组中的对象:

    字段类型内容备注
    season_idnum剧集 ssid
    namestr剧集标题
    playnum播放数
    followednum追剧/番数
    is_followedbool是否追剧/番true已追剧/番
    false未追剧/番
    new_epstr最新一集信息
    coverstr剧集封面 url
    episodesnull
    follow_infoobj

    data中的guides对象:

    字段类型内容备注
    descriptionstr创作推介文案
    contribute_tagsarray创作跳转按钮信息

    guides中的contribute_tags数组:

    类型内容备注
    0obj创作跳转按钮 1
    nobj创作跳转按钮(n+1)
    ……obj…………

    contribute_tags数组中的对象:

    字段类型内容备注
    titlestr按钮文案
    linkstr跳转 uri跳转至必剪或客户端创作入口

    data中的related_buzzwords数组:

    类型内容备注
    0obj推荐名词 1
    nobj推荐名词(n+1)
    ……obj…………

    related_buzzwords数组中的对象:

    字段类型内容备注
    idnum名词 id用于查询名词解释详情
    namestr名词
    name_pinyinnull
    picturestr

    data中的topic对象:

    字段类型内容备注
    topic_idnum关联话题id
    topic_namestr关联话题名称

    示例:

    查询名词kksk的详情

    curl -G 'https://api.bilibili.com/x/v2/dm/buzzword/detail' \
    +--data-urlencode 'id=1'
    +
    查看响应示例:
    {
    +    "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.html b/docs/danmaku/config.html new file mode 100644 index 0000000000..52032d3f09 --- /dev/null +++ b/docs/danmaku/config.html @@ -0,0 +1,42 @@ + + + + + + + + + 弹幕个人配置修改 | BAC Document + + + + +

    弹幕个人配置修改

    修改弹幕个人配置(web端)

    https://api.bilibili.com/x/v2/dm/web/config

    请求方式:POST

    认证方式:Cookie(SESSDATA)或APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    dm_switchbool弹幕开关非必要true:开启
    false:关闭
    blockscrollbool屏蔽类型-滚动非必要true:不屏蔽
    false:屏蔽
    blocktopbool屏蔽类型-顶部非必要同上
    blockbottombool屏蔽类型-底部非必要同上
    blockcolorbool屏蔽类型-彩色非必要同上
    blockspecialbool屏蔽类型-特殊非必要同上
    ai_switchbool是否打开智能云屏蔽非必要true:开启
    false:关闭
    ai_levelnum智能云屏蔽等级非必要区间:[0-10]
    0为默认等级(3级)
    preventshadebool防挡弹幕(底部15%)非必要true:开启
    false:关闭
    dmaskbool智能防挡弹幕(人像蒙版)非必要同上
    opacitynum弹幕不透明度非必要区间:[0-1]
    dmareanum弹幕显示区域非必要100:不重叠
    75:3/4屏
    50:半瓶
    25:1/4屏
    0:不限
    speedplusnum弹幕速度非必要区间:[0.4-1.6]
    fontsizenum字体大小非必要区间:[0.4-1.6]
    screensyncbool跟随屏幕缩放比例非必要true:开启
    false:关闭
    speedsyncbool根据播放倍速调整速度非必要同上
    fontfamilystr字体类型非必要未启用
    boldbool粗体非必要未启用
    fontbordernum描边类型非必要0:重墨
    1:描边
    2:45°投影
    drawTypestring渲染类型非必要未启用
    tsnum当前时间戳非必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    23004:数据没有修改
    messagestr错误信息默认为0
    ttlnum1

    示例:

    关闭弹幕

    curl 'https://api.bilibili.com/x/v2/dm/web/config' \
    +--data-urlencode 'dm_switch=false' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +
    + + + diff --git a/docs/danmaku/danmaku_proto.html b/docs/danmaku/danmaku_proto.html new file mode 100644 index 0000000000..42e02629d6 --- /dev/null +++ b/docs/danmaku/danmaku_proto.html @@ -0,0 +1,62 @@ + + + + + + + + + protobuf弹幕 | BAC Document + + + + +

    protobuf弹幕

    2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕 API,网页端弹幕显示的上限变为原弹幕池上限的两倍。

    新的 API 是以 6min 为一个单位加载,即每次加载 6min 内的弹幕

    获取实时弹幕

    https://api.bilibili.com/x/v2/dm/web/seg.so (web端)

    https://api.bilibili.com/x/v2/dm/wbi/web/seg.so (web 端新接口,需要 wbi 认证)

    https://api.bilibili.com/x/v2/dm/list/seg.so (APP端)

    https://i0.hdslb.com/bfs/dm/{data}.bin (BAS/代码弹幕专包)

    请求方式:GET认证方式:半匿名(部分视频在无 Cookie: SESSDATA 时只返回部分弹幕)

    此接口与漫画弹幕相同

    只能返回普通弹幕(pool=1 mode=1-7)和代码弹幕(pool=2 mode=8),BAS弹幕(pool=2 mode=9)请从弹幕元数据中获取

    互动弹幕(UP 主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从弹幕元数据中获取

    注:仅获取 6min 的整数倍时间内的弹幕,6min 内最多弹幕数为 6000 条(如第一包中弹幕progress值域为0-360000)

    url参数:

    参数名类型内容必要性备注
    typenum弹幕类必要1:视频弹幕
    2:漫画弹幕
    oidnum视频 cid必要
    pidnum稿件 avid非必要
    segment_indexnum分包必要6min 一包
    pull_modenum(?)非必要
    psnum(?)非必要
    penum(?)非必要

    proto回复:

    proto定义见:bilibili.community.service.dm.v1.DmSegMobileReply

    消息DmSegMobileReply

    名称类型含义备注
    elemsrepeated DanmakuElem弹幕条目

    消息DanmakuElem

    名称类型含义备注
    idint64弹幕 dmid唯一 可用于操作参数
    progressint32视频内弹幕出现时间毫秒
    modeint32弹幕类型1 2 3:普通弹幕
    4:底部弹幕
    5:顶部弹幕
    6:逆向弹幕
    7:高级弹幕
    8:代码弹幕
    9:BAS 弹幕(仅限于特殊弹幕专包)
    fontsizeint32弹幕字号18:小
    25:标准
    36:大
    coloruint32弹幕颜色十进制 RGB888 值
    midHashstring发送者 mid 的 HASH用于屏蔽用户和查看用户发送的所有弹幕,也可反查用户id
    contentstring弹幕内容utf-8编码
    ctimeint64弹幕发送时间时间戳
    weightint32权重用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
    范围:[0-10]
    值越大权重越高
    actionstring动作?
    poolint32弹幕池0:普通池
    1:字幕池
    2:特殊池(代码/BAS弹幕)
    idStrstring弹幕 dmid字串形式
    唯一 可用于操作参数
    attrint32弹幕属性位bit0:保护
    bit1:直播
    bit2:高赞
    animationstring动画?

    示例:

    获取视频av810872(cid=1176840)(炮姐)的实时弹幕分包 1

    注:以下proto定义需要编译,bilibili.community.service.dm.v1.dm_pb2并非通过 pypi 安装

    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.html b/docs/danmaku/danmaku_view_proto.html new file mode 100644 index 0000000000..d314f0fa3a --- /dev/null +++ b/docs/danmaku/danmaku_view_proto.html @@ -0,0 +1,152 @@ + + + + + + + + + 弹幕元数据 | BAC Document + + + + +

    弹幕元数据

    2020-09-25 B站更新了互动弹幕功能,包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能

    详情见:

    获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端)

    https://api.bilibili.com/x/v2/dm/web/view

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    typenum弹幕类必要1:视频弹幕
    oidnum视频cid必要
    pidnum稿件avid非必要

    proto回复:

    消息DmWebViewReply

    名称类型含义备注
    stateint32弹幕开放状态0:开放弹幕
    1:禁止弹幕
    textstring
    textSidestring
    dmSgeDmSegConfig分段弹幕包信息?
    flagDanmakuFlagConfig
    specialDmsrepeated stringBAS(代码)弹幕专包url
    checkBoxbool
    countint64实际弹幕总数具有1500-6000不等的上限
    commandDmsrepeated CommandDm互动弹幕条目
    dmSettingDanmuWebPlayerConfig弹幕个人配置仅登录后存在

    消息dmSge

    名称类型含义备注
    pageSizeint64分段时间?单位为毫秒
    totalint64最大分页数?

    消息flag

    名称类型含义备注
    recFlagint32
    recTextstring
    recSwitchint32

    消息commandDms

    名称类型含义备注
    idint64弹幕dmid
    oidint64视频cid
    midint64发送者mid
    commandstring弹幕指令#UP#:UP主头像弹幕
    #LINK#:关联视频弹幕
    #ATTENTION#:视频内嵌引导关注按钮
    contentstring弹幕文字
    progressint32弹幕出现时间单位为毫秒
    ctimestring创建时间?此项为空
    mtimestring修改时间?此项为空
    extrastring弹幕负载数据json序列字串
    idStrstring弹幕dmid字串形式

    extrajson序列:

    类型为【UP主头像弹幕】时:

    字段类型内容备注
    iconstrUP主头像url

    类型为【关联视频弹幕】时:

    字段类型内容备注
    aidnum关联视频的avid
    titlestr关联视频的标题
    iconstr关联视频按钮图片url
    bvidstr关联视频的bvid

    类型为【视频内嵌引导关注按钮】时:

    字段类型内容备注
    durationnum持续时间单位为毫秒
    posXnumX坐标区间:[118-549]
    posYnumY坐标区间:[82-293]
    iconstr按钮图片url不应该是关注按钮吗,但这个是圆形的
    typenum关注按钮类型0:仅关注
    1:仅三连
    2:关注+三连

    消息dmSetting

    名称类型含义备注
    dmSwitchbool弹幕开关true:开启
    false:关闭
    aiSwitchbool智能云屏蔽同上
    aiLevelint32智能云屏蔽级别区间:[1-10]
    blocktopbool屏蔽类型-顶部true:不屏蔽
    false:屏蔽
    blockscrollbool屏蔽类型-滚动同上
    blockbottombool屏蔽类型-底部同上
    blockcolorbool屏蔽类型-彩色同上
    blockspecialbool屏蔽类型-特殊同上
    preventshadebool防挡弹幕(底部15%)true:开启
    false:关闭
    dmaskbool智能防挡弹幕(人像蒙版)同上
    opacityfloat弹幕不透明度区间:[0-1]
    dmareaint32弹幕显示区域100:不重叠
    75:3/4屏
    50:半瓶
    25:1/4屏
    0:不限
    speedplusfloat弹幕速度区间:[0.4-1.6]
    fontsizefloat字体大小区间:[0.4-1.6]
    screensyncbool跟随屏幕缩放比例
    speedsyncbool根据播放倍速调整速度
    fontfamilystring字体类型?未启用
    boldbool粗体?未启用
    fontborderint32描边类型0:重墨
    1:描边
    2:45°投影
    drawTypestring渲染类型?未启用

    protobuf结构体:

    web_dmview.proto

    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)的弹幕元数据

    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)的所有互动弹幕

    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(代码)弹幕专包

    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
    +

    使用普通分段包弹幕的proto结构体反序列化此bin数据

    + + + diff --git a/docs/danmaku/danmaku_xml.html b/docs/danmaku/danmaku_xml.html new file mode 100644 index 0000000000..fee1e7b825 --- /dev/null +++ b/docs/danmaku/danmaku_xml.html @@ -0,0 +1,65 @@ + + + + + + + + + xml弹幕 | BAC Document + + + + +

    xml弹幕

    实时弹幕池容量有限(根据视频类型500-8000条不等),占满后再发送会使实时弹幕池底部的弹幕压入历史弹幕池(类似于堆栈)

    获取实时弹幕1

    https://api.bilibili.com/x/v1/dm/list.so

    请求方式:GET

    使用deflate压缩,注意解码

    url参数:

    参数名类型内容必要性备注
    oidnum视频cid必要

    示例:

    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路径:

    参数名类型内容必要性备注
    cidnum视频cid必要

    示例:

    curl 'https://comment.bilibili.com/144541892.xml'
    +--compressed -o 'danmaku.xml'
    +

    xml回复:

    查看响应示例:
    <?xml version="1.0" encoding="UTF-8"?>
    +<i>
    +    <chatserver>chat.bilibili.com</chatserver>
    +    <chatid>144541892</chatid>
    +    <mission>0</mission>
    +    <maxlimit>1500</maxlimit>
    +    <state>0</state>
    +    <real_name>0</real_name>
    +    <source>e-r</source>
    +    <d p="490.19100,1,25,16777215,1584268892,0,a16fe0dd,29950852386521095">从结尾回来看这里,更感动了!</d>
    +    <d p="18.77300,1,25,16777215,1584268920,0,4fe08d3,29950867226492933">咦三体居然还有动画</d>
    +    <d p="52.88400,1,25,16777215,1584268954,0,4fe08d3,29950885214289927">哈哈哈哈开心</d>
    +    <d p="25.51600,1,25,16777215,1584268957,0,e4b18b37,29950886612566021">红岸么</d>
    +    <d p="144.45200,1,25,16777215,1584269076,0,e4b18b37,29950948716576775">我就是想看我的世界里水滴长啥样</d>
    +    <d p="112.64100,1,25,16777215,1584269109,0,96606007,29950966302244871">有手指?</d>
    +    <d p="222.84000,1,25,16777215,1584269154,0,e4b18b37,29950989809745923">侦测到在途的聚变打击</d>
    +    <d p="284.77800,1,25,16777215,1584269216,0,e4b18b37,29951022237483011">都是虫子</d>
    +    <d p="398.00500,1,25,16777215,1584269329,0,e4b18b37,29951081615196163">ocean</d>
    +    <d p="432.17900,1,25,16777215,1584269363,0,e4b18b37,29951099571535943">村民,哼~</d>
    +    <d p="467.41900,1,25,16777215,1584269399,0,e4b18b37,29951118364639237">黄河之水天上来</d>
    +    <d p="6.71900,1,25,16777215,1584269422,0,70ba16f4,29951130398621699">镇站之宝</d>
    +    <d p="313.08600,1,25,16777215,1584269425,0,e531c9dc,29951131798994947">这水</d>
    +    <d p="587.87900,1,25,16777215,1584269519,0,e4b18b37,29951181142360071">海的那边是什么</d>
    +    <d p="618.05000,1,25,16777215,1584269549,0,e4b18b37,29951196901933061">折跃门准备完毕</d>
    +    …………
    +<i>
    +

    弹幕格式

    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弹幕类型int321 2 3:普通弹幕
    4:底部弹幕
    5:顶部弹幕
    6:逆向弹幕
    7:高级弹幕
    8:代码弹幕
    9:BAS弹幕(pool必须为2)
    2弹幕字号int3218:小
    25:标准
    36:大
    3弹幕颜色int32十进制RGB888值
    4弹幕发送时间int32时间戳
    5弹幕池类型int320:普通池
    1:字幕池
    2:特殊池(代码/BAS弹幕)
    6发送者mid的HASHstring用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id
    7弹幕dmidint64唯一 可用于操作参数
    8弹幕的屏蔽等级int320-10,低于用户设定等级的弹幕将被屏蔽
    (新增,下方样例未包含)
    <d p="490.19100,1,25,16777215,1584268892,0,a16fe0dd,29950852386521095">从结尾回来看这里,更感动了!</d>
    +

    弹幕内容为:“从结尾回来看这里,更感动了!”

    参数为:视频内出现的时间是490.19100秒,类型是普通弹幕,字号为标准,颜色为白色(#FFFFFF),发送时间是2020/3/15 18:41:32.........

    web版标准颜色

    弹幕的颜色属性使用十进制RGB888

    颜色HEX(RGB888)DEC(RGB888)
    红色FE030216646914‬
    橘红FF720416740868
    橘黄FFAA0216755202
    淡黄FFD30216765698
    黄色FFFF0016776960
    草绿A0EE0010546688
    绿色00CD0052480
    墨绿019899104601
    紫色4266BE4351678
    青色89D5FF9022215
    品红CC027313369971
    黑色2222222236962
    灰色9B9B9B10197915
    白色FFFFFF16777215
    + + + diff --git a/docs/danmaku/history.html b/docs/danmaku/history.html new file mode 100644 index 0000000000..4c854e3b7c --- /dev/null +++ b/docs/danmaku/history.html @@ -0,0 +1,129 @@ + + + + + + + + + 历史弹幕 | BAC Document + + + + +

    历史弹幕

    注:历史弹幕的xml接口已经失效,现已改为protobuf接口

    查询历史弹幕日期

    https://api.bilibili.com/x/v2/dm/history/index

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    注:查询历史弹幕需要登录

    url参数:

    参数名类型内容必要性备注
    typenum1必要
    oidnum视频cid必要
    monthstr查询目标年月必要YYYY-MM

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    data有弹幕:array
    无弹幕:null
    日期列表

    data数组:

    类型内容备注
    0str存在弹幕的日期1YYYY-MM-DD
    nstr存在弹幕的日期(n+1)YYYY-MM-DD
    ……str…………

    示例:

    查询了cid为144541892的视频位于2020年1月中有历史弹幕记录的日期

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": null
    +}
    +

    获取历史弹幕protobuf接口

    https://api.bilibili.com/x/v2/dm/web/history/seg.so

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    typenum弹幕类必要1:视频弹幕
    oidnum视频cid必要
    datestr弹幕日期必要YYYY-MM-DD

    proto回复:

    porto定义见:bilibili.community.service.dm.v1.DmSegMobileReplyopen in new window

    详细说明见protobuf弹幕

    获取视频av84271171(cid=144541892)2020-01-21的历史弹幕

    注:proto定义需要编译

    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格式弹幕

    使用deflate压缩,注意解码

    url参数:

    参数名类型内容必要性备注
    typenum1必要
    oidnum视频cid必要
    datestr弹幕日期必要YYYY-MM-DD

    示例:

    获取视频av84271171(cid=144541892)2020-01-21的历史弹幕

    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 version="1.0" encoding="UTF-8"?>
    +<i>
    +    <chatserver>chat.bilibili.com</chatserver>
    +    <chatid>144541892</chatid>
    +    <mission>0</mission>
    +    <maxlimit>1500</maxlimit>
    +    <state>0</state>
    +    <real_name>0</real_name>
    +    <d p="473.43400,1,25,15138834,1579622380,0,ec16f2d,27532609919123456">敬礼</d>
    +    <d p="3.10200,1,25,16777215,1579622362,0,a2bd7474,27532609920696320">悄默声的更新啊怎么</d>
    +    <d p="17.52300,1,25,16777215,1579622357,0,972c932b,27532609906016258">久等了</d>
    +    <d p="40.81800,1,25,16777215,1579622343,0,bbca6701,27532609906540546">不都是乱纪元才浸泡</d>
    +    <d p="243.39800,1,25,15138834,1579622336,0,77b00ed9,27532609924890624">已阅,狗屁不通。大字报在地上搞搞就行,别弄到天上去</d>
    +    <d p="559.80000,1,25,16777215,1579622334,0,9affc7f5,27532609909686274">CSSC。。。</d>
    +    <d p="398.29700,1,25,16777215,1579622331,0,18d4707,27532609926463488">看到了个寂寞</d>
    +    <d p="34.81000,1,25,38979,1579622327,0,319d7700,27532609926987776">有耳朵了!</d>
    +    <d p="18.65700,1,25,16777215,1579622321,0,bbca6701,27532609912307714">雪天不用浸泡吧</d>
    +    <d p="305.99800,1,25,16777215,1579622316,0,878c315b,27532609928560640">未来史学派</d>
    +    <d p="7.86200,1,25,16777215,1579622309,0,c5136613,27532609913880578">浸泡!!!!!!!</d>
    +    <d p="368.95600,1,25,16777215,1579622302,0,18d4707,27532609914404866">章召忠</d>
    +    <d p="25.19800,1,25,16777215,1579622286,0,4dab6898,27532609931706368">mi24av</d>
    +    <d p="41.10100,1,25,16777215,1579622274,0,33d31036,27532609932230656">泪奔</d>
    +    <d p="627.69800,1,25,16777215,1579622264,0,d79a826a,27532609933279232">组建太空军</d>
    +    <d p="310.58900,1,25,16777215,1579622243,0,18d4707,27532609918074882">是未来史学派?</d>
    +    <d p="723.34800,1,25,16777215,1579622239,0,844fa9e7,27532609919123458">刘培强还行</d>
    +    …………
    +<i>
    +
    + + + diff --git a/docs/danmaku/snapshot.html b/docs/danmaku/snapshot.html new file mode 100644 index 0000000000..eac16bf286 --- /dev/null +++ b/docs/danmaku/snapshot.html @@ -0,0 +1,64 @@ + + + + + + + + + 弹幕快照 | BAC Document + + + + +

    弹幕快照

    获取弹幕快照

    https://api.bilibili.com/x/v2/dm/ajax

    请求方式:GET

    最近产生的几条弹幕内容,最多20条

    url参数:

    参数名类型内容必要性备注
    aidnum或str稿件avid或稿件bvid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataarray预览列表

    data数组:

    类型内容备注
    0str预览内容1
    nstr预览内容(n+1)
    ……str…………
    19str预览内容20最后一条

    示例:

    获取视频av43337021/BV1rb411m7gE的弹幕快照,总计20条

    avid方式:

    curl -G 'https://api.bilibili.com/x/v2/dm/ajax' \
    +--data-urlencode 'aid=43337021'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/v2/dm/ajax' \
    +--data-urlencode 'aid=BV1rb411m7gE'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +    "data": [
    +	"漫画比动漫好看而且血腥", 
    +	"666", 
    +	"金木小天使",
    +	"太喜欢了", 
    +	"每天一遍防止抑郁",
    +	"我还记得土豆那时候还有的看",
    +	"把在给我摸摸~",
    +	"突然泪目",
    +	"感谢野生字幕君",
    +	"993-7",
    +	"刚刚出的时候小学看,现在高二了",
    +	"原版op有这么长吗?搞笑,肯定做了剪辑,op会给你放全歌?",
    +	"让你看个op 3 : 5 4 秒?",
    +	"说原版不原版的都是弱智",
    +	"樱花",
    +	"请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,",
    +	"再来亿遍", 
    +	"错的不是我,而是这个世界。",
    +	"吃货的第一季的最后一季足以让他封神!", 
    +	"+"
    +    ]
    +}
    +
    + + + diff --git a/docs/danmaku/thumbup.html b/docs/danmaku/thumbup.html new file mode 100644 index 0000000000..1bb3d5cd36 --- /dev/null +++ b/docs/danmaku/thumbup.html @@ -0,0 +1,74 @@ + + + + + + + + + 弹幕点赞查询 | BAC Document + + + + +

    弹幕点赞查询

    查询指定dmid的点赞数

    https://api.bilibili.com/x/v2/dm/thumbup/stats

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    oidnum视频 cid必要
    idsnums欲查询的弹幕 dmid必要多个 id 之间用,分隔

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj弹幕 id 与之对应数据的 Map

    data对象:

    字段类型内容备注
    {弹幕 dmid}obj{弹幕 dmid} 对应的点赞信息

    {弹幕 dmid}对象:

    字段类型内容备注
    likesnum对应弹幕所获得的点赞数
    user_likenum当前用户是否点赞0:未点赞
    1:已点赞
    需要登录(Cookie 或 APP)
    id_strstr弹幕 dmid 字符串形式
    show_thresholdnum(?)
    reply_countnum(?)
    gray_release_controlobj(?)

    gray_release_control对象:

    字段类型内容备注
    show_dm_replybool(?)

    示例:

    获取视频 BV1AP411d7Qa 1P(cid=1131648710)下的几个弹幕 dmid1318231376180646144,1318231518484950784,1318231736680887808

    curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
    +	--data-urlencode 'oid=1131648710' \
    +	--data-urlencode 'ids=1318231376180646144,1318231518484950784,1318231736680887808' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "1318231376180646144": {
    +            "likes": 0,
    +            "user_like": 0,
    +            "id_str": "1318231376180646144",
    +            "show_threshold": 10,
    +            "reply_count": 0,
    +            "gray_release_control": {
    +                "show_dm_reply": false
    +            }
    +        },
    +        "1318231518484950784": {
    +            "likes": 0,
    +            "user_like": 0,
    +            "id_str": "1318231518484950784",
    +            "show_threshold": 10,
    +            "reply_count": 0,
    +            "gray_release_control": {
    +                "show_dm_reply": false
    +            }
    +        },
    +        "1318231736680887808": {
    +            "likes": 0,
    +            "user_like": 0,
    +            "id_str": "1318231736680887808",
    +            "show_threshold": 10,
    +            "reply_count": 0,
    +            "gray_release_control": {
    +                "show_dm_reply": false
    +            }
    +        }
    +    }
    +}
    +
    + + + diff --git a/docs/danmaku/webmask.html b/docs/danmaku/webmask.html new file mode 100644 index 0000000000..42e7190fe3 --- /dev/null +++ b/docs/danmaku/webmask.html @@ -0,0 +1,61 @@ + + + + + + + + + 智能防挡弹幕 | BAC Document + + + + +

    智能防挡弹幕

    B 站部分视频提供“智能防挡弹幕”功能,其原理是提供了一个 webmask 二进制文件,其中保存了视频中各个位置的 svg 格式蒙版。

    首先需要获取 webmask 资源的地址。

    获取 webmask 资源地址

    通过 web 播放器资源接口 获取 webmask 二进制文件的地址。

    webmask 资源

    获取的 url 没有权鉴,不需要后面的参数也可以获取。

    示例:

    curl -G https://upos-sz-staticcos-cmask.bilivideo.com/cmaskboss/825851971_30_0.webmask >> 825851971_30_0.webmask
    +

    下载后是二进制文件。

    webmask 二进制读取

    参考:andrewvy/webmask-rendereropen in new window

    nameoffsetlengthtypedesc
    mask04char'MASK' 文件头
    version44int是1
    vU84?不知道是干什么的
    Ly124int后续数据的段数
    time_1168long第一段对应视频开始时间
    offset_1248long第一段蒙版信息开始处对应二进制偏移
    ...............
    time_{Ly}16+(Ly-1)*168longLy 段对应视频开始时间
    offset_{Ly}24+(Ly-1)*168longLy 段蒙版信息开始处对应二进制偏移
    segments_1由前面offset_1提供offset_2-offset_1 计算得到binary蒙版信息块,使用 gzip 压缩
    ...............

    蒙版信息块是经过 gzip 压缩文本得到的二进制。解压缩后得到一个字节串。

    前 16 字节是两个 long,记为 leftright,暂时不清楚其作用。left 似乎和平均每张蒙版的时间有关。right 总是 i*10000i 是从 0 开始数的数据段次序。

    后面是各个 svg 文本直接拼起来,可以直接通过 svg 格式头 data:image/svg+xml;base64, 分开。

    Python 示例:

    from struct import unpack
    +import gzip
    +
    +f = open('你的 webmask', 'rb')
    +buf = f.read()
    +_Ly = buf[12:16]
    +Ly = unpack('>i', _Ly)[0] # 大端序 int
    +
    +times = []
    +offsets = []
    +for idx in range(Ly):
    +    op = 16 + idx * 16  # 个人习惯,我算偏移时喜欢用 `op` 和 `ed` 作为开始和结束的名字。
    +    time = unpack('>q', buf[op: op+8])[0]
    +    offset = unpack('>q', buf[op+8: op+16])[0]
    +    times.append(time)
    +    offsets.append(offset)
    +
    +frames = []
    +for idx in range(Ly):
    +    op = offsets[idx]
    +    if idx == Ly - 1: ed = len(buf)
    +    else: ed = offsets[idx+1]
    +    ba = buf[op: ed]
    +    bad = gzip.decompress(ba)
    +    badl = bad.split(b'data:image/svg+xml;base64,')
    +    # badl[0]是16字节,`left` 和 `right`
    +    frames.append(badl[1: ])
    +
    + + + diff --git a/docs/dynamic/action.html b/docs/dynamic/action.html new file mode 100644 index 0000000000..93e566a831 --- /dev/null +++ b/docs/dynamic/action.html @@ -0,0 +1,46 @@ + + + + + + + + + 动态操作 | BAC Document + + + + +

    动态操作

    删除动态

    https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数(multipart/form-data):

    参数名类型内容必要性备注
    dynamic_idnum动态id必要
    csrf_tokenstrcsrf必要
    csrfstrcsrf必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    500404:已经删除过该动态
    500406:动态不是自己的
    msgstr错误信息成功时为空文本
    messagestr错误信息msg
    dataobj数据本体

    data对象:

    字段类型内容备注
    _gt_num0作用尚不明确

    示例:

    删除动态dynamic_id=588320531406678918

    curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic' \
    +--data-urlencode 'dynamic_id=588320531406678918' \
    +--data-urlencode 'csrf_token=xxx' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "",
    +    "message": "",
    +    "data": {
    +        "_gt_": 0
    +    }
    +}
    +
    + + + diff --git a/docs/dynamic/all.html b/docs/dynamic/all.html new file mode 100644 index 0000000000..a16dc05e2e --- /dev/null +++ b/docs/dynamic/all.html @@ -0,0 +1,7131 @@ + + + + + + + + + 获取动态列表 | BAC Document + + + + +

    获取动态列表

    获取全部动态列表

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型必要性内容备注
    timezone_offsetstr非必要-480新版无
    typestr非必要分类新版无, all:全部(默认)
    video:视频投稿
    pgc:追番追剧
    article:专栏
    host_midnum非必要UP主UID仅新版, 如 293793435
    offsetnum非必要分页偏移量默认为空, 翻页时使用
    update_baselinestr非必要更新基线获取新动态时使用
    pagenum非必要页数无效参数
    platformstr非必要平台仅新版, 如 web
    featuresstr非必要功能开关?旧版 itemOpusStyle,listOnlyfans
    新版 itemOpusStyle,listOnlyfans,opusBigCover,onlyfansVote,decorationCard,onlyfansAssetsV2,forwardListHidden,ugcDelete
    web_locationstr非必要333.1365仅新版存在

    JSON回复:

    根:

    字段类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr
    ttlnum1
    dataobj信息本体

    data:

    字段类型内容备注
    has_morebool是否有更多数据
    itemsarray数据数组
    offsetstr偏移量等于items中最后一条记录的id
    获取下一页时使用
    update_baselinestr更新基线等于items中第一条记录的id
    update_numnum本次获取获取到了多少条新动态在更新基线以上的动态条数

    data.items[n]:

    字段类型内容备注
    basicobj
    id_strstr动态id
    modulesobj动态信息
    typestr动态类型动态类型
    visiblebool是否显示true:正常显示
    false:折叠动态
    origobj原动态信息仅动态类型为DYNAMIC_TYPE_FORWARD的情况下存在

    data.items[n].basic:

    字段类型内容备注
    comment_id_strstr动态类型
    comment_typenum动态类型
    like_iconobj见下
    rid_strstr动态类型

    data.items[n].basic.like_icon:

    字段类型内容备注
    action_urlstr空串
    end_urlstr空串
    idnum0
    start_urlstr空串

    data.items[n].modules:

    字段类型内容备注
    module_authorobjUP主信息
    module_dynamicobj动态内容信息
    module_moreobj动态右上角三点菜单
    module_statobj动态统计数据
    module_interactionobj热度评论
    module_foldobj动态折叠信息
    module_disputeobj争议小黄条
    module_tagobj置顶信息

    data.items[n].modules.module_author:

    字段类型内容备注
    avaterobj头像信息主要用于网页渲染, 若感兴趣可参考 图片格式化
    facestr头像 URL
    face_nftbool是否为NFT头像
    followingbool是否关注此UP主自己的动态为null
    jump_urlstr跳转链接
    labelstr名称前标签合集
    电视剧
    番剧
    midnumUP主UID
    剧集SeasonId
    namestrUP主名称
    剧集名称
    合集名称
    official_verifyobjUP主认证信息
    pendantobjUP主头像框
    pub_actionstr更新动作描述投稿了视频
    直播了
    投稿了文章
    更新了合集
    与他人联合创作
    发布了动态视频
    投稿了直播回放
    pub_location_textstr
    pub_timestr更新时间x分钟前
    x小时前
    昨天
    pub_tsnum更新时间戳UNIX 秒级时间戳
    typestr作者类型作者类型
    vipobjUP主大会员信息
    decorateobj装扮信息
    nft_infoobjNFT头像信息

    data.items[n].modules.module_author.official_verify:

    字段类型内容备注
    descstr认证说明
    typenum认证类型

    data.items[n].modules.module_author.pendant:

    字段类型内容备注
    expirenum过期时间此接口返回恒为0
    imagestr头像框图片url
    image_enhancestr头像框图片url
    image_enhance_framestr头像框图片逐帧序列url
    namestr头像框名称
    pidnum头像框id
    n_pidnum同 pid

    data.items[n].modules.module_author.vip:

    字段类型内容备注
    avatar_subscriptnum是否显示角标0:不显示
    1:显示
    avatar_subscript_urlstr空串
    due_datenum大会员过期时间戳UNIX 毫秒时间戳
    labelobj大会员标签
    nickname_colorstr名字显示颜色大会员:#FB7299
    statusnum大会员状态0:无
    1:有
    2:封禁?
    theme_typenum0
    typenum大会员类型0:无
    1:月大会员
    2:年度及以上大会员

    data.items[n].modules.module_author.vip.label:

    字段类型内容备注
    bg_colorstr会员标签背景颜色#FB7299
    bg_stylenum0 1
    border_colorstr
    img_label_uri_hansstr大会员牌子图片动态版 简体版
    img_label_uri_hans_staticstr大会员牌子图片静态版 简体版
    img_label_uri_hantstr大会员牌子图片动态版 繁体版
    img_label_uri_hant_staticstr大会员牌子图片静态版 繁体版
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    pathstr
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    text_colorstr用户名文字颜色
    use_img_labelbooltrue

    data.items[n].modules.module_author.decorate:

    字段类型内容备注
    card_urlstr动态卡片小图标图片URL
    fanobj粉丝装扮信息
    idnum装扮ID
    jump_urlstr跳转URL
    namestr装扮名称
    typenum1 2 3

    data.items[n].modules.module_author.decorate.fan:

    字段类型内容备注
    colorstr编号颜色
    color_formatobj颜色格式
    is_fanbool是否是粉丝装扮
    num_strstr装扮编号前缀NO.
    numbernum装扮编号

    data.items[n].modules.module_author.decorate.fan.color_format:

    字段类型内容备注
    colorsarray颜色# 前缀的 16 进制颜色代码
    end_pointstr端点0,100
    gradientsarray渐变内容 [0, 100]
    start_pointstr起点0,0

    data.items[n].modules.module_author.nft_info:

    字段类型内容备注
    region_iconstrNFT头像角标URL类型1:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/j8AeXAkEul.gif
    类型2:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/IOHoVs1ebP.gif
    region_typenumNFT头像角标类型1,2
    show_statusnum1

    data.items[n].modules.module_dynamic:

    字段类型内容备注
    additionalobj相关内容卡片信息
    descobj动态文字内容其他动态时为null
    majorobj动态主体对象转发动态时为null
    topicobj话题信息

    data.items[n].modules.module_dynamic.additional:

    字段类型内容备注
    commonobj一般类型ADDITIONAL_TYPE_COMMON类型独有
    typestr卡片类型相关内容卡片类型
    reserveobj预约信息ADDITIONAL_TYPE_RESERVE类型独有
    goodsobj商品内容ADDITIONAL_TYPE_GOODS类型独有
    voteobj投票信息ADDITIONAL_TYPE_VOTE类型独有
    ugcobj视频信息ADDITIONAL_TYPE_UGC类型独有

    data.items[n].modules.module_dynamic.additional.common:

    字段类型内容备注
    buttonobj按钮内容
    coverstr左侧封面图
    desc1str描述1
    desc2str描述2
    head_textstr卡片头文本
    id_strstr相关id
    jump_urlstr跳转URL
    stylenum1
    sub_typestr子类型game
    decoration
    ogv
    titlestr卡片标题

    data.items[n].modules.module_dynamic.additional.common.button:

    字段类型内容备注
    jump_styleobj跳转类型gamedecoration类型特有
    jump_urlstr跳转URL
    typenum1:gamedecoration类型
    2:ogv类型
    checkobjogv类型特有
    statusnum1
    uncheckobjogv类型特有

    data.items[n].modules.module_dynamic.additional.common.button.jump_style:

    字段类型内容备注
    icon_urlstr空串
    textstr按钮显示文案game:进入
    decoration:去看看

    data.items[n].modules.module_dynamic.additional.common.button.check:

    字段类型内容备注
    icon_urlstr按钮图片URL
    textstr按钮显示文案ogv:已追剧

    data.items[n].modules.module_dynamic.additional.common.button.uncheck:

    字段类型内容备注
    icon_urlstr按钮图片URL
    textstr按钮显示文案ogv:追剧

    data.items[n].modules.module_dynamic.additional.reserve:

    字段类型内容备注
    buttonobj按钮信息
    desc1obj预约时间
    desc2obj预约观看量
    jump_urlstr跳转URL
    reserve_totalnum预约人数
    ridnum
    statenum0
    stypenum1 2
    titlestr预约标题
    up_midnum预约发起人UID
    desc3obj预约有奖信息

    data.items[n].modules.module_dynamic.additional.reserve.button:

    字段类型内容备注
    checkobj已预约状态显示内容
    statusnum预约状态1:未预约,使用uncheck
    2:已预约,使用check
    typenum类型1:视频预约,使用jump_style
    2:直播预约,使用checkuncheck
    uncheckobj未预约状态显示内容
    jump_styleobj跳转按钮
    jump_urlstr跳转URL

    data.items[n].modules.module_dynamic.additional.reserve.button.check对象"

    字段类型内容备注
    icon_urlstr空串
    textstr按钮显示文案已预约

    data.items[n].modules.module_dynamic.additional.reserve.button.uncheck:

    字段类型内容备注
    icon_urlstr显示图标URL
    textstr按钮显示文案
    toaststr预约成功显示提示文案
    disablenum是否不可预约1:是

    data.items[n].modules.module_dynamic.additional.reserve.button.jump_style:

    字段类型内容备注
    icon_urlstr空串
    textstr按钮显示文案去观看

    data.items[n].modules.module_dynamic.additional.reserve.desc1:

    字段类型内容备注
    stylenum类型0:视频预约 11-05 20:00 直播 预计今天 17:05发布
    1:直播中
    textstr显示文案

    data.items[n].modules.module_dynamic.additional.reserve.desc2:

    字段类型内容备注
    stylenum0
    textstr显示文案2人预约
    743观看
    1.0万人看过
    2151人气
    visiblebool是否显示true:显示文案
    false:显示已结束

    data.items[n].modules.module_dynamic.additional.reserve.desc3:

    字段类型内容备注
    jump_urlstr开奖信息跳转URL
    stylenum1
    textstr奖品信息显示文案

    data.items[n].modules.module_dynamic.additional.goods:

    字段类型内容备注
    head_iconstr空串
    head_textstr卡片头显示文案
    itemsarray商品信息列表
    jump_urlstr空串

    data.items[n].modules.module_dynamic.additional.goods.items数组中的:

    字段类型内容备注
    briefstr商品副标题
    coverstr商品封面
    idstr商品ID
    jump_descstr跳转按钮显示文案
    jump_urlstr跳转URL
    namestr商品名称
    pricestr商品价格

    data.items[n].modules.module_dynamic.additional.vote:

    字段类型内容备注
    choice_cntnum1
    default_sharenum是否默认勾选同时分享至动态1:勾选
    descstr投票标题
    end_timenum剩余时间单位:秒
    join_numnum已参与人数
    statusnum1
    typenullnull
    uidnum发起人UID
    vote_idnum投票ID

    data.items[n].modules.module_dynamic.additional.ugc:

    字段类型内容备注
    coverstr封面
    desc_secondstr播放量与弹幕数
    durationstr视频长度
    head_textstr空串
    id_strstr视频AV号
    jump_urlstr视频跳转URL
    multi_linebooltrue
    titlestr视频标题

    data.items[n].modules.module_dynamic.desc:

    字段类型内容备注
    rich_text_nodesarray富文本节点列表富文本节点类型
    textstr动态的文字内容

    data.items[n].modules.module_dynamic.desc.rich_text_nodes[o]:

    字段类型内容备注
    orig_textstr原始文本
    textstr替换后的文本
    typestr节点类型富文本节点类型
    emojiobj表情信息
    jump_urlstr跳转URL
    ridstr关联id
    goodsobj商品信息
    icon_namestr图标名称taobao

    data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].emoji:

    字段类型内容备注
    icon_urlstr表情图片URL
    sizenum表情尺寸1 2
    textstr表情的文字代码
    typenum表情类型1 2 3

    data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].goods:

    字段类型内容备注
    jump_urlstr跳转URL
    typenum1

    data.items[n].modules.module_dynamic.major:

    字段类型内容备注
    typestr动态主体类型动态主体类型
    ugc_seasonobj合集信息MAJOR_TYPE_UGC_SEASON
    articleobj专栏类型MAJOR_TYPE_ARTICLE
    drawobj带图动态MAJOR_TYPE_DRAW
    archiveobj视频信息MAJOR_TYPE_ARCHIVE
    live_rcmdobj直播状态MAJOR_TYPE_LIVE_RCMD
    commonobj一般类型MAJOR_TYPE_COMMON
    pgcobj剧集信息MAJOR_TYPE_PGC
    coursesobj课程信息MAJOR_TYPE_COURSES
    musicobj音频信息MAJOR_TYPE_MUSIC
    opusobj图文动态MAJOR_TYPE_OPUS
    liveobj
    noneobj动态失效MAJOR_TYPE_NONE

    data.items[n].modules.module_dynamic.major.ugc_season:

    字段类型内容备注
    aidnum视频AV号
    badgeobj角标信息
    coverstr视频封面
    descstr视频简介
    disable_previewnum0
    duration_textstr时长
    jump_urlstr跳转URL
    statobj统计信息
    titlestr视频标题

    data.items[n].modules.module_dynamic.major.ugc_season.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.ugc_season.stat:

    字段类型内容备注
    danmakustr弹幕数
    playstr播放数

    data.items[n].modules.module_dynamic.major.article:

    字段类型内容备注
    coversarray封面图数组最多三张
    descstr文章摘要
    idnum文章CV号
    jump_urlstr文章跳转地址
    labelstr文章阅读量
    titlestr文章标题

    data.items[n].modules.module_dynamic.major.draw:

    字段类型内容备注
    idnum对应相簿id
    itemsarray图片信息列表

    data.items[n].modules.module_dynamic.major.draw.items[o]:

    字段类型内容备注
    heightnum图片高度
    sizenum图片大小单位KB
    srcstr图片URL
    tagsarray
    widthnum图片宽度

    data.items[n].modules.module_dynamic.major.archive:

    字段类型内容备注
    aidstr视频AV号
    badgeobj角标信息
    bvidstr视频BVID
    coverstr视频封面
    descstr视频简介
    disable_previewnum0
    duration_textstr视频长度
    jump_urlstr跳转URL
    statobj统计信息
    titlestr视频标题
    typenum1

    data.items[n].modules.module_dynamic.major.archive.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.archive.stat:

    字段类型内容备注
    danmakustr弹幕数
    playstr播放数

    data.items[n].modules.module_dynamic.major.live_rcmd:

    字段类型内容备注
    contentstr直播间内容JSON
    reserve_typenum0

    data.items[n].modules.module_dynamic.major.common:

    字段类型内容备注
    badgeobj角标信息
    biz_typenum0
    coverstr左侧图片封面
    descstr右侧描述信息
    idstr
    jump_urlstr跳转地址
    labelstr空串
    sketch_idstr
    stylenum1
    titlestr右侧标题

    data.items[n].modules.module_dynamic.major.common.badge:

    字段类型内容备注
    bg_colorstr空串
    colorstr空串
    textstr空串

    data.items[n].modules.module_dynamic.major.pgc:

    字段类型内容备注
    badgeobj角标信息
    coverstr视频封面
    epidnum分集EpId
    jump_urlstr跳转URL
    season_idnum剧集SeasonId
    statobj统计信息
    sub_typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    6:漫画
    7:综艺
    titlestr视频标题
    typenum2

    data.items[n].modules.module_dynamic.major.pgc.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.pgc.stat:

    字段类型内容备注
    danmakustr弹幕数
    playstr播放数

    data.items[n].modules.module_dynamic.major.courses:

    字段类型内容备注
    badgeobj角标信息
    coverstr封面图URL
    descstr更新状态描述
    idnum课程id
    jump_urlstr跳转URL
    sub_titlestr课程副标题
    titlestr课程标题

    data.items[n].modules.module_dynamic.major.courses.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.music:

    字段类型内容备注
    coverstr音频封面
    idnum音频AUID
    jump_urlstr跳转URL
    labelstr音频分类
    titlestr音频标题

    data.items[n].modules.module_dynamic.major.opus:

    字段类型内容备注
    fold_actionarray展开收起
    jump_urlstr跳转URL
    picsarray图片信息
    summaryobj动态内容
    titlestr动态标题没有标题时为null

    data.items[n].modules.module_dynamic.major.opus.summary:

    字段类型内容备注
    rich_text_nodesarray富文本节点列表desc对象中的rich_text_nodes数组结构一样
    textstr评论内容

    data.items[n].modules.module_dynamic.major.live:

    字段类型内容备注
    badgeobj角标信息
    coverstr直播封面
    desc_firststr直播主分区名称
    desc_secondstr观看人数
    idnum直播间id
    jump_urlstr直播间跳转URL
    live_statenum直播状态0:直播结束
    1:正在直播
    reserve_typenum0
    titlestr直播间标题

    data.items[n].modules.module_dynamic.major.live.badge:

    字段类型内容备注
    bg_colorstr背景颜色
    colorstr字体颜色
    textstr角标文案

    data.items[n].modules.module_dynamic.major.none:

    字段类型内容备注
    tipsstr动态失效显示文案deprecated?

    data.items[n].modules.module_dynamic.topic:

    字段类型内容备注
    idnum话题id
    jump_urlstr跳转URL
    namestr话题名称

    data.items[n].modules.module_more:

    字段类型内容备注
    three_point_itemsarray右上角三点菜单

    data.items[n].modules.module_more.three_point_items[o]:

    字段类型内容备注
    labelstr显示文本
    typestr类型参见 动态主体类型
    modalobj弹出框信息删除动态时弹出
    paramsobj参数置顶/取消置顶时使用

    data.items[n].modules.module_more.three_point_items[o].modal:

    字段类型内容备注
    cancelstr取消按钮我点错了
    confirmstr确认按钮删除
    contentstr提示内容确定要删除此条动态吗?
    titlestr标题删除动态

    data.items[n].modules.module_more.three_point_items[o].params:

    字段类型内容备注
    dynamic_idstr当前动态IDdeprecated?
    statusbool当前动态是否处于置顶状态deprecated?

    data.items[n].modules.module_stat:

    字段类型内容备注
    commentobj评论数据
    forwardobj转发数据
    likeobj点赞数据

    data.items[n].modules.module_stat.comment:

    字段类型内容备注
    countnum评论数
    forbiddenboolfalse
    hiddenbool是否隐藏直播类型动态会隐藏回复功能

    data.items[n].modules.module_stat.forward:

    字段类型内容备注
    countnum转发数
    forbiddenboolfalse

    data.items[n].modules.module_stat.like:

    字段类型内容备注
    countnum点赞数
    forbiddenboolfalse
    statusbool当前用户是否点赞

    data.items[n].modules.module_interaction:

    字段类型内容备注
    itemsarray信息列表

    data.items[n].modules.module_interaction.items数组中的:

    字段类型内容备注
    descobj点赞/评论信息
    typenum类型0:点赞信息
    1:评论信息

    data.items[n].modules.module_interaction.items[o].desc:

    字段类型内容备注
    rich_text_nodesarray富文本节点列表富文本节点类型
    textstr评论内容

    data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes数组中的:

    字段类型内容备注
    orig_textstr原始文本
    ridstr关联ID用户UID
    textstr替换后文本
    typestr富文本节点类型富文本节点类型
    emojiobj表情信息

    data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes[n].emoji:

    字段类型内容备注
    icon_urlstr表情图片URL
    sizenum表情尺寸1 2
    textstr表情的文字代码
    typenum表情类型1 2 3

    data.items[n].modules.module_fold:

    字段类型内容备注
    idsarray被折叠的动态id列表
    statementstr显示文案例:展开x条相关动态
    typenum1
    usersarray空数组

    data.items[n].modules.module_dispute:

    字段类型内容备注
    descstr
    jump_urlstr
    titlestr提醒文案例:视频内含有危险行为,请勿模仿

    data.items[n].modules.module_tag:

    字段类型内容备注
    textstr'置顶'置顶动态出现这个对象,否则没有

    示例:

    curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?type=all' \
    +-H 'Cookie: SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "has_more": true,
    +    "items": [
    +      {
    +        "basic": {
    +          "comment_id_str": "112981396619958",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "112981396619958"
    +        },
    +        "id_str": "966887968322093078",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i2.hdslb.com/bfs/face/b1c15dd8814d79e648008815517aa5ef50a2fb9c.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "3546730050096047"
    +            },
    +            "face": "https://i2.hdslb.com/bfs/face/b1c15dd8814d79e648008815517aa5ef50a2fb9c.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/3546730050096047/dynamic",
    +            "label": "",
    +            "mid": 3546730050096047,
    +            "name": "青岛LUCIFER",
    +            "official_verify": {
    +              "desc": "",
    +              "type": -1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "刚刚",
    +            "pub_ts": 1723959548,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 0,
    +              "avatar_subscript_url": "",
    +              "due_date": 0,
    +              "label": {
    +                "bg_color": "",
    +                "bg_style": 0,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +                "label_theme": "",
    +                "path": "",
    +                "text": "",
    +                "text_color": "",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "",
    +              "status": 0,
    +              "theme_type": 0,
    +              "type": 0
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "112981396619958",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1oeWNebEv2",
    +                "cover": "http://i2.hdslb.com/bfs/archive/0e3d26d90eb0642d90c7552e63ce690e2fe7f8ce.jpg",
    +                "desc": "给老板娘贴睫毛贴了半天,老登眼皮总动,夹睫毛疼了还骂我,不开心哈哈哈。",
    +                "disable_preview": 0,
    +                "duration_text": "00:16",
    +                "jump_url": "//www.bilibili.com/video/BV1oeWNebEv2/",
    +                "stat": {
    +                  "danmaku": "0",
    +                  "play": "0"
    +                },
    +                "title": "老板娘今天是可爱鬼呀!",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 0,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1756441068",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1756441068"
    +        },
    +        "id_str": "966873782060843027",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/726060100f7b80f3ab17889aa9fb8f380a53b9da.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "266765166"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/726060100f7b80f3ab17889aa9fb8f380a53b9da.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/266765166/dynamic",
    +            "label": "",
    +            "mid": 266765166,
    +            "name": "漫士沉思录",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "55分钟前",
    +            "pub_ts": 1723956245,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 0,
    +              "avatar_subscript_url": "",
    +              "due_date": 0,
    +              "label": {
    +                "bg_color": "",
    +                "bg_style": 0,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +                "label_theme": "",
    +                "path": "",
    +                "text": "",
    +                "text_color": "",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "",
    +              "status": 0,
    +              "theme_type": 0,
    +              "type": 0
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1756441068",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1d4421Z7nW",
    +                "cover": "http://i1.hdslb.com/bfs/archive/df067c178714da9b511f10bde11e1bc75ea676d9.jpg",
    +                "desc": "使用3b1b开发的manim引擎制作",
    +                "disable_preview": 0,
    +                "duration_text": "14:25",
    +                "jump_url": "//www.bilibili.com/video/BV1d4421Z7nW/",
    +                "stat": {
    +                  "danmaku": "217",
    +                  "play": "1.4万"
    +                },
    +                "title": "【漫士科普】如何最简单且本质地理解欧拉公式?",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 142,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 6,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 1959,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325833790",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325833790"
    +        },
    +        "id_str": "966831498138222598",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "233114659"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +              "fan": {
    +                "color": "#903AC2",
    +                "color_format": {
    +                  "colors": [
    +                    "#903AC2FF",
    +                    "#903AC2FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "000001",
    +                "number": 1
    +              },
    +              "id": 1706163888001,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1",
    +              "name": "龙腾啾跃-动态卡片粉丝",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/233114659/dynamic",
    +            "label": "",
    +            "mid": 233114659,
    +            "name": "碧蓝航线",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +              "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +              "n_pid": 1987,
    +              "name": "碧蓝航线2020",
    +              "pid": 1987
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "3小时前",
    +            "pub_ts": 1723946400,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1729526400000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "common": {
    +                "button": {
    +                  "jump_style": {
    +                    "icon_url": "",
    +                    "text": "进入"
    +                  },
    +                  "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005",
    +                  "type": 1
    +                },
    +                "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +                "desc1": "养成",
    +                "desc2": "指挥官,欢迎回港",
    +                "head_text": "相关游戏",
    +                "id_str": "97",
    +                "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005",
    +                "style": 1,
    +                "sub_type": "game",
    +                "title": "碧蓝航线"
    +              },
    +              "type": "ADDITIONAL_TYPE_COMMON"
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF",
    +                  "orig_text": "#碧蓝航线#",
    +                  "text": "#碧蓝航线#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF%E6%BC%AB%E5%B1%95",
    +                  "orig_text": "#碧蓝航线漫展#",
    +                  "text": "#碧蓝航线漫展#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=2024%E6%B8%AF%E5%8C%BA%E7%9B%9B%E5%A4%8F%E6%B8%85%E5%87%89%E8%8A%82",
    +                  "orig_text": "#2024港区盛夏清凉节#",
    +                  "text": "#2024港区盛夏清凉节#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \n\n城市街巷,专属惊喜,\n绘就绚丽夏日!\n和少女们一同记录这场特别邂逅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \n\n城市街巷,专属惊喜,\n绘就绚丽夏日!\n和少女们一同记录这场特别邂逅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "#碧蓝航线# #碧蓝航线漫展# #2024港区盛夏清凉节#\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \n\n城市街巷,专属惊喜,\n绘就绚丽夏日!\n和少女们一同记录这场特别邂逅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325833790,
    +                "items": [
    +                  {
    +                    "height": 4000,
    +                    "size": 16103.947,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/31b32e6dcf2f1a6328552f0fa666302d233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 3905,
    +                    "size": 16620.71,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/e507c60207f486824708a5850d07d1bb233114659.jpg",
    +                    "tags": [],
    +                    "width": 5858
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 16195.393,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/7a7ef9513bb32edc3de887d787a4df43233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4672,
    +                    "size": 11758.82,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/a21461b944e10306e68672df3e92c1b9233114659.jpg",
    +                    "tags": [],
    +                    "width": 7008
    +                  },
    +                  {
    +                    "height": 4672,
    +                    "size": 3962.4902,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/b2c4baa47b4999cabb9c8c338c2da36c233114659.jpg",
    +                    "tags": [],
    +                    "width": 7008
    +                  },
    +                  {
    +                    "height": 4672,
    +                    "size": 11276.51,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/8cf06e142fce875d2c3b83961abbc668233114659.jpg",
    +                    "tags": [],
    +                    "width": 7008
    +                  },
    +                  {
    +                    "height": 3735,
    +                    "size": 13969.533,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/c56cd277f281ba8cc4a395dbe5d9fa54233114659.jpg",
    +                    "tags": [],
    +                    "width": 5603
    +                  },
    +                  {
    +                    "height": 3106,
    +                    "size": 12942.339,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/9049a5c39ebafdd1cb488b26da4f99da233114659.jpg",
    +                    "tags": [],
    +                    "width": 4659
    +                  },
    +                  {
    +                    "height": 3802,
    +                    "size": 18643.953,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/564e469ba092d2381b23547da37ca3c0233114659.jpg",
    +                    "tags": [],
    +                    "width": 5703
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 151,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 31,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 2827,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "37231101",
    +          "comment_type": 12,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "37231101"
    +        },
    +        "id_str": "966827503780888593",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "407045223"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 28,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=407045223\u0026native.theme=1\u0026navhide=1",
    +              "name": "2233娘",
    +              "type": 1
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/407045223/dynamic",
    +            "label": "",
    +            "mid": 407045223,
    +            "name": "二次元的中科院物理所",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了文章",
    +            "pub_location_text": "",
    +            "pub_time": "3小时前",
    +            "pub_ts": 1723945470,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1745769600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "article": {
    +                "covers": [
    +                  "https://i0.hdslb.com/bfs/article/f59f635a3784c49eb174da7d589c4e75407045223.jpg"
    +                ],
    +                "desc": "西游记中,孙悟空为了保护师傅,在地上画了一个圈,由此便可限制住妖怪。今天小编带大家布置法术场地,只需在上面画出图案,便可控制水滴的行动!实验器材火柴、蜡烛、空易拉罐、所标杯、细竹签实验步骤安全提示:本实验有明火,请小朋友在家长的陪同下完成,或在空旷的地方进行,避免着火,注意安全。第一步:首先布置施法场地,通过蜡烛将易拉罐底部附着满炭黑。注意此步骤中应保持易拉罐内含一定水分,否则会产生烫伤等风险!第二步:向施法场地滴入水滴,观察场地效果。可以看到水滴在场地内不收约束,自由滑行第三步:当用细竹签等在场地中画出",
    +                "id": 37231101,
    +                "jump_url": "//www.bilibili.com/read/cv37231101/",
    +                "label": "12万阅读",
    +                "title": "带你在家里学会孙悟空的“画地为牢” 丨正经玩"
    +              },
    +              "type": "MAJOR_TYPE_ARTICLE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 9,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 2,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 583,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_ARTICLE",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1306462278",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1306462278"
    +        },
    +        "id_str": "966792134707380227",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_animation": {
    +                        "webp_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 4
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "686127"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/686127/dynamic",
    +            "label": "",
    +            "mid": 686127,
    +            "name": "籽岷",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 2066,
    +              "name": "百年大会员",
    +              "pid": 2066
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "6小时前",
    +            "pub_ts": 1723937235,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 4845196800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +                "label_theme": "hundred_annual_vip",
    +                "path": "",
    +                "text": "百年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1306462278",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV14M4m1175k",
    +                "cover": "http://i1.hdslb.com/bfs/archive/7f8060fe1669b1a0a980844bb90e8150a859499c.jpg",
    +                "desc": "https://www.curseforge.com/minecraft/mc-mods/desert-behemoths-sandworms/",
    +                "disable_preview": 0,
    +                "duration_text": "04:24",
    +                "jump_url": "//www.bilibili.com/video/BV14M4m1175k/",
    +                "stat": {
    +                  "danmaku": "297",
    +                  "play": "10.1万"
    +                },
    +                "title": "我的世界 巨大沙虫",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "bili_49990770610:",
    +                      "rid": "3546583341730698",
    +                      "text": "bili_49990770610:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "emoji": {
    +                        "icon_url": "https://i0.hdslb.com/bfs/emote/1597302b98827463f5b75c7cac1f29ea6ce572c4.png",
    +                        "size": 1,
    +                        "text": "[给心心]",
    +                        "type": 1
    +                      },
    +                      "orig_text": "[给心心]",
    +                      "text": "[给心心]",
    +                      "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                    }
    +                  ],
    +                  "text": "[给心心]"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 248,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 10,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 10276,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325813964",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325813964"
    +        },
    +        "id_str": "966695334756483089",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 1,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 1,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "293793435"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/item/c0cf2235089ed314d92f30efa855c9b5611fa2cd.png",
    +              "fan": {
    +                "color": "#07b6d5",
    +                "color_format": {
    +                  "colors": [
    +                    "#07b6d5FF",
    +                    "#07b6d5FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "005638",
    +                "number": 5638
    +              },
    +              "id": 2513,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=2513\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=293793435\u0026native.theme=1\u0026navhide=1",
    +              "name": "初音未来粉丝专属",
    +              "type": 3
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/293793435/dynamic",
    +            "label": "",
    +            "mid": 293793435,
    +            "name": "社会易姐QwQ",
    +            "official_verify": {
    +              "desc": "",
    +              "type": -1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
    +              "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png",
    +              "n_pid": 2511,
    +              "name": "初音未来13周年",
    +              "pid": 2511
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "12小时前",
    +            "pub_ts": 1723914697,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1739116800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "非常好冰箱贴,爱来自硬先生😋😋",
    +                  "text": "非常好冰箱贴,爱来自硬先生😋😋",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@硬核拆解 ",
    +                  "rid": "427494870",
    +                  "text": "@硬核拆解 ",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                }
    +              ],
    +              "text": "非常好冰箱贴,爱来自硬先生😋😋@硬核拆解 "
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325813964,
    +                "items": [
    +                  {
    +                    "height": 1277,
    +                    "size": 98.36,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/60d92e9e0d89a5394a2da69aba6f9710293793435.jpg",
    +                    "tags": [],
    +                    "width": 958
    +                  },
    +                  {
    +                    "height": 1080,
    +                    "size": 905.82,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/0f9bff1938d824ce206a569d539455df293793435.jpg",
    +                    "tags": [],
    +                    "width": 1440
    +                  },
    +                  {
    +                    "height": 1080,
    +                    "size": 693.59,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/ab3332061b793361ec08901ace1782db293793435.jpg",
    +                    "tags": [],
    +                    "width": 1440
    +                  },
    +                  {
    +                    "height": 1080,
    +                    "size": 988.15,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/8e62512db6d04b381dae3814adb95d5e293793435.jpg",
    +                    "tags": [],
    +                    "width": 1440
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 0,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 11,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966692349750018048",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966692349750018048"
    +        },
    +        "id_str": "966692349750018048",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "36081646"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/item/684f6dc32decd32fe9db901b81b83b9a1fe39574.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 49922,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=49922\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=36081646\u0026native.theme=1\u0026navhide=1",
    +              "name": "古色花香洛天依",
    +              "type": 1
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/36081646/dynamic",
    +            "label": "",
    +            "mid": 36081646,
    +            "name": "洛天依",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 1720437918001,
    +              "name": "洛天依心律共鸣头像框",
    +              "pid": -1843967695
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "12小时前",
    +            "pub_ts": 1723914002,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1764777600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "恭喜",
    +                  "text": "恭喜",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@从一到无穷大Infinity",
    +                  "rid": "697565874",
    +                  "text": "@从一到无穷大Infinity",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@qwq啊啊啊啊啊噜",
    +                  "rid": "189799722",
    +                  "text": "@qwq啊啊啊啊啊噜",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@有时名字不能取太长",
    +                  "rid": "3546388151405126",
    +                  "text": "@有时名字不能取太长",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "等5位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "text": "等5位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "恭喜@从一到无穷大Infinity@qwq啊啊啊啊啊噜@有时名字不能取太长等5位同学中奖,已私信通知,详情请点击抽奖查看。"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "明ちゃん王:",
    +                      "rid": "1280664625",
    +                      "text": "明ちゃん王:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "哇,非常不错呢,跟天依挺搭配的",
    +                      "text": "哇,非常不错呢,跟天依挺搭配的",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    },
    +                    {
    +                      "emoji": {
    +                        "icon_url": "https://i0.hdslb.com/bfs/emote/63c9d1a31c0da745b61cdb35e0ecb28635675db2.png",
    +                        "size": 1,
    +                        "text": "[星星眼]",
    +                        "type": 1
    +                      },
    +                      "orig_text": "[星星眼]",
    +                      "text": "[星星眼]",
    +                      "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                    }
    +                  ],
    +                  "text": "哇,非常不错呢,跟天依挺搭配的[星星眼]"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 88,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 12,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 3088,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "939874290505875465",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.375,
    +                  "width": 1.375
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 3,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "mid": "36081646"
    +              },
    +              "decorate": {
    +                "card_url": "https://i0.hdslb.com/bfs/garb/item/684f6dc32decd32fe9db901b81b83b9a1fe39574.png",
    +                "fan": {
    +                  "color": "",
    +                  "color_format": null,
    +                  "is_fan": false,
    +                  "num_prefix": "",
    +                  "num_str": "",
    +                  "number": 0
    +                },
    +                "id": 49922,
    +                "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=49922\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=36081646\u0026native.theme=1\u0026navhide=1",
    +                "name": "古色花香洛天依",
    +                "type": 1
    +              },
    +              "face": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg",
    +              "face_nft": false,
    +              "following": true,
    +              "jump_url": "//space.bilibili.com/36081646/dynamic",
    +              "label": "",
    +              "mid": 36081646,
    +              "name": "洛天依",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 0
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +                "image_enhance": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png",
    +                "image_enhance_frame": "",
    +                "n_pid": 1720437918001,
    +                "name": "洛天依心律共鸣头像框",
    +                "pid": -1843967695
    +              },
    +              "pub_action": "",
    +              "pub_time": "",
    +              "pub_ts": 1717669936,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 1,
    +                "avatar_subscript_url": "",
    +                "due_date": 1764777600000,
    +                "label": {
    +                  "bg_color": "#FB7299",
    +                  "bg_style": 1,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                  "label_theme": "annual_vip",
    +                  "path": "",
    +                  "text": "年度大会员",
    +                  "text_color": "#FFFFFF",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "#FB7299",
    +                "status": 1,
    +                "theme_type": 0,
    +                "type": 2
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": {
    +                "goods": {
    +                  "head_icon": "",
    +                  "head_text": "UP主的推荐",
    +                  "items": [
    +                    {
    +                      "brief": "",
    +                      "cover": "https://i0.hdslb.com/bfs/mall/mall/ef/9d/2cb00b3649bcb232f62b3169be95407d.png",
    +                      "id": "901140704120020992",
    +                      "jump_desc": "去看看",
    +                      "jump_url": "https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1\u0026page=detailuniversal_detail\u0026saleType=0\u0026itemsId=10406556\u0026loadingShow=1\u0026noTitleBar=1\u0026msource=cps_Mdynamic_36081646\u0026from=\u0026contentId=\u0026track_id=__BGMT__",
    +                      "name": "天羽川 洛天依 短袖水手服纯色裙长短袜套装",
    +                      "price": "¥49"
    +                    }
    +                  ],
    +                  "jump_url": ""
    +                },
    +                "type": "ADDITIONAL_TYPE_GOODS"
    +              },
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "orig_text": "​互动抽奖",
    +                    "rid": "301330",
    +                    "text": "​互动抽奖",
    +                    "type": "RICH_TEXT_NODE_TYPE_LOTTERY"
    +                  },
    +                  {
    +                    "orig_text": "洛天依X",
    +                    "text": "洛天依X",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "orig_text": "@天羽川JK ",
    +                    "rid": "394187581",
    +                    "text": "@天羽川JK ",
    +                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                  },
    +                  {
    +                    "orig_text": "联名水手服\u0026长短袜套装 新品预售即将开启啦!\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~",
    +                    "text": "联名水手服\u0026长短袜套装 新品预售即将开启啦!\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "emoji": {
    +                      "icon_url": "http://i0.hdslb.com/bfs/emote/9826fb4f77944387767a37552143fbec40159fa5.png",
    +                      "size": 2,
    +                      "text": "[洛天依_礼物]",
    +                      "type": 3
    +                    },
    +                    "orig_text": "[洛天依_礼物]",
    +                    "text": "[洛天依_礼物]",
    +                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                  },
    +                  {
    +                    "orig_text": "\n\n❀联名服饰\n-洛天依联名款水手服\n-洛天依还原款长短袜\n\n❀预售时间\n6月8日20:00 起\n\n日常\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?",
    +                    "text": "\n\n❀联名服饰\n-洛天依联名款水手服\n-洛天依还原款长短袜\n\n❀预售时间\n6月8日20:00 起\n\n日常\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "emoji": {
    +                      "icon_url": "https://i0.hdslb.com/bfs/emote/8034b3cb55370d19b1683eb38e7747c5c6c5dba6.png",
    +                      "size": 2,
    +                      "text": "[洛天依蝶变_星星眼]",
    +                      "type": 3
    +                    },
    +                    "orig_text": "[洛天依蝶变_星星眼]",
    +                    "text": "[洛天依蝶变_星星眼]",
    +                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                  },
    +                  {
    +                    "orig_text": "\n",
    +                    "text": "\n",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "​互动抽奖洛天依X@天羽川JK 联名水手服\u0026长短袜套装 新品预售即将开启啦!\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~[洛天依_礼物]\n\n❀联名服饰\n-洛天依联名款水手服\n-洛天依还原款长短袜\n\n❀预售时间\n6月8日20:00 起\n\n日常\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?[洛天依蝶变_星星眼]\n"
    +              },
    +              "major": {
    +                "draw": {
    +                  "id": 318324614,
    +                  "items": [
    +                    {
    +                      "height": 1280,
    +                      "size": 662.59,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/1f23b61786eadb8c3e3f4c137730715036081646.jpg",
    +                      "tags": [],
    +                      "width": 904
    +                    },
    +                    {
    +                      "height": 1280,
    +                      "size": 614.83,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/7d679216308bb7c65aeba38b4eafdd8936081646.jpg",
    +                      "tags": [],
    +                      "width": 904
    +                    }
    +                  ]
    +                },
    +                "type": "MAJOR_TYPE_DRAW"
    +              },
    +              "topic": {
    +                "id": 1156147,
    +                "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1156147\u0026topic_name=%E5%A4%A9%E4%BE%9D%E7%9A%84%E5%91%A8%E8%BE%B9",
    +                "name": "天依的周边"
    +              }
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_DRAW",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325807840",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325807840"
    +        },
    +        "id_str": "966677390370537527",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "485703766"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/485703766/dynamic",
    +            "label": "",
    +            "mid": 485703766,
    +            "name": "英伟达GeForce",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "13小时前",
    +            "pub_ts": 1723910520,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 2000563200000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "直面天命,还有 2 天!\nRTX. ON!\n\n投稿来自于:Bilibili",
    +                  "text": "直面天命,还有 2 天!\nRTX. ON!\n\n投稿来自于:Bilibili",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@祗殁",
    +                  "rid": "12299496",
    +                  "text": "@祗殁",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                }
    +              ],
    +              "text": "直面天命,还有 2 天!\nRTX. ON!\n\n投稿来自于:Bilibili@祗殁"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325807840,
    +                "items": [
    +                  {
    +                    "height": 1073,
    +                    "size": 66.29785,
    +                    "src": "https://i0.hdslb.com/bfs/new_dyn/b47b271135c7c496923d76c6b794e596485703766.png",
    +                    "tags": [],
    +                    "width": 1213
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 105,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 7,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 872,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1606450518",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1606450518"
    +        },
    +        "id_str": "966647978674618373",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/bb23fb77a033759a145f8eda7b5e3a15386f637c.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "1503187"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/archive/e495de36cab75f9a610fb6f2d0ba29a87b794cc6.png",
    +              "fan": {
    +                "color": "#BFC8D2",
    +                "color_format": {
    +                  "colors": [
    +                    "#B8C7D0FF",
    +                    "#A2A7B0FF"
    +                  ],
    +                  "end_point": "100,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "002484",
    +                "number": 2484
    +              },
    +              "id": 66898,
    +              "jump_url": "https://www.bilibili.com/h5/mall/digital-card/home?act_id=108\u0026from=post\u0026f_source=garb\u0026-Abrowser=live\u0026hybrid_set_header=2\u0026navhide=1\u0026anchor_task=1",
    +              "name": "BLG 信念干杯勋章",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/bb23fb77a033759a145f8eda7b5e3a15386f637c.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/1503187/dynamic",
    +            "label": "",
    +            "mid": 1503187,
    +            "name": "和谐号舰长",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 22:07",
    +            "pub_ts": 1723903670,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1732204800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1606450518",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV152421Z7bV",
    +                "cover": "http://i1.hdslb.com/bfs/archive/e87786447779ff1a4fb2d941a3321f9750a65300.jpg",
    +                "desc": "多来点这样的更新,太快乐了",
    +                "disable_preview": 0,
    +                "duration_text": "03:39",
    +                "jump_url": "//www.bilibili.com/video/BV152421Z7bV/",
    +                "stat": {
    +                  "danmaku": "406",
    +                  "play": "6.6万"
    +                },
    +                "title": "官方:矿车怎么就不能是飞船?",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "吉吉国民开水儿:",
    +                      "rid": "43514654",
    +                      "text": "吉吉国民开水儿:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "致敬传奇宰人航空大师张泰玩",
    +                      "text": "致敬传奇宰人航空大师张泰玩",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    }
    +                  ],
    +                  "text": "致敬传奇宰人航空大师张泰玩"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 218,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 15,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 5694,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1506427569",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1506427569"
    +        },
    +        "id_str": "966629209415876628",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "407045223"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 28,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=407045223\u0026native.theme=1\u0026navhide=1",
    +              "name": "2233娘",
    +              "type": 1
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/407045223/dynamic",
    +            "label": "",
    +            "mid": 407045223,
    +            "name": "二次元的中科院物理所",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 20:55",
    +            "pub_ts": 1723899301,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1745769600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~",
    +                  "text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~"
    +            },
    +            "major": {
    +              "archive": {
    +                "aid": "1506427569",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1uS42197b5",
    +                "cover": "http://i1.hdslb.com/bfs/archive/e13db3349cdc91a00041be9730bbbe42c3e8df55.jpg",
    +                "desc": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~",
    +                "disable_preview": 0,
    +                "duration_text": "44:45",
    +                "jump_url": "//www.bilibili.com/video/BV1uS42197b5/",
    +                "stat": {
    +                  "danmaku": "1",
    +                  "play": "3364"
    +                },
    +                "title": "光照下多姿多彩的世界——光化学和我们的生活【中国科学院科学公开课S06E15】",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": {
    +              "id": 1073121,
    +              "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1073121\u0026topic_name=%E4%B8%AD%E5%9B%BD%E7%A7%91%E5%AD%A6%E9%99%A2%E7%A7%91%E5%AD%A6%E5%85%AC%E5%BC%80%E8%AF%BE",
    +              "name": "中国科学院科学公开课"
    +            }
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 3,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 2,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 741,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325765582",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325765582"
    +        },
    +        "id_str": "966583356402696224",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "946974"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/946974/dynamic",
    +            "label": "",
    +            "mid": 946974,
    +            "name": "影视飓风",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 17:57",
    +            "pub_ts": 1723888625,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1975248000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "reserve": {
    +                "button": {
    +                  "check": {
    +                    "icon_url": "",
    +                    "text": "已预约"
    +                  },
    +                  "status": 1,
    +                  "type": 2,
    +                  "uncheck": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/album/1d6af68e116985828780dd843ef435ccd6307e63.png",
    +                    "text": "预约"
    +                  }
    +                },
    +                "desc1": {
    +                  "style": 0,
    +                  "text": "今天 20:00 直播"
    +                },
    +                "desc2": {
    +                  "style": 0,
    +                  "text": "4153人预约",
    +                  "visible": true
    +                },
    +                "jump_url": "",
    +                "reserve_total": 4153,
    +                "rid": 4003487,
    +                "state": 0,
    +                "stype": 2,
    +                "title": "直播预约:飓风商店夏促来了!",
    +                "up_mid": 946974
    +              },
    +              "type": "ADDITIONAL_TYPE_RESERVE"
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "飓风商店夏季活动来啦!\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\n\n👇新品看这边\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\n👇福利看这边\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\n\n总之,记得预约!",
    +                  "text": "飓风商店夏季活动来啦!\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\n\n👇新品看这边\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\n👇福利看这边\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\n\n总之,记得预约!",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "飓风商店夏季活动来啦!\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\n\n👇新品看这边\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\n👇福利看这边\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\n\n总之,记得预约!"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325765582,
    +                "items": [
    +                  {
    +                    "height": 9829,
    +                    "size": 5198.785,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/9d690134c84c03f6bacf83cf4d21bd73946974.jpg",
    +                    "tags": [],
    +                    "width": 2251
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 3104,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 154,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 4703,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325753910",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325753910"
    +        },
    +        "id_str": "966552037496979456",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_animation": {
    +                        "webp_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 4
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "686127"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/686127/dynamic",
    +            "label": "",
    +            "mid": 686127,
    +            "name": "籽岷",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 2066,
    +              "name": "百年大会员",
    +              "pid": 2066
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 15:55",
    +            "pub_ts": 1723881333,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 4845196800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +                "label_theme": "hundred_annual_vip",
    +                "path": "",
    +                "text": "百年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "type": "ADDITIONAL_TYPE_UPOWER_LOTTERY",
    +              "upower_lottery": {
    +                "button": {
    +                  "jump_style": {
    +                    "icon_url": "",
    +                    "text": "6元充电"
    +                  },
    +                  "jump_url": "https://www.bilibili.com/h5/upower/index?mid=686127\u0026default_level=10\u0026levels=10\u0026navhide=1\u0026lotteryId=313280\u0026businessId=966552037496979456\u0026prePage=lotteryCard",
    +                  "type": 1
    +                },
    +                "desc": {
    +                  "jump_url": "https://www.bilibili.com/h5/lottery/result?business_id=966552037496979456\u0026business_type=12",
    +                  "style": 1,
    +                  "text": "【籽岷定制手偶】*10份"
    +                },
    +                "hint": {
    +                  "style": 0,
    +                  "text": "加入当前UP主的「6元档包月充电」即可参与"
    +                },
    +                "jump_url": "https://www.bilibili.com/h5/lottery/result?business_id=966552037496979456\u0026business_type=12",
    +                "rid": 313280,
    +                "state": 0,
    +                "title": "石粒专属抽奖",
    +                "up_mid": 686127,
    +                "upower_action_state": 2,
    +                "upower_level": 10
    +              }
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "emoji": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/garb/ebeae1235fa9397e6e5598ce1e5e2955bb345a8b.png",
    +                    "size": 2,
    +                    "text": "[UPOWER_686127_闪亮登场]",
    +                    "type": 11
    +                  },
    +                  "orig_text": "[UPOWER_686127_闪亮登场]",
    +                  "text": "[UPOWER_686127_闪亮登场]",
    +                  "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                },
    +                {
    +                  "orig_text": "今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\n感谢一直为我包月充电的观众们~\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~",
    +                  "text": "今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\n感谢一直为我包月充电的观众们~\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "[UPOWER_686127_闪亮登场]今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\n感谢一直为我包月充电的观众们~\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325753910,
    +                "items": [
    +                  {
    +                    "height": 800,
    +                    "size": 596.8096,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/1b03b7888b105765d985f3093e5d6e4a686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  },
    +                  {
    +                    "height": 800,
    +                    "size": 393.75098,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/b69ee39531bf8864471ec9fbc7de4402686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  },
    +                  {
    +                    "height": 800,
    +                    "size": 364.8711,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/0c3fb5268abe60023b0053902bccde66686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  },
    +                  {
    +                    "height": 800,
    +                    "size": 198.65234,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/693a40f83d2ac6a4952c9541365e1265686127.png",
    +                    "tags": [],
    +                    "width": 800
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": {
    +              "id": 1006239,
    +              "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1006239\u0026topic_name=%E7%B1%BD%E5%B2%B7%E5%93%81%E9%89%B4%E5%9B%A2",
    +              "name": "籽岷品鉴团"
    +            }
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 28,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 2,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 2686,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1456450441",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1456450441"
    +        },
    +        "id_str": "966513421411418114",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/94183796acd85f2e80f3dca740bc1c3d5cae6410.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 1,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "3493131246897478"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/94183796acd85f2e80f3dca740bc1c3d5cae6410.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/3493131246897478/dynamic",
    +            "label": "",
    +            "mid": 3493131246897478,
    +            "name": "电解碳酸钠",
    +            "official_verify": {
    +              "desc": "",
    +              "type": -1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 13:25",
    +            "pub_ts": 1723872342,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1744732800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "给脚专用的“按键” 我觉得他不应该这么贵",
    +                  "text": "给脚专用的“按键” 我觉得他不应该这么贵",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "给脚专用的“按键” 我觉得他不应该这么贵"
    +            },
    +            "major": {
    +              "archive": {
    +                "aid": "1456450441",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1Yi421a7FC",
    +                "cover": "http://i1.hdslb.com/bfs/archive/b56700e0a1d28ecff2ff135a7cc51e9b09cace79.jpg",
    +                "desc": "用到的配件:\n·带有热插拔轴体功能的任何全新\u0026二手键盘 只要功能正常即可\n·追求极致性价比的 可以直接买剪线键盘进行改造\n·TFS-1脚踏脚踩开关(我买的3.2一个)\n要注意这些脚踏开关有可能是3线 分为常闭和常开\n对于这个型号的开关 我接的是红线+白线 为踩下触发\n·焊油(推荐针管式单手操作)",
    +                "disable_preview": 0,
    +                "duration_text": "06:01",
    +                "jump_url": "//www.bilibili.com/video/BV1Yi421a7FC/",
    +                "stat": {
    +                  "danmaku": "149",
    +                  "play": "2.7万"
    +                },
    +                "title": "商家别看!脚踩键盘DIY超值方案?市场售价凭啥那么贵!",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 161,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 17,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 2699,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966495069003579398",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966495069003579398"
    +        },
    +        "id_str": "966495069003579398",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "946974"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/946974/dynamic",
    +            "label": "",
    +            "mid": 946974,
    +            "name": "影视飓风",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 12:14",
    +            "pub_ts": 1723868069,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1975248000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~",
    +                  "text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 101,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 7,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 5247,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "966197633939931139",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.35,
    +                  "width": 1.35
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.675,
    +                          "axis_y": 0.675,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1,
    +                          "width": 1
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.8000000000000002,
    +                          "axis_y": 0.8000000000000002,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 3,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "mid": "946974"
    +              },
    +              "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg",
    +              "face_nft": false,
    +              "following": true,
    +              "jump_url": "//space.bilibili.com/946974/dynamic",
    +              "label": "",
    +              "mid": 946974,
    +              "name": "影视飓风",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 0
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "",
    +                "image_enhance": "",
    +                "image_enhance_frame": "",
    +                "n_pid": 0,
    +                "name": "",
    +                "pid": 0
    +              },
    +              "pub_action": "投稿了视频",
    +              "pub_time": "",
    +              "pub_ts": 1723798817,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 1,
    +                "avatar_subscript_url": "",
    +                "due_date": 1975248000000,
    +                "label": {
    +                  "bg_color": "#FB7299",
    +                  "bg_style": 1,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +                  "label_theme": "ten_annual_vip",
    +                  "path": "",
    +                  "text": "十年大会员",
    +                  "text_color": "#FFFFFF",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "#FB7299",
    +                "status": 1,
    +                "theme_type": 0,
    +                "type": 2
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": null,
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "orig_text": "挺久没有更新的看懂电影系列!",
    +                    "text": "挺久没有更新的看懂电影系列!",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "挺久没有更新的看懂电影系列!"
    +              },
    +              "major": {
    +                "archive": {
    +                  "aid": "1506437840",
    +                  "badge": {
    +                    "bg_color": "#FB7299",
    +                    "color": "#FFFFFF",
    +                    "icon_url": null,
    +                    "text": "投稿视频"
    +                  },
    +                  "bvid": "BV13S42197ja",
    +                  "cover": "http://i1.hdslb.com/bfs/archive/50d4705b2d804a76f3c19af269dd7804479aa94e.jpg",
    +                  "desc": "国内外总共有3000多个大大小小的电影节。那么,短片可以参加电影节吗?什么时候投递获奖概率才大一些?这次我们想和你分享一些投递和参加电影节的门道。我们还整理了一份有关电影节的科普文档,可以来我们的官网看看:https://filmfestival.ysjf.com/。\n如果你喜欢这期视频,请多多支持我们,并将视频分享给其他朋友一起看看!",
    +                  "disable_preview": 0,
    +                  "duration_text": "10:55",
    +                  "jump_url": "//www.bilibili.com/video/BV13S42197ja/",
    +                  "stat": {
    +                    "danmaku": "2067",
    +                    "play": "64.1万"
    +                  },
    +                  "title": "全世界3000多个电影节,都在办些啥?",
    +                  "type": 1
    +                },
    +                "type": "MAJOR_TYPE_ARCHIVE"
    +              },
    +              "topic": null
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_AV",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "37185041",
    +          "comment_type": 12,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "37185041"
    +        },
    +        "id_str": "966484129969340422",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "407045223"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
    +              "fan": {
    +                "color": "",
    +                "color_format": null,
    +                "is_fan": false,
    +                "num_prefix": "",
    +                "num_str": "",
    +                "number": 0
    +              },
    +              "id": 28,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=407045223\u0026native.theme=1\u0026navhide=1",
    +              "name": "2233娘",
    +              "type": 1
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/407045223/dynamic",
    +            "label": "",
    +            "mid": 407045223,
    +            "name": "二次元的中科院物理所",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "投稿了文章",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 11:32",
    +            "pub_ts": 1723865522,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1745769600000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "article": {
    +                "covers": [
    +                  "https://i0.hdslb.com/bfs/article/708ab38ac38df8fe7851a63c0258fa64407045223.jpg"
    +                ],
    +                "desc": "经历过密码解锁和手势解锁后 真感慨指纹解锁是天才的创造 可惜遇到湿手油手经常失效 甚至擦干了还是这样 这是为什么呢问答导航Q1 鸡蛋在母鸡体内有气室吗?Q2 为什么弹簧是螺旋型的?Q3 闪电为什么总是自上而下,有没有自下而上的闪电呢?Q4 当一束光使电子发生了能级跃迁,原先的光子去哪儿了,消失了吗?Q5 为什么有茶叶的水在转时茶叶会趋向中间而不是两边呢?Q6 为什么塑料相比于其它物质,更容易起静电?Q7 为什么会有空集?空集的存在有什么物理意义? Q8 为什么有纹理的木擦了木蜡油之后会纹理变深,更容易被看",
    +                "id": 37185041,
    +                "jump_url": "//www.bilibili.com/read/cv37185041/",
    +                "label": "16.3万阅读",
    +                "title": "手指沾水擦干但是指纹识别还是失败,这是什么原因?| No.422"
    +              },
    +              "type": "MAJOR_TYPE_ARTICLE"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 23,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 7,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 727,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_ARTICLE",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966475883631083553",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966475883631083553"
    +        },
    +        "id_str": "966475883631083553",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "233114659"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +              "fan": {
    +                "color": "#903AC2",
    +                "color_format": {
    +                  "colors": [
    +                    "#903AC2FF",
    +                    "#903AC2FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "000001",
    +                "number": 1
    +              },
    +              "id": 1706163888001,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1",
    +              "name": "龙腾啾跃-动态卡片粉丝",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/233114659/dynamic",
    +            "label": "",
    +            "mid": 233114659,
    +            "name": "碧蓝航线",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +              "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +              "n_pid": 1987,
    +              "name": "碧蓝航线2020",
    +              "pid": 1987
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 11:00",
    +            "pub_ts": 1723863602,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1729526400000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "恭喜",
    +                  "text": "恭喜",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@两百斤的橘猫猫0w0",
    +                  "rid": "8391364",
    +                  "text": "@两百斤的橘猫猫0w0",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@一位隐身的Z23厨",
    +                  "rid": "382382091",
    +                  "text": "@一位隐身的Z23厨",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "@默涛默随波",
    +                  "rid": "230373473",
    +                  "text": "@默涛默随波",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                },
    +                {
    +                  "orig_text": "等8位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "text": "等8位同学中奖,已私信通知,详情请点击抽奖查看。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "恭喜@两百斤的橘猫猫0w0@一位隐身的Z23厨@默涛默随波等8位同学中奖,已私信通知,详情请点击抽奖查看。"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 227,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 20,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 3126,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "963893770559946786",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.375,
    +                  "width": 1.375
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "layers": [
    +                  {
    +                    "is_critical_group": true,
    +                    "layers": [
    +                      {
    +                        "general_spec": {
    +                          "pos_spec": {
    +                            "axis_x": 0.6875,
    +                            "axis_y": 0.6875,
    +                            "coordinate_pos": 2
    +                          },
    +                          "render_spec": {
    +                            "opacity": 1
    +                          },
    +                          "size_spec": {
    +                            "height": 0.787,
    +                            "width": 0.787
    +                          }
    +                        },
    +                        "layer_config": {
    +                          "is_critical": true,
    +                          "tags": {
    +                            "AVATAR_LAYER": {},
    +                            "GENERAL_CFG": {
    +                              "config_type": 1,
    +                              "general_config": {
    +                                "web_css_style": {
    +                                  "borderRadius": "50%"
    +                                }
    +                              }
    +                            }
    +                          }
    +                        },
    +                        "resource": {
    +                          "res_image": {
    +                            "image_src": {
    +                              "placeholder": 6,
    +                              "remote": {
    +                                "bfs_style": "widget-layer-avatar",
    +                                "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                              },
    +                              "src_type": 1
    +                            }
    +                          },
    +                          "res_type": 3
    +                        },
    +                        "visible": true
    +                      }
    +                    ]
    +                  },
    +                  {
    +                    "layers": [
    +                      {
    +                        "general_spec": {
    +                          "pos_spec": {
    +                            "axis_x": 0.6875,
    +                            "axis_y": 0.6875,
    +                            "coordinate_pos": 2
    +                          },
    +                          "render_spec": {
    +                            "opacity": 1
    +                          },
    +                          "size_spec": {
    +                            "height": 1.375,
    +                            "width": 1.375
    +                          }
    +                        },
    +                        "layer_config": {
    +                          "tags": {
    +                            "PENDENT_LAYER": {}
    +                          }
    +                        },
    +                        "resource": {
    +                          "res_animation": {
    +                            "webp_src": {
    +                              "remote": {
    +                                "bfs_style": "widget-layer-avatar",
    +                                "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                              },
    +                              "src_type": 1
    +                            }
    +                          },
    +                          "res_type": 4
    +                        },
    +                        "visible": true
    +                      }
    +                    ]
    +                  },
    +                  {
    +                    "layers": [
    +                      {
    +                        "general_spec": {
    +                          "pos_spec": {
    +                            "axis_x": 0.7560000000000001,
    +                            "axis_y": 0.7726666666666667,
    +                            "coordinate_pos": 1
    +                          },
    +                          "render_spec": {
    +                            "opacity": 1
    +                          },
    +                          "size_spec": {
    +                            "height": 0.41666666666666663,
    +                            "width": 0.41666666666666663
    +                          }
    +                        },
    +                        "layer_config": {
    +                          "tags": {
    +                            "GENERAL_CFG": {
    +                              "config_type": 1,
    +                              "general_config": {
    +                                "web_css_style": {
    +                                  "background-color": "rgb(255,255,255)",
    +                                  "border": "2px solid rgba(255,255,255,1)",
    +                                  "borderRadius": "50%",
    +                                  "boxSizing": "border-box"
    +                                }
    +                              }
    +                            },
    +                            "ICON_LAYER": {}
    +                          }
    +                        },
    +                        "resource": {
    +                          "res_image": {
    +                            "image_src": {
    +                              "local": 4,
    +                              "src_type": 2
    +                            }
    +                          },
    +                          "res_type": 3
    +                        },
    +                        "visible": true
    +                      }
    +                    ]
    +                  }
    +                ],
    +                "mid": "233114659"
    +              },
    +              "decorate": {
    +                "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +                "fan": {
    +                  "color": "#903AC2",
    +                  "color_format": {
    +                    "colors": [
    +                      "#903AC2FF",
    +                      "#903AC2FF"
    +                    ],
    +                    "end_point": "0,100",
    +                    "gradients": [
    +                      0,
    +                      100
    +                    ],
    +                    "start_point": "0,0"
    +                  },
    +                  "is_fan": true,
    +                  "num_prefix": "NO.",
    +                  "num_str": "000001",
    +                  "number": 1
    +                },
    +                "id": 1706163888001,
    +                "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1",
    +                "name": "龙腾啾跃-动态卡片粉丝",
    +                "type": 3
    +              },
    +              "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +              "face_nft": false,
    +              "following": true,
    +              "jump_url": "//space.bilibili.com/233114659/dynamic",
    +              "label": "",
    +              "mid": 233114659,
    +              "name": "碧蓝航线",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 1
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +                "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +                "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +                "n_pid": 1987,
    +                "name": "碧蓝航线2020",
    +                "pid": 1987
    +              },
    +              "pub_action": "",
    +              "pub_time": "",
    +              "pub_ts": 1723262407,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 1,
    +                "avatar_subscript_url": "",
    +                "due_date": 1729526400000,
    +                "label": {
    +                  "bg_color": "#FB7299",
    +                  "bg_style": 1,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                  "label_theme": "annual_vip",
    +                  "path": "",
    +                  "text": "年度大会员",
    +                  "text_color": "#FFFFFF",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "#FB7299",
    +                "status": 1,
    +                "theme_type": 0,
    +                "type": 2
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": {
    +                "common": {
    +                  "button": {
    +                    "jump_style": {
    +                      "icon_url": "",
    +                      "text": "进入"
    +                    },
    +                    "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005",
    +                    "type": 1
    +                  },
    +                  "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +                  "desc1": "养成",
    +                  "desc2": "指挥官,欢迎回港",
    +                  "head_text": "相关游戏",
    +                  "id_str": "97",
    +                  "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005",
    +                  "style": 1,
    +                  "sub_type": "game",
    +                  "title": "碧蓝航线"
    +                },
    +                "type": "ADDITIONAL_TYPE_COMMON"
    +              },
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF",
    +                    "orig_text": "#碧蓝航线#",
    +                    "text": "#碧蓝航线#",
    +                    "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                  },
    +                  {
    +                    "orig_text": " ",
    +                    "text": " ",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "orig_text": "互动抽奖",
    +                    "rid": "312103",
    +                    "text": "互动抽奖",
    +                    "type": "RICH_TEXT_NODE_TYPE_LOTTERY"
    +                  },
    +                  {
    +                    "orig_text": " \n兰夜放灯祈相守,\n纤手弄糕思今宵。\n\n关注",
    +                    "text": " \n兰夜放灯祈相守,\n纤手弄糕思今宵。\n\n关注",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  },
    +                  {
    +                    "orig_text": "@碧蓝航线",
    +                    "rid": "233114659",
    +                    "text": "@碧蓝航线",
    +                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                  },
    +                  {
    +                    "orig_text": " 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\n\n金风玉露,值此良宵,愿与君共度~",
    +                    "text": " 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\n\n金风玉露,值此良宵,愿与君共度~",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "#碧蓝航线# 互动抽奖 \n兰夜放灯祈相守,\n纤手弄糕思今宵。\n\n关注@碧蓝航线 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\n\n金风玉露,值此良宵,愿与君共度~"
    +              },
    +              "major": {
    +                "draw": {
    +                  "id": 324938558,
    +                  "items": [
    +                    {
    +                      "height": 3038,
    +                      "size": 2025.2646,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/b0068d1603aee2849ca46a58642fa99e233114659.jpg",
    +                      "tags": [],
    +                      "width": 5400
    +                    },
    +                    {
    +                      "height": 5063,
    +                      "size": 7377.1143,
    +                      "src": "http://i0.hdslb.com/bfs/new_dyn/c047aafcf90a48b578a63c3e1b86c1de233114659.jpg",
    +                      "tags": [],
    +                      "width": 9000
    +                    }
    +                  ]
    +                },
    +                "type": "MAJOR_TYPE_DRAW"
    +              },
    +              "topic": null
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_DRAW",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "1456253104",
    +          "comment_type": 1,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "1456253104"
    +        },
    +        "id_str": "966374603744083976",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_animation": {
    +                        "webp_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 4
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "686127"
    +            },
    +            "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/686127/dynamic",
    +            "label": "",
    +            "mid": 686127,
    +            "name": "籽岷",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png",
    +              "image_enhance_frame": "",
    +              "n_pid": 2066,
    +              "name": "百年大会员",
    +              "pid": 2066
    +            },
    +            "pub_action": "投稿了视频",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 04:27",
    +            "pub_ts": 1723840021,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 4845196800000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +                "label_theme": "hundred_annual_vip",
    +                "path": "",
    +                "text": "百年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": null,
    +            "major": {
    +              "archive": {
    +                "aid": "1456253104",
    +                "badge": {
    +                  "bg_color": "#FB7299",
    +                  "color": "#FFFFFF",
    +                  "icon_url": null,
    +                  "text": "投稿视频"
    +                },
    +                "bvid": "BV1ai421h7nT",
    +                "cover": "http://i1.hdslb.com/bfs/archive/0245f30593e2963b883cd5953881034ad033fbd5.jpg",
    +                "desc": "https://www.minecraft.net/en-us/article/minecraft-snapshot-24w33a",
    +                "disable_preview": 0,
    +                "duration_text": "16:22",
    +                "jump_url": "//www.bilibili.com/video/BV1ai421h7nT/",
    +                "stat": {
    +                  "danmaku": "2149",
    +                  "play": "24.5万"
    +                },
    +                "title": "收纳袋、红石、矿车大改 我的世界新版本介绍 1.21.2 24w33a",
    +                "type": 1
    +              },
    +              "type": "MAJOR_TYPE_ARCHIVE"
    +            },
    +            "topic": {
    +              "id": 1028161,
    +              "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1028161\u0026topic_name=%E6%95%B4%E7%82%B9%E7%94%B5%E5%AD%90%E6%A6%A8%E8%8F%9C",
    +              "name": "整点电子榨菜"
    +            }
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "名字永远是个谜:",
    +                      "rid": "2022349482",
    +                      "text": "名字永远是个谜:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!",
    +                      "text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    }
    +                  ],
    +                  "text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 921,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 51,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 23138,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_AV",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325694432",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325694432"
    +        },
    +        "id_str": "966306597269667840",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "485703766"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/485703766/dynamic",
    +            "label": "",
    +            "mid": 485703766,
    +            "name": "英伟达GeForce",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "昨天 00:03",
    +            "pub_ts": 1723824187,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 2000563200000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +                "label_theme": "ten_annual_vip",
    +                "path": "",
    +                "text": "十年大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "直面天命,还有 3 天!\nRTX. ON!\n\n投稿来自于:Bilibili",
    +                  "text": "直面天命,还有 3 天!\nRTX. ON!\n\n投稿来自于:Bilibili",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "orig_text": "@祗殁 ",
    +                  "rid": "12299496",
    +                  "text": "@祗殁 ",
    +                  "type": "RICH_TEXT_NODE_TYPE_AT"
    +                }
    +              ],
    +              "text": "直面天命,还有 3 天!\nRTX. ON!\n\n投稿来自于:Bilibili@祗殁 "
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325694432,
    +                "items": [
    +                  {
    +                    "height": 1280,
    +                    "size": 59.246094,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/2e42c52d5e1383fe443f0984a41a9624485703766.jpg",
    +                    "tags": [],
    +                    "width": 1282
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 115,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 3,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 876,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "325690655",
    +          "comment_type": 11,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "325690655"
    +        },
    +        "id_str": "966298866306515029",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.375,
    +                "width": 1.375
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.787,
    +                        "width": 0.787
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.6875,
    +                        "axis_y": 0.6875,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1.375,
    +                        "width": 1.375
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "PENDENT_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.7560000000000001,
    +                        "axis_y": 0.7726666666666667,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 4,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "layers": [
    +                {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.787,
    +                          "width": 0.787
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.6875,
    +                          "axis_y": 0.6875,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1.375,
    +                          "width": 1.375
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "PENDENT_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_animation": {
    +                          "webp_src": {
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 4
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                {
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.7560000000000001,
    +                          "axis_y": 0.7726666666666667,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                }
    +              ],
    +              "mid": "233114659"
    +            },
    +            "decorate": {
    +              "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png",
    +              "fan": {
    +                "color": "#903AC2",
    +                "color_format": {
    +                  "colors": [
    +                    "#903AC2FF",
    +                    "#903AC2FF"
    +                  ],
    +                  "end_point": "0,100",
    +                  "gradients": [
    +                    0,
    +                    100
    +                  ],
    +                  "start_point": "0,0"
    +                },
    +                "is_fan": true,
    +                "num_prefix": "NO.",
    +                "num_str": "000001",
    +                "number": 1
    +              },
    +              "id": 1706163888001,
    +              "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1",
    +              "name": "龙腾啾跃-动态卡片粉丝",
    +              "type": 3
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/233114659/dynamic",
    +            "label": "",
    +            "mid": 233114659,
    +            "name": "碧蓝航线",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 1
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png",
    +              "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp",
    +              "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png",
    +              "n_pid": 1987,
    +              "name": "碧蓝航线2020",
    +              "pid": 1987
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "2天前",
    +            "pub_ts": 1723822387,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1729526400000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": {
    +              "common": {
    +                "button": {
    +                  "jump_style": {
    +                    "icon_url": "",
    +                    "text": "进入"
    +                  },
    +                  "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005",
    +                  "type": 1
    +                },
    +                "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +                "desc1": "养成",
    +                "desc2": "指挥官,欢迎回港",
    +                "head_text": "相关游戏",
    +                "id_str": "97",
    +                "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005",
    +                "style": 1,
    +                "sub_type": "game",
    +                "title": "碧蓝航线"
    +              },
    +              "type": "ADDITIONAL_TYPE_COMMON"
    +            },
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF",
    +                  "orig_text": "#碧蓝航线#",
    +                  "text": "#碧蓝航线#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF%E6%BC%AB%E5%B1%95",
    +                  "orig_text": "#碧蓝航线漫展#",
    +                  "text": "#碧蓝航线漫展#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": " ",
    +                  "text": " ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=2024%E6%B8%AF%E5%8C%BA%E7%9B%9B%E5%A4%8F%E6%B8%85%E5%87%89%E8%8A%82",
    +                  "orig_text": "#2024港区盛夏清凉节#",
    +                  "text": "#2024港区盛夏清凉节#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \n\n碧蓝夏日,映照专属的街景~\n街区快闪即将开启,\n与少女们一同踏上这场特别的城市漫步之旅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \n\n碧蓝夏日,映照专属的街景~\n街区快闪即将开启,\n与少女们一同踏上这场特别的城市漫步之旅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "#碧蓝航线# #碧蓝航线漫展# #2024港区盛夏清凉节#\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \n\n碧蓝夏日,映照专属的街景~\n街区快闪即将开启,\n与少女们一同踏上这场特别的城市漫步之旅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。"
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 325690655,
    +                "items": [
    +                  {
    +                    "height": 6000,
    +                    "size": 2737.6729,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/722dc5e7eba3c3f6861b294f6bf3020c233114659.jpg",
    +                    "tags": [],
    +                    "width": 4000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 4852.4023,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/b04110f894184880666ee8b204000846233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 3941.9678,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/8ce3c1e6f2d33a47d42f35193b9e5f55233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 4461.9707,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/ab9a5bf2215f88fed6026d67d98ec901233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 3137.0205,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/18e62cf8ebc7c07b99e042ac4cdeeaaa233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  },
    +                  {
    +                    "height": 4000,
    +                    "size": 9561.615,
    +                    "src": "http://i0.hdslb.com/bfs/new_dyn/1036f447fcbec195e717e2a5b3091a73233114659.jpg",
    +                    "tags": [],
    +                    "width": 6000
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "豌豆羹:",
    +                      "rid": "3493280973064560",
    +                      "text": "豌豆羹:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "大帝皮肤加彩蛋!",
    +                      "text": "大帝皮肤加彩蛋!",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    }
    +                  ],
    +                  "text": "大帝皮肤加彩蛋!"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 446,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 47,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 4352,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      {
    +        "basic": {
    +          "comment_id_str": "966281785469042740",
    +          "comment_type": 17,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": "966281785469042740"
    +        },
    +        "id_str": "966281785469042740",
    +        "modules": {
    +          "module_author": {
    +            "avatar": {
    +              "container_size": {
    +                "height": 1.35,
    +                "width": 1.35
    +              },
    +              "fallback_layers": {
    +                "is_critical_group": true,
    +                "layers": [
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.675,
    +                        "axis_y": 0.675,
    +                        "coordinate_pos": 2
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 1,
    +                        "width": 1
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "is_critical": true,
    +                      "tags": {
    +                        "AVATAR_LAYER": {},
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "borderRadius": "50%"
    +                            }
    +                          }
    +                        }
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "placeholder": 6,
    +                          "remote": {
    +                            "bfs_style": "widget-layer-avatar",
    +                            "url": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg"
    +                          },
    +                          "src_type": 1
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  },
    +                  {
    +                    "general_spec": {
    +                      "pos_spec": {
    +                        "axis_x": 0.8000000000000002,
    +                        "axis_y": 0.8000000000000002,
    +                        "coordinate_pos": 1
    +                      },
    +                      "render_spec": {
    +                        "opacity": 1
    +                      },
    +                      "size_spec": {
    +                        "height": 0.41666666666666663,
    +                        "width": 0.41666666666666663
    +                      }
    +                    },
    +                    "layer_config": {
    +                      "tags": {
    +                        "GENERAL_CFG": {
    +                          "config_type": 1,
    +                          "general_config": {
    +                            "web_css_style": {
    +                              "background-color": "rgb(255,255,255)",
    +                              "border": "2px solid rgba(255,255,255,1)",
    +                              "borderRadius": "50%",
    +                              "boxSizing": "border-box"
    +                            }
    +                          }
    +                        },
    +                        "ICON_LAYER": {}
    +                      }
    +                    },
    +                    "resource": {
    +                      "res_image": {
    +                        "image_src": {
    +                          "local": 3,
    +                          "src_type": 2
    +                        }
    +                      },
    +                      "res_type": 3
    +                    },
    +                    "visible": true
    +                  }
    +                ]
    +              },
    +              "mid": "178429408"
    +            },
    +            "face": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg",
    +            "face_nft": false,
    +            "following": true,
    +            "jump_url": "//space.bilibili.com/178429408/dynamic",
    +            "label": "",
    +            "mid": 178429408,
    +            "name": "老弟一号",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "n_pid": 0,
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_location_text": "",
    +            "pub_time": "2天前",
    +            "pub_ts": 1723818410,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1728576000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "不管怎么样,我先把香槟开了",
    +                  "text": "不管怎么样,我先把香槟开了",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "emoji": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/emote/bf7e00ecab02171f8461ee8cf439c73db9797748.png",
    +                    "size": 1,
    +                    "text": "[脱单doge]",
    +                    "type": 1
    +                  },
    +                  "orig_text": "[脱单doge]",
    +                  "text": "[脱单doge]",
    +                  "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                },
    +                {
    +                  "orig_text": "要是褒姒,直播抽一百个爵柏电源",
    +                  "text": "要是褒姒,直播抽一百个爵柏电源",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "不管怎么样,我先把香槟开了[脱单doge]要是褒姒,直播抽一百个爵柏电源"
    +            },
    +            "major": null,
    +            "topic": null
    +          },
    +          "module_interaction": {
    +            "items": [
    +              {
    +                "desc": {
    +                  "rich_text_nodes": [
    +                    {
    +                      "orig_text": "芊芊老猫的日常:",
    +                      "rid": "1284100140",
    +                      "text": "芊芊老猫的日常:",
    +                      "type": "RICH_TEXT_NODE_TYPE_AT"
    +                    },
    +                    {
    +                      "orig_text": "还是好人多啊",
    +                      "text": "还是好人多啊",
    +                      "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                    },
    +                    {
    +                      "emoji": {
    +                        "icon_url": "https://i0.hdslb.com/bfs/emote/4683fd9ffc925fa6423110979d7dcac5eda297f4.png",
    +                        "size": 1,
    +                        "text": "[OK]",
    +                        "type": 1
    +                      },
    +                      "orig_text": "[OK]",
    +                      "text": "[OK]",
    +                      "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                    }
    +                  ],
    +                  "text": "还是好人多啊[OK]"
    +                },
    +                "type": 1
    +              }
    +            ]
    +          },
    +          "module_more": {
    +            "three_point_items": [
    +              {
    +                "label": "取消关注",
    +                "type": "THREE_POINT_FOLLOWING"
    +              },
    +              {
    +                "label": "举报",
    +                "type": "THREE_POINT_REPORT"
    +              }
    +            ]
    +          },
    +          "module_stat": {
    +            "comment": {
    +              "count": 156,
    +              "forbidden": false
    +            },
    +            "forward": {
    +              "count": 1,
    +              "forbidden": false
    +            },
    +            "like": {
    +              "count": 1367,
    +              "forbidden": false,
    +              "status": false
    +            }
    +          }
    +        },
    +        "orig": {
    +          "basic": {
    +            "comment_id_str": "",
    +            "comment_type": 0,
    +            "like_icon": {
    +              "action_url": "",
    +              "end_url": "",
    +              "id": 0,
    +              "start_url": ""
    +            },
    +            "rid_str": ""
    +          },
    +          "id_str": "966274874613956608",
    +          "modules": {
    +            "module_author": {
    +              "avatar": {
    +                "container_size": {
    +                  "height": 1.35,
    +                  "width": 1.35
    +                },
    +                "fallback_layers": {
    +                  "is_critical_group": true,
    +                  "layers": [
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.675,
    +                          "axis_y": 0.675,
    +                          "coordinate_pos": 2
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 1,
    +                          "width": 1
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "is_critical": true,
    +                        "tags": {
    +                          "AVATAR_LAYER": {},
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "borderRadius": "50%"
    +                              }
    +                            }
    +                          }
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "placeholder": 6,
    +                            "remote": {
    +                              "bfs_style": "widget-layer-avatar",
    +                              "url": "https://i2.hdslb.com/bfs/face/4c9095a6fc7d6ef7bf97ee1c65767f537763c60c.jpg"
    +                            },
    +                            "src_type": 1
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    },
    +                    {
    +                      "general_spec": {
    +                        "pos_spec": {
    +                          "axis_x": 0.8000000000000002,
    +                          "axis_y": 0.8000000000000002,
    +                          "coordinate_pos": 1
    +                        },
    +                        "render_spec": {
    +                          "opacity": 1
    +                        },
    +                        "size_spec": {
    +                          "height": 0.41666666666666663,
    +                          "width": 0.41666666666666663
    +                        }
    +                      },
    +                      "layer_config": {
    +                        "tags": {
    +                          "GENERAL_CFG": {
    +                            "config_type": 1,
    +                            "general_config": {
    +                              "web_css_style": {
    +                                "background-color": "rgb(255,255,255)",
    +                                "border": "2px solid rgba(255,255,255,1)",
    +                                "borderRadius": "50%",
    +                                "boxSizing": "border-box"
    +                              }
    +                            }
    +                          },
    +                          "ICON_LAYER": {}
    +                        }
    +                      },
    +                      "resource": {
    +                        "res_image": {
    +                          "image_src": {
    +                            "local": 4,
    +                            "src_type": 2
    +                          }
    +                        },
    +                        "res_type": 3
    +                      },
    +                      "visible": true
    +                    }
    +                  ]
    +                },
    +                "mid": "652239032"
    +              },
    +              "face": "https://i2.hdslb.com/bfs/face/4c9095a6fc7d6ef7bf97ee1c65767f537763c60c.jpg",
    +              "face_nft": false,
    +              "following": null,
    +              "jump_url": "//space.bilibili.com/652239032/dynamic",
    +              "label": "",
    +              "mid": 652239032,
    +              "name": "IGN中国",
    +              "official_verify": {
    +                "desc": "",
    +                "type": 1
    +              },
    +              "pendant": {
    +                "expire": 0,
    +                "image": "",
    +                "image_enhance": "",
    +                "image_enhance_frame": "",
    +                "n_pid": 0,
    +                "name": "",
    +                "pid": 0
    +              },
    +              "pub_action": "投稿了视频",
    +              "pub_time": "",
    +              "pub_ts": 1723816801,
    +              "type": "AUTHOR_TYPE_NORMAL",
    +              "vip": {
    +                "avatar_subscript": 0,
    +                "avatar_subscript_url": "",
    +                "due_date": 0,
    +                "label": {
    +                  "bg_color": "",
    +                  "bg_style": 0,
    +                  "border_color": "",
    +                  "img_label_uri_hans": "",
    +                  "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +                  "img_label_uri_hant": "",
    +                  "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +                  "label_theme": "",
    +                  "path": "",
    +                  "text": "",
    +                  "text_color": "",
    +                  "use_img_label": true
    +                },
    +                "nickname_color": "",
    +                "status": 0,
    +                "theme_type": 0,
    +                "type": 0
    +              }
    +            },
    +            "module_dynamic": {
    +              "additional": null,
    +              "desc": {
    +                "rich_text_nodes": [
    +                  {
    +                    "orig_text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。",
    +                    "text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。",
    +                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                  }
    +                ],
    +                "text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。"
    +              },
    +              "major": {
    +                "archive": {
    +                  "aid": "1456400345",
    +                  "badge": {
    +                    "bg_color": "#FB7299",
    +                    "color": "#FFFFFF",
    +                    "icon_url": null,
    +                    "text": "投稿视频"
    +                  },
    +                  "bvid": "BV1Ti421a7dv",
    +                  "cover": "http://i2.hdslb.com/bfs/archive/fd87a4e75738b0de1388df60f5e4ce5011b1367a.jpg",
    +                  "desc": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,我相信它会成为今年年度游戏的有力竞争者,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。",
    +                  "disable_preview": 0,
    +                  "duration_text": "10:00",
    +                  "jump_url": "//www.bilibili.com/video/BV1Ti421a7dv/",
    +                  "stat": {
    +                    "danmaku": "4.6万",
    +                    "play": "595.1万"
    +                  },
    +                  "title": "【IGN】10分,《黑神话:悟空》评测:踏平坎坷成大道",
    +                  "type": 1
    +                },
    +                "type": "MAJOR_TYPE_ARCHIVE"
    +              },
    +              "topic": null
    +            }
    +          },
    +          "type": "DYNAMIC_TYPE_AV",
    +          "visible": true
    +        },
    +        "type": "DYNAMIC_TYPE_FORWARD",
    +        "visible": true
    +      }
    +    ],
    +    "offset": "966281785469042740",
    +    "update_baseline": "966888011247648768",
    +    "update_num": 5
    +  }
    +}
    +

    检测是否有新动态

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update

    请求方式:GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    typestr动态类型不必要默认为 all
    update_baselineid更新基线必要用于检测是否有新动态, 默认为上次请求 获取全部动态列表 返回的 update_baseline, 实测填 0 也可正常获取
    web_locationstr333.1365不必要

    JSON回复:

    根:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data :

    字段类型内容备注
    update_numnum有新动态的数量

    示例:

    curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update' \
    +--data-urlencode 'update_baseline=114514' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "update_num": 9
    +  }
    +}
    +
    + + + diff --git a/docs/dynamic/atlist.html b/docs/dynamic/atlist.html new file mode 100644 index 0000000000..c7b53c5ba3 --- /dev/null +++ b/docs/dynamic/atlist.html @@ -0,0 +1,190 @@ + + + + + + + + + 根据关键字搜索用户 (at别人时的填充列表) | BAC Document + + + + +

    根据关键字搜索用户 (at别人时的填充列表)

    注意关键字不一定顺序匹配,如最后示例

    https://api.bilibili.com/x/polymer/web-dynamic/v1/mention/search

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    keywordstr搜索关键字非必要若无此项,则返回所有关注用户的信息

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息成功时为 0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    groupsarray用户分组根据是否关注该用户来分组,未找到用户时为空数组

    groups数组:

    类型内容备注
    0obj分组1
    nobj分组(n+1)
    ……obj…………

    groups数组中的对象:

    字段类型内容备注
    group_namestr分组名称我的关注其他
    group_typenum分组类型2:我的关注
    4:其他
    itemsarray搜索到的用户信息按照认证状态与粉丝数排序

    items数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    facestr用户头像url
    fansnum用户粉丝数
    namestr用户昵称
    official_verify_typenum用户认证状态-1:无
    0:个人认证
    1:机构认证
    uidstr用户mid

    示例:

    搜索关键字为社会易的用户

    curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/mention/search' \
    +--data-urlencode 'keyword=社会易' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "groups": [
    +      {
    +        "group_name": "我的关注",
    +        "group_type": 2,
    +        "items": [
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "fans": 3613,
    +            "name": "社会易姐QwQ",
    +            "official_verify_type": -1,
    +            "uid": "293793435"
    +          }
    +        ]
    +      },
    +      {
    +        "group_name": "其他",
    +        "group_type": 4,
    +        "items": [
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/dbc456bdec5e7a4806c9d0311d95ebcc6be674cf.jpg",
    +            "fans": 23464,
    +            "name": "社会易老师",
    +            "official_verify_type": -1,
    +            "uid": "484031754"
    +          },
    +          {
    +            "face": "https://i1.hdslb.com/bfs/face/5497859a550a017d0a51c640d232c539c2f48991.jpg",
    +            "fans": 11,
    +            "name": "栄禧貿易株式会社",
    +            "official_verify_type": -1,
    +            "uid": "4991467"
    +          },
    +          {
    +            "face": "https://i2.hdslb.com/bfs/face/311cecf9298158b8a5f47ed3e641328ab5c0cfcd.jpg",
    +            "fans": 10,
    +            "name": "社会李易儒",
    +            "official_verify_type": -1,
    +            "uid": "442101413"
    +          },
    +          {
    +            "face": "https://i2.hdslb.com/bfs/face/2dad05e4748b5e91e1ec5d3c5d4f0904a5bcdaf0.jpg",
    +            "fans": 8,
    +            "name": "日本国立貿易株式会社",
    +            "official_verify_type": -1,
    +            "uid": "3546589855484501"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
    +            "fans": 6,
    +            "name": "社会小伙肖子易",
    +            "official_verify_type": -1,
    +            "uid": "250129011"
    +          },
    +          {
    +            "face": "https://i2.hdslb.com/bfs/face/1ebb0d4aa8e2c4b532f82983503ec38b62a1820f.jpg",
    +            "fans": 4,
    +            "name": "社会主义接班人小易",
    +            "official_verify_type": -1,
    +            "uid": "486568790"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/dccb52f3c15ba1bb99aac3c86e9825842cc95295.jpg",
    +            "fans": 2,
    +            "name": "社会你易易",
    +            "official_verify_type": -1,
    +            "uid": "497214639"
    +          },
    +          {
    +            "face": "https://i1.hdslb.com/bfs/face/1902cc0b07ab4a5de6110f5adb2691cbf7051f2b.jpg",
    +            "fans": 1,
    +            "name": "社会打工不容易",
    +            "official_verify_type": -1,
    +            "uid": "3546742186314202"
    +          },
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/19ee1b5975969a47ba085cd1f628d86a479b9950.jpg",
    +            "fans": 0,
    +            "name": "社会交易",
    +            "official_verify_type": -1,
    +            "uid": "3493291412687622"
    +          },
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/de6afbda484e114b7cedeb621c3cbbaef7800988.jpg",
    +            "fans": 0,
    +            "name": "不谦易会社恐",
    +            "official_verify_type": -1,
    +            "uid": "1602175830"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 8,
    +            "name": "社会易总",
    +            "official_verify_type": -1,
    +            "uid": "155817540"
    +          },
    +          {
    +            "face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会存在与社会易逝",
    +            "official_verify_type": -1,
    +            "uid": "3546578331634371"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易姐QAQ",
    +            "official_verify_type": -1,
    +            "uid": "1983403996"
    +          },
    +          {
    +            "face": "http://i1.hdslb.com/bfs/face/510cde8f4e3eb27aa50177d619a4200bb501797b.jpg",
    +            "fans": 0,
    +            "name": "社会易大佬人狠话不多",
    +            "official_verify_type": -1,
    +            "uid": "408471763"
    +          },
    +          {
    +            "face": "http://i1.hdslb.com/bfs/face/7324adb53362527a1bf5f20141a6ae4307011ea7.jpg",
    +            "fans": 0,
    +            "name": "社会易轩",
    +            "official_verify_type": -1,
    +            "uid": "384672256"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易哥",
    +            "official_verify_type": -1,
    +            "uid": "284984452"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易姐",
    +            "official_verify_type": -1,
    +            "uid": "249112673"
    +          },
    +          {
    +            "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
    +            "fans": 0,
    +            "name": "社会易大佬",
    +            "official_verify_type": -1,
    +            "uid": "167967213"
    +          }
    +        ]
    +      }
    +    ]
    +  }
    +}
    +
    + + + diff --git a/docs/dynamic/basicInfo.html b/docs/dynamic/basicInfo.html new file mode 100644 index 0000000000..0538051a75 --- /dev/null +++ b/docs/dynamic/basicInfo.html @@ -0,0 +1,1471 @@ + + + + + + + + + 动态基本信息 | BAC Document + + + + +

    动态基本信息

    动态转发列表

    https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/repost_detail

    请求方式:GET

    ==Attention: 转发列表总计超过550部分继续获取可能被限制。==

    url参数:

    参数名类型内容必要性备注
    dynamic_idid动态id必要
    offset--非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    has_morebool是否还有下一页每页最多20条
    totalint总计包含不超过20条
    gtnum0作用尚不明确

    data中的items对象:

    由于参数过多,这里不一一列举,请自行参阅其他文件理解。

    示例:

    获取哔哩哔哩弹幕网的动态id为669016644742283288动态

    curl -G 'https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/repost_detail' \
    +--data-urlencode 'dynamic_id=669016644742283288'
    +
    查看响应示例
    {
    +    "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_idint64动态id必须
    pnint64页码非必须
    psint64每页数量非必须该值不得大于20

    json回复: 根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型用途备注
    item_likeslist点赞信息列表主体
    has_morebool是否还有下一页每页最多20条
    total_countint总计点赞数
    gtnum0作用尚不明确

    data中的item_likes对象:

    由于参数过多,这里不一一列举,请自行参阅其他文件理解。

    示例:

    获取哔哩哔哩弹幕网的动态id为669016644742283288动态

    curl -G 'https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/spec_item_likes' \
    +--data-urlencode 'dynamic_id=669016644742283288'
    +
    查看响应示例
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息正常为"0"
    ttlnum1

    data对象:

    字段类型内容备注
    draftsarray草稿列表

    drafts列表的每一项:

    字段类型内容备注
    draft_idstr草稿id
    publish_timenum定时发送的秒级时间戳
    typenum动态类型请参考获取特定动态卡片信息
    uidnum自己的mid
    user_profileobj自己的用户信息请参考用户基本信息
    requeststr动态内容该项为json转成str,内容请参考发表纯文本动态
    + + + diff --git a/docs/dynamic/card_info.html b/docs/dynamic/card_info.html new file mode 100644 index 0000000000..0bfe785933 --- /dev/null +++ b/docs/dynamic/card_info.html @@ -0,0 +1,348 @@ + + + + + + + + + 动态详细信息字段 | BAC Document + + + + +

    动态详细信息字段

    不同动态内容卡片的具体信息。包含在获取特定动态卡片信息,话题下特定动态信息等API的Json回复中。

    以card字段的形式出现,内容为一个可被解析为Json对象的字符串。

    不同类型的动态内容拥有不同的字段。


    在转发类动态中(type=1)

    需注意账号转发视频投稿,其他用户的动态以及分享收藏夹等均为转发类内容,并不属于type=4300的收藏类动态等。

    在type=1的转发类动态中,解析出的对象包含以下内容:

    字段类型内容备注
    userobj转发者用户信息包含用户名,用户id和头像
    itemobj转发相关信息content字段为转发附言
    originstr被转发动态信息即本文档所描述的动态详细信息字段。
    动态类型为item对象的orig_type字段
    origin_extend_jsonstr被转发动态补充信息
    origin_userobj被转发用户信息
    activity_infosobj被转发动态参与的活动
    查看字段内容示例:
    {
    +  "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的图片动态中,解析出的对象包含以下内容:

    字段类型内容备注
    itemobj图片动态内容description字段为文字内容
    pictures字段图片
    userobj发布者用户信息包含用户名,用户id和头像
    查看字段内容示例:
    {
    +  "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的文字动态中,解析出的对象包含以下内容:

    字段类型内容备注
    itemobj文字动态内容description字段为文字内容
    userobj发布者用户信息包含用户名,用户id和头像
    查看字段内容示例:
    {
    +  "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的视频投稿动态中,解析出的对象包含以下内容:

    字段类型内容备注
    aidnum视频avid
    attributenum0可能已弃用open in new window
    cidnum视频cid
    copyrightnum原创信息1为原创,2为转载
    descstr视频简介
    dimensionobj视频1p分辨率
    durationnum视频时长单位秒
    dynamicstr动态文字内容
    first_framestr视频第一帧图片图片链接
    jump_urlstr视频跳转链接
    mission_idnum稿件参与的活动id
    ownerobj动态作者信息即up主
    picstr视频封面
    player_info?可能是播放器信息
    pubdatenum发布时间时间戳
    rightsobj联合投稿,是否付费等信息可能用来代替原attribute字段
    statobj视频数据点赞投币等
    statenum视频状态详情见属性数据文档
    tidnum视频分区编号
    titlestr视频标题
    tnamestr视频分区名称
    videonum视频数
    查看字段内容示例:
    {
    +  "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的专栏投稿动态中,解析出的对象包含以下内容:

    字段类型内容备注
    idnum专栏的id,即cv号
    categoryobj分类号和分类名称
    categoriesobj分类信息
    titlestr专栏标题
    summarystr专栏简介
    banner_urlstr头图链接
    template_idnum模板信息
    statenum专栏状态
    authorobj作者信息包含了头像挂件和勋章等
    reprintnum可能是转载
    image_urlsobj图片链接
    publish_timenum发布时间时间戳,应该指专栏
    ctimenum发布时间时间戳,应该指动态
    statsobj专栏数据,点赞之类有点踩字段,但并未实装此功能
    wordsnum字数
    origin_image_urlsobj源图片地址
    list?可能为文集
    is_likebool是否点赞
    mediaobj番剧电影相关内容影评的分数,是否有剧透等
    apply_time??
    check_time??
    originalnum是否原创
    act_idnum?
    dispute?可能为是否争议内容
    authenMark??
    cover_avidnum相关视频id例如笔记专栏的原视频
    top_video_info??
    typenum可能是专栏类别
    查看字段内容示例:
    {
    +  "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的音频投稿动态中,解析出的对象包含以下内容:

    字段类型内容备注
    idnum投稿编号即au号
    upIdnum音乐人id与用户uid不同
    titlestr音频标题
    upperstr上传者名称
    coverstr封面图链接
    authorstr作者名称
    ctimenum上传时间时间戳的后面加了三个0
    playCntnum播放量
    introstr音频介绍
    schemastr跳转链接似乎并不只是url
    typeInfostr分区信息
    upperAvatarstr上传者的头像链接
    查看字段内容示例:
    {
    +  "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.html b/docs/dynamic/content.html new file mode 100644 index 0000000000..2031bf6572 --- /dev/null +++ b/docs/dynamic/content.html @@ -0,0 +1,947 @@ + + + + + + + + + 动态信息 | BAC Document + + + + +

    动态信息

    获取正在直播的已关注者

    https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users

    请求方式:GET

    认证方式:Cookie(SESSDSTA)

    url参数:

    参数名类型内容必要性备注
    sizenum每页显示数非必要默认为10

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为0
    msgnum

    data对象:

    字段类型内容备注
    countnum直播者数量
    groupstr"default"作用尚不明确
    itemsarray直播者列表
    gtnum0作用尚不明确

    data中的items数组:

    类型内容备注
    0obj第一位直播者
    nobj第(n+1)位直播者
    ……obj…………

    data中的items数组中的对象:

    字段类型内容备注
    facestr直播者头像
    linkstr直播链接
    titlestr直播标题
    uidnum直播者id
    unamestr直播者昵称

    示例:

    curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users' \
    +--data-urlencode 'size=10' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_modenum是否开启青少年模式非必要否:0
    是:1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -6:未登录
    dataobj信息本体
    messagestr错误信息默认为0
    msgnum

    data对象:

    字段类型内容备注
    button_statementstr作用尚不明确
    itemsarray更新者列表
    gtnum0作用尚不明确

    data中的items数组:

    类型内容备注
    0obj第一位更新者
    nobj第(n+1)位更新者
    ……obj…………

    示例:

    curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_uplist' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    + + + diff --git a/docs/dynamic/detail.html b/docs/dynamic/detail.html new file mode 100644 index 0000000000..d3d7885560 --- /dev/null +++ b/docs/dynamic/detail.html @@ -0,0 +1,252 @@ + + + + + + + + + 获取动态详情 | BAC Document + + + + +

    获取动态详情

    https://api.bilibili.com/x/polymer/web-dynamic/v1/detail

    请求方式:GET

    是否需要登录:

    URL参数

    参数名类型必填内容备注
    timezone_offsetnum-480
    idnum动态id

    Json回复

    根对象

    字段名类型内容备注
    codenum响应码0:成功
    4101139:4101139
    messagestr
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    itemobj

    data对象 -> item对象

    参照 获取动态列表

    请求示例

    curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=724328028268658744'
    +

    响应示例

    点击查看
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "item": {
    +      "basic": {
    +        "comment_id_str": "724328028268658744",
    +        "comment_type": 17,
    +        "like_icon": {
    +          "action_url": "",
    +          "end_url": "",
    +          "id": 0,
    +          "start_url": ""
    +        },
    +        "rid_str": "724328032624443401"
    +      },
    +      "id_str": "724328028268658744",
    +      "modules": {
    +        "module_author": {
    +          "face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
    +          "face_nft": false,
    +          "following": null,
    +          "jump_url": "//space.bilibili.com/11357018/dynamic",
    +          "label": "",
    +          "mid": 11357018,
    +          "name": "动画魂-Anitama",
    +          "official_verify": {
    +            "desc": "",
    +            "type": 0
    +          },
    +          "pendant": {
    +            "expire": 0,
    +            "image": "",
    +            "image_enhance": "",
    +            "image_enhance_frame": "",
    +            "name": "",
    +            "pid": 0
    +          },
    +          "pub_action": "",
    +          "pub_location_text": "",
    +          "pub_time": "2022-11-03 22:02",
    +          "pub_ts": 1667484162,
    +          "type": "AUTHOR_TYPE_NORMAL",
    +          "vip": {
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1685808000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "status": 1,
    +            "theme_type": 0,
    +            "type": 2
    +          }
    +        },
    +        "module_dynamic": {
    +          "additional": null,
    +          "desc": {
    +            "rich_text_nodes": [
    +              {
    +                "orig_text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n",
    +                "text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n",
    +                "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +              }
    +            ],
    +            "text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n"
    +          },
    +          "major": null,
    +          "topic": null
    +        },
    +        "module_more": {
    +          "three_point_items": [
    +            {
    +              "label": "举报",
    +              "type": "THREE_POINT_REPORT"
    +            }
    +          ]
    +        },
    +        "module_stat": {
    +          "comment": {
    +            "count": 5,
    +            "forbidden": false
    +          },
    +          "forward": {
    +            "count": 1,
    +            "forbidden": false
    +          },
    +          "like": {
    +            "count": 170,
    +            "forbidden": false,
    +            "status": false
    +          }
    +        }
    +      },
    +      "orig": {
    +        "basic": {
    +          "comment_id_str": "",
    +          "comment_type": 0,
    +          "like_icon": {
    +            "action_url": "",
    +            "end_url": "",
    +            "id": 0,
    +            "start_url": ""
    +          },
    +          "rid_str": ""
    +        },
    +        "id_str": "720590749615259664",
    +        "modules": {
    +          "module_author": {
    +            "face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
    +            "face_nft": false,
    +            "following": null,
    +            "jump_url": "//space.bilibili.com/11357018/dynamic",
    +            "label": "",
    +            "mid": 11357018,
    +            "name": "动画魂-Anitama",
    +            "official_verify": {
    +              "desc": "",
    +              "type": 0
    +            },
    +            "pendant": {
    +              "expire": 0,
    +              "image": "",
    +              "image_enhance": "",
    +              "image_enhance_frame": "",
    +              "name": "",
    +              "pid": 0
    +            },
    +            "pub_action": "",
    +            "pub_time": "",
    +            "pub_ts": 1666614008,
    +            "type": "AUTHOR_TYPE_NORMAL",
    +            "vip": {
    +              "avatar_subscript": 1,
    +              "avatar_subscript_url": "",
    +              "due_date": 1685808000000,
    +              "label": {
    +                "bg_color": "#FB7299",
    +                "bg_style": 1,
    +                "border_color": "",
    +                "img_label_uri_hans": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                "label_theme": "annual_vip",
    +                "path": "",
    +                "text": "年度大会员",
    +                "text_color": "#FFFFFF",
    +                "use_img_label": true
    +              },
    +              "nickname_color": "#FB7299",
    +              "status": 1,
    +              "theme_type": 0,
    +              "type": 2
    +            }
    +          },
    +          "module_dynamic": {
    +            "additional": null,
    +            "desc": {
    +              "rich_text_nodes": [
    +                {
    +                  "orig_text": "​双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注",
    +                  "text": "​双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                },
    +                {
    +                  "jump_url": "//search.bilibili.com/all?keyword=%23%E4%BA%92%E5%8A%A8%E6%8A%BD%E5%A5%96%23",
    +                  "orig_text": "#互动抽奖#",
    +                  "text": "#互动抽奖#",
    +                  "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                },
    +                {
    +                  "orig_text": "\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 ",
    +                  "text": "\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 ",
    +                  "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                }
    +              ],
    +              "text": "​双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注#互动抽奖#\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 "
    +            },
    +            "major": {
    +              "draw": {
    +                "id": 210334026,
    +                "items": [
    +                  {
    +                    "height": 672,
    +                    "size": 134.85938,
    +                    "src": "https://i0.hdslb.com/bfs/new_dyn/37c21f8864e47cbeeb7c3e3a66bb250b11357018.jpg",
    +                    "tags": [],
    +                    "width": 576
    +                  }
    +                ]
    +              },
    +              "type": "MAJOR_TYPE_DRAW"
    +            },
    +            "topic": null
    +          }
    +        },
    +        "type": "DYNAMIC_TYPE_DRAW",
    +        "visible": true
    +      },
    +      "type": "DYNAMIC_TYPE_FORWARD",
    +      "visible": true
    +    }
    +  }
    +}
    +
    + + + diff --git a/docs/dynamic/dynamic_enum.html b/docs/dynamic/dynamic_enum.html new file mode 100644 index 0000000000..8b1249c602 --- /dev/null +++ b/docs/dynamic/dynamic_enum.html @@ -0,0 +1,33 @@ + + + + + + + + + 动态类型对照 | BAC Document + + + + +

    动态类型对照

    动态类型

    类型说明comment_id_strcomment_typerid_str示例
    DYNAMIC_TYPE_NONE无效动态716510857084796964open in new window
    DYNAMIC_TYPE_FORWARD动态转发动态本身id17
    DYNAMIC_TYPE_AV投稿视频视频AV号1视频AV号
    DYNAMIC_TYPE_PGC剧集(番剧、电影、纪录片)剧集分集AV号1剧集分集EP号
    DYNAMIC_TYPE_COURSES
    DYNAMIC_TYPE_WORD纯文字动态动态本身id17718377531474968613open in new window
    DYNAMIC_TYPE_DRAW带图动态相簿id11相簿id718384798557536290open in new window
    DYNAMIC_TYPE_ARTICLE投稿专栏专栏cv号12专栏cv号718372214316990512open in new window
    DYNAMIC_TYPE_MUSIC音乐
    DYNAMIC_TYPE_COMMON_SQUARE装扮
    剧集点评
    普通分享
    17551309621391003098open in new window
    716503778995470375open in new window
    716481612656672789open in new window
    DYNAMIC_TYPE_COMMON_VERTICAL
    DYNAMIC_TYPE_LIVE直播间分享动态本身id直播间id216042859353895488open in new window
    DYNAMIC_TYPE_MEDIALIST收藏夹收藏夹ml号19收藏夹ml号534428265320147158open in new window
    DYNAMIC_TYPE_COURSES_SEASON课程717906712866062340open in new window
    DYNAMIC_TYPE_COURSES_BATCH
    DYNAMIC_TYPE_AD
    DYNAMIC_TYPE_APPLET
    DYNAMIC_TYPE_SUBSCRIPTION
    DYNAMIC_TYPE_LIVE_RCMD直播开播动态本身id17live_id718371505648435205open in new window
    DYNAMIC_TYPE_BANNER
    DYNAMIC_TYPE_UGC_SEASON合集更新视频AV号1视频AV号718390979031203873open in new window
    DYNAMIC_TYPE_SUBSCRIPTION_NEW

    富文本节点类型

    类型说明示例
    RICH_TEXT_NODE_TYPE_NONE
    RICH_TEXT_NODE_TYPE_TEXT文字节点721295772787671059open in new window
    RICH_TEXT_NODE_TYPE_AT@用户721296515797090324open in new window
    RICH_TEXT_NODE_TYPE_LOTTERY互动抽奖720907383182721040open in new window
    RICH_TEXT_NODE_TYPE_VOTE投票721203899129659408open in new window
    RICH_TEXT_NODE_TYPE_TOPIC话题721188862459641879open in new window
    RICH_TEXT_NODE_TYPE_GOODS商品链接721282703208480790open in new window
    RICH_TEXT_NODE_TYPE_BV视频链接716752002311258165open in new window
    RICH_TEXT_NODE_TYPE_AV
    RICH_TEXT_NODE_TYPE_EMOJI表情716751108968546393open in new window
    RICH_TEXT_NODE_TYPE_USER
    RICH_TEXT_NODE_TYPE_CV
    RICH_TEXT_NODE_TYPE_VC
    RICH_TEXT_NODE_TYPE_WEB网页链接716751027361022055open in new window
    RICH_TEXT_NODE_TYPE_TAOBAO
    RICH_TEXT_NODE_TYPE_MAIL邮箱地址721314095109767220open in new window
    RICH_TEXT_NODE_TYPE_OGV_SEASON剧集信息721282046064853080open in new window
    RICH_TEXT_NODE_TYPE_OGV_EP
    RICH_TEXT_NODE_TYPE_SEARCH_WORD

    作者类型

    类型说明示例
    AUTHOR_TYPE_NONE
    AUTHOR_TYPE_NORMAL普通更新
    AUTHOR_TYPE_PGC剧集更新
    AUTHOR_TYPE_UGC_SEASON合集更新
    类型说明示例
    EMOJI_TYPE_NONE
    EMOJI_TYPE_OLD
    EMOJI_TYPE_NEW
    EMOJI_TYPE_VIP

    相关内容卡片类型

    类型说明示例
    ADDITIONAL_TYPE_NONE
    ADDITIONAL_TYPE_PGC
    ADDITIONAL_TYPE_GOODS商品信息
    ADDITIONAL_TYPE_VOTE投票716365292050055176open in new window
    ADDITIONAL_TYPE_COMMON一般类型游戏
    716357878942793745open in new window
    ADDITIONAL_TYPE_MATCH
    ADDITIONAL_TYPE_UP_RCMD
    ADDITIONAL_TYPE_UGC视频跳转716489253410832401open in new window
    ADDITIONAL_TYPE_RESERVE直播预约
    716524987542929443open in new window
    类型说明示例
    ADDITIONAL_BUTTON_TYPE_NONE
    ADDITIONAL_BUTTON_TYPE_JUMP
    ADDITIONAL_BUTTON_TYPE_BUTTON
    类型说明示例
    ADDITIONAL_BUTTON_STATUS_NONE
    ADDITIONAL_BUTTON_STATUS_UNCHECK
    ADDITIONAL_BUTTON_STATUS_CHECK
    类型说明示例
    ADD_BUTTON_CLICK_TYPE_NONE
    ADD_BUTTON_CLICK_TYPE_RESERVE
    类型说明示例
    DISABLE_STATE_HIGHLIGHT
    DISABLE_STATE_GRAY
    类型说明示例
    ADD_BUTTON_BG_STYLE_FILL
    ADD_BUTTON_BG_STYLE_STROKE
    ADD_BUTTON_BG_STYLE_GRAY
    类型说明示例
    HIGHLIGHT_TEXT_STYLE_TYPE_NONE
    HIGHLIGHT_TEXT_STYLE_TYPE_ACTIVE

    动态主体类型

    类型说明示例
    MAJOR_TYPE_NONE动态失效716510857084796964open in new window
    MAJOR_TYPE_NONE转发动态866756840240709701open in new window
    MAJOR_TYPE_OPUS图文动态870176712256651305open in new window
    MAJOR_TYPE_ARCHIVE视频716526237365829703open in new window
    MAJOR_TYPE_PGC剧集更新645981661420322824open in new window
    MAJOR_TYPE_COURSES
    MAJOR_TYPE_DRAW带图动态716358050743582725open in new window
    MAJOR_TYPE_ARTICLE
    MAJOR_TYPE_MUSIC音频更新
    MAJOR_TYPE_COMMON一般类型716481612656672789open in new window
    MAJOR_TYPE_LIVE直播间分享267505569812738175open in new window
    MAJOR_TYPE_MEDIALIST
    MAJOR_TYPE_APPLET
    MAJOR_TYPE_SUBSCRIPTION
    MAJOR_TYPE_LIVE_RCMD直播状态
    MAJOR_TYPE_UGC_SEASON合计更新716509100448415814open in new window
    MAJOR_TYPE_SUBSCRIPTION_NEW
    类型说明示例
    MEDIA_TYPE_NONE
    MEDIA_TYPE_UGC
    MEDIA_TYPE_PGC
    MEDIA_TYPE_LIVE
    类型说明示例
    PGC_SUB_TYPE_NONE
    PGC_SUB_TYPE_BANGUMI
    PGC_SUB_TYPE_MOVIE
    PGC_SUB_TYPE_DOCUMENTARY
    PGC_SUB_TYPE_DOMESTIC
    PGC_SUB_TYPE_TV
    类型说明示例
    DRAW_TAG_TYPE_NONE
    DRAW_TAG_TYPE_COMMON
    DRAW_TAG_TYPE_GOODS
    DRAW_TAG_TYPE_USER
    DRAW_TAG_TYPE_TOPIC
    DRAW_TAG_TYPE_LBS
    类型说明示例
    MAJOR_COMMON_STYLE_TYPE_NONE
    MAJOR_COMMON_STYLE_TYPE_SQUARE
    MAJOR_COMMON_STYLE_TYPE_VERTICAL
    类型说明示例
    RESERVE_TYPE_NONE
    RESERVE_TYPE_RECALL
    类型说明示例
    LIVE_STATE_TYPE_NONE
    LIVE_STATE_TYPE_LIVE
    LIVE_STATE_TYPE_ROTATION
    类型说明示例
    SUBSCRIPTION_NEW_STYLE_TYPE_NONE
    SUBSCRIPTION_NEW_STYLE_TYPE_DRAW
    SUBSCRIPTION_NEW_STYLE_TYPE_LIVE
    类型说明示例
    THREE_POINT_DELETE删除
    THREE_POINT_REPORT举报
    THREE_POINT_FOLLOWING关注/取消关注
    THREE_POINT_TOP置顶/取消置顶
    THREE_POINT_UNFAV
    THREE_POINT_UNSUBS
    THREE_POINT_TOPIC_REPORT
    THREE_POINT_TOPIC_IRRELEVANT
    THREE_POINT_RCMD_RESOURCE
    THREE_POINT_RCMD_FEEDBACK
    类型说明示例
    FOLD_TYPE_NONE
    FOLD_TYPE_PUBLISH
    FOLD_TYPE_FREQUENT
    FOLD_TYPE_UNITE
    FOLD_TYPE_LIMIT
    类型说明示例
    DYN_STATUS_TYPE_NONE
    DYN_STATUS_TYPE_NORMAL
    DYN_STATUS_TYPE_AUDITING
    DYN_STATUS_TYPE_SELF_VISIBLE
    DYN_STATUS_TYPE_DELETED
    类型说明示例
    SCENE_DETAIL
    SCENE_HOT
    SCENE_GENERAL
    SCENE_SPACE
    SCENE_TOPIC
    + + + diff --git a/docs/dynamic/get_dynamic_detail.html b/docs/dynamic/get_dynamic_detail.html new file mode 100644 index 0000000000..895c5422c9 --- /dev/null +++ b/docs/dynamic/get_dynamic_detail.html @@ -0,0 +1,434 @@ + + + + + + + + + 获取特定动态卡片信息 | BAC Document + + + + +

    获取特定动态卡片信息

    https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    dynamic_idid动态id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    cardobj动态卡片内容当动态不存在/删除时不返回此项
    resultnum0作用尚不明确(当动态不存在/删除时不返回此项)
    _gt_num0作用尚不明确

    data中的card对象:

    字段类型内容备注
    activity_infosobj该条动态参与的活动当此条动态没有参与任何活动时不显示此项
    cardstr动态详细信息会跟随此动态类型不同发生一定的变化,评论数、点赞数等相关信息参考desc字段
    descobj动态相关信息会跟随此动态类型不同发生一定的变化,详细信息(例如动态描述等)参考card字段
    displayobj动态部分的可操作项会随着动态类型发生变化,主要用于显示动态
    extend_jsonstr动态扩展项会随着动态类型发生变化
    此处的大部分字段的内容都会根据desc中的type值发生一定变化,具体的数值对照参考下表(仅作参考,部分内容的解释未知,同时有些内容仅为在部分页面出现,无法通过此API调出):
    含义
    268435455具体定义未知
    1转发
    2图片动态
    4文字动态
    8视频动态
    16小视频
    32具体定义未知(可能为戏剧)
    64专栏
    256音频
    512番剧
    1024具体定义未知
    2048H5活动动态
    2049漫画分享
    4097PGC番剧
    4098电影
    4099电视剧
    4100国创动漫
    4101纪录片
    4200直播
    4201直播
    4300收藏夹
    4302付费课程
    4303付费课程
    4308直播
    4310合集
    4311具体定义未知
    1e3具体定义未知
    1001具体定义未知

    示例:

    获取哔哩哔哩弹幕网的动态id为507420325550127049动态

    curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail' \
    +--data-urlencode 'dynamic_id=507420325550127049'
    +
    查看响应示例
    {
    +    "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回复:

    根对象

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为0
    ttlint1默认为1

    data对象

    字段类型内容备注
    live_usersnull不明
    my_infoobj个人关注的一些信息
    up_listarray最近更新的up主列表

    my_info对象

    字段类型内容备注
    dynsint个人动态
    facestr头像图像地址
    face_nftint不明
    followerint粉丝数量
    followingint我的关注
    level_infoobj本人等级内容
    midint账户mid
    namestr账户名称
    offcialobj认证信息
    space_bgstr账户个人中心的背景横幅图像地址
    vipobjvip信息

    my_info中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0
    current_expnum0
    next_expnum0

    my_info中的Official对象:

    字段类型内容备注
    rolenum认证类型用户认证类型一览
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum是否认证-1:无
    0:认证

    my_info中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间Unix时间戳(毫秒)
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    rolenum大角色类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    avatar_subscript_urlstr大会员角标地址
    tv_vip_statusnum电视大会员状态0:未开通
    tv_vip_pay_typenum电视大会员支付类型

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr空串
    img_label_uri_hantstr空串
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    data中的up_list数组对象

    字段属性内容备注
    facestrUP主头像
    has_updatebool最近更新是否更新?
    is_reserve_recallbool不明
    midintUP主mid
    unamestrup主昵称
    查看响应示例:
    {
    +  "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/nav.html b/docs/dynamic/nav.html new file mode 100644 index 0000000000..db12c6c33d --- /dev/null +++ b/docs/dynamic/nav.html @@ -0,0 +1,1135 @@ + + + + + + + + + 获取导航栏动态 | BAC Document + + + + +

    获取导航栏动态

    获取导航栏动态列表

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/nav

    请求方式: GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    update_baselinenum更新基线非必要获取新动态时使用
    offsetnum分页偏移量非必要翻页时使用

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    has_morebool是否有更多数据
    itemsarray数据数组
    offsetstr偏移量等于items中最后一条记录的id
    获取下一页时使用
    update_baselinestr更新基线等于items中第一条记录的id_str
    update_numnum本次获取获取到了多少条新动态在更新基线以上的动态条数

    data对象中items数组中的对象:

    字段类型内容备注
    authorobjUP主参见module_author对象
    coverstr封面URL
    id_strstr动态id
    pub_timestr发布时间文字表述的相对时间
    ridnum关联id视频即aid
    titlestr标题
    typenum动态类型8: 视频
    visiblebool是否可见true:可见
    false:不可见

    示例:

    获取导航栏动态列表

    curl "https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/nav" \
    +  -b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "has_more": true,
    +    "items": [
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg",
    +          "jump_url": "//space.bilibili.com/485703766/dynamic",
    +          "mid": 485703766,
    +          "name": "英伟达GeForce",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "英伟达GeForce官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 2000563200000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +              "label_theme": "ten_annual_vip",
    +              "path": "",
    +              "text": "十年大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 7,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 1
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/d38b239af580eb199b4bbe55d2388cb603f6e917.jpg",
    +        "id_str": "954636836111646759",
    +        "jump_url": "//www.bilibili.com/video/BV181421k7bu/",
    +        "pub_time": "1小时前",
    +        "rid": 1556082150,
    +        "title": "《异环》首曝丨即将支持 NVIDIA DLSS & 光线追踪技术",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/a220f26856924287c9dc4fa59c67ff38a2fcd20c.jpg",
    +        "id_str": "954616624230433048",
    +        "jump_url": "//www.bilibili.com/video/BV1RW421R7pE/",
    +        "pub_time": "2小时前",
    +        "rid": 1856122369,
    +        "title": "【夏色祭×可波】《カタオモイ》请感受这份传达给你的心意【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/1b7e4eaf6696038bb96ff38c6d13a6b3778d6a7c.jpg",
    +        "id_str": "954616624230432996",
    +        "jump_url": "//www.bilibili.com/video/BV15Z421u7MX/",
    +        "pub_time": "2小时前",
    +        "rid": 1156047704,
    +        "title": "Ready for my show!中日16位实力舞见高燃开场《唱》【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/5f22e930d0683b5e8d7a81f75b48fdb0c3a0f2e7.jpg",
    +        "id_str": "954616624229384275",
    +        "jump_url": "//www.bilibili.com/video/BV1hz421q7xP/",
    +        "pub_time": "2小时前",
    +        "rid": 1356132445,
    +        "title": "阿梓×尔东和小明倾情演出《暁の車》带你重温高达经典旋律【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/04b46154e833ea1349c3302f9b9c188a45b016e9.jpg",
    +        "id_str": "954616624228335667",
    +        "jump_url": "//www.bilibili.com/video/BV1LS421R7sr/",
    +        "pub_time": "2小时前",
    +        "rid": 1506089543,
    +        "title": "【Vox Akuma】声之恶魔低音爵士,深情演绎世界名曲【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/819d73ca191235e89a03c62889073d526b552fc2.jpg",
    +        "id_str": "954616624033300612",
    +        "jump_url": "//www.bilibili.com/video/BV1qM4m127wD/",
    +        "pub_time": "2小时前",
    +        "rid": 1306194854,
    +        "title": "【RAB】全 部 逮 捕!萝 莉 控 的 末 日【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/01dd21a65db17705479ee4ee550a79856847264e.jpg",
    +        "id_str": "954616624020717623",
    +        "jump_url": "//www.bilibili.com/video/BV1rZ421K7yT/",
    +        "pub_time": "2小时前",
    +        "rid": 1156076206,
    +        "title": "【可波×夏色祭】对你一见钟情啦!《5201314》开启绝赞告白【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/d79b28afc3273d5edb211d03ddc70c45999d57f7.jpg",
    +        "fold": {
    +          "ids": [
    +            "954616624019669009"
    +          ],
    +          "statement": "展开1条相关动态",
    +          "type": 3,
    +          "users": []
    +        },
    +        "id_str": "954616624019669032",
    +        "jump_url": "//www.bilibili.com/video/BV1oE421c7XV/",
    +        "pub_time": "2小时前",
    +        "rid": 1656233700,
    +        "title": "【洛天依】来自2024的《霜雪千年》还记否这一曲喜悲霜雪【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/93b809e050e639c9d8e8e379da96a4c2216ae755.jpg",
    +          "jump_url": "//space.bilibili.com/36081646/dynamic",
    +          "mid": 36081646,
    +          "name": "洛天依",
    +          "official": {
    +            "desc": "",
    +            "role": 2,
    +            "title": "2023年度原创音乐、洛天依官方账号",
    +            "type": 0
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1764777600000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/d79b28afc3273d5edb211d03ddc70c45999d57f7.jpg",
    +        "id_str": "954616624019669009",
    +        "jump_url": "//www.bilibili.com/video/BV1oE421c7XV/",
    +        "pub_time": "2小时前",
    +        "rid": 1656233700,
    +        "title": "【洛天依】来自2024的《霜雪千年》还记否这一曲喜悲霜雪【BML2024单品】",
    +        "type": 8,
    +        "visible": false
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/cbbbb6e35c7680261a8a1fb3f582e04de14cbb50.jpg",
    +        "id_str": "954616624002891844",
    +        "jump_url": "//www.bilibili.com/video/BV1Fb421H7YQ/",
    +        "pub_time": "2小时前",
    +        "rid": 1806140865,
    +        "title": "【ChiliChill】《我的悲伤是水做的》,描绘雨天的淡蓝色心情【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/b1f8744db9bad8a4a89bd9fa3fab0d128b347edb.jpg",
    +        "id_str": "954616623998697505",
    +        "jump_url": "//www.bilibili.com/video/BV12m421g759/",
    +        "pub_time": "2小时前",
    +        "rid": 1606234911,
    +        "title": "成为挣脱《Cage》的小鸟,露米Lumi深情吟唱人类希望之歌【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/52e82dc68f3cbbb598d27437c33e996718e07924.jpg",
    +        "id_str": "954616623995552002",
    +        "jump_url": "//www.bilibili.com/video/BV181421k74U/",
    +        "pub_time": "2小时前",
    +        "rid": 1556081716,
    +        "title": "型月组曲优雅串烧《若能看到明月》🌙🌙🌙【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/8558fe6746c43182b25f6a590f47b9673d47ba67.jpg",
    +        "id_str": "954616623994503209",
    +        "jump_url": "//www.bilibili.com/video/BV1jW421d7ce/",
    +        "pub_time": "2小时前",
    +        "rid": 1856192192,
    +        "title": "Finana Ryugu超甜演绎童年回忆《プレパレード》最清纯的恋爱预演~【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i2.hdslb.com/bfs/archive/1ebd8cbd38eb9db9451df9978b20bee445d8fea0.jpg",
    +        "id_str": "954616623993454708",
    +        "jump_url": "//www.bilibili.com/video/BV1cw4m1Y7Zs/",
    +        "pub_time": "2小时前",
    +        "rid": 1106145687,
    +        "title": "元气补给站《MORE!JUMP!MORE!》在BML舞台起跳!【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/bc1de2b7e27a5385e3e913fc552b86b744b49fb8.jpg",
    +        "id_str": "954616623990308904",
    +        "jump_url": "//www.bilibili.com/video/BV1QH4y1w7hC/",
    +        "pub_time": "2小时前",
    +        "rid": 1056107813,
    +        "title": "【星瞳】华丽演绎《迷宮バタフライ》🦋一曲重温童年之梦【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/63617f9210ab2e996f75e8e2fb46c5dc73aeed35.jpg",
    +        "id_str": "954616623980871832",
    +        "jump_url": "//www.bilibili.com/video/BV1L1421b7XJ/",
    +        "pub_time": "2小时前",
    +        "rid": 1556117158,
    +        "title": "奏响《葬送的破阵曲》,按捺不住战斗的心了!【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i1.hdslb.com/bfs/face/7cabb9c9576b4be8d52004d8a3a5450e5e062070.jpg",
    +          "jump_url": "//space.bilibili.com/403748305/dynamic",
    +          "mid": 403748305,
    +          "name": "BML制作指挥部",
    +          "official": {
    +            "desc": "",
    +            "role": 3,
    +            "title": "Bilibili Macro Link官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1750176000000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/c3c470e309acef1d8c8f2ce79ed753f9bca50879.jpg",
    +        "id_str": "954616623979823254",
    +        "jump_url": "//www.bilibili.com/video/BV1uy411B7Ca/",
    +        "pub_time": "2小时前",
    +        "rid": 1956028036,
    +        "title": "【猫MEME】转生成只能用MEME讲话的平凡上班族【BML2024单品】",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg",
    +          "jump_url": "//space.bilibili.com/407045223/dynamic",
    +          "mid": 407045223,
    +          "name": "二次元的中科院物理所",
    +          "official": {
    +            "desc": "",
    +            "role": 6,
    +            "title": "中国科学院物理研究所官方账号",
    +            "type": 1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 1745769600000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +              "label_theme": "annual_vip",
    +              "path": "",
    +              "text": "年度大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 3,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 1626364800,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/056db2ac79801d853bebcd41c247788d8ccdb795.jpg",
    +        "id_str": "954609313946533894",
    +        "jump_url": "//www.bilibili.com/video/BV1Wz421q7n5/",
    +        "pub_time": "3小时前",
    +        "rid": 1356075945,
    +        "title": "暑期不失约!第六季《科学公开课》震撼来袭!",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +          "jump_url": "//space.bilibili.com/686127/dynamic",
    +          "mid": 686127,
    +          "name": "籽岷",
    +          "official": {
    +            "desc": "",
    +            "role": 1,
    +            "title": "2023百大UP主、知名游戏UP主",
    +            "type": 0
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {},
    +              "icon_type": 1
    +            },
    +            "avatar_subscript": 1,
    +            "avatar_subscript_url": "",
    +            "due_date": 4845196800000,
    +            "label": {
    +              "bg_color": "#FB7299",
    +              "bg_style": 1,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png",
    +              "label_theme": "hundred_annual_vip",
    +              "path": "",
    +              "text": "百年大会员",
    +              "text_color": "#FFFFFF",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "#FB7299",
    +            "role": 15,
    +            "status": 1,
    +            "theme_type": 0,
    +            "tv_due_date": 1692288000,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 2,
    +            "vip_pay_type": 1
    +          }
    +        },
    +        "cover": "http://i1.hdslb.com/bfs/archive/170237c4589a086afd7d62823765de1cc7306555.jpg",
    +        "id_str": "954478850029387784",
    +        "jump_url": "//www.bilibili.com/video/BV1Jz421q7JH/",
    +        "pub_time": "11小时前",
    +        "rid": 1356097140,
    +        "title": "我的世界 冷门原版生物娘化 材质包",
    +        "type": 8,
    +        "visible": true
    +      },
    +      {
    +        "author": {
    +          "face": "https://i0.hdslb.com/bfs/face/22e6b4f3c9199b6f4397f0d8df916872d677557b.jpg",
    +          "jump_url": "//space.bilibili.com/625267185/dynamic",
    +          "mid": 625267185,
    +          "name": "零度解说",
    +          "official": {
    +            "desc": "",
    +            "role": 0,
    +            "title": "",
    +            "type": -1
    +          },
    +          "vip": {
    +            "avatar_icon": {
    +              "icon_resource": {}
    +            },
    +            "avatar_subscript": 0,
    +            "avatar_subscript_url": "",
    +            "due_date": 0,
    +            "label": {
    +              "bg_color": "",
    +              "bg_style": 0,
    +              "border_color": "",
    +              "img_label_uri_hans": "",
    +              "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +              "img_label_uri_hant": "",
    +              "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +              "label_theme": "",
    +              "path": "",
    +              "text": "",
    +              "text_color": "",
    +              "use_img_label": true
    +            },
    +            "nickname_color": "",
    +            "role": 0,
    +            "status": 0,
    +            "theme_type": 0,
    +            "tv_due_date": 0,
    +            "tv_vip_pay_type": 0,
    +            "tv_vip_status": 0,
    +            "type": 0,
    +            "vip_pay_type": 0
    +          }
    +        },
    +        "cover": "http://i0.hdslb.com/bfs/archive/6f0397b546ba4da15fcd9a2e06cbcc1f68e5545c.jpg",
    +        "id_str": "954376956212674594",
    +        "jump_url": "//www.bilibili.com/video/BV141421b7sf/",
    +        "pub_time": "昨天 20:30",
    +        "rid": 1556122058,
    +        "title": "快速提升上网速度!免费又好用,适用 Windows 10 /11,非常简单!!(2024) | 零度解说",
    +        "type": 8,
    +        "visible": true
    +      }
    +    ],
    +    "offset": "954376956212674594",
    +    "update_baseline": "954659517801431040",
    +    "update_num": 0
    +  }
    +}
    +
    + + + diff --git a/docs/dynamic/publish.html b/docs/dynamic/publish.html new file mode 100644 index 0000000000..e8957b2370 --- /dev/null +++ b/docs/dynamic/publish.html @@ -0,0 +1,405 @@ + + + + + + + + + 发布动态 | BAC Document + + + + +

    发布动态

    为图片动态上传图片

    https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    注意:非日常类型像素宽高必须大于420

    正文参数 (multipart/form-data):

    参数名类型内容必要性备注
    file_upfile需要上传的图片文件必要格式仅支持jpg png gif
    categorystr图片类型必要daily:日常(动态)
    draw:绘画(画友)
    cos:摄影(COSPLAY)
    bizstr
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -1:未添加图片
    -2:参数错误
    -3:图片尺寸过小
    -4:账号未登录
    -7:图片信息错误
    messagestr错误信息默认为success
    dataobj信息本体仅在正确时既code=0时为有效信息

    data对象:

    字段类型内容备注
    image_urlstr已上传图片url
    image_widthnum已上传图片宽度像素
    image_heightnum已上传图片高度像素

    示例:

    上传了一张图片test.png类型为日常

    curl 'https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs' \
    +-F 'file_up=@test.png' \
    +-F 'category=daily'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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项选项投票图片非必要
    csrfstrCSRF Token(位于cookie)非必要头次见非必要的csrf

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    5100001: 参数错误
    msgstr错误信息成功为空
    messagestr错误信息跟上面那个一模一样
    dataobj信息本体仅在正确时既code=0时为有效信息

    data对象:

    字段类型内容备注
    vote_idnum投票id
    _gt_num0

    示例:

    创建一个标题为是否自愿开学持续七天的纯文本投票

    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'
    +
    查看响应示例:
    {
    +    "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_idnum0必要
    typenum4必要
    ridnum0必要
    contentstr动态内容必要
    up_choose_commentnum0非必要
    up_close_commentnum0非必要
    extensionjson位置信息非必要
    at_uidsstr动态中 at 到的用户的 uid非必要使用逗号,分隔
    ctrlarray特殊格式控制 (如 at 别人时的蓝字体和链接)非必要
    csrf_tokenstrCSRF Token (位于 cookie)非必要
    csrfstrCSRF Token (位于 cookie)非必要

    extension参数值:

    {
    +    "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单个对象(注意用的时候是数组出现):

    参数名类型内容
    locationnum从全文第几个字开始变蓝
    typenum1 (可能1代表链接到用户uid)
    lengthnum这一段变蓝多少字
    datastr链接目标(被at人的uid)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为空
    dataobj数据本体

    data对象:

    字段类型内容备注
    resultnum0
    errmsgstr像是服务器日志一样的东西
    dynamic_idnum动态 id
    create_resultnum1
    dynamic_id_strstr动态 id字符串格式
    _gt_num0
    查看示例(纯文本)
    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=******'
    +
    {
    +  "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

    [
    +  { "location": 11, "type": 1, "length": 9, "data": "15858903" },
    +  { "location": 20, "type": 1, "length": 9, "data": "293793435" }
    +]
    +

    命令

    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参数

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)必要

    正文参数(application/json):

    参数名类型内容必要性备注
    dyn_reqobj请求本体必要

    dyn_req对象:

    参数名类型内容必要性备注
    attach_cardobj特殊卡片非必要如直播预约等
    contentobj动态内容必要
    metaobj元信息非必要大概是来源信息
    scenenum动态类型?必要纯文本: 1
    带图: 2
    picsarray携带图片非必要最多九个
    topicobj话题非必要
    optionobj互动设置非必要没有此项时默认开启评论区
    upload_idstr客户端生成的非必要内容为发送人mid+当前秒级时间戳+四位随机整数,中间用_隔开

    dyn_req对象的meta对象,大概是来源信息,很简单就不详细列表了:

    {
    +    "app_meta": {
    +        "from": "create.dynamic.web", 
    +        "mobi_app": "web"
    +    }
    +}
    +

    dyn_req对象的content对象:

    参数名类型内容必要性备注
    contentsarray动态组件对象有序数组必要

    contents数组内每一个动态组件对象:

    {
    +    "raw_text": "ui上直接显示的字符串",
    +    "type": 组件类型id,
    +    "biz_id": "动态组件的内容id转字符串,比如投票id"
    +}
    +

    动态组件类型:

    组件名typebiz_id含义
    纯文本1
    AT人2AT人的mid
    表情9
    投票4投票id

    dyn_req对象的topic对象

    参数名类型内容必要性备注
    from_sourcestr来源id?必要网页版直接选为dyn.web.list
    from_topic_idnum0必要
    idnum话题id必要
    namestr话题名必要

    dyn_req对象的pics数组的每一项对象:

    参数名类型内容必要性备注
    img_heightnum图片高非必要这个东西会直接原封不动传到前端,比如你都写0在网页上就看不见了,但是还会加载
    img_widthnum图片宽非必要同上
    img_sizefloat图片文件大小(KB)非必要
    img_srcstr图片bfs链接必要

    dyn_req对象的option对象:

    参数名类型内容必要性备注
    up_choose_commentnum精选评论flag非必要1: 开启
    close_commentnum关闭评论flag非必要同上,与上二选一

    dyn_req对象的topic对象:

    参数名类型内容必要性备注
    from_sourcestrdyn.web.list非必要作用不明
    from_topic_idnum0非必要作用不明
    idnum话题id必要
    namestr话题名非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为空
    dataobj数据本体

    data对象:

    当Cookie中含有任意的buvid3时,比较干净简洁:

    字段类型内容备注
    resultnum0
    messagestr错误信息
    dyn_idnum动态 id
    dyn_id_strstr动态 id字符串格式
    dyn_typenum动态类型不带图片: 4
    带图片: 2
    其他请参考 get_dynamic_detail.md
    _gt_num0

    警告:下面的内容又乱又杂,而且绝大多数情况用不到,我建议大家用这个接口的时候随便带一个buvid3的cookie屏蔽掉它们算了.

    当Cookie中不含有buvid3时,较上述字段多出一个fake_card对象,大概是移动端用的卡片:

    字段类型内容备注
    fake_cardobj0又多又乱又杂

    fake_card对象:

    字段类型内容备注
    card_typenum卡片类型不带图片: 4
    带图片: 2
    其他请参考 获取特定动态卡片信息
    modulesarray卡片组件列表
    extendobj其他杂项信息

    fake_card对象的modules数组中每一项对象:

    字段类型内容备注
    module_typenum组件类型1: 作者信息
    3: 动态内容
    其他有待发现
    ModuleItemobj卡片组件

    ModuleItem对象与module_type对应关系:

    module_typeModuleItem含有的唯一一个key备注
    1module_author作者信息
    3module_desc动态内容
    4module_dynamic携带图片等
    9module_stat不明,貌似一直都是空对象

    ModuleItemmodule_author:

    字段类型内容备注
    midnum发送者mid
    ptime_label_textstr发送时间(人类可读形式)肯定是刚刚
    authorobj作者详细信息请参考用户基本信息,不再赘述..

    ModuleItemmodule_desc:

    字段类型内容备注
    descarray动态组件列表
    textstr动态纯文本形式

    module_descdesc数组:

    类型备注
    0obj第0个动态组件
    nobj第n+1个动态组件组件
    ...obj...

    desc数组的每一项:

    字段类型内容备注
    textstr该组件对外显示的纯文本对应请求时该组件的raw_text
    typenum组件类型对应请求时该组件的type
    ridstr组件内容的id,例如@人的mid根据需要出现,比如纯文本就没有
    uristrb站自定义bilibili://协议链接,用于@人点击跳转等根据需要出现,比如纯文本就没有

    ModuleItemmodule_dynamic:

    字段类型内容备注
    typenum不知道是什么的类型5: 图片
    其他未知
    ModuleItemobj组件?怎么还有套娃的?

    module_dynamictype字段为5时:

    module_dynamicModuleItem有唯一keydyn_draw:

    字段类型内容备注
    itemsarray图片数组与请求部分dyn_req.pics一致
    idnum这条图片动态所对应的相簿doc_id可以参考本文档的相簿基本信息

    fake_cardextend对象:

    字段类型内容备注
    dyn_id_strstr动态id字符串形式
    business_idstr未知根据情况出现
    orif_img_urlstr封面图url(如果有)
    share_typestr一般为3未知
    share_scenestr一般为dynamic未知
    is_fast_sharebool一般为true未知
    dyn_typenum动态类型不带图片: 4
    带图片: 2
    其他待探索
    uidnum发送者mid
    card_urlstrb站自定义bilibili://协议链接,指向该条动态
    descarray动态组件列表,重复了一遍module_desc的desc数组
    replyobj评论区相关

    extendreply对象:

    字段类型内容备注
    uristrb站自定义bilibili://协议链接,指向该条动态评论区
    paramsarray未知
    查看示例(不带`buvid3`)
    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
    +    }
    +}'
    +

    响应:

    {
    +  "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

    然后关闭评论区

    命令

    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
    +    }
    +}'
    +

    响应:

    {
    +  "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_idfile定时动态(草稿)id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体正常为空对象
    messagestr错误消息正常为"0"
    ttlnum1不明
    查看示例
    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;'
    +
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{}
    +}
    +
    + + + diff --git a/docs/dynamic/space.html b/docs/dynamic/space.html new file mode 100644 index 0000000000..7d7fedbdb0 --- /dev/null +++ b/docs/dynamic/space.html @@ -0,0 +1,1141 @@ + + + + + + + + + 获取用户空间动态 | BAC Document + + + + +

    获取用户空间动态

    https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space

    请求方式:GET

    是否需要登录:

    URL参数

    参数名类型必填内容备注
    offsetstr分页偏移量
    host_midstr用户UID
    timezone_offsetnum-480
    featuresstritemOpusStyle

    Json回复

    参照 获取动态列表

    请求示例

    curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?host_mid=1'
    +

    响应示例

    点击查看
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "has_more": false,
    +        "items": [
    +            {
    +                "basic": {
    +                    "comment_id_str": "463864834570585963",
    +                    "comment_type": 17,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "463864834566075427"
    +                },
    +                "id_str": "463864834570585963",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2020-12-02",
    +                        "pub_ts": 1606840348,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "orig_text": "好家伙",
    +                                    "text": "好家伙",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                }
    +                            ],
    +                            "text": "好家伙"
    +                        },
    +                        "major": null,
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 979,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 81,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 7694,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "orig": {
    +                    "basic": {
    +                        "comment_id_str": "",
    +                        "comment_type": 0,
    +                        "like_icon": {
    +                            "action_url": "",
    +                            "end_url": "",
    +                            "id": 0,
    +                            "start_url": ""
    +                        },
    +                        "rid_str": ""
    +                    },
    +                    "id_str": "459720423056997502",
    +                    "modules": {
    +                        "module_author": {
    +                            "decorate": {
    +                                "card_url": "http://i0.hdslb.com/bfs/garb/item/3fc3f5914f0bcbefac9e9fa96aec454cf347287a.png",
    +                                "fan": {
    +                                    "color": "#ec3d3d",
    +                                    "is_fan": true,
    +                                    "num_str": "004156",
    +                                    "number": 4156
    +                                },
    +                                "id": 1418,
    +                                "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/1431?navhide=1&mid=249608727&from=dynamic&isdiy=0",
    +                                "name": "2020拜年祭粉丝专属",
    +                                "type": 3
    +                            },
    +                            "face": "https://i0.hdslb.com/bfs/face/e422a095e58305218e2745714ceb4c9754e752a7.jpg",
    +                            "face_nft": false,
    +                            "following": null,
    +                            "jump_url": "//space.bilibili.com/249608727/dynamic",
    +                            "label": "",
    +                            "mid": 249608727,
    +                            "name": "杨可爱Ukulele",
    +                            "official_verify": {
    +                                "desc": "全民音乐UP主年度30强",
    +                                "type": 0
    +                            },
    +                            "pendant": {
    +                                "expire": 0,
    +                                "image": "https://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png",
    +                                "image_enhance": "https://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png",
    +                                "image_enhance_frame": "",
    +                                "name": "梦塔·雪谜城",
    +                                "pid": 299
    +                            },
    +                            "pub_action": "投稿了视频",
    +                            "pub_time": "",
    +                            "pub_ts": 1605875402,
    +                            "type": "AUTHOR_TYPE_NORMAL",
    +                            "vip": {
    +                                "avatar_subscript": 1,
    +                                "avatar_subscript_url": "",
    +                                "due_date": 1793462400000,
    +                                "label": {
    +                                    "bg_color": "#FB7299",
    +                                    "bg_style": 1,
    +                                    "border_color": "",
    +                                    "img_label_uri_hans": "",
    +                                    "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                    "img_label_uri_hant": "",
    +                                    "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                    "label_theme": "annual_vip",
    +                                    "path": "",
    +                                    "text": "年度大会员",
    +                                    "text_color": "#FFFFFF",
    +                                    "use_img_label": true
    +                                },
    +                                "nickname_color": "#FB7299",
    +                                "status": 1,
    +                                "theme_type": 0,
    +                                "type": 2
    +                            }
    +                        },
    +                        "module_dynamic": {
    +                            "additional": null,
    +                            "desc": {
    +                                "rich_text_nodes": [
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23%E9%87%91%E7%A7%8B%E9%9F%B3%E4%B9%90%E5%AD%A3%23",
    +                                        "orig_text": "#金秋音乐季#",
    +                                        "text": "#金秋音乐季#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "orig_text": "\n大家推荐给我很多神曲 一直没机会做\n这不\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\n改编成中国风之后 好像 有点 串味儿了\n大家三连之后再细细观看可好?",
    +                                        "text": "\n大家推荐给我很多神曲 一直没机会做\n这不\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\n改编成中国风之后 好像 有点 串味儿了\n大家三连之后再细细观看可好?",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    }
    +                                ],
    +                                "text": "#金秋音乐季#\n大家推荐给我很多神曲 一直没机会做\n这不\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\n改编成中国风之后 好像 有点 串味儿了\n大家三连之后再细细观看可好?"
    +                            },
    +                            "major": {
    +                                "archive": {
    +                                    "aid": "970285943",
    +                                    "badge": {
    +                                        "bg_color": "#FB7299",
    +                                        "color": "#FFFFFF",
    +                                        "text": "投稿视频"
    +                                    },
    +                                    "bvid": "BV12p4y167Kq",
    +                                    "cover": "http://i0.hdslb.com/bfs/archive/20c86c66df71770a7a91cc0871b455d1c582094b.jpg",
    +                                    "desc": "大家好,今天想要跟大家分享我的快乐源泉,以及去KTV的必点神曲\n大家如果觉得十首看了还不过瘾的话\n这样\n点赞过十万 热评第一说出啥改编我就出啥 (前提是我做得来...\n\n(“土味”只是一个外号,它们其实不土,它们只是快乐的传递者\n   大部分的填词都是根据原版歌曲填哒,偶尔有些小发挥,大家当看娱乐视频就好啦)\n--------------------\n原唱:崔伟立、凤凰传奇、Vicetone&Tony Igy、神马乐团、筷子兄弟、慕容晓晓、李佳璐\n改编编曲/演唱/尤克里里:杨可爱\n改编填词:不迟等\n混音:",
    +                                    "disable_preview": 0,
    +                                    "duration_text": "06:12",
    +                                    "jump_url": "//www.bilibili.com/video/BV12p4y167Kq",
    +                                    "stat": {
    +                                        "danmaku": "3519",
    +                                        "play": "153万"
    +                                    },
    +                                    "title": "没内味儿?我把十五年最火的10首土味神曲做成了一首中国风..",
    +                                    "type": 1
    +                                },
    +                                "type": "MAJOR_TYPE_ARCHIVE"
    +                            },
    +                            "topic": null
    +                        }
    +                    },
    +                    "type": "DYNAMIC_TYPE_AV",
    +                    "visible": true
    +                },
    +                "type": "DYNAMIC_TYPE_FORWARD",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "269459814293507419",
    +                    "comment_type": 17,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "269459814290043403"
    +                },
    +                "id_str": "269459814293507419",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2019-06-27",
    +                        "pub_ts": 1561576902,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "orig_text": "来一锄头!",
    +                                    "text": "来一锄头!",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                }
    +                            ],
    +                            "text": "来一锄头!"
    +                        },
    +                        "major": null,
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 1233,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 32,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 8428,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "orig": {
    +                    "basic": {
    +                        "comment_id_str": "",
    +                        "comment_type": 0,
    +                        "like_icon": {
    +                            "action_url": "",
    +                            "end_url": "",
    +                            "id": 0,
    +                            "start_url": ""
    +                        },
    +                        "rid_str": ""
    +                    },
    +                    "id_str": 4038269986840689,
    +                    "modules": {
    +                        "module_author": {
    +                            "face": "http://i0.hdslb.com/bfs/face/210cac322eb3a689f63f3a19d59ea641347c3c52.jpg",
    +                            "face_nft": false,
    +                            "following": null,
    +                            "jump_url": "//space.bilibili.com/10410/dynamic",
    +                            "label": "",
    +                            "mid": 10410,
    +                            "name": "hotfloor",
    +                            "official_verify": {
    +                                "desc": "",
    +                                "type": -1
    +                            },
    +                            "pendant": {
    +                                "expire": 0,
    +                                "image": "",
    +                                "image_enhance": "",
    +                                "image_enhance_frame": "",
    +                                "name": "",
    +                                "pid": 0
    +                            },
    +                            "pub_action": "投稿了视频",
    +                            "pub_time": "",
    +                            "pub_ts": 1327584664,
    +                            "type": "AUTHOR_TYPE_NORMAL",
    +                            "vip": {
    +                                "avatar_subscript": 1,
    +                                "avatar_subscript_url": "",
    +                                "due_date": 1700150400000,
    +                                "label": {
    +                                    "bg_color": "#FB7299",
    +                                    "bg_style": 1,
    +                                    "border_color": "",
    +                                    "img_label_uri_hans": "",
    +                                    "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                    "img_label_uri_hant": "",
    +                                    "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                    "label_theme": "annual_vip",
    +                                    "path": "",
    +                                    "text": "年度大会员",
    +                                    "text_color": "#FFFFFF",
    +                                    "use_img_label": true
    +                                },
    +                                "nickname_color": "#FB7299",
    +                                "status": 1,
    +                                "theme_type": 0,
    +                                "type": 2
    +                            }
    +                        },
    +                        "module_dynamic": {
    +                            "additional": null,
    +                            "desc": null,
    +                            "major": {
    +                                "archive": {
    +                                    "aid": "205419",
    +                                    "badge": {
    +                                        "bg_color": "#FB7299",
    +                                        "color": "#FFFFFF",
    +                                        "text": "投稿视频"
    +                                    },
    +                                    "bvid": "BV1bx411w7SF",
    +                                    "cover": "http://i1.hdslb.com/bfs/archive/5607be9a736a426ae21e3e59fad664296f91df8e.png",
    +                                    "desc": "原创 拖到今天才做完了……总之祝各位新年快乐,做这个只是为了感谢这一年陪伴我们的各种新番,与新番一起成长的UP主们,和浪费我们大半人生的bili,谢谢你们带给我们的欢笑和泪水,即使是世界末日也不会忘记…… PS.感谢哦拖拖帮忙取标题 下载:http://pan.baidu.com/s/1c0ImLva 密码:8xb4 原曲MV联动av210810 自己的MADlist--&gt;mylist27438",
    +                                    "disable_preview": 0,
    +                                    "duration_text": "04:49",
    +                                    "jump_url": "//www.bilibili.com/video/BV1bx411w7SF",
    +                                    "stat": {
    +                                        "danmaku": "2.4万",
    +                                        "play": "54.6万"
    +                                    },
    +                                    "title": "【MAD】[送给所有热爱bili的各位]干杯",
    +                                    "type": 1
    +                                },
    +                                "type": "MAJOR_TYPE_ARCHIVE"
    +                            },
    +                            "topic": null
    +                        }
    +                    },
    +                    "type": "DYNAMIC_TYPE_AV",
    +                    "visible": true
    +                },
    +                "type": "DYNAMIC_TYPE_FORWARD",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "26050777",
    +                    "comment_type": 11,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "26050777"
    +                },
    +                "id_str": "269003035929570655",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2019-06-25",
    +                        "pub_ts": 1561470550,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "jump_url": "//search.bilibili.com/all?keyword=%23%E5%B9%B2%E6%9D%AF%E5%8D%81%E5%91%A8%E5%B9%B4%23",
    +                                    "orig_text": "#干杯十周年#",
    +                                    "text": "#干杯十周年#",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                },
    +                                {
    +                                    "orig_text": "Yo,My Friend,Nice to see you again.",
    +                                    "text": "Yo,My Friend,Nice to see you again.",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "jump_url": "https://www.bilibili.com/blackboard/bilibili2009.html",
    +                                    "orig_text": "https://www.bilibili.com/blackboard/bilibili2009.html",
    +                                    "text": "网页链接",
    +                                    "type": "RICH_TEXT_NODE_TYPE_WEB"
    +                                }
    +                            ],
    +                            "text": "#干杯十周年#Yo,My Friend,Nice to see you again.https://www.bilibili.com/blackboard/bilibili2009.html"
    +                        },
    +                        "major": {
    +                            "draw": {
    +                                "id": 26050777,
    +                                "items": [
    +                                    {
    +                                        "height": 1360,
    +                                        "size": 500,
    +                                        "src": "https://i0.hdslb.com/bfs/active/1ddb2cb9a1edb74ba7c4f0e15c1bbef9dc3ce548.jpg",
    +                                        "tags": [],
    +                                        "width": 935
    +                                    }
    +                                ]
    +                            },
    +                            "type": "MAJOR_TYPE_DRAW"
    +                        },
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 1515,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 214,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 11041,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "type": "DYNAMIC_TYPE_DRAW",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "264471510427272642",
    +                    "comment_type": 17,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "264471510424746690"
    +                },
    +                "id_str": "264471510427272642",
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "",
    +                        "pub_location_text": "",
    +                        "pub_time": "2019-06-13",
    +                        "pub_ts": 1560415472,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": {
    +                            "rich_text_nodes": [
    +                                {
    +                                    "orig_text": "圈错号了",
    +                                    "text": "圈错号了",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "emoji": {
    +                                        "icon_url": "http://i0.hdslb.com/bfs/emote/33ad6000d9f9f168a0976bc60937786f239e5d8c.png",
    +                                        "size": 1,
    +                                        "text": "[呆]",
    +                                        "type": 1
    +                                    },
    +                                    "orig_text": "[呆]",
    +                                    "text": "[呆]",
    +                                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                                },
    +                                {
    +                                    "orig_text": "//",
    +                                    "text": "//",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "orig_text": "@柴刀娘木木",
    +                                    "rid": "9",
    +                                    "text": "@柴刀娘木木",
    +                                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                                },
    +                                {
    +                                    "orig_text": ":",
    +                                    "text": ":",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "orig_text": "@bishi",
    +                                    "rid": "1",
    +                                    "text": "@bishi",
    +                                    "type": "RICH_TEXT_NODE_TYPE_AT"
    +                                },
    +                                {
    +                                    "orig_text": "我来组成分母,测试欧气,我要是中了再抽人送出",
    +                                    "text": "我来组成分母,测试欧气,我要是中了再抽人送出",
    +                                    "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                },
    +                                {
    +                                    "emoji": {
    +                                        "icon_url": "http://i0.hdslb.com/bfs/emote/6c49d226e76c42cd8002abc47b3112bc5a92f66a.png",
    +                                        "size": 1,
    +                                        "text": "[偷笑]",
    +                                        "type": 1
    +                                    },
    +                                    "orig_text": "[偷笑]",
    +                                    "text": "[偷笑]",
    +                                    "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                                }
    +                            ],
    +                            "text": "圈错号了[呆]//@柴刀娘木木:@bishi我来组成分母,测试欧气,我要是中了再抽人送出[偷笑]"
    +                        },
    +                        "major": null,
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 1013,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 109,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 4751,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "orig": {
    +                    "basic": {
    +                        "comment_id_str": "",
    +                        "comment_type": 0,
    +                        "like_icon": {
    +                            "action_url": "",
    +                            "end_url": "",
    +                            "id": 0,
    +                            "start_url": ""
    +                        },
    +                        "rid_str": ""
    +                    },
    +                    "id_str": "264180341709040397",
    +                    "modules": {
    +                        "module_author": {
    +                            "decorate": {
    +                                "card_url": "http://i0.hdslb.com/bfs/garb/item/fe745063c05881face209a772d17bb056a4034f1.png",
    +                                "fan": {
    +                                    "color": "#6857ea",
    +                                    "is_fan": true,
    +                                    "num_str": "001647",
    +                                    "number": 1647
    +                                },
    +                                "id": 5203,
    +                                "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5235?navhide=1&mid=12&from=dynamic&isdiy=0",
    +                                "name": "BML2021粉丝专属",
    +                                "type": 3
    +                            },
    +                            "face": "http://i2.hdslb.com/bfs/face/4f640086bc17e180faf8ad6b86b5bf4be24eb9f1.jpg",
    +                            "face_nft": false,
    +                            "following": null,
    +                            "jump_url": "//space.bilibili.com/12/dynamic",
    +                            "label": "",
    +                            "mid": 12,
    +                            "name": "MagicBear",
    +                            "official_verify": {
    +                                "desc": "",
    +                                "type": 0
    +                            },
    +                            "pendant": {
    +                                "expire": 0,
    +                                "image": "https://i0.hdslb.com/bfs/face/a959c72407b2ac553d4328fd76d55d0134e20f65.png",
    +                                "image_enhance": "https://i0.hdslb.com/bfs/face/a959c72407b2ac553d4328fd76d55d0134e20f65.png",
    +                                "image_enhance_frame": "",
    +                                "name": "异常生物",
    +                                "pid": 460
    +                            },
    +                            "pub_action": "",
    +                            "pub_time": "",
    +                            "pub_ts": 1560347679,
    +                            "type": "AUTHOR_TYPE_NORMAL",
    +                            "vip": {
    +                                "avatar_subscript": 1,
    +                                "avatar_subscript_url": "",
    +                                "due_date": 1761580800000,
    +                                "label": {
    +                                    "bg_color": "#FB7299",
    +                                    "bg_style": 1,
    +                                    "border_color": "",
    +                                    "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
    +                                    "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
    +                                    "img_label_uri_hant": "",
    +                                    "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png",
    +                                    "label_theme": "annual_vip",
    +                                    "path": "",
    +                                    "text": "年度大会员",
    +                                    "text_color": "#FFFFFF",
    +                                    "use_img_label": true
    +                                },
    +                                "nickname_color": "#FB7299",
    +                                "status": 1,
    +                                "theme_type": 0,
    +                                "type": 2
    +                            }
    +                        },
    +                        "module_dynamic": {
    +                            "additional": null,
    +                            "desc": {
    +                                "rich_text_nodes": [
    +                                    {
    +                                        "orig_text": "​互动抽奖",
    +                                        "text": "​互动抽奖",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    },
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23%E8%BD%AC%E5%8F%91%E6%8A%BD%E5%A5%96%23",
    +                                        "orig_text": "#转发抽奖#",
    +                                        "text": "#转发抽奖#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23PC%E7%A1%AC%E4%BB%B6%23",
    +                                        "orig_text": "#PC硬件#",
    +                                        "text": "#PC硬件#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "jump_url": "//search.bilibili.com/all?keyword=%23%E6%97%A7%E8%B4%A7%E6%B8%85%E7%90%86%E8%AE%A1%E5%88%92%23",
    +                                        "orig_text": "#旧货清理计划#",
    +                                        "text": "#旧货清理计划#",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TOPIC"
    +                                    },
    +                                    {
    +                                        "orig_text": " 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e ",
    +                                        "text": " 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e ",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    },
    +                                    {
    +                                        "emoji": {
    +                                            "icon_url": "http://i0.hdslb.com/bfs/emote/6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png",
    +                                            "size": 1,
    +                                            "text": "[tv_doge]",
    +                                            "type": 1
    +                                        },
    +                                        "orig_text": "[tv_doge]",
    +                                        "text": "[tv_doge]",
    +                                        "type": "RICH_TEXT_NODE_TYPE_EMOJI"
    +                                    },
    +                                    {
    +                                        "orig_text": " 关注并转发抽奖送出",
    +                                        "text": " 关注并转发抽奖送出",
    +                                        "type": "RICH_TEXT_NODE_TYPE_TEXT"
    +                                    }
    +                                ],
    +                                "text": "​互动抽奖#转发抽奖##PC硬件##旧货清理计划# 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e [tv_doge] 关注并转发抽奖送出"
    +                            },
    +                            "major": {
    +                                "draw": {
    +                                    "id": 24303852,
    +                                    "items": [
    +                                        {
    +                                            "height": 1242,
    +                                            "size": 150.93652,
    +                                            "src": "https://i0.hdslb.com/bfs/album/cd767602a291a5b7d4deebd8c65ebeeb0dfce1a2.jpg",
    +                                            "tags": [],
    +                                            "width": 2688
    +                                        }
    +                                    ]
    +                                },
    +                                "type": "MAJOR_TYPE_DRAW"
    +                            },
    +                            "topic": null
    +                        }
    +                    },
    +                    "type": "DYNAMIC_TYPE_DRAW",
    +                    "visible": true
    +                },
    +                "type": "DYNAMIC_TYPE_FORWARD",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "55",
    +                    "comment_type": 1,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "55"
    +                },
    +                "id_str": 76690937085980,
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "投稿了视频",
    +                        "pub_location_text": "",
    +                        "pub_time": "2009-07-13",
    +                        "pub_ts": 1247496094,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": null,
    +                        "major": {
    +                            "archive": {
    +                                "aid": "55",
    +                                "badge": {
    +                                    "bg_color": "#FB7299",
    +                                    "color": "#FFFFFF",
    +                                    "text": "投稿视频"
    +                                },
    +                                "bvid": "BV1xx411c7Ug",
    +                                "cover": "http://i0.hdslb.com/bfs/archive/c392288c19bbdf3762919774bce01c76dc346344.jpg",
    +                                "desc": "没有听过这首歌的话会是人参的一大遗憾呢..(望天",
    +                                "disable_preview": 0,
    +                                "duration_text": "01:38",
    +                                "jump_url": "//www.bilibili.com/video/BV1xx411c7Ug",
    +                                "stat": {
    +                                    "danmaku": "2965",
    +                                    "play": "116.6万"
    +                                },
    +                                "title": "【天哥版】最春哥",
    +                                "type": 1
    +                            },
    +                            "type": "MAJOR_TYPE_ARCHIVE"
    +                        },
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 20434,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 585,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 27958,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "type": "DYNAMIC_TYPE_AV",
    +                "visible": true
    +            },
    +            {
    +                "basic": {
    +                    "comment_id_str": "16",
    +                    "comment_type": 1,
    +                    "like_icon": {
    +                        "action_url": "",
    +                        "end_url": "",
    +                        "id": 0,
    +                        "start_url": ""
    +                    },
    +                    "rid_str": "16"
    +                },
    +                "id_str": 55783037337604,
    +                "modules": {
    +                    "module_author": {
    +                        "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +                        "face_nft": false,
    +                        "following": null,
    +                        "jump_url": "//space.bilibili.com/1/dynamic",
    +                        "label": "",
    +                        "mid": 1,
    +                        "name": "bishi",
    +                        "official_verify": {
    +                            "desc": "",
    +                            "type": -1
    +                        },
    +                        "pendant": {
    +                            "expire": 0,
    +                            "image": "",
    +                            "image_enhance": "",
    +                            "image_enhance_frame": "",
    +                            "name": "",
    +                            "pid": 0
    +                        },
    +                        "pub_action": "投稿了视频",
    +                        "pub_location_text": "",
    +                        "pub_time": "2009-07-09",
    +                        "pub_ts": 1247073333,
    +                        "type": "AUTHOR_TYPE_NORMAL",
    +                        "vip": {
    +                            "avatar_subscript": 1,
    +                            "avatar_subscript_url": "",
    +                            "due_date": 1816099200000,
    +                            "label": {
    +                                "bg_color": "#FB7299",
    +                                "bg_style": 1,
    +                                "border_color": "",
    +                                "img_label_uri_hans": "",
    +                                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
    +                                "img_label_uri_hant": "",
    +                                "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
    +                                "label_theme": "annual_vip",
    +                                "path": "",
    +                                "text": "年度大会员",
    +                                "text_color": "#FFFFFF",
    +                                "use_img_label": true
    +                            },
    +                            "nickname_color": "#FB7299",
    +                            "status": 1,
    +                            "theme_type": 0,
    +                            "type": 2
    +                        }
    +                    },
    +                    "module_dynamic": {
    +                        "additional": null,
    +                        "desc": null,
    +                        "major": {
    +                            "archive": {
    +                                "aid": "16",
    +                                "badge": {
    +                                    "bg_color": "#FB7299",
    +                                    "color": "#FFFFFF",
    +                                    "text": "投稿视频"
    +                                },
    +                                "bvid": "BV1xx411c7mi",
    +                                "cover": "http://i1.hdslb.com/bfs/archive/ef521697c031bd2b0aab5c8aab3abe1ea0ca63b9.jpg",
    +                                "desc": "CRUCIS FATAL FAKE : Fate Stay Night的同人格斗游戏. MV制作 : yaomenghua 天下格斗之同人堂",
    +                                "disable_preview": 0,
    +                                "duration_text": "09:43",
    +                                "jump_url": "//www.bilibili.com/video/BV1xx411c7mi",
    +                                "stat": {
    +                                    "danmaku": "6205",
    +                                    "play": "141.8万"
    +                                },
    +                                "title": "【FATE相关】CRUCIS FATAL FAKE MV 《Faker》",
    +                                "type": 1
    +                            },
    +                            "type": "MAJOR_TYPE_ARCHIVE"
    +                        },
    +                        "topic": null
    +                    },
    +                    "module_more": {
    +                        "three_point_items": [
    +                            {
    +                                "label": "举报",
    +                                "type": "THREE_POINT_REPORT"
    +                            }
    +                        ]
    +                    },
    +                    "module_stat": {
    +                        "comment": {
    +                            "count": 13354,
    +                            "forbidden": false
    +                        },
    +                        "forward": {
    +                            "count": 473,
    +                            "forbidden": false
    +                        },
    +                        "like": {
    +                            "count": 39657,
    +                            "forbidden": false,
    +                            "status": false
    +                        }
    +                    }
    +                },
    +                "type": "DYNAMIC_TYPE_AV",
    +                "visible": true
    +            }
    +        ],
    +        "offset": "",
    +        "update_baseline": "",
    +        "update_num": 0
    +    }
    +}
    +
    + + + diff --git a/docs/dynamic/tag_dynamics.html b/docs/dynamic/tag_dynamics.html new file mode 100644 index 0000000000..c36dfdc57b --- /dev/null +++ b/docs/dynamic/tag_dynamics.html @@ -0,0 +1,7829 @@ + + + + + + + + + 话题下特定动态信息 | BAC Document + + + + +

    话题下特定动态信息

    获取包含置顶及热门的动态列表

    https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    topic_namestr话题名称必要(可选)topic_id与topic_name任选一个
    topic_idnum话题id必要(可选)topic_id与topic_name任选一个
    sortbynum排序方式非必要一般情况下带上参数2,在部分话题中使用可以排除热门部分
    offsetnum偏移值非必要可用于偏移显示的动态列表(为0时获取不包含置顶及热门的最新动态)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    attentionsobj当前登录账户关注列表(仅在传递了登录信息时出现)
    cardsarray动态列表
    founder_uidnum0作用尚不明确
    has_morenum当前话题是否有额外的动态0:无额外动态
    1:有额外动态
    is_drawer_topicnum0作用尚不明确
    offsetstr接下来获取列表时的偏移值一般为当前获取的话题列表下最后一个动态id
    _gt_num0作用尚不明确

    data中的cards数组:

    类型内容备注
    0obj第1条动态卡片
    nobj第(n+1)条动态卡片
    ……obj…………

    data中的cards数组中的对象:

    基本同「获取特定动态卡片信息」中的data对象

    示例:

    获取话题哔哩哔哩漫画(话题id7539944)的当前动态列表(包含置顶&热门)

    topic_name方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics' \
    +--data-urlencode 'topic_name=哔哩哔哩漫画&sortby=2'
    +

    topic_id方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics' \
    +--data-urlencode 'topic_id=7539944&sortby=2'
    +
    查看响应示例:
    {
    +    "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_namestr话题名称必要(可选)topic_id与topic_name任选一个
    topic_idnum话题id必要(可选)topic_id与topic_name任选一个
    offset_dynamic_idnum偏移值必要可用于偏移显示的动态列表(为0时获取最新动态)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体
    messagestr错误信息默认为空
    msgnum

    data对象:

    字段类型内容备注
    attentionsobj当前登录账户关注列表(仅在传递了登录信息时出现)
    cardsarray动态列表
    has_morenum当前话题是否有额外的动态0:无额外动态
    1:有额外动态
    offsetstr接下来获取列表时的偏移值一般为当前获取的话题列表下最后一个动态id
    _gt_num0作用尚不明确

    data中的cards数组:

    类型内容备注
    0obj第1条动态卡片
    nobj第(n+1)条动态卡片
    ……obj…………

    data中的cards数组中的对象:

    基本同「获取特定动态卡片信息」中的data对象

    示例:

    获取话题哔哩哔哩漫画(话题id7539944)的当前动态列表

    topic_name方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history' \
    +--data-urlencode 'topic_name=哔哩哔哩漫画&offset_dynamic_id=0'
    +

    topic_id方式:

    curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history' \
    +--data-urlencode 'topic_id=7539944&offset_dynamic_id=0'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    + + + diff --git a/docs/dynamic/topic.html b/docs/dynamic/topic.html new file mode 100644 index 0000000000..21f039ca8b --- /dev/null +++ b/docs/dynamic/topic.html @@ -0,0 +1,100 @@ + + + + + + + + + 话题搜索 | BAC Document + + + + +

    话题搜索

    搜索发布话题

    https://app.bilibili.com/x/topic/pub/search
    https://api.bilibili.com/x/topic/pub/search

    请求方法: GET

    注: 该接口可能存在传入页面大小与返回数量不匹配的问题, 可能与访问权限有关

    URL参数:

    参数名类型内容必要性备注
    keywordsstr关键词不必要
    contentstr不必要
    upload_idstr上传 id?不必要页面刷新第一次请求时为空, 后均非空
    似乎为固定值, 格式: ${your_mid}_${login_or_last_refresh_or_cookie_ts}_${dig4}, 如 616368979_1722652786_2534
    page_sizeint页大小不必要默认为 20
    page_numint1不必要不用于翻页
    offsetint偏移不必要可从响应 data.page_info.offset 中获取
    web_locationstr333.1365不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    new_topicobj新建话题?
    has_create_jurisdictionboolfalse是否有创建权限?
    topic_itemsarray话题列表
    request_idstr请求 id
    page_infoobj页信息

    data 中的 new_topic 对象:

    字段类型内容备注
    namestr请求参数中的 keywords

    data 中的 topic_items 数组中的对象:

    字段类型内容备注
    idnum话题 id
    namestr话题名
    viewnum观看数
    discussnum讨论数
    stat_descstr状态描述
    descriptionstr话题描述
    show_interact_databoolfalse是否显示互动数据?

    data 中的 page_info 对象:

    字段类型内容备注
    offsetnum下次请求可用的偏移请求参数中的 offset + page_size
    has_morebool是否有更多数据当没有更多时可能不存在该字段

    示例:

    注: 该示例就是解释开头所注的问题的一个示例

    curl -G 'https://app.bilibili.com/x/topic/pub/search' \
    +--url-query 'keywords=2233'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "new_topic": {
    +      "name": "2233"
    +    },
    +    "has_create_jurisdiction": false,
    +    "topic_items": [
    +      {
    +        "id": 1101122,
    +        "name": "2233异世集",
    +        "view": 2502,
    +        "discuss": 11,
    +        "stat_desc": "2502浏览·11讨论",
    +        "description": "分享数字周边",
    +        "show_interact_data": false
    +      },
    +      {
    +        "id": 1050671,
    +        "name": "2233生日倒计时",
    +        "view": 21149,
    +        "discuss": 130,
    +        "stat_desc": "2.1万浏览·130讨论",
    +        "description": "2233生日倒计时",
    +        "show_interact_data": false
    +      },
    +      {
    +        "id": 1057129,
    +        "name": "2233手办可可爱爱",
    +        "view": 836,
    +        "discuss": 14,
    +        "stat_desc": "836浏览·14讨论",
    +        "description": "喜欢2233,",
    +        "show_interact_data": false
    +      }
    +    ],
    +    "request_id": "1$0$1723796266$7f515d4e26b7bd5007fb8ca4b066bf0b",
    +    "page_info": {
    +      "offset": 4,
    +      "has_more": true
    +    }
    +  }
    +}
    +

    推荐搜索话题?

    https://app.bilibili.com/x/topic/pub/rcmd/search
    https://api.bilibili.com/x/topic/pub/rcmd/search

    请求方法: GET

    注: 该接口啥也不返回, 但是网页端会请求该接口

    URL参数:

    参数名类型内容必要性备注
    keywordsstr不必要
    upload_idstr上传 id?不必要同上
    web_locationstr333.1365不必要有时请求不带该参数

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    datastr数据本体

    data 对象:

    字段类型内容备注
    topic_itemsarray
    request_idstr请求 id当传入 keywords 时不为空

    示例:

    curl -G 'https://app.bilibili.com/x/topic/pub/rcmd/search'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "topic_items": [],
    +    "request_id": ""
    +  }
    +}
    +
    + + + diff --git a/docs/electric/Bcoin.html b/docs/electric/Bcoin.html new file mode 100644 index 0000000000..b01758d721 --- /dev/null +++ b/docs/electric/Bcoin.html @@ -0,0 +1,161 @@ + + + + + + + + + B币方式充电 | BAC Document + + + + +

    B币方式充电

    :以前充电是电池的概念,1B币折合10电池,一般地充电10电池可获得1经验

    目前(2020/12/02后)则是贝壳的概念,1B币折合1贝壳、1经验(如果存在小数点,则经验值向下取整,即2.5B币获得2经验)

    新版本B币充电

    https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    bp_numnum贝壳数量必要必须在2-9999之间
    is_bp_remains_priorbool是否优先扣除B币余额必要[true,false],B币充电请选择true
    up_midnum充电对象用户mid必要
    otypestr充电来源必要up:空间充电
    archive:视频充电
    oidnum充电来源代码必要空间充电:充电对象用户mid
    视频充电:稿件avid
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功(并不代表充电成功)
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum本用户mid
    up_midnum目标用户mid
    order_nostr留言token用于添加充电留言
    bp_numstr充电贝壳数
    expnum获得经验数
    statusnum返回结果4:成功
    -2:低于20电池下限
    -4:B币不足
    msgstr错误信息默认为空

    示例:

    以空间的方式向用户mid=293793435充了2贝壳,得到2经验,留言token为BPRG5CEC3VUPOOANA540

    此时data.status=4

    自己给自己冲QAQ

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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_numnum充电电池数量必要必须在2-9999之间
    up_midnum充电对象用户mid必要
    otypestr充电来源必要up:空间充电
    archive:视频充电
    oidnum充电来源代码必要空间充电:充电对象用户mid
    视频充电:稿件avid
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功(并不代表充电成功)
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum本用户mid
    up_midnum目标用户mid
    order_nostr留言token用于添加充电留言
    elec_numnum充电电池数
    expnum获得经验数
    statusnum返回结果4:成功
    -2:低于20电池下限
    -4:B币不足
    msgstr错误信息默认为空

    示例:

    以空间的方式向用户mid=293793435充了20电池,得到2经验,留言token为BPRG5CEC3VUPOOANA540

    此时data.status=4

    再次自己冲自己QAQ

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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

    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'
    +
    查看响应示例:
    {
    +    "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.html b/docs/electric/WeChat_Alipay.html new file mode 100644 index 0000000000..c172dd11f2 --- /dev/null +++ b/docs/electric/WeChat_Alipay.html @@ -0,0 +1,91 @@ + + + + + + + + + 微信&支付宝方式充电 | BAC Document + + + + +

    微信&支付宝方式充电

    操作流程:

    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_numnum充电B币数量必要必须在2-9999之间
    up_midnum充电对象用户mid必要
    is_bp_remains_priorbool是否优先扣除B币必要true:是
    false:否
    在B币不足时剩余的部分利用支付平台支付
    otypestr充电来源必要up:空间充电
    archive:视频充电
    oidnum充电来源代码必要空间充电:充电对象用户mid
    视频充电:稿件avid
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -500:服务器错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    qr_code_urlstr支付二维码生成内容存在转义
    qr_tokenstr扫码秘钥
    expnum获得经验数

    示例:

    申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"qr_code_url": "https://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_tokenstr扫码秘钥必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    qr_tokenstr扫码秘钥
    order_nostr留言token未成功则无此项
    用于添加充电留言
    midnum当前用户mid
    statusnum状态值若秘钥错误则无此项
    1:已支付
    2:未扫描
    3:未确认

    示例:

    当申请到的支付二维码未被扫描时,data.ststus的值为2

    curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
    +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "qr_token":"c7cbdc47fc424cd18f2146db653597b8",
    +        "mid":293793435,
    +        "status":2
    +    }
    +}
    +

    当申请到的支付二维码已扫描但未确认时,data.ststus的值为3

    curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
    +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "qr_token":"c7cbdc47fc424cd18f2146db653597b8",
    +        "mid":293793435,
    +        "status":3
    +    }
    +}
    +

    成功支付后,data.ststus的值为1,且data.order_no存在留言token

    curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
    +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "qr_token":"bd649c836c524550bfe22a369334fc05",
    +        "order_no":"BPTD36U3KP82I31RSSLG",
    +        "mid":293793435,
    +        "status":1
    +    }
    +}
    +
    + + + diff --git a/docs/electric/charge_list.html b/docs/electric/charge_list.html new file mode 100644 index 0000000000..a253dda68a --- /dev/null +++ b/docs/electric/charge_list.html @@ -0,0 +1,234 @@ + + + + + + + + + 充电列表 | BAC Document + + + + +

    充电列表

    获取空间充电公示列表

    https://api.bilibili.com/x/ugcpay-rank/elec/month/up

    请求方式:GET

    本接口需要在请求标头中提供有效的浏览器 UA,如 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    88214:up主未开通充电
    messagestr错误信息
    ttlnum0
    dataobj数据本体

    data对象:

    字段类型内容备注
    countnum本月充电人数
    listarray本月充电用户列表
    total_countnum总计充电次数
    totalnum总计充电次数total_count
    special_daynum0作用尚不明确

    data中的list数组:

    类型内容备注
    0obj充电用户1
    nobj充电用户(n+1)按照充电排名排列
    ……obj…………
    29obj充电用户30最后一项

    data中的list数组中的对象:

    字段类型内容备注
    unamestr充电用户昵称
    avatarstr充电用户头像url
    midnum充电对象mid
    pay_midnum充电用户mid
    ranknum充电用户排名取决于充电的多少
    trend_typenum0作用尚不明确
    vip_infoobj充电用户会员信息
    messagestr充电留言无为空
    msg_hiddennum0作用尚不明确

    list数组中的对象中的vip_info对象:

    字段类型内容备注
    vipDueMsecnum大会员过期时间(?)恒为0
    vipStatusnum大会员状态0:无
    1:有
    vipTypenum大会员类型0:无
    1:月会员
    2:年会员及以上

    示例:

    查询用户mid=53456的充电公示列表

    curl -G 'https://api.bilibili.com/x/ugcpay-rank/elec/month/up' \
    +-A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36' \
    +--data-urlencode 'up_mid=53456'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "",
    +    "ttl": 0,
    +    "data": {
    +        "count": 397,
    +        "list": [
    +            {
    +                "uname": "Mars韩笑",
    +                "avatar": "https://i1.hdslb.com/bfs/face/a46599fa41cac672eda677e334f0be93cca02f1f.jpg",
    +                "mid": 53456,
    +                "pay_mid": 5683462,
    +                "rank": 1,
    +                "trend_type": 0,
    +                "vip_info": {
    +                    "vipDueMsec": 0,
    +                    "vipStatus": 1,
    +                    "vipType": 2
    +                },
    +                "message": "你真棒,你是奇迹!(Warma真的是太棒了!",
    +                "message_hidden": 0
    +            },
    +            {
    +                "uname": "愚星-",
    +                "avatar": "https://i1.hdslb.com/bfs/face/7e4a8b150567a20a1b075aa3894dd3674a1e6ebe.jpg",
    +                "mid": 53456,
    +                "pay_mid": 382630072,
    +                "rank": 2,
    +                "trend_type": 0,
    +                "vip_info": {
    +                    "vipDueMsec": 0,
    +                    "vipStatus": 1,
    +                    "vipType": 1
    +                },
    +                "message": "感谢您给我带来的快乐!我的人生遇见你是我的荣幸!!",
    +                "message_hidden": 0
    +            },
    +            {
    +                "uname": "なか酱",
    +                "avatar": "https://i0.hdslb.com/bfs/face/d4b74091d7f1c336399625dc062ddc93d676bcdc.jpg",
    +                "mid": 53456,
    +                "pay_mid": 446080731,
    +                "rank": 3,
    +                "trend_type": 0,
    +                "vip_info": {
    +                    "vipDueMsec": 0,
    +                    "vipStatus": 1,
    +                    "vipType": 2
    +                },
    +                "message": "",
    +                "message_hidden": 0
    +            }
    +        ],
    +        "total_count": 27291,
    +        "total": 27291,
    +        "special_day": 0
    +    }
    +}
    +

    获取视频充电鸣谢名单

    https://api.bilibili.com/x/web-interface/elec/show

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    aidnum目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr目标稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    62001:不需要展示充电信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    show_infoobj展示选项
    av_countnum目标视频充电人数
    countnum本月充电人数
    total_countnum总计充电人数
    special_daynum0作用尚不明确
    display_numnum0作用尚不明确
    listarray本月充电用户列表

    data中的show_info对象:

    字段类型内容备注
    showbool是否展示视频充电鸣谢名单false:不展示
    true:展示
    statenum0

    data中的list数组:

    类型内容备注
    0obj充电用户1
    nobj充电用户(n+1)按照充电排名排列
    ……obj…………
    29obj充电用户30最后一项

    data中的list数组中的对象:

    字段类型内容备注
    midnum充电对象mid
    pay_midnum充电用户mid
    ranknum充电用户排名取决于充电的多少
    unamestr充电用户昵称
    avatarstr充电用户头像url
    messagestr充电留言无为空
    msg_deletednum0作用尚不明确
    vip_infoobj充电用户会员信息
    trend_typenum0作用尚不明确

    data中的list数组中的vip_info对象:

    字段类型内容备注
    vipTypenum大会员类型0:无
    1:月会员
    2:年会员
    vipDueMsecnum0作用尚不明确
    vipStatusnum大会员状态0:无
    1:有

    示例:

    获取视频av967773538/BV1up4y1y77i,用户mid=53456的视频充电鸣谢名单

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
    +--data-urlencode 'mid=53456' \
    +--data-urlencode 'aid=967773538'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
    +--data-urlencode 'mid=53456' \
    +--data-urlencode 'bvid=BV1up4y1y77i'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    currentPagenum页数必要
    pageSizenum分页大小必要取值范围[1,50]
    customerIdnum(?)必要目前为固定值:10026
    beginTimestr开始日期非必要yyyy-MM-dd
    endTimestr结束日期非必要yyyy-MM-dd

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    800501007:user not login
    800501008:内部错误
    800501011:请求参数有误
    errnonum
    msgstr
    showMsgstr
    successbool
    dataobj信息本体

    data对象:

    字段类型内容备注
    pageobj分页信息
    resultarray充电信息本体
    configarray(?)

    page对象:

    字段类型内容备注
    currentPagenum当前页数
    pageSizenum当前分页大小
    totalCountnum记录总数
    totalPagenum总页数

    config数组中的对象:

    字段类型内容备注
    midnull总是为null
    namenull总是为null
    avatarnull总是为null
    originalThirdCoinnull总是为null
    brokeragenull总是为null
    remarknull总是为null
    ctimenull总是为null

    result数组中的对象:

    字段类型内容备注
    midnum充电人mid
    namestr充电人昵称
    avatarstr充电人头像
    originalThirdCoinnum原始B币数
    brokeragenum实际收到的贝壳数
    remarkstr充电渠道Web/安卓/iOS
    ctimestr充电时间yyyy-MM-dd HH:mm:ss

    示例:

    curl -G 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord' \
    +--data-urlencode 'currentPage=1' \
    +--data-urlencode 'pageSize=2' \
    +--data-urlencode 'customerId=10026' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    pnnum页数非必要
    psnum分页大小非必要取值范围[1,20]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray充电信息本体
    pagerobj分页信息

    list数组中的对象:

    字段类型内容备注
    aidnum0
    bvidstr
    elec_numnum充电电池数
    titlestr
    unamestr
    avatarstr
    ctimestr充电时间yyyy-MM-dd HH:mm:ss

    pager对象:

    字段类型内容备注
    currentnum当前页数
    sizenum当前分页大小
    totalnum记录总数

    示例:

    curl -G 'https://member.bilibili.com/x/h5/elec/rank/recent' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.html b/docs/electric/charge_msg.html new file mode 100644 index 0000000000..8484ffcff8 --- /dev/null +++ b/docs/electric/charge_msg.html @@ -0,0 +1,114 @@ + + + + + + + + + 充电留言 | BAC Document + + + + +

    充电留言

    发送充电留言

    https://api.bilibili.com/x/ugcpay/trade/elec/message

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    order_idstr留言token必要
    messagestr留言内容必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    88203:不能重复留言
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为留言token为BPRG5CEC3VUPOOANA540的充电操作,添加了内容为支持一下大佬的留言

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    查询我收到的充电留言

    https://member.bilibili.com/x/web/elec/remark/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    beginstr起始日期默认2016-01-01
    endstr结束日期默认2050-01-01
    pnstr页数
    psstr分页大小取值范围[1,12]

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    msgstr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pageobj分页信息
    listarray信息本体

    page对象:

    字段类型内容备注
    currentnum当前页数
    sizenum当前分页大小
    totalnum记录总数

    list数组中的对象:

    字段类型内容备注
    aidnum
    bvidstr
    idnum留言记录id
    midnum
    reply_midnum0
    elec_numnum0
    statenumUP是否已经回复这条留言0:未回复
    1:已回复
    msgstr留言信息
    anamestr
    unamestr
    avatorstr
    reply_namestr
    reply_avatorstr
    reply_msgstr
    ctimenum留言时间毫秒级时间戳
    reply_timenum0

    示例:

    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;'
    +
    查看响应示例:
    {
    +  "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

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    idnum留言id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum
    bvidstr
    idnum留言id
    midnum留言者uid(充电用户)
    reply_midnumUP主uid
    elec_numnum0
    statenumUP是否已经回复这条留言0:未回复
    1:已回复
    msgstr留言内容
    anamestr
    unamestr留言者用户名
    avatorstr留言者头像
    reply_namestrUP主用户名
    reply_avatorstrUP主头像
    reply_msgstr回复内容
    ctimenum留言时间毫秒级时间戳
    reply_timenum回复时间毫秒级时间戳

    示例:

    curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/detail?id=6507563' \
    +-H 'cookie: SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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 ):

    参数名类型内容必要性备注
    csrfstrcsrf必要
    idnum留言id必要
    msgstr回复信息

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误20004:充电服务异常
    messagestr错误信息
    ttlnum1

    示例:

    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 ̄)'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": 1
    +}
    +
    + + + diff --git a/docs/electric/monthly.html b/docs/electric/monthly.html new file mode 100644 index 0000000000..b975669b25 --- /dev/null +++ b/docs/electric/monthly.html @@ -0,0 +1,204 @@ + + + + + + + + + 包月充电 | BAC Document + + + + +

    包月充电

    获取包月充电列表

    https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    pagenum页码必要
    typenum充电状态必要1:使用中
    2:已过期

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    25100004:参数错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    list有内容时:array
    无内容时:null
    包月充电UP主列表最多10个
    pagenum当前页数
    page_sizenum当前分页大小一般为10
    total_pagenum总页数
    total_numnum用户总数
    is_morenum是否有更多用户0:否
    1:是

    data中的list数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    up_uidnum充电UP主mid
    user_namestr充电UP主昵称
    user_facestr充电UP主头像url
    itemarray充电详情
    startnum开始充电时间时间戳

    数组list中的对象中的item数组:

    类型内容备注
    0obj充电详情套了个娃

    数组item中的对象:

    字段类型内容备注
    privilege_typenum10(?)作用尚不明确
    iconstr充电图标
    namestr包月充电
    expire_timenum充电过期时间时间戳
    renew开启自动续费时:obj
    关闭自动续费时:null
    充电自动续费详情

    数组item中的对象中的renew对象:

    字段类型内容备注
    uidnum自己的mid
    ruidnumUP主的mid
    goods_idnum充电类型172:一个月
    173:连续包月
    174:连续包年
    statusnum充电状态1
    next_execute_timenum下次续费时间时间戳
    signed_timenum签约时间时间戳
    signed_pricenum下次续费金额单位为千分之一元人民币
    pay_channelnum签约平台2:微信支付
    4:支付宝
    periodnum下次充电天数

    示例:

    获取自己正在使用的包月充电的列表

    curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
    +--data-urlencode 'page=1' \
    +--data-urlencode 'type=1' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "up_uid": 2233,
    +                "user_name": "2233",
    +                "user_face": "https://i0.hdslb.com/bfs/face/noface.jpg",
    +                "item": [
    +                    {
    +                        "privilege_type": 10,
    +                        "icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
    +                        "name": "包月充电",
    +                        "expire_time": 1703519999,
    +                        "renew": {
    +                            "uid": 425503913,
    +                            "ruid": 2233,
    +                            "goods_id": 174,
    +                            "status": 1,
    +                            "next_execute_time": 1703174400,
    +                            "signed_time": 1671618921,
    +                            "signed_price": 36000,
    +                            "pay_channel": 2,
    +                            "period": 366
    +                        }
    +                    }
    +                ],
    +                "start": 1669183804
    +            },
    +            {
    +                "up_uid": 293793435,
    +                "user_name": "社会易姐QwQ",
    +                "user_face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +                "item": [
    +                    {
    +                        "privilege_type": 10,
    +                        "icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
    +                        "name": "包月充电",
    +                        "expire_time": 1681401599,
    +                        "renew": {
    +                            "uid": 425503913,
    +                            "ruid": 293793435,
    +                            "goods_id": 173,
    +                            "status": 1,
    +                            "next_execute_time": 1680364800,
    +                            "signed_time": 1677760921,
    +                            "signed_price": 5000,
    +                            "pay_channel": 4,
    +                            "period": 31
    +                        }
    +                    }
    +                ],
    +                "start": 1676033795
    +            }
    +        ],
    +        "page": 1,
    +        "page_size": 10,
    +        "total_page": 3,
    +        "total_num": 22,
    +        "is_more": 1
    +    }
    +}
    +

    表示自己从2022-11-23 14:10:04开始给“2233”包月充电,并且在2022-12-21 18:35:21在微信开通了连续包年充电,在2023-12-22 00:00:00的时候会自动续费36元,并继续充电366天;

    自己从2023-02-10 20:56:35开始给“社会易姐QwQ”包月充电,并且在2023-03-02 20:42:01在支付宝开通了连续包月充电,在2023-04-02 00:00:00的时候会自动续费5元,并继续充电31天。

    UP主包月充电详情

    https://api.bilibili.com/x/upower/item/detail

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    203101:UP主未开通包月充电功能
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    upower_rankobj充电详情
    itemobj充电欢迎语
    user_cardobjUP主信息

    data中的upower_rank对象:

    字段类型内容备注
    totalnum充电用户总数
    total_descstr充电总数文字说明示例:“1+”
    listarray充电用户列表最多展示30个

    upower_rank中的list数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)按照充电时间排序
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    ranknum充电用户索引
    midnum充电用户mid
    nicknamestr充电用户昵称
    avatarstr充电用户头像url

    data中的item对象:

    字段类型内容备注
    intro_video_aidstr充电介绍视频AV号
    welcomesstr充电介绍语

    data中的user_card对象:

    字段类型内容备注
    avatarstrUP主头像url
    nicknamestrUP主昵称

    示例:

    获取mid=293793435的包月充电详情

    curl 'https://api.bilibili.com/x/upower/item/detail' \
    +--data-urlencode 'up_mid=293793435' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "upower_rank": {
    +            "total": 1,
    +            "total_desc": "1+",
    +            "list": [
    +                {
    +                    "rank": 1,
    +                    "mid": 425503913,
    +                    "nickname": "wuziqian211",
    +                    "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png"
    +                }
    +            ]
    +        },
    +        "item": {
    +            "intro_video_aid": "",
    +            "welcomes": "哈喽b站的小伙伴们,我的充电计划升级啦! 感兴趣就多多支持我吧~(゜-゜)つロ"
    +        },
    +        "user_card": {
    +            "avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "nickname": "社会易姐QwQ"
    +        }
    +    }
    +}
    +

    与UP主的包月充电关系

    https://api.bilibili.com/x/upower/charge/follow/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    daysnum已保持多少天包月充电状态
    up_cardobjUP主信息
    user_cardobj自己的信息
    remain_daysnum剩余天数未处于包月充电状态为-1
    remain_less_1daynum剩余的天数小于1天0:否
    1:是
    未处于包月充电状态为0
    upower_rankobj充电详情
    upower_iconstr充电图标url仅在处于包月充电状态时有内容

    data中的up_card对象:

    字段类型内容备注
    nicknamestrUP主昵称
    official_titlestrUP主认证信息
    avatarstrUP主头像url

    data中的user_card对象:

    字段类型内容备注
    avatarstr用户头像url
    nicknamestr用户昵称

    data中的upower_rank对象:

    字段类型内容备注
    totalnum充电用户总数
    total_descstr充电总数文字说明示例:“1+”
    listarray充电用户列表最多展示6个

    upower_rank中的list数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)按照充电时间排序
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    ranknum充电用户索引
    midnum充电用户mid
    nicknamestr充电用户昵称
    avatarstr充电用户头像url

    示例:

    获取与mid=293793435的包月充电关系

    curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
    +--data-urlencode 'up_mid=293793435' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "days": 17,
    +        "up_card": {
    +            "nickname": "社会易姐QwQ",
    +            "official_title": "",
    +            "avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
    +        },
    +        "user_card": {
    +            "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png",
    +            "nickname": "wuziqian211"
    +        },
    +        "remain_days": 15,
    +        "remain_less_1day": 0,
    +        "upower_rank": {
    +            "total": 1,
    +            "total_desc": "1+",
    +            "list": [
    +                {
    +                    "rank": 1,
    +                    "mid": 425503913,
    +                    "nickname": "wuziqian211",
    +                    "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png"
    +                }
    +            ]
    +        },
    +        "upower_icon": "https://i0.hdslb.com/bfs/garb/item/33e2e72d9a0c855f036b4cb55448f44af67a0635.png"
    +    }
    +}
    +

    表示自己已保持17天对“社会易姐QwQ”的包月充电,剩余15天过期。

    包月充电用户排名

    https://api.bilibili.com/x/upower/up/member/rank/v2

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要
    psnum每页项数非必要默认为20
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    up_infoobjUP主信息
    rank_infoarray充电用户排名
    user_infoobj自己的信息
    member_totalnum充电用户总数

    data中的up_info对象:

    字段类型内容备注
    midnumUP主mid
    nicknamestrUP主昵称
    avatarstrUP主头像url
    typenumUP主认证类型-1:无
    0:UP主认证
    1:机构认证
    titlestrUP主认证信息

    data中的rank_info数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)按照充电排名排列
    ……obj…………

    数组rank_info中的对象:

    字段类型内容备注
    midnum充电用户mid
    nicknamestr充电用户昵称
    avatarstr充电用户头像url
    ranknum充电用户排名
    daynum包月充电天数
    expire_atnum包月充电过期时间恒为0
    remain_daysnum剩余天数恒为0

    data中的user_info对象:

    字段类型内容备注
    midnum用户mid
    nicknamestr用户昵称
    avatarstr用户头像url
    ranknum包月充电排名不在包月充电用户列表里为-1
    daynum包月充电天数
    expire_atnum包月充电过期时间时间戳,若从未给UP主包月充电为0
    remain_daysnum未过期时:剩余天数
    已过期且之前给UP主包月充电过:自过期以来的天数

    示例:

    获取给mid=293793435包月充电的用户排名

    curl 'https://api.bilibili.com/x/upower/up/member/rank/v2' \
    +--data-urlencode 'up_mid=293793435' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "up_info": {
    +            "mid": 293793435,
    +            "nickname": "社会易姐QwQ",
    +            "avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +            "type": -1,
    +            "title": ""
    +        },
    +        "rank_info": [
    +            {
    +                "mid": 425503913,
    +                "nickname": "wuziqian211",
    +                "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png",
    +                "rank": 1,
    +                "day": 31,
    +                "expire_at": 0,
    +                "remain_days": 0
    +            }
    +        ],
    +        "user_info": {
    +            "mid": 425503913,
    +            "nickname": "wuziqian211",
    +            "avatar": "https://i2.hdslb.com/bfs/face/390f4b18b8b15c1f2ecdb6ee44e572aa18b9b2d0.png",
    +            "rank": 1,
    +            "day": 31,
    +            "expire_at": 1678723199,
    +            "remain_days": 15
    +        },
    +        "member_total": 1
    +    }
    +}
    +
    + + + diff --git a/docs/emoji/action.html b/docs/emoji/action.html new file mode 100644 index 0000000000..ff9d08fb0a --- /dev/null +++ b/docs/emoji/action.html @@ -0,0 +1,53 @@ + + + + + + + + + 表情操作 | BAC Document + + + + +

    表情操作

    添加表情包

    https://api.bilibili.com/x/emote/package/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    只能添加有会员权限或已购买的表情包

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    package_idnum表情包id必要
    businessstr使用场景必要reply:评论区
    dynamic:动态
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例:

    添加id为25的表情包,使用场景为评论区

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    移除表情包

    https://api.bilibili.com/x/emote/package/remove

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    package_idnum表情包id必要
    businessstr使用场景必要reply:评论区
    dynamic:动态
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    ttlnum1

    示例:

    移除id为25的表情包,使用场景为评论区

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/emoji/list.html b/docs/emoji/list.html new file mode 100644 index 0000000000..17b74349fa --- /dev/null +++ b/docs/emoji/list.html @@ -0,0 +1,438 @@ + + + + + + + + + 表情列表 | BAC Document + + + + +

    表情列表

    获取我的表情列表

    https://api.bilibili.com/x/emote/user/panel/web

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    使用登录(Cookie)进行会员专属及已购买表情包的分发,否则全为免费表情包

    url参数:

    参数名类型内容必要性备注
    businessstr使用场景必要reply:评论区
    dynamic:动态

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    packagesarray表情包

    data中的packages数组:

    类型内容备注
    0obj表情包1详情见附表
    nobj表情包(n+1)详情见附表
    ……obj…………

    示例:

    curl -G 'https://api.bilibili.com/x/emote/user/panel/web' \
    +--data-urlencode 'business=reply' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    businessstr使用场景必要reply:评论区
    dynamic:动态
    idsnums表情包id必要id之间以,隔开

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    信息本体

    data对象:

    字段类型内容备注
    packagesarray表情包

    data中的packages数组:

    类型内容备注
    0obj表情包1详情见附表
    nobj表情包(n+1)详情见附表
    ……obj…………

    示例:

    获取表情包id为93的表情包明细

    curl -G 'https://api.bilibili.com/x/emote/package' \
    +--data-urlencode 'ids=93' \
    +--data-urlencode 'business=reply'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    businessstr使用场景必要reply:评论区
    dynamic:动态

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    user_panel_packagesarray用户拥有的表情包
    all_packagesarray所有表情包
    mallobj商城页面

    data对象中的user_panel_packages数组:

    类型内容备注
    0obj用户拥有的表情包1详情见附表
    nobj用户拥有的表情包(n+1)详情见附表
    ……obj…………

    data对象中的all_packages数组:

    类型内容备注
    0obj所有表情包1详情见附表
    nobj所有表情包(n+1)详情见附表
    ……obj…………

    data对象中的mall对象:

    字段类型内容备注
    titlestr商城名称
    urlstr商城页面url

    示例:

    curl -G 'https://api.bilibili.com/x/emote/setting/panel' \
    +--data-urlencode 'business=reply' \
    +-b 'SESSDATA=xxx'
    +

    限于篇幅,代码块示例略

    附表-表情包对象

    字段类型内容备注
    idnum表情包id
    textstr表情包名称
    urlstr表情包标志图片url
    mtimenum创建时间时间戳
    typenum表情包类型1:普通
    2:会员专属
    3:购买所得
    4:颜文字
    attrnum???作用尚不明确
    metaobj属性信息
    emotearray表情列表
    flagsobj是否添加标志

    表情包对象中的flags对象:

    字段类型内容备注
    addedbool是否已添加true:已添加
    false:未添加
    需要登录(SESSDATA)
    否则恒为false

    表情包对象中的meta对象:

    字段类型内容备注
    sizenum表情尺寸信息1:小
    2:大
    item_idnum购买物品id
    item_urlnum购买物品页面url无则无此项

    表情包对象中的emote数组:

    类型内容备注
    0obj表情1
    nobj表情(n+1)
    ……obj…………

    emote数组中的对象:

    字段类型内容备注
    idnum表情id
    package_idnum表情包id
    textstr表情转义符颜文字时为该字串
    urlstr表情图片url颜文字时为该字串
    mtimenum创建时间时间戳
    typenum表情类型1:普通
    2:会员专属
    3:购买所得
    4:颜文字
    attrnum???作用尚不明确
    metaobj属性信息
    flagsobj禁用标志无则为空

    emote数组中的对象中的flags对象:

    字段类型内容备注
    no_accessbool是否为禁用true:禁用
    需要登录(SESSDATA)
    否则恒为true

    emote数组中的对象中的meta对象:

    字段类型内容备注
    sizenum表情尺寸信息1:小
    2:大
    aliasstr简写名无则无此项
    + + + diff --git a/docs/fav/action.html b/docs/fav/action.html new file mode 100644 index 0000000000..8f3971ed82 --- /dev/null +++ b/docs/fav/action.html @@ -0,0 +1,180 @@ + + + + + + + + + 收藏夹操作 | BAC Document + + + + +

    收藏夹操作

    管理收藏夹

    新建收藏夹

    https://api.bilibili.com/x/v3/fav/folder/add

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    titlestr收藏夹标题必要
    introstr收藏夹简介非必要默认为空
    privacynum是否公开非必要默认为公开
    0:公开
    1:私密
    coverstr封面图url非必要封面会被审核
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -102:账号被封停
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    略....

    详见获取收藏夹元数据中的data对象

    示例:

    创建一个叫test,简介是2333,封面https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png,的公开收藏夹:

    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'
    +
    查看响应示例:
    {
    +    "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_idnum目标收藏夹mdid必要
    titlestr修改收藏夹标题必要
    introstr修改收藏夹简介非必要
    privacynum是否公开非必要默认为公开

    0:公开
    1:私密
    coverstr封面图url非必要封面会被审核
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -102:账号被封停
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    略....

    详见获取收藏夹元数据中的data对象

    示例:

    修改id为1182306172的名字为test,简介为2333,封面为https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png,公开收藏夹:

    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'
    +
    查看响应示例:
    {
    +    "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_idsnums目标收藏夹mdid列表必要每个成员间用,分隔
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为0
    ttlnum1
    datanum信息本体成功为0

    示例:

    删除id为1182306172的收藏夹:

    curl 'https://api.bilibili.com/x/v3/fav/folder/del' \
    +--data-urlencode 'media_ids=1182306172' \
    +--data-urlencode 'csrf=xxxx' \
    +-b 'SESSDATA=xxxx'
    +
    查看响应示例:
    {
    +    "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_idnum源收藏夹id必要
    tar_media_idnum目标收藏夹id必要
    midnum当前用户mid必要
    resourcesstrs目标内容id列表必要格式:{内容id}:{内容类型}
    每个成员间用,分隔
    类型:
    2:视频稿件
    12:音频
    21:视频合集
    内容id:
    视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    platformstr平台标识非必要可为web
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    11010:您访问的内容不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    将id为1288061499的收藏夹中视频稿件av21822819 av21918689 av22288065复制到id为1178751999的收藏夹中

    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'
    +
    查看响应示例:
    {
    +    "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_idnum源收藏夹id必要
    tar_media_idnum目标收藏夹id必要
    midnum当前用户mid必要
    resourcesstrs目标内容id列表必要格式:{内容id}:{内容类型}
    每个成员间用,分隔
    类型:
    2:视频稿件
    12:音频
    21:视频合集
    内容id:
    视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    platformstr平台标识非必要可为web
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    11010:您访问的内容不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    将id为1288061499的收藏夹中视频稿件av21822819 av21918689 av22288065移动到id为1178751999的收藏夹中

    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'
    +
    查看响应示例:
    {
    +    "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_idnum目标收藏夹id必要
    platformstr平台标识非必要可为web
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    11010:您访问的内容不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    将id为1178751999的收藏夹中视频稿件av21822819 av21918689 av22288065取消收藏

    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'
    +
    查看响应示例:
    {
    +    "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_idnum目标收藏夹id必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体成功为0

    示例:

    清理id为1161340172的收藏夹

    curl 'https://api.bilibili.com/x/v3/fav/resource/clean' \
    +--data-urlencode 'media_id=1161340172' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":0
    +}
    +
    + + + diff --git a/docs/fav/info.html b/docs/fav/info.html new file mode 100644 index 0000000000..b6ebf1cd8e --- /dev/null +++ b/docs/fav/info.html @@ -0,0 +1,266 @@ + + + + + + + + + 收藏夹基本信息 | BAC Document + + + + +

    收藏夹基本信息

    获取收藏夹元数据

    https://api.bilibili.com/x/v3/fav/folder/info

    请求方式:GET

    认证方式:Cookie(SESSDATA) 或 APP

    注:查询权限收藏夹时需要相应用户登录

    url参数:

    参数名类型内容必要性备注
    media_idnum目标收藏夹id(完整id)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    11010: 内容不存在
    messagestr错误信息默认为0
    data有效时:obj
    无效或:null
    信息本体

    data对象:

    字段类型内容备注
    idnum收藏夹mlid(完整id)收藏夹原始id+创建者mid尾号2位
    fidnum收藏夹原始id
    midnum创建者mid
    attrnum属性位(?)
    titlestr收藏夹标题
    coverstr收藏夹封面图片url
    upperobj创建者信息
    cover_typenum封面图类别(?)
    cnt_infoobj收藏夹状态数
    typenum类型(?)一般是11
    introstr备注
    ctimenum创建时间时间戳
    mtimenum收藏时间时间戳
    statenum状态(?)一般为0
    fav_statenum收藏夹收藏状态已收藏收藏夹:1
    未收藏收藏夹:0
    需要登录
    like_statenum点赞状态已点赞:1
    未点赞:0
    需要登录
    media_countnum收藏夹内容数量

    data中的upper对象:

    字段类型内容备注
    midnum创建者mid
    namestr创建者昵称
    facestr创建者头像url
    followedbool是否已关注创建者
    vip_typenum会员类别0:无
    1:月大会员
    2:年度及以上大会员
    vip_statuenum会员开通状态0:无
    1:有

    data中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    thumb_upnum点赞数
    sharenum分享数

    示例:

    查询收藏夹id=1052622027的元数据

    curl -G 'https://api.bilibili.com/x/v3/fav/folder/info' \
    +--data-urlencode 'media_id=1052622027' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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 (SESSDATA) 或 APP

    若欲查看相应用户的私密收藏夹需要登录

    url参数:

    参数名类型内容必要性备注
    up_midnum目标用户mid必要
    typenum目标内容属性非必要默认为全部
    0:全部
    2:视频稿件
    ridnum目标内容id非必要视频稿件:视频稿件avid

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:obj
    信息本体

    data对象:

    字段类型内容备注
    countnum创建的收藏夹数
    list无收藏夹时:null
    有收藏夹时:array
    收藏夹列表
    seasonnull(?)

    data中的list数组:

    类型内容备注
    0obj收藏夹1
    nobj收藏夹(n+1)项数取决于count的值
    ……obj……

    data中的list数组中的对象:

    字段类型内容备注
    idnum收藏夹mlid(完整id)收藏夹原始id+创建者mid尾号2位
    fidnum收藏夹原始id
    midnum创建者mid
    attrnum属性位
    titlestr收藏夹标题
    fav_statenum目标id是否存在于该收藏夹存在于该收藏夹:1
    不存在于该收藏夹:0
    media_countnum收藏夹内容数量

    attr属性位二进制值表:

    内容备注
    0是否为默认收藏夹0:默认收藏夹
    1:其他收藏夹
    1私有收藏夹0:公开
    1:私有
    其他有待补充...

    示例:

    查询用户mid=7792521的收藏夹列表

    curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
    +--data-urlencode 'up_mid=7792521' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    psnum每页项数必要定义域 1 - 大于70
    pnnum页码必要
    up_midnum目标用户mid必要
    platformstr平台类型非必要填写web 返回值才会包含用户收藏的视频合集

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    40022:签名过长
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:obj
    信息本体

    data对象:

    字段类型内容备注
    countnum创建的收藏夹数
    list无收藏夹时:null
    有收藏夹时:array
    收藏夹列表

    data中的list数组:

    类型内容备注
    0obj收藏夹1
    nobj收藏夹(n+1)项数取决于count的值
    ……obj……

    data中的list数组中的对象:

    字段类型内容备注
    idnum收藏夹ml
    fidnum原始收藏夹mlid去除两位mid尾号
    midnum创建用户mid
    attrnum收藏夹属性转换成8-bit二进制处理
    详细说明见下表
    titlestr收藏夹标题
    coverstr收藏夹封面图片url
    upperobj收藏夹创建用户信息
    cover_typenum2作用尚不明确
    introstr作用尚不明确
    ctimenum创建时间时间戳
    mtimenum审核时间时间戳
    statenum0, 10: 正常;1:收藏夹已失效
    fav_statenum0作用尚不明确
    media_countnum收藏夹总计视频数

    attr属性二进制值表:

    其他有待补充...1:默认收藏夹0:公开性
    0:默认收藏夹
    1:其他收藏夹
    0:公开
    1:私有

    data中的list数组中的对象中的upper对象:

    字段类型内容备注
    midnum创建人mid
    namestr创建人昵称
    facestr作用尚不明确

    示例:

    查询用户mid=293793435的收藏夹收藏列表

    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'
    +
    查看响应示例:
    {
    +  "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
    +    }]
    +  }
    +}
    +

    批量获取指定收藏id的内容

    https://api.bilibili.com/x/v3/fav/resource/infos

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    resourcesstrs目标内容id列表必要格式:{内容id}:{内容类型}
    每个成员间用,分隔
    类型:
    2:视频稿件
    12:音频
    内容id:
    视频稿件:视频稿件avid
    音频:音频auid
    platformstr平台标识非必要可为web(影响内容列表类型)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    data有效时:array
    无效或:null
    内容信息列表

    data数组:

    类型内容备注
    0obj内容信息1
    nobj内容信息(n+1)
    ...obj...

    data数组中的对象:

    字段类型内容备注
    idnum内容id视频稿件:视频稿件avid
    音频:音频auid
    typenum内容类型2:视频稿件
    12:音频
    titlestr标题
    coverstr封面url
    introstr简介
    pagenum视频分P数
    durationnum音频/视频时长
    upperobjUP主信息
    attrnum属性0:正常
    1:失效
    cnt_infoobj状态数
    linkstr跳转uri
    ctimenum投稿时间时间戳
    pubtimenum发布时间时间戳
    fav_timenum收藏时间时间戳
    bv_idstr视频稿件bvid
    bvidstr视频稿件bvid
    seasonnull(?)

    data数组中的对象中的upper对象:

    字段类型内容备注
    midnumUP主mid
    namestrUP主昵称
    facestrUP主头像url

    data数组中的对象中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    danmakunum弹幕数

    示例:

    批量查询内容

    1-视频稿件-av583785685

    2-音频-au15664

    curl -G 'https://api.bilibili.com/x/v3/fav/resource/infos' \
    +--data-urlencode 'resources=583785685:2,15664:12'
    +
    查看响应示例:
    {
    +  "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
    +    }
    +  ]
    +}
    +
    + + + diff --git a/docs/fav/list.html b/docs/fav/list.html new file mode 100644 index 0000000000..1c96a8cb98 --- /dev/null +++ b/docs/fav/list.html @@ -0,0 +1,395 @@ + + + + + + + + + 收藏夹内容 | BAC Document + + + + +

    收藏夹内容

    获取收藏夹内容明细列表

    https://api.bilibili.com/x/v3/fav/resource/list

    请求方式:GET

    认证方式:Cookie或APP

    注:查询权限收藏夹时需要相应用户登录

    url参数:

    参数名类型内容必要性备注
    media_idnum目标收藏夹mlid(完整id)必要
    tidnum分区tid非必要默认为全部分区
    0:全部分区
    详见说明
    keywordstr搜索关键字非必要
    orderstr排序方式非必要按收藏时间:mtime
    按播放量: view
    按投稿时间:pubtime
    typenum查询范围非必要0:当前收藏夹(对应media_id)
    1:全部收藏夹
    psnum每页数量必要定义域:1-20
    pnnum页码非必要默认为1
    platformstr平台标识非必要可为web(影响内容列表类型)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    data有效时:obj
    无效或:null
    信息本体

    data对象:

    字段类型内容备注
    infoobj收藏夹元数据
    mediasarray收藏夹内容
    has_morebool收藏夹是否有下一页
    ttlnum接口返回时间时间戳

    data中的info对象:

    字段类型内容备注
    idnum收藏夹mlid(完整id)收藏夹原始id+创建者mid尾号2位
    fidnum收藏夹原始id
    midnum创建者mid
    attrnum属性0:正常
    1:失效
    titlestr收藏夹标题
    coverstr收藏夹封面图片url
    upperobj创建者信息
    cover_typenum封面图类别(?)
    cnt_infoobj收藏夹状态数
    typenum类型(?)一般是11
    introstr备注
    ctimenum创建时间时间戳
    mtimenum收藏时间时间戳
    statenum状态(?)一般为0
    fav_statenum收藏夹收藏状态已收藏收藏夹:1
    未收藏收藏夹:0
    需要登录
    like_statenum点赞状态已点赞:1
    未点赞:0
    需要登录
    media_countnum收藏夹内容数量

    info中的upper对象:

    字段类型内容备注
    midnum创建者mid
    namestr创建者昵称
    facestr创建者头像url
    followedbool是否已关注创建者
    vip_typenum会员类别0:无
    1:月大会员
    2:年度及以上大会员
    vip_statuenum会员开通状态0:无
    1:有

    info中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    thumb_upnum点赞数
    sharenum分享数

    data中的medias数组:

    类型内容备注
    0obj收藏内容1
    nobj收藏内容(n+1)
    ...obj...

    medias数组中的对象:

    字段类型内容备注
    idnum内容id视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    typenum内容类型2:视频稿件
    12:音频
    21:视频合集
    titlestr标题
    coverstr封面url
    introstr简介
    pagenum视频分P数
    durationnum音频/视频时长
    upperobjUP主信息
    attrnum失效0: 正常;9: up自己删除;1: 其他原因删除
    cnt_infoobj状态数
    linkstr跳转uri
    ctimenum投稿时间时间戳
    pubtimenum发布时间时间戳
    fav_timenum收藏时间时间戳
    bv_idstr视频稿件bvid
    bvidstr视频稿件bvid
    seasonnull(?)

    medias数组中的对象中的upper对象:

    字段类型内容备注
    midnumUP主mid
    namestrUP主昵称
    facestrUP主头像url

    medias数组中的对象中的cnt_info对象:

    字段类型内容备注
    collectnum收藏数
    playnum播放数
    danmakunum弹幕数

    示例:

    查询收藏夹id=1052622027,每页5个视频,第1页的内容明细

    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'
    +
    查看响应示例:
    {
    +    "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,
    +        "ttl": 1703349018
    +    }
    +}
    +

    获取收藏夹全部内容id

    https://api.bilibili.com/x/v3/fav/resource/ids

    请求方式:GET

    认证方式:Cookie或APP

    注:查询权限收藏夹时需要相应用户登录

    url参数:

    参数名类型内容必要性备注
    media_idnum目标收藏夹mlid(完整id)必要
    platformstr平台标识非必要可为web(影响内容列表类型)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    messagestr错误信息默认为0
    data有效时:array
    无效或:null
    内容id列表

    data中的medias数组:

    类型内容备注
    0obj收藏内容id1
    nobj收藏内容id(n+1)
    ...obj...

    medias数组中的对象:

    字段类型内容备注
    idnum内容id视频稿件:视频稿件avid
    音频:音频auid
    视频合集:视频合集id
    typenum内容类型2:视频稿件
    12:音频
    21:视频合集
    bv_idstr视频稿件bvid
    bvidstr视频稿件bvid

    示例:

    查询收藏夹id=1052622027的全部内容id

    curl -G 'https://api.bilibili.com/x/v3/fav/resource/ids' \
    +--data-urlencode 'media_id=1052622027' \
    +--data-urlencode 'platform=web' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.html b/docs/garb/color.html new file mode 100644 index 0000000000..e427520fbe --- /dev/null +++ b/docs/garb/color.html @@ -0,0 +1,217 @@ + + + + + + + + + 主题色 | BAC Document + + + + +

    主题色

    获取主题色基本信息1

    https://club.bilibili.com/api/query.skin.list.do

    请求方式:GET

    鉴权方式:appkey

    认证方式:仅可APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    buildnum版本APP方式必要可为6082000
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    tsnum当前时间戳
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    dataarray主题颜色列表

    data数组:

    类型内容备注
    0obj主题颜色1
    nobj主题颜色(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum颜色id
    namestr颜色名称
    is_freebool是否免费false:收费
    true:免费
    pricenum价格单位为硬币
    is_boughtbool是否已购买false:未购买
    true:已购买
    statusnum状态1:自动续费
    4:已退订
    buy_timenum购买时间毫秒时间戳
    due_timenum到期时间毫秒时间戳
    color_namestr颜色类型名称
    is_overduebool是否已到期false:未到期
    true:已到期

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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_appstr平台标识非必要可为android
    buildnum版本非必要可为6082000

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    dataarray主题颜色列表

    data数组:

    类型内容备注
    0obj主题颜色1
    nobj主题颜色(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum颜色id
    namestr颜色名称
    is_freebool是否免费false:收费
    true:免费
    pricenum价格单位为硬币
    is_boughtbool是否已购买false:未购买
    true:已购买
    statusnum状态1:自动续费
    4:已退订
    buy_timenum购买时间毫秒时间戳
    due_timenum到期时间毫秒时间戳
    color_namestr颜色类型名称
    is_overduebool是否已到期false:未到期
    true:已到期

    示例:

    curl -G 'https://api.bilibili.com/x/garb/skin/color/list' \
    +--data-urlencode 'mobi_app=android' \
    +--data-urlencode 'build=6082000' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    + + + diff --git a/docs/garb/lottery.html b/docs/garb/lottery.html new file mode 100644 index 0000000000..f6be8a393b --- /dev/null +++ b/docs/garb/lottery.html @@ -0,0 +1,482 @@ + + + + + + + + + 装扮/收藏集 | BAC Document + + + + +

    装扮/收藏集

    #1080open in new window 提供

    装扮/收藏集搜索API

    https://api.bilibili.com/x/garb/v2/mall/home/search

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    keywordstr关键词不必要
    psint每页返回数据的最大值不必要
    pnint当前页数不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj返回数据

    data 对象:

    字段类型内容备注
    listarray返回数据若无则为 null
    psint每页返回数据的最大值默认为20
    pnint当前页数默认为1
    totalint查询到数据的总个数

    data 中的 list 数组中的对象:

    字段类型内容备注
    item_idint装扮对应的id收藏集均为0,需要在properties获取
    namestr装扮/收藏集名称
    group_idint?分类的id
    group_namestr?分类的名称
    part_idint类型id装扮为6 收藏集为0
    statestr当前状态默认为“active”
    propertiesobj见下方
    current_activityobj见下方
    next_activityint?下次活动的时间
    current_sourcesint?活动开始时间
    finish_sourcesint?活动结束时间
    sale_left_timeint?销售剩余时间
    sale_time_endint?销售结束时间
    sale_surplusint未知
    sale_count_descstr销售量显示文本
    total_count_descstr总量显示文本
    tagstr当前状态标签
    jump_linkstr跳转链接
    sales_modeint?销售状态

    list 数组中的对象中的 properties 对象:

    共有字段:

    字段类型内容备注
    image_coverstr图片封面
    sale_bp_forever_rawstr价格以0.01B币为单位
    typestr类型收藏集为dlc_act, 装扮为ip

    装扮特有:

    字段类型内容备注
    descstr介绍文本仅装扮
    fan_descstr装扮名称仅装扮
    fan_item_idsstr未知仅装扮
    fan_midstr该up的uid仅装扮
    fan_no_colorstr十六进制颜色仅装扮
    fan_recommend_descstr装备说明仅装扮
    fan_recommend_jump_typestr跳转类型仅装扮
    fan_recommend_jump_valuestr跳转值仅装扮
    fan_share_imagestr分享时的背景图仅装扮
    gray_rulestr未知仅装扮
    gray_rule_typestr未知仅装扮
    image_cover_colorstr?图片封面纯色背景仅装扮
    is_hidestr是否隐藏仅装扮
    item_id_cardstr装扮背景卡片id仅装扮
    item_id_emojistr装扮表情包id仅装扮
    item_id_thumbupstr装扮点赞动画id仅装扮
    open_platform_vip_discountstr是否有大会员减免仅装扮
    owner_uidstrUID默认为虚拟主播衍生品小货架, 仅装扮
    rank_investor_showstr未知仅装扮
    realname_authstr?是否需要实名认证仅装扮
    sale_bp_pm_rawstr该装扮基础套餐价格以0.01B币为单位, 仅装扮
    sale_buy_num_limitstr购买限额仅装扮
    sale_quantitystr该装扮粉丝专属套餐限额仅装扮
    sale_quantity_limitstr该装扮粉丝专属套餐是否限额仅装扮
    sale_region_ip_limitstr该装扮限制购买地区仅装扮
    sale_reserve_switchstr未知仅装扮
    sale_time_beginstr开始售卖时的时间戳仅装扮
    sale_typestr售卖类型默认为pay, 仅装扮
    suit_card_typestr仅装扮

    收藏集特有:

    字段类型内容备注
    book_amountstr购买总数仅收藏集
    dlc_act_idstr收藏集活动id仅收藏集
    dlc_act_statusstr收藏集活动状态仅收藏集
    dlc_is_freestr收藏集抽奖是否免费仅收藏集
    dlc_lottery_idstr收藏集抽奖id仅收藏集
    dlc_lottery_sale_quantitystr购买总数仅收藏集
    dlc_lottery_typestr?抽奖类型仅收藏集
    dlc_sale_end_timestr收藏集抽奖结束时间仅收藏集
    dlc_sale_modestr未知仅收藏集
    dlc_sale_start_timestr收藏集抽奖开始时间仅收藏集
    dlc_surplus_stockstr未知仅收藏集

    list 数组中的对象中的 current_activity 对象:

    字段类型内容备注
    typestr当前永久价格活动类型装扮一般是open_platform_vip_discount, 收藏集一般是first_draw_discount
    time_limitbool是否存在时间限制
    time_leftint剩余时间
    tagstr显示标签
    price_bp_foreverint永久价格以0.01B币为单位
    price_bp_monthint一个月的价格以0.01B币为单位
    type_monthstr当前一个月的价格活动类型仅装扮
    tag_monthstr显示标签仅装扮
    time_limit_monthbool是否存在时间限制仅装扮
    time_left_monthint剩余时间仅装扮

    示例:

    搜索关键词为 2233, 然而没有结果:

    curl -G 'https://api.bilibili.com/x/garb/v2/mall/home/search' \
    +--data-urlencode 'keyword=2233' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": null,
    +    "pn": 1,
    +    "ps": 20,
    +    "total": 0
    +  }
    +}
    +

    收藏集信息API

    https://api.bilibili.com/x/vas/dlc_act/lottery_home_detail

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    act_idint收藏集活动id必要
    lottery_idint收藏集抽奖id不必要但缺了不返回数据

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj返回数据

    data 对象:

    字段类型内容备注
    lottery_idint收藏集抽奖id
    namestr收藏集抽奖名称
    item_listarray可抽出的物品列表
    collect_listobj见下方
    button_bubblenull未知
    guide_infonull未知
    is_bookedint未知
    total_book_cntint未知
    is_fissionint未知
    physical_exchangeint未知

    data 中的 item_list 数组中的对象:

    字段类型内容备注
    item_typeint物品类型目前只拿到个1, 其他值未知
    card_infoobj见下方

    item_list 数组中的对象中的 card_info 对象:

    字段类型内容备注
    card_type_idint该卡片id
    card_namestr该卡片名称
    card_imgstr该卡片图片无水印
    card_typeintint未知
    video_listarray该卡片动态视频无水印
    is_physical_orientationint该卡片旋转方向
    card_scarcityint该卡片稀有度
    is_muteint该卡片是否静音
    widthint该卡片像素宽度
    heightint该卡片像素高度
    card_ext_textstr?该卡片文件名字符串
    card_img_downloadstr该卡片图片有水印
    video_list_downloadarray该卡片动态视频有水印
    subtitles_url未知
    playnull未知
    tagnull未知
    card_sub_typeint未知
    is_new_tagint未知
    is_up_tagint未知
    is_limited_cardint未知
    stock_infonull未知

    data 中的 collect_list 对象:

    字段类型内容备注
    collect_infosarray见下方
    collect_chainnull未知

    collect_list 中的 collect_infos 数组中的对象:

    字段类型内容备注
    collect_idint收集品id
    start_timeint开始时间
    end_timeint结束时间
    redeem_textstr兑换条件
    redeem_item_typeint兑换物类型
    redeem_item_idstr兑换物id
    redeem_item_namestr兑换物名称
    redeem_item_imagestr兑换物预览图片
    owned_item_amountint拥有的数量
    require_item_amountint需要的数量
    has_redeemed_cntint兑换次数
    effective_foreverint是否永久有效
    redeem_item_image_downloadstr未知
    card_itemobj见下方有时为 null
    jump_urlstr?跳转链接
    redeem_cond_typestr当前兑换状态
    remain_stockint当前库存
    total_stockint总库存
    lottery_idint抽奖id
    reward_tagstr奖励显示标签
    redeem_detail_imagestr兑换详情图片
    redeem_detail_videosnull未知
    sortint排序
    redeem_items_optionalnull未知
    unlock_conditionobj见下方

    collect_infos 数组中的对象中的 card_item 对象:

    字段类型内容备注
    card_type_infonull
    card_asset_infonull
    playnull
    tagnull

    collect_infos 数组中的对象中的 unlock_condition 对象:

    字段类型内容备注
    unlockedbool是否解锁
    lock_typeint解锁类型
    expire_atint过期与
    unlocked_atint解锁于
    unlock_thresholdint?解锁起点
    current_thresholdint?当前起点

    示例:

    curl -G --url 'https://api.bilibili.com/x/vas/dlc_act/lottery_home_detail' \
    +--url-query 'act_id=111' \
    +--url-query 'lottery_id=15'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "lottery_id": 15,
    +    "name": "夏日萌菜",
    +    "item_list": [
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700903,
    +          "card_name": "水中嬉戏·隐藏",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/d41acfc3bfcc9032a9759fbd9e64147a6d9a24b0.png",
    +          "card_type": 2,
    +          "video_list": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/2b/y2/_000008vnv2ddoooah248hqoyz2gy22b-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=d22ca6102adb9ffe257f702047be6ef2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=753ff946c9e4b3813eb72c744ed3a399ba9a225fe4767a7a03835890fcbe4b8a&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 40,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1862,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/d38c42b6f1151298888da5902bca5a41e14f67e1.png",
    +          "video_list_download": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/ib/30/_00003d7cuie74gr9z2322d7js5b30ib-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=hw&upsig=24512302cfa3b1f762f3ad08a0a2f5fe&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=5dc3cdfca31fca94c29a2ec945589ff319e97c3291dec2685184ec4083616cc2&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700902,
    +          "card_name": "轻纱花语·隐藏",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/e4721d06a5c435be216b5011f0604c9e07d5e4af.png",
    +          "card_type": 2,
    +          "video_list": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/jb/4u/_00001f04wekkvpmr92osvwpej1e4ujb-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=ad574839c71e5327783acf248b552b3d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=49276ec1afce1a8f571e257fb6d2ab7488f623aa50c2c3b7252258be72315c5e&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 30,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1862,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/0e49e7c8108a98944a96bfa594cf7f74c72398cf.png",
    +          "video_list_download": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/nb/58/_000007ovzgblf574s1ywvm7inwx58nb-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=ec9de21147240e94494d736f277dfb64&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=2370473349a25fae0ea023f65f1e09c70b45d086831eef5f4727b8443acdf9f5&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700904,
    +          "card_name": "甜心女仆",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/e1f9c56a8f49910d07852f2bd648fee910f36ff6.png",
    +          "card_type": 2,
    +          "video_list": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/gb/j6/_000015vmteklku8oj1ypmp1yjijj6gb-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=c7412fe7b155deecbfea939f7c3d1b21&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=8989673c367aa0ffbe747cdc66129a6d1698f1c2b60ace24861ad62127cdd6da&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 20,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1862,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/e6c69329d843603166fac8d41682c3489fd137d4.png",
    +          "video_list_download": [
    +            "https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/zb/eq/_000018oi0e68wv4id2vkrk9ovpteqzb-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=hw&upsig=f972e8cd996d058deb4e0ffb1d57671e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=99054c626717b4ba61c01bbb0fe59f67feac394b89e19e4bbf95290d3a425f94&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
    +          ],
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700901,
    +          "card_name": "约会憧憬",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/924ef9a71bf39010935b4a43845bec13c8a2022c.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/40a9ff949ca7a50dbce146ad28fbb567c2583261.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700900,
    +          "card_name": "夏日小憩",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/0eddbfc70200f16bef06acc88ef132eb25ede52d.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/61e26e17705e06ecdfdb9ff97befb19c702cf81e.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700899,
    +          "card_name": "微风校园",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/bbeaf7993566684e328e74d8ef7c47e6242869a2.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/8ac61045334699d621363ccac87153a7128ef0c3.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700898,
    +          "card_name": "萌宠幻想",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/f93f200ec862b4520b30e8f03219fbaca91a2089.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/93e59f3080f6b8070b0d0621496e4ed6cb20cf8f.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      },
    +      {
    +        "item_type": 1,
    +        "card_info": {
    +          "card_type_id": 700897,
    +          "card_name": "空中环游",
    +          "card_img": "https://i0.hdslb.com/bfs/baselabs/fc0c020091c0a9fb1778c420bc4f9773a72ea7ba.png",
    +          "card_type": 1,
    +          "video_list": null,
    +          "is_physical_orientation": 0,
    +          "card_scarcity": 10,
    +          "is_mute": 0,
    +          "width": 1242,
    +          "height": 1863,
    +          "card_ext_text": "",
    +          "card_img_download": "https://i0.hdslb.com/bfs/garb/c1c6c9ca84b584bf5f2b0e1ec7d239eb935e4d44.png",
    +          "video_list_download": null,
    +          "subtitles_url": "",
    +          "play": null,
    +          "tag": null,
    +          "card_sub_type": 0,
    +          "is_new_tag": 0,
    +          "is_up_tag": 0,
    +          "is_limited_card": 0,
    +          "stock_info": null
    +        }
    +      }
    +    ],
    +    "collect_list": {
    +      "collect_infos": [
    +        {
    +          "collect_id": 0,
    +          "start_time": 1685372400,
    +          "end_time": 2114406245,
    +          "redeem_text": "1抽必得勋章,可应用为评论背景&动态卡片",
    +          "redeem_item_type": 1001,
    +          "redeem_item_id": "",
    +          "redeem_item_name": "夏日萌菜勋章",
    +          "redeem_item_image": "http://i0.hdslb.com/bfs/archive/b3d915c6ad88609fb658393585f018459a7e620d.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 1,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": null,
    +          "jump_url": "",
    +          "redeem_cond_type": "",
    +          "remain_stock": 0,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "",
    +          "redeem_detail_image": "",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 172,
    +          "start_time": 1691640000,
    +          "end_time": 2114406245,
    +          "redeem_text": "抽出任意5张不同卡牌,即可领取,单UID仅可领取一次",
    +          "redeem_item_type": 5,
    +          "redeem_item_id": "56658",
    +          "redeem_item_name": "夏日萌菜个性主题",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/48f755d6d08d96bfebcadee0be4bc34ce42421de.jpg",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 5,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/48f755d6d08d96bfebcadee0be4bc34ce42421de.jpg",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 51,
    +          "start_time": 1685372400,
    +          "end_time": 2114406245,
    +          "redeem_text": "抽出任意1张隐藏卡牌,即可领取,单UID仅可领取一次",
    +          "redeem_item_type": 3,
    +          "redeem_item_id": "53199",
    +          "redeem_item_name": "夏日萌菜头像框",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/item/9fcb99ccfd057c5eac165832d71fb63f07f26097.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 1,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/item/9fcb99ccfd057c5eac165832d71fb63f07f26097.png",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 50,
    +          "start_time": 1685372400,
    +          "end_time": 2114406245,
    +          "redeem_text": "抽出任意3张不同卡牌,即可领取,单UID仅可领取一次",
    +          "redeem_item_type": 2,
    +          "redeem_item_id": "53178",
    +          "redeem_item_name": "夏日萌菜表情包",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/462ae9b5735fef4bb9ed87a6d6467a4768b06006.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 3,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 1,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/462ae9b5735fef4bb9ed87a6d6467a4768b06006.png",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        },
    +        {
    +          "collect_id": 366,
    +          "start_time": 1694768400,
    +          "end_time": 1696953600,
    +          "redeem_text": "抽齐全部8张卡牌领取,直接获得全图鉴进度条标记,10月28日前人工发放头像",
    +          "redeem_item_type": 5,
    +          "redeem_item_id": "59374",
    +          "redeem_item_name": "水中嬉戏·隐藏出框头像",
    +          "redeem_item_image": "https://i0.hdslb.com/bfs/garb/ff981dbdca5c6b539e22596674265ef1cb110c9c.png",
    +          "owned_item_amount": 0,
    +          "require_item_amount": 8,
    +          "has_redeemed_cnt": 0,
    +          "effective_forever": 0,
    +          "redeem_item_image_download": "",
    +          "card_item": {
    +            "card_type_info": null,
    +            "play": null,
    +            "tag": null,
    +            "card_asset_info": null
    +          },
    +          "jump_url": "",
    +          "redeem_cond_type": "scarcity",
    +          "remain_stock": -1,
    +          "total_stock": -1,
    +          "lottery_id": 0,
    +          "reward_tag": "任务奖励限定",
    +          "redeem_detail_image": "https://i0.hdslb.com/bfs/garb/ff981dbdca5c6b539e22596674265ef1cb110c9c.png",
    +          "redeem_detail_videos": null,
    +          "sort": 0,
    +          "redeem_items_optional": null,
    +          "unlock_condition": {
    +            "unlocked": true,
    +            "lock_type": 0,
    +            "expire_at": 0,
    +            "unlocked_at": 0,
    +            "unlock_threshold": 0,
    +            "current_threshold": 0
    +          }
    +        }
    +      ],
    +      "collect_chain": null
    +    },
    +    "button_bubble": null,
    +    "guide_info": null,
    +    "is_booked": 0,
    +    "total_book_cnt": 0,
    +    "is_fission": 0,
    +    "physical_exchange": 0
    +  }
    +}
    +
    + + + diff --git a/docs/garb/skin.html b/docs/garb/skin.html new file mode 100644 index 0000000000..81beae588d --- /dev/null +++ b/docs/garb/skin.html @@ -0,0 +1,141 @@ + + + + + + + + + APP主题 | BAC Document + + + + +

    APP主题

    获取主题及加载动画

    https://app.bilibili.com/x/resource/show/skin

    请求方式:GET

    鉴权方式:appkey

    认证方式:仅可APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    buildnum版本APP方式必要可为6082000
    tsnum当前时间戳APP方式必要可为0
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    user_equipobj个性主题信息有效时有此项
    skin_colorsarray主题颜色列表
    load_equipobj加载动画信息有效时有此项

    data中的user_equip对象:

    字段类型内容备注
    idnum装扮id
    namestr装扮名称
    previewstr装扮封面url
    vernum装扮版本时间戳
    package_urlstr装扮包url
    package_md5str装扮包md5校验值
    dataobj装扮配置

    user_equip中的data对象:

    字段类型内容必要性备注
    color_modestr颜色模式必要light:亮色
    dark:暗色
    colorstr前景色?必要颜色
    1. 使用十六进制颜色值
    2. 颜色值的大小写不限,下同
    3. 例:#ffffff
    color_second_pagestr背景色?必要颜色
    tail_colorstr底边栏颜色必要颜色
    tail_color_selectedstr底边栏颜色(选择时)必要颜色
    tail_icon_anibool有无底边栏动画必要false:无
    true:有
    tail_icon_ani_modestr底边栏动画循环播放必要once:播放一次
    head_myself_mp4_playstr我的页面头图(视频)循环必要once:播放一次
    loop:循环播放
    tail_icon_modestr底栏改图标或改颜色必要img:图标
    color:颜色
    side_bg_colorstr侧边栏颜色非必要颜色
    5.x 版本客户端的侧边栏
    side_line_colorstr侧边栏线条颜色?非必要颜色
    5.x 版本客户端的侧边栏
    tail_icon_colorstr底栏图标颜色可能必要颜色
    若 tail_icon_mode = "color",则必要
    tail_icon_color_darkstr底栏图标颜色(夜间模式)可能必要颜色
    若 tail_icon_mode = "color",则必要
    tail_icon_color_selectedstr底栏图标颜色(选择时)可能必要颜色
    若 tail_icon_mode = "color",则必要
    tail_icon_color_selected_darkstr底栏图标颜色(选择时)(夜间模式)可能必要颜色
    若 tail_icon_mode = "color",则必要

    skin_colors数组:

    类型内容备注
    0obj主题颜色1
    nobj主题颜色(n+1)
    ……obj…………

    skin_colors数组中的对象:

    字段类型内容备注
    idnum颜色id
    namestr颜色名称
    is_freebool是否免费false:收费
    true:免费
    pricenum价格单位为硬币
    is_boughtbool是否已购买false:未购买
    true:已购买
    statusnum状态1:自动续费
    4:已退订
    buy_timenum购买时间毫秒时间戳
    due_timenum到期时间毫秒时间戳
    color_namestr颜色类型名称
    is_overduebool是否已到期false:未到期
    true:已到期

    data中的load_equip对象:

    字段类型内容备注
    idnum装扮id
    namestr装扮名称
    vernum装扮版本时间戳
    loading_urlstr加载动画图标url

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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(初音未来-日版)的资源为例

    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.html b/docs/history_toview/history.html new file mode 100644 index 0000000000..744d117002 --- /dev/null +++ b/docs/history_toview/history.html @@ -0,0 +1,461 @@ + + + + + + + + + 历史记录 | BAC Document + + + + +

    历史记录

    获取历史记录列表_web端

    https://api.bilibili.com/x/web-interface/history/cursor

    请求方式:GET

    认证方式:Cookie (SESSDATA)

    注:maxbusinessview_at参数用于历史记录列表的 IFS (无限滚动),其用法类似链表的 next 指针

    url参数:

    参数名类型内容必要性备注
    maxnum历史记录截止目标 id非必要默认为 0
    稿件:稿件 avid
    剧集(番剧 / 影视):剧集 ssid
    直播:直播间 id
    文集:文集 rlid
    文章:文章 cvid
    businessstr历史记录截止目标业务类型非必要默认为空
    archive:稿件
    pgc:剧集(番剧 / 影视)
    live:直播
    article-list:文集
    article:文章
    view_atnum历史记录截止时间非必要时间戳
    默认为 0
    0 为当前时间
    typestr历史记录分类筛选非必要all:全部类型(默认)
    archive:稿件
    live:直播
    article:文章
    psnum每页项数非必要默认为 20,最大 30

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataarray历史记录列表

    data对象:

    字段类型内容备注
    cursorobj历史记录页面信息
    tabarray历史记录筛选类型
    listarray分段历史记录列表

    data中的cursor对象:

    字段类型内容备注
    maxnum最后一项目标 id见请求参数
    view_atnum最后一项时间节点时间戳
    businessstr最后一项业务类型见请求参数
    psnum每页项数

    data中的tab数组:

    类型内容备注
    0obj历史记录筛选类型 1
    1obj历史记录筛选类型 2
    2obj历史记录筛选类型 3

    tab数组中的对象:

    字段类型内容备注
    typestr类型
    namestr类型名

    data中的list数组:

    类型内容备注
    0obj历史记录 1
    nobj历史记录 (n+1)按照查看顺序排列
    ……obj

    list数组中的对象:

    字段类型内容备注
    titlestr条目标题
    long_titlestr条目副标题
    coverstr条目封面图 url用于专栏以外的条目
    covers有效时:array
    无效时:null
    条目封面图组仅用于专栏
    uristr重定向 url仅用于剧集和直播
    historyobj条目详细信息
    videosnum视频分 P 数目仅用于稿件视频
    author_namestrUP 主昵称
    author_facestrUP 主头像 url
    author_midnumUP 主 mid
    view_atnum查看时间时间戳
    progressnum视频观看进度单位为秒
    用于稿件视频或剧集
    badgestr角标文案稿件视频 / 剧集 / 笔记
    show_titlestr分 P 标题用于稿件视频或剧集
    durationnum视频总时长用于稿件视频或剧集
    currentstr(?)
    totalnum总计分集数仅用于剧集
    new_descstr最新一话 / 最新一 P 标识用于稿件视频或剧集
    is_finishnum是否已完结仅用于剧集
    0:未完结
    1:已完结
    is_favnum是否收藏0:未收藏
    1:已收藏
    kidnum条目目标 id详细内容见参数
    tag_namestr子分区名用于稿件视频和直播
    live_statusnum直播状态仅用于直播
    0:未开播
    1:已开播

    list数组中的对象中的covers数组:

    类型内容备注
    0str封面图片 1
    nstr封面图片 (n+1)
    ……str……

    list数组中的对象中的history对象:

    字段类型内容备注
    oidnum目标id稿件视频&剧集(当business=archivebusiness=pgc时):稿件avid
    直播(当business=live时):直播间id
    文章(当business=article时):文章cvid
    文集(当business=article-list时):文集rlid
    epidnum剧集epid仅用于剧集
    bvidstr稿件bvid仅用于稿件视频
    pagenum观看到的视频分P数仅用于稿件视频
    cidnum观看到的对象id稿件视频&剧集(当business=archivebusiness=pgc时):视频cid
    文集(当business=article-list时):文章cvid
    partstr观看到的视频分 P 标题仅用于稿件视频
    businessstr业务类型见请求参数
    dtnum记录查看的平台代码1 3 5 7:手机端
    2:web端
    4 6:pad端
    33:TV端
    0:其他

    示例:

    获取当前时间截止的5条历史记录

    curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \
    +--data-urlencode 'ps=5' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    pnnum页码非必要默认为1
    psnum每页项数非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray历史记录列表

    data数组:

    类型内容备注
    0obj历史观看1
    nobj历史观看(n+1)按照观看顺序排列
    项数为总计观看视频数
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    videosnum视频分P总数默认为1
    tidnum分区tid
    tnamestr子分区名称
    copyrightnum是否转载1:原创
    2:转载
    picstr视频封面图片url
    titlestr稿件标题
    pubdatenum稿件发布时间时间戳
    ctimenum用户提交稿件的时间时间戳
    descstr视频简介
    statenum视频状态略,见获取视频详细信息(web端)中的state备注
    attribute(仅做历史性保留)num稿件属性位配置本字段已被删除
    略,见获取视频详细信息(web端)中的attribute备注
    durationnum视频总计持续时长(所有分P)单位为秒
    rightsobj视频属性标志略,见获取视频详细信息(web端)中的rights对象
    ownerobj视频UP主信息略,见获取视频详细信息(web端)中的owner对象
    statobj视频状态数略,见获取视频详细信息(web端)中的stat对象
    dynamicstr视频同步发布的的动态的文字内容无为空
    cidnum视频1P cid
    dimensionobj视频1P分辨率略,见获取视频详细信息(web端)中的dimension对象
    bangumiobj番剧/影视信息非番剧/影视无此项
    cheeseobj课程信息非课程无此项
    favoritebool是否已收藏true:已收藏
    false:未收藏
    typenum视频属性3:普通视频
    4:剧集
    10:课程
    sub_typenum附视频属性0:普通视频
    1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    devicenum观看平台代码1 3 5 7:手机端
    2:web端
    4 6:pad端
    33:TV端
    0:其他
    pageobj最后观看的分P信息
    countnum分P数非投稿视频无此项
    progressnum观看进度单位为秒
    view_atnum观看时间时间戳
    kidnum稿件avid
    businessstr视频类型标识archive:用户投稿视频
    pgc:番剧/影视
    cheese:课程
    redirect_linkstr重定向url
    bvidstr稿件bvid

    data数组中的对象bangumi对象:

    字段类型内容备注
    coverstr番剧封面图片url
    ep_idnum番剧epid
    episode_statusnum???
    follownum0作用尚不明确
    long_titlestr单集标题
    seasonobj剧集信息
    titlestr集数

    bangumi中的season对象:

    字段类型内容备注
    is_finishnum是否完结0:连载中
    1:完结
    newest_ep_idnum最细一话epid
    newest_ep_indexstr最细一话集数
    season_idnum番剧ssid
    season_statusnum???
    season_typenum???
    titlestr番剧标题
    total_countnum总集数

    data数组中的对象cheese对象:

    字段类型内容备注
    coverstr课程封面图片url
    long_titlestr完整标题
    numberstr本集数
    season_idnum课程ssid
    update_infostr总集数

    示例:

    查询当前视频历史记录列表

    curl -G 'https://api.bilibili.com/x/v2/history' \
    +--data-urlencode 'ps=5' \
    +--data-urlencode 'pn=1' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    kidstr删除的目标记录,格式为{业务类型}_{目标id}详见备注必要视频:archive_{稿件avid}
    直播:live_{直播间id}
    专栏:article_{专栏cvid}
    剧集:pgc_{剧集ssid}
    文集:article-list_{文集rlid}
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除视频av540580868的观看历史记录

    curl 'https://api.bilibili.com/x/v2/history/delete' \
    +--data-urlencode 'kid=archive_540580868' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    清空历史记录

    https://api.bilibili.com/x/v2/history/clear

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    清空历史记录

    curl 'https://api.bilibili.com/x/v2/history/clear' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    停用历史记录

    https://api.bilibili.com/x/v2/history/shadow/set

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    该操作不会影响原有历史记录

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    switchbool停用开关非必要true:停用
    false:正常
    默认为false
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    停用历史记录功能

    curl 'https://api.bilibili.com/x/v2/history/shadow/set' \
    +--data-urlencode 'switch=true' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    查询历史记录停用状态

    https://api.bilibili.com/x/v2/history/shadow

    请求方式:GET

    认证方式:Cookie (SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    databool停用状态true:停用
    false:正常

    示例:

    当前状态为未停用视频历史记录

    curl 'https://api.bilibili.com/x/v2/history/shadow' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": false
    +}
    +
    + + + diff --git a/docs/history_toview/toview.html b/docs/history_toview/toview.html new file mode 100644 index 0000000000..40312b05cc --- /dev/null +++ b/docs/history_toview/toview.html @@ -0,0 +1,225 @@ + + + + + + + + + 稍后再看 | BAC Document + + + + +

    稍后再看

    视频添加稍后再看

    https://api.bilibili.com/x/v2/history/toview/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    最多添加100个视频

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    90001:列表已满
    90003:稿件已经被删除
    messagestr错误信息默认为0
    ttlnum1

    示例:

    添加视频av41687433/BV1ht41147kj到稍后再看列表

    avid方式:

    curl 'https://api.bilibili.com/x/v2/history/toview/add' \
    +--data-urlencode 'aid=41687433' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/v2/history/toview/add' \
    +--data-urlencode 'bvid=BV1ht41147kj' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    添加频道中所有视频到稍后再看

    https://space.bilibili.com/ajax/channel/addAllToView

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserIDDedeUserID__ckMd5存在且不为0,referer为 .bilibili.com域名下

    带有转义

    超过容量后会截取容量之内的添加

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum目标频道id必要
    midnum目标频道所属的用户mid必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool是否成功false:失败
    true:成功
    datastr错误信息

    示例:

    添加用户mid=282994下的频道4693中所有视频到稍后再看

    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'
    +
    查看响应示例:
    {
    +    "status": true,
    +    "data": "操作成功"
    +}
    +

    获取稍后再看视频列表

    https://api.bilibili.com/x/v2/history/toview

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    datadata数据本体

    data对象:

    字段类型内容备注
    countnum稍后再看视频数
    listarray稍后再看视频列表

    data中的list数组:

    类型内容备注
    0obj稍后再看1
    nobj稍后再看(n+1)按照添加顺序排列
    项数为总计稍后再看视频数
    ……obj…………
    99obj最后一项

    data中的list数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    videosnum稿件分P总数默认为1
    tidnum分区tid
    tnamestr子分区名称
    copyrightnum是否转载1:原创
    2:转载
    picstr稿件封面图片url
    titlestr稿件标题
    pubdatenum稿件发布时间时间戳
    ctimenum用户提交稿件的时间时间戳
    descstr视频简介
    statenum视频状态略,见获取视频详细信息(web端)中的state备注
    attribute(仅做历史性保留)num稿件属性位配置本字段已被删除略,见获取视频详细信息(web端)中的attribute备注
    durationnum稿件总时长(所有分P)单位为秒
    rightsobj稿件属性标志略,见获取视频详细信息(web端)中的rights对象
    ownerobj稿件UP主信息略,见获取视频详细信息(web端)中的owner对象
    statobj稿件状态数略,见获取视频详细信息(web端)中的stat对象
    dynamicstr视频同步发布的的动态的文字内容无为空
    dimensionobj稿件1P分辨率略,见获取视频详细信息(web端)中的dimension对象
    countnum稿件分P数非投稿视频无此项
    cidnum视频cid
    progressnum观看进度时间单位为秒
    add_atnum添加时间时间戳
    bvidstr稿件bvid

    示例:

    获取稍后再看视频列表

    curl 'https://api.bilibili.com/x/v2/history/toview' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
     "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 ):

    参数名类型内容必要性备注
    viewedbool是否删除所有已观看的视频非必要true:删除已观看视频
    false:不删除已观看视频
    默认为false
    aidnum删除的目标记录的avid非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除视频av540580868的稍后再看记录

    curl 'https://api.bilibili.com/x/v2/history/toview/del' \
    +--data-urlencode 'aid=540580868' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除所有已观看的视频

    curl 'https://api.bilibili.com/x/v2/history/toview/del' \
    +--data-urlencode 'viewed=true' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    清空稍后再看视频列表

    https://api.bilibili.com/x/v2/history/toview/clear

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfnumCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    messagestr错误信息默认为0
    ttlnum1

    示例:

    清空稍后再看视频列表

    curl 'https://api.bilibili.com/x/v2/history/toview/clear' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/live/follow_up_live.html b/docs/live/follow_up_live.html new file mode 100644 index 0000000000..5003307130 --- /dev/null +++ b/docs/live/follow_up_live.html @@ -0,0 +1,110 @@ + + + + + + + + + 关注UP直播情况 | BAC Document + + + + +

    关注UP直播情况

    用户关注的所有UP的直播情况

    https://api.live.bilibili.com/xlive/web-ucenter/user/following

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    pagenum页码非必要默认为1
    page_sizenum每页的数据数量非必要有效值1-10, 默认为10
    ignoreRecordnum尚不明确
    一般为1
    hit_abbool尚不明确
    建议用true, 不填为false

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:错误
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    titlestr标题
    pageSizenum每页的数据数量
    totalPagenum分页数量
    listobjUP直播情况列表
    countnum曾直播过的UP数量
    never_lived_countnum未直播过的UP数量
    live_countnum正在直播的UP数量
    never_lived_faceslist尚不明确

    list对象:

    字段类型内容备注
    roomidnum房间号
    uidnum主播uid
    unamestr主播名
    titlestr直播标题
    facestr主播头像
    live_statusnum是否正在直播0: 未直播
    1: 正在直播
    record_numnum尚不明确
    一般为0
    recent_record_idstr尚不明确
    一般为空
    is_attentionnum尚不明确
    一般为1
    clipnumnum尚不明确
    一般为0
    fans_numnum尚不明确
    一般为0
    area_namestr尚不明确
    一般为空
    area_valuestr尚不明确
    一般为空
    tagsstr尚不明确
    一般为空
    recent_record_id_v2str尚不明确
    一般为空
    record_num_v2num尚不明确
    一般为0
    record_live_timenum主播上一次直播结束的时间戳正在直播时, 值为0
    area_name_v2str频道的名称
    room_newsstr房间公告
    switchbool尚不明确
    watch_iconstr尚不明确
    text_smallstr尚不明确
    当主播正在直播时, 为在线人数(可能)
    room_coverstr房间封面图片的URL
    parent_area_idnum父分区id
    area_idnum分区id

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/following' \
    +     -b 'SESSDATA=xxx' \
    +     --data-urlencode 'page=1' \
    +     --data-urlencode 'page_size=2' \
    +     --data-urlencode 'ignoreRecord=1' \
    +     --data-urlencode 'hit_ab=true'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "title": "哔哩哔哩直播 - 我的关注",
    +    "pageSize": 2,
    +    "totalPage": 26,
    +    "list": [
    +      {
    +        "roomid": 544853,
    +        "uid": 686127,
    +        "uname": "籽岷",
    +        "title": "尝试双机位",
    +        "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
    +        "live_status": 0,
    +        "record_num": 0,
    +        "recent_record_id": "",
    +        "is_attention": 1,
    +        "clipnum": 0,
    +        "fans_num": 0,
    +        "area_name": "",
    +        "area_value": "",
    +        "tags": "",
    +        "recent_record_id_v2": "",
    +        "record_num_v2": 0,
    +        "record_live_time": 1720011626,
    +        "area_name_v2": "新游推荐",
    +        "room_news": "",
    +        "switch": true,
    +        "watch_icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
    +        "text_small": "10.9万",
    +        "room_cover": "http://i0.hdslb.com/bfs/live/new_room_cover/6c89c41d7695a080d31ae21c128f7759a7f419e5.jpg",
    +        "parent_area_id": 6,
    +        "area_id": 889
    +      },
    +      {
    +        "roomid": 21686237,
    +        "uid": 456664753,
    +        "uname": "央视新闻",
    +        "title": "央视新闻的直播间",
    +        "face": "https://i1.hdslb.com/bfs/face/38a8db1c187b64a1412fafffbf350f8a3f436371.jpg",
    +        "live_status": 0,
    +        "record_num": 0,
    +        "recent_record_id": "",
    +        "is_attention": 1,
    +        "clipnum": 0,
    +        "fans_num": 0,
    +        "area_name": "",
    +        "area_value": "",
    +        "tags": "",
    +        "recent_record_id_v2": "",
    +        "record_num_v2": 0,
    +        "record_live_time": 1720001717,
    +        "area_name_v2": "社科法律心理",
    +        "room_news": "",
    +        "switch": false,
    +        "watch_icon": "https://i0.hdslb.com/bfs/live/0b265af1af0a77abc47aa3b8f1a5c0769d8bd23b.png",
    +        "text_small": "0",
    +        "room_cover": "http://i0.hdslb.com/bfs/live/d650d0e6e49397ea71d630be0a0e686679df16d8.jpg",
    +        "parent_area_id": 11,
    +        "area_id": 376
    +      }
    +    ],
    +    "count": 52,
    +    "never_lived_count": 30,
    +    "live_count": 0,
    +    "never_lived_faces": []
    +  }
    +}
    +
    +
    + + + diff --git a/docs/live/info.html b/docs/live/info.html new file mode 100644 index 0000000000..f0e93609aa --- /dev/null +++ b/docs/live/info.html @@ -0,0 +1,1719 @@ + + + + + + + + + 直播间基本信息 | BAC Document + + + + +

    直播间基本信息

    获取直播间信息

    https://api.live.bilibili.com/room/v1/Room/get_info

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    room_idnum直播间号必要可以为短号

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:不存在
    messagestr错误信息
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    uidnum主播mid
    room_idnum直播间长号
    short_idnum直播间短号为0是无短号
    attentionnum关注数量
    onlinenum观看人数
    is_portraitbool是否竖屏
    descriptionstr描述
    live_statusnum直播状态0:未开播
    1:直播中
    2:轮播中
    area_idnum分区id
    parent_area_idnum父分区id
    parent_area_namestr父分区名称
    old_area_idnum旧版分区id
    backgroundstr背景图片链接
    titlestr标题
    user_coverstr封面
    keyframestr关键帧用于网页端悬浮展示
    is_strict_roombool未知未知
    live_timestr直播开始时间YYYY-MM-DD HH:mm:ss
    tagsstr标签','分隔
    is_anchornum未知未知
    room_silent_typestr禁言状态
    room_silent_levelnum禁言等级
    room_silent_secondnum禁言时间单位是秒
    area_namestr分区名称
    pardantsstr未知未知
    area_pardantsstr未知未知
    hot_wordslist(str)热词
    hot_words_statusnum热词状态
    verifystr未知未知
    new_pendantsobj头像框\大v
    up_sessionstr未知
    pk_statusnumpk状态
    pk_idnumpk id
    battle_idnum未知
    allow_change_area_timenum
    allow_upload_cover_timenum
    studio_infoobj

    new_pendants对象:

    字段类型内容备注
    frameobj头像框
    mobile_frameobj同上手机版, 结构一致, 可能null
    badgeobj大v
    mobile_badgeobj同上手机版, 结构一致, 可能null

    frame对象:

    字段类型内容备注
    namestr名称
    valuestr
    positionnum位置
    descstr描述
    areanum分区
    area_oldnum旧分区
    bg_colorstr背景色
    bg_picstr背景图
    use_old_areabool是否旧分区号

    badge对象:

    字段类型内容备注
    namestr类型v_person: 个人认证(黄)
    v_company: 企业认证(蓝)
    positionnum位置
    valuestr
    descstr描述

    studio_info对象:

    字段类型内容备注
    statusnum
    master_listarray

    示例:

    查询直播间room_id=1信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \
    +--data-urlencode 'room_id=1'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    roomStatusnum直播间状态0:无房间
    1:有房间
    roundStatusnum轮播状态0:未轮播
    1:轮播
    live_statusnum直播状态0:未开播
    1:直播中
    urlstr直播间网页url
    titlestr直播间标题
    coverstr直播间封面url
    onlinenum直播间人气值为上次直播时刷新
    roomidnum直播间id(短号)
    broadcast_typenum0
    online_hiddennum0

    示例:

    查询用户mid=322892的直播间信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \
    +--data-urlencode 'mid=322892'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    idnum目标直播间号(短号)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    60004:直播间不存在
    msgstr错误信息默认为ok
    messagestr错误信息默认为ok
    dataobj信息本体

    data对象:

    字段类型内容备注
    room_idnum直播间真实id
    short_idnum直播间id(短号)
    uidnum主播用户mid
    need_p2pnum是否p2p
    is_hiddenbool是否隐藏
    is_lockedbool是否锁定
    is_portraitbool是否竖屏
    live_statusnum直播状态0:未开播
    1:直播中
    2:轮播中
    hidden_tillnum隐藏时间戳
    lock_tillnum锁定时间戳
    encryptedbool是否加密
    pwd_verifiedbool加密房间是否通过密码验证encrypted=true时才有意义
    live_timenum开播时间未开播时为-62170012800
    room_shieldnum未知
    is_spnum是否为特殊直播间0:普通直播间
    1:付费直播间
    special_typenum特殊直播间标志0:普通直播间
    1:付费直播间
    2:拜年祭直播间

    示例:

    查询直播间id=76的直播间信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \
    +--data-urlencode 'id=76'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    uidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    msgstr错误信息默认为空
    messagestr错误信息默认为空
    dataobj信息本体

    data对象:

    字段类型内容备注
    infoobj主播信息
    expobj经验等级
    follower_numnum主播粉丝数
    room_idnum直播间id(短号)
    medal_namestr粉丝勋章名
    glory_countnum主播荣誉数
    pendantstr直播间头像框url
    link_group_numnum0作用尚不明确
    room_newsobj主播公告

    info对象:

    字段类型内容备注
    uidnum主播mid
    unamestr主播用户名
    facestr主播头像url
    official_verifyobj认证信息
    gendernum主播性别-1:保密
    0:女
    1:男

    info中的official_verify对象:

    字段类型内容备注
    typenum主播认证类型-1:无
    0:个人认证
    1:机构认证
    descstr主播认证信息

    exp对象:

    字段类型内容备注
    master_levelobj主播等级

    exp中的master_level对象:

    字段类型内容备注
    levelnum当前等级
    colornum等级框颜色
    currentarray当前等级信息
    nextarray下一等级信息

    master_level中的current数组:

    类型内容备注
    0num升级积分
    1num总积分

    master_level中的next数组:

    类型内容备注
    0num升级积分
    1num总积分

    room_news对象:

    字段类型内容备注
    contentstr公告内容
    ctimestr公告时间
    ctime_textstr公告日期

    示例:

    查询直播间mid=2的主播信息

    curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \
    +--data-urlencode 'uid=2'
    +
    查看响应示例:
    {
    +  "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/xlive/web-room/v1/index/getRoomBaseInfo

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    req_bizstrweb_room_componet必要
    room_idsnum直播间短ID不必要多个重复该参数即可

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    by_uidsobj
    by_room_idsobj直播间信息

    data中的by_room_ids对象:

    以直播间长ID为键, 直播间信息为值的, 按键名降序排序

    by_room_ids中的值对象:

    字段类型内容备注
    room_idnum直播间长ID
    uidnum主播用户mid
    area_idnum直播间分区ID
    live_statusnum直播状态0: 未开播
    1: 直播中
    2: 轮播中
    live_urlstr直播间网页url
    parent_area_idnum直播间父分区ID
    titlestr直播间标题
    parent_area_namestr直播间父分区名称
    area_namestr直播间分区名称
    live_timestr开播时间yyyy-MM-dd HH:mm:ss
    descriptionstr直播间简介
    tagsstr直播间标签, 分隔
    attentionnum关注数
    onlinenum在线人数
    short_idnum直播间短ID为0是无短号
    unamestr主播用户名
    coverstr直播间封面url
    backgroundstr直播间背景url
    join_slidenum1
    live_idnum0
    live_id_strstr"0"

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomBaseInfo' \
    +--url-query 'req_biz=web_room_componet' \
    +--url-query 'room_ids=1' \
    +--url-query 'room_ids=3
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "by_uids": {},
    +    "by_room_ids": {
    +      "23058": {
    +        "room_id": 23058,
    +        "uid": 11153765,
    +        "area_id": 190,
    +        "live_status": 0,
    +        "live_url": "https://live.bilibili.com/23058",
    +        "parent_area_id": 5,
    +        "title": "哔哩哔哩音悦台",
    +        "parent_area_name": "电台",
    +        "area_name": "唱见电台",
    +        "live_time": "0000-00-00 00:00:00",
    +        "description": "<p>这里是哔哩哔哩官方音乐台喔!</p><p>一起来听音乐吧ε=ε=(ノ≧∇≦)ノ</p><p>没想到蒸汽配圣诞下装,意外的很暴露呢=3=</p>\n",
    +        "tags": "",
    +        "attention": 225431,
    +        "online": 0,
    +        "short_id": 3,
    +        "uname": "3号直播间",
    +        "cover": "",
    +        "background": "https://i0.hdslb.com/bfs/live/2836bb7b84c792e2c6aadfd4d1cce13484775fa3.jpg",
    +        "join_slide": 1,
    +        "live_id": 0,
    +        "live_id_str": "0"
    +      },
    +      "5440": {
    +        "room_id": 5440,
    +        "uid": 9617619,
    +        "area_id": 701,
    +        "live_status": 2,
    +        "live_url": "https://live.bilibili.com/5440",
    +        "parent_area_id": 11,
    +        "title": "华为nova Flip新生之夜",
    +        "parent_area_name": "知识",
    +        "area_name": "科技·科学",
    +        "live_time": "0000-00-00 00:00:00",
    +        "description": "<p>华为novaFlip新生之夜正在直播中!备案号:Z0910417240818001<br></p>",
    +        "tags": "",
    +        "attention": 17848313,
    +        "online": 0,
    +        "short_id": 1,
    +        "uname": "哔哩哔哩直播",
    +        "cover": "http://i0.hdslb.com/bfs/live/1a862058e4211a5e73a8a1bf0635953ea08a4091.jpg",
    +        "background": "http://i0.hdslb.com/bfs/live/ec518ede15d4c2547c83cb59f14752450c0889b0.jpg",
    +        "join_slide": 1,
    +        "live_id": 0,
    +        "live_id_str": "0"
    +      }
    +    }
    +  }
    +}
    +

    批量查询直播间状态

    https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids

    请求方式:GET/POST

    认证方式:无 (无需添加Cookie)

    url参数 (GET方式):

    参数名类型内容必要性备注
    uids[]array要查询的主播 mid必要

    正文参数 (POST方式):

    参数名类型内容必要性备注
    uidsnums要查询的主播 mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    messagestr错误信息默认为success
    msgstr错误信息默认为success
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    uidstr直播间信息实际字段为主播mid

    uid对象:

    字段类型内容备注
    titlestr直播间标题
    room_idnum直播间房间号直播间实际房间号
    uidnum主播mid
    onlinenum直播间在线人数
    live_timenum开播时间戳,单位秒,未开播时为0
    live_statusnum直播间开播状态0:未开播
    1:正在直播
    2:轮播中
    short_idnum直播间房间号直播间短房间号,常见于签约主播
    areanum直播间分区id
    area_namestr直播间分区名
    area_v2_idnum直播间新版分区id
    area_v2_namestr直播间新版分区名
    area_v2_parent_idnum直播间父分区id
    area_v2_parent_namestr直播间父分区名
    unamestr主播用户名
    facestr主播头像url
    tag_namestr直播间标签
    tagsstr直播间自定标签
    cover_from_userstr直播间封面url
    keyframestr直播间关键帧url
    lock_tillstr直播间封禁信息
    hidden_tillstr直播间隐藏信息
    broadcast_typenum直播类型0:普通直播
    1:手机直播

    示例:

    查询用户mid=672328094的直播间信息

    # 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]}" 
    +
    查看响应示例:
    {
    +  "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
    +    }
    +  }
    +}
    +

    获取直播间最近历史弹幕

    https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory

    请求方式: GET

    注: 该接口部分返回信息不明, 仅供参考, 来源 cv8186413open in new window

    URL参数:

    参数名类型内容必要性备注
    roomidnum直播间短ID必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为空
    msgstr仅请求成功时存在
    ttlnum1仅请求失败时存在
    dataobj信息本体

    data对象:

    字段类型内容备注
    adminarray管理员最新的10条弹幕消息格式与room相同
    roomarray普通用户的10条弹幕信息格式与admin相同

    data中的任意数组中的对象:

    字段类型内容备注
    textstr弹幕内容
    dm_typenum弹幕类型
    uidnum弹幕发送者的UID
    nicknamestr弹幕发送者的昵称
    uname_colorstr弹幕发送者的颜色?
    timelinestr弹幕发送时间格式为yyyy-MM-dd HH:mm:ss
    isadminnum是否为管理员
    vipnum是否为VIP?
    svipnum是否为SVIP?
    medalarray粉丝勋章信息?格式不明
    titlearray标题?格式不明
    user_levelarray用户等级信息?格式不明
    ranknum排名?用户空间详细信息
    teamidnum
    rndstr发送时间?UNIX 秒级时间戳
    user_title用户标题?格式不明
    guard_level
    bubble
    bubble_color
    lpl
    yeah_space_url
    jump_to_url
    check_infoobj弹幕审核信息?
    voice_dm_infoobj语音弹幕信息?
    emoticonobj表情信息?
    emotsnull
    id_strstr弹幕ID?
    wealth_levelnum财富等级?
    bubble_id_v2num
    replyobj
    group_medalnull
    userobj该用户信息

    data对象中的user对象:

    字段类型内容备注
    uidnum用户 mid
    baseobj用户基本信息
    medalnull
    wealthnull
    titleobj用户标题?
    guardnull
    uhead_framenull
    guard_leaderobj

    data对象中的user对象中的base对象:

    字段类型内容备注
    namestr用户名
    facestr用户头像 url
    name_colornum用户名颜色?
    is_mysterybool是否为神秘用户?
    risk_ctrl_infonull
    origin_infoobj原始信息?
    official_infoobj认证信息
    name_color_strstr

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory' \
    +--url-query 'roomid=1'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "admin": [],
    +    "room": [
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-15 05:05:06",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723669505",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723669506,
    +          "ct": "18434F3D"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "74368f428dfaec806cd205e62866bd1c45",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 05:05:06",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723755905",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723755906,
    +          "ct": "F65D229F"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "7f3bb90826ad642012a31368f266be6d2",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:33:28",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723818808,
    +          "ct": "1B75FB"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "088336a59eb277942ee353dd6666bf6347",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:35:16",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723818916,
    +          "ct": "D6ABF2E7"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "6f421255746f5d8e4731fdadac66bf6356",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:36:51",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723819011,
    +          "ct": "1B6978C1"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "270f5a2ac69c5904617873cc4666bf640",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "好帅",
    +        "dm_type": 0,
    +        "uid": 3546708493469870,
    +        "nickname": "aodun1",
    +        "uname_color": "",
    +        "timeline": "2024-08-16 22:39:01",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723811729",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723819141,
    +          "ct": "143613AF"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "002ebbdc402b3d625052865f7b66bf6469",
    +        "wealth_level": 0,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546708493469870,
    +          "base": {
    +            "name": "aodun1",
    +            "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "aodun1",
    +              "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "赚麻了 哈哈",
    +        "dm_type": 0,
    +        "uid": 243082910,
    +        "nickname": "可人的樱花",
    +        "uname_color": "",
    +        "timeline": "2024-08-17 01:00:49",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          0,
    +          0,
    +          9868950,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723379161",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723827649,
    +          "ct": "3917D4D7"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "03f3261e144366383c49c6b5d166bf8563",
    +        "wealth_level": 7,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 243082910,
    +          "base": {
    +            "name": "可人的樱花",
    +            "face": "http://i2.hdslb.com/bfs/face/5faa9bef952f831236b740932c559476658f88e5.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "可人的樱花",
    +              "face": "http://i2.hdslb.com/bfs/face/5faa9bef952f831236b740932c559476658f88e5.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": null,
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-17 05:05:07",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723842307",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723842307,
    +          "ct": "8B947ABC"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "1a928b968afaa7825ea506ffe566bfbf16",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "下播啦~ 感谢大家的陪伴~ 下次见哦~",
    +        "dm_type": 0,
    +        "uid": 3546614675278489,
    +        "nickname": "机器人管家_鱼",
    +        "uname_color": "",
    +        "timeline": "2024-08-18 00:07:36",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          21,
    +          "赴神明",
    +          "Mr_钟明",
    +          27751673,
    +          1725515,
    +          "",
    +          0,
    +          12632256,
    +          12632256,
    +          12632256,
    +          0,
    +          0,
    +          3493291261692485
    +        ],
    +        "title": [
    +          "",
    +          ""
    +        ],
    +        "user_level": [
    +          11,
    +          0,
    +          6406234,
    +          ">50000"
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723910862",
    +        "user_title": "",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723910856,
    +          "ct": "9BD05026"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "2ee6101973eeb69931eb86ac7e66c0ca17",
    +        "wealth_level": 23,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 3546614675278489,
    +          "base": {
    +            "name": "机器人管家_鱼",
    +            "face": "https://i1.hdslb.com/bfs/face/de737cd746a96742c07ced6c213aa25cf0429d90.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "机器人管家_鱼",
    +              "face": "https://i1.hdslb.com/bfs/face/de737cd746a96742c07ced6c213aa25cf0429d90.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "赴神明",
    +            "level": 21,
    +            "color_start": 12632256,
    +            "color_end": 12632256,
    +            "color_border": 12632256,
    +            "color": 1725515,
    +            "id": 1231122,
    +            "typ": 0,
    +            "is_light": 0,
    +            "ruid": 3493291261692485,
    +            "guard_level": 0,
    +            "score": 50001573,
    +            "guard_icon": "",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#919298CC",
    +            "v2_medal_color_end": "#919298CC",
    +            "v2_medal_color_border": "#919298CC",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#6C6C7299",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "",
    +            "title_css_id": ""
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      },
    +      {
    +        "text": "‫",
    +        "dm_type": 0,
    +        "uid": 20276964,
    +        "nickname": "咸菜拉面",
    +        "uname_color": "",
    +        "timeline": "2024-08-18 05:05:05",
    +        "isadmin": 0,
    +        "vip": 0,
    +        "svip": 0,
    +        "medal": [
    +          27,
    +          "小孩梓",
    +          "阿梓从小就很可爱",
    +          80397,
    +          398668,
    +          "",
    +          0,
    +          6809855,
    +          398668,
    +          6850801,
    +          3,
    +          1,
    +          7706705
    +        ],
    +        "title": [
    +          "title-86-1",
    +          "title-86-1"
    +        ],
    +        "user_level": [
    +          59,
    +          0,
    +          16752445,
    +          931
    +        ],
    +        "rank": 10000,
    +        "teamid": 0,
    +        "rnd": "1723928706",
    +        "user_title": "title-86-1",
    +        "guard_level": 0,
    +        "bubble": 0,
    +        "bubble_color": "",
    +        "lpl": 0,
    +        "yeah_space_url": "",
    +        "jump_to_url": "",
    +        "check_info": {
    +          "ts": 1723928705,
    +          "ct": "8A379FF4"
    +        },
    +        "voice_dm_info": {
    +          "voice_url": "",
    +          "file_format": "",
    +          "text": "",
    +          "file_duration": 0,
    +          "file_id": ""
    +        },
    +        "emoticon": {
    +          "id": 0,
    +          "emoticon_unique": "",
    +          "text": "",
    +          "perm": 0,
    +          "url": "",
    +          "in_player_area": 0,
    +          "bulge_display": 0,
    +          "is_dynamic": 0,
    +          "height": 0,
    +          "width": 0
    +        },
    +        "emots": null,
    +        "id_str": "41e8b55dea381d494cfe60ba3466c11064",
    +        "wealth_level": 37,
    +        "bubble_id_v2": 0,
    +        "reply": {
    +          "show_reply": true,
    +          "reply_mid": 0,
    +          "reply_uname": "",
    +          "reply_uname_color": "",
    +          "reply_is_mystery": false
    +        },
    +        "group_medal": null,
    +        "user": {
    +          "uid": 20276964,
    +          "base": {
    +            "name": "咸菜拉面",
    +            "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg",
    +            "name_color": 0,
    +            "is_mystery": false,
    +            "risk_ctrl_info": null,
    +            "origin_info": {
    +              "name": "咸菜拉面",
    +              "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg"
    +            },
    +            "official_info": {
    +              "role": 0,
    +              "title": "",
    +              "desc": "",
    +              "type": -1
    +            },
    +            "name_color_str": ""
    +          },
    +          "medal": {
    +            "name": "小孩梓",
    +            "level": 27,
    +            "color_start": 398668,
    +            "color_end": 6850801,
    +            "color_border": 6809855,
    +            "color": 398668,
    +            "id": 13139,
    +            "typ": 0,
    +            "is_light": 1,
    +            "ruid": 7706705,
    +            "guard_level": 3,
    +            "score": 50112778,
    +            "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
    +            "honor_icon": "",
    +            "v2_medal_color_start": "#4775EFCC",
    +            "v2_medal_color_end": "#4775EFCC",
    +            "v2_medal_color_border": "#58A1F8FF",
    +            "v2_medal_color_text": "#FFFFFFFF",
    +            "v2_medal_color_level": "#000B7099",
    +            "user_receive_count": 0
    +          },
    +          "wealth": null,
    +          "title": {
    +            "old_title_css_id": "title-86-1",
    +            "title_css_id": "title-86-1"
    +          },
    +          "guard": null,
    +          "uhead_frame": null,
    +          "guard_leader": {
    +            "is_guard_leader": false
    +          }
    +        }
    +      }
    +    ]
    +  },
    +  "message": "",
    +  "msg": ""
    +}
    +

    清晰度代码

    代码说明
    30000杜比
    200004K
    10000原画
    400蓝光
    250超清
    150高清
    80流畅

    获取直播间信息

    https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo

    请求方式:GET

    认证方式:无 (无需添加Cookie)

    url参数 (GET方式):

    参数名类型内容必填备注
    room_idnum直播间id必要
    protocolstr直播协议必要0:http_stream
    1:http_hls
    可多选, 使用英文逗号分隔
    formatstr格式必要0:flv
    1:ts
    2:fmp4
    可多选, 使用英文逗号分隔
    codecstr编码格式必要0:AVC
    1:HEVC
    可多选, 使用英文逗号分隔
    qnnum清晰度编码默认150
    清晰度代码
    platformstrweb
    ptypenum8
    dolbynum5
    panoramanum1

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    1002002:参数错误
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    room_idnum直播间id
    short_idnum直播间短id
    uidnum主播uid
    is_hiddenbool直播间是否被隐藏
    is_lockedbool直播间是否被锁定
    is_portraitbool是否竖屏
    live_statusnum直播状态0:未开播
    1:直播中
    2:轮播中
    hidden_tillnum隐藏结束时间
    lock_tillnum封禁结束时间秒级时间戳
    encryptedbool直播间为加密直播间
    pwd_verifiedbool是否通过密码验证encryptedtrue时才有意义
    live_timenum本次开播时间秒级时间戳
    room_shieldnum
    all_special_typesarray
    playurl_infoobj直播流信息

    playurl_info对象

    字段名类型内容备注
    conf_jsonstr
    playurlobj

    playurl对象

    字段名类型内容备注
    cidnum直播间id
    g_qn_descarray清晰度列表
    streamarray直播流信息
    p2p_dataobj
    dolby_qn

    g_qn_desc数组中的对象

    字段名类型内容备注
    qnnum清晰度代码清晰度代码
    descstr清晰度描述
    hdr_descstr
    attr_desc

    stream数组中的对象

    字段名类型内容备注
    protocol_namestr协议名
    formatarray格式列表

    format数组中的对象

    字段名类型内容备注
    format_namestr格式名
    codecarray编码列表

    codec数组中的对象

    字段名类型内容备注
    codec_namestr编码名
    current_qnnum当前清晰度编码清晰度代码
    accept_qnarray可用清晰度编码列表清晰度代码
    base_urlstr播放源路径
    url_infoarray域名信息列表
    hdr_qnnull
    dolby_typenum
    attr_namestr

    url_info数组中的对象

    字段名类型内容备注
    hoststr域名
    extrastrURL参数
    stream_ttlnum

    p2p_data对象

    字段名类型内容备注
    p2pbool
    p2p_typenum
    m_p2pbool
    m_serversnull

    示例:

    查询room_id=3的直播间信息

    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'
    +
    查看响应示例:
    {
    +  "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
    +      }
    +    }
    +  }
    +}
    +

    获取直播间主播信息

    https://api.live.bilibili.com/live_user/v1/UserInfo/get_anchor_in_room

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    roomidnum直播间号必要可以为短号

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功 (直播间不存在也为0)
    messagestr错误信息
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    infoobj主播信息
    levelobj直播等级
    sannum主播san值12满分

    info对象:

    字段类型内容备注
    uidnum主播mid
    unamestr主播用户名
    facestr主播头像URL
    rankstr主播排名
    platform_user_levelnum平台用户等级
    mobile_verifynum手机验证状态
    identificationnum身份认证状态
    official_verifyobj认证信息
    vip_typenumVIP类型
    gendernum主播性别-1:保密
    0:女
    1:男

    info中的official_verify对象:

    字段类型内容备注
    typenum主播认证类型-1:无
    0:个人认证
    1:机构认证
    descstr主播认证信息
    rolenum未知

    level对象:

    字段类型内容备注
    uidnum用户ID
    costnum消费金额
    rcostnum充值金额
    user_scorestr用户积分
    vipnumVIP状态
    vip_timestrVIP到期时间
    svipnumSVIP状态
    svip_timestrSVIP到期时间
    update_timestr更新时间
    master_levelobj主播等级
    user_levelnum用户等级
    colornum颜色值
    anchor_scorenum主播积分

    level 中的 master_level对象:

    字段类型内容备注
    levelnum主播等级
    colornum颜色值
    currentlist当前积分
    nextlist下一等级积分
    anchor_scorenum主播积分
    upgrade_scorenum升级积分
    master_level_colornum主播等级颜色值
    sortstr排名

    示例:

    查询roomid=1的直播间主播信息

    curl -G 'https://api.live.bilibili.com/live_user/v1/UserInfo/get_anchor_in_room' \
    +--data-urlencode 'roomid=1'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "success",
    +  "message": "success",
    +  "data": {
    +    "info": {
    +      "uid": 9617619,
    +      "uname": "哔哩哔哩直播",
    +      "face": "https://i0.hdslb.com/bfs/face/8f6a614a48a3813d90da7a11894ae56a59396fcd.jpg",
    +      "rank": "10000",
    +      "platform_user_level": 6,
    +      "mobile_verify": 1,
    +      "identification": 1,
    +      "official_verify": {
    +        "type": 1,
    +        "desc": "哔哩哔哩直播官方账号",
    +        "role": 3
    +      },
    +      "vip_type": 2,
    +      "gender": -1
    +    },
    +    "level": {
    +      "uid": 9617619,
    +      "cost": 7782673656,
    +      "rcost": 20199200291,
    +      "user_score": "0",
    +      "vip": 0,
    +      "vip_time": "0000-00-00 00:00:00",
    +      "svip": 0,
    +      "svip_time": "0000-00-00 00:00:00",
    +      "update_time": "2024-08-08 17:13:12",
    +      "master_level": {
    +        "level": 40,
    +        "color": 16746162,
    +        "current": [0, 147013810],
    +        "next": [0, 147013810],
    +        "anchor_score": 201992002,
    +        "upgrade_score": 0,
    +        "master_level_color": 16746162,
    +        "sort": "\u003E10000"
    +      },
    +      "user_level": 60,
    +      "color": 16752445,
    +      "anchor_score": 201992002
    +    },
    +    "san": 12
    +  }
    +}
    +
    + + + diff --git a/docs/live/live_area.html b/docs/live/live_area.html new file mode 100644 index 0000000000..84cc3cf355 --- /dev/null +++ b/docs/live/live_area.html @@ -0,0 +1,168 @@ + + + + + + + + + 直播间分区 | BAC Document + + + + +

    直播间分区

    获取全部直播间分区列表

    https://api.live.bilibili.com/room/v1/Area/getList

    请求方式:GET

    直播分区共有两级,分别是父分区和子分区

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataarray父分区列表

    data数组:

    类型内容备注
    0obj父分区1
    nobj父分区(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum父分区id
    namename父分区名
    listlist子分区列表

    data数组中的对象中的list数组:

    类型内容备注
    0obj子分区1
    nobj子分区(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idstr子分区id
    parent_idstr父分区id
    old_area_idstr旧分区id
    namestr子分区名
    act_idstr0作用尚不明确
    pk_statusstr???作用尚不明确
    hot_statusnum是否为热门分区0:否
    1:是
    lock_statusstr0作用尚不明确
    picstr子分区标志图片url
    parent_namestr父分区名
    area_typenum

    示例:

    如想在网游父分区下的英雄联盟分区开播,则查到子分区id为86

    curl 'https://api.live.bilibili.com/room/v1/Area/getList'
    +
    查看响应示例:
    {
    +    "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.html b/docs/live/live_stream.html new file mode 100644 index 0000000000..ff89976912 --- /dev/null +++ b/docs/live/live_stream.html @@ -0,0 +1,95 @@ + + + + + + + + + 直播间视频流 | BAC Document + + + + +

    直播间视频流

    根据真实直播间号获取直播视频流

    https://api.live.bilibili.com/room/v1/Room/playUrl

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    cidnum目标真实直播间号必要直播间的room_id(非短号)
    platformstr直播流格式非必要h5:hls方式
    web:http-flv方式
    默认为http-flv方式
    qualitynum画质非必要qnquality任选其一
    2:流畅
    3:高清
    4:原画
    qnstr画质非必要qnquality任选其一
    80:流畅
    150:高清
    400:蓝光
    10000:原画
    20000:4K
    30000:杜比

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:参数错误
    19002003:房间信息不存在
    messagestr错误信息默认为0
    ttlstr1
    dataobj信息本体

    data对象:

    字段类型内容备注
    current_qualitynum当前画质代码qn
    accept_qualityarray可选画质数参数
    current_qnnum当前画质代码quality
    quality_descriptionarray可选画质参数quality
    durlarray直播流url组

    accept_quality数组:

    类型内容备注
    0strqn画质代码1
    nstrqn画质代码(n+1)
    ……str…………

    quality_description数组:

    类型内容备注
    0obj画质代码1
    nobj画质代码(n+1)
    ……obj…………

    quality_description数组中的对象:

    字段类型内容备注
    qnnum画质代码
    descstr该代码对应的画质名称

    durl数组:

    类型内容备注
    0obj主线服务器
    nobj备线n服务器
    ……obj…………

    durl数组中的对象:

    字段类型内容备注
    urlstr直播流urlflv或m3u8格式
    注:带有转义
    lengthnum0作用尚不明确
    ordernum服务器线路序号
    stream_typenum0作用尚不明确
    p2p_typenum0作用尚不明确

    示例:

    查询直播间cid=14073662的直播间信息

    curl -G 'https://api.live.bilibili.com/room/v1/Room/playUrl' \
    +--data-urlencode 'cid=14073662' \
    +--data-urlencode 'qn=10000' \
    +--data-urlencode 'platform=web'
    +
    查看响应示例:
    {
    +  "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.html b/docs/live/manage.html new file mode 100644 index 0000000000..a296694cab --- /dev/null +++ b/docs/live/manage.html @@ -0,0 +1,171 @@ + + + + + + + + + 直播间管理 | BAC Document + + + + +

    直播间管理

    开通直播间

    https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    platformstr客户端?必要默认值web
    visit_idstr未知默认空
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1531193016:已经创建直播间~
    -400:请求错误
    ttlstr错误信息默认为1
    messagestr错误信息默认为0
    dataarray信息本体

    data对象:

    字段类型内容备注
    roomIDstr直播间房间号创建成功返回直播间号

    示例:

    开通直播间

    curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
    +--data-urlencode 'platform=web' \
    +--data-urlencode 'visit_id=' \
    +--data-urlencode 'csrf=xxx' \
    +--data-urlencode 'csrf_token=xxx' \
    +-b 'SESSDATA=xxx;bili_jct=xx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "roomID": "1234"
    +  }
    +}
    +
    {
    +  "code": 1531193016,
    +  "message": "已经创建直播间~",
    +  "ttl": 1,
    +  "data": {
    +    "roomID": ""
    +  }
    +}
    +

    更新直播间标题

    https://api.live.bilibili.com/room/v1/Room/update

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idnum直播间id必要必须为自己的直播间id
    titlestr直播间标题最大20字符
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    msgstr错误信息默认为ok
    messagestr错误信息默认为ok
    dataarray

    示例:

    修改直播间10352053标题为测试

    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'
    +
    查看响应示例:
    {
    +    "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_idnum直播间id必要必须为自己的直播间id
    area_v2num直播分区id(子分区id)必要详见直播分区
    platformstr直播平台必要web端:
    bililink:android_link
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    60009:分区不存在
    60024: 目标分区需要人脸认证
    60013:非常抱歉,您所在的地区受实名认证限制无法开播
    (其他错误码有待补充)
    msgstr错误信息默认为空
    messagestr错误信息默认为空
    dataobj信息本体

    data对象:

    字段类型内容备注
    changenum是否改变状态0:未改变
    1:改变
    statusstrLIVE
    room_typenum0作用尚不明确
    rtmpobjRTMP推流地址信息
    protocolsarray???作用尚不明确
    try_timestr???作用尚不明确
    live_keystr???作用尚不明确
    noticeobj???作用尚不明确

    data中的rtmp对象:

    字段类型内容备注
    addrstrRTMP推流(发送)地址重要
    codestrRTMP推流参数(密钥)重要
    new_linkstr获取CDN推流ip地址重定向信息的url没啥用
    providerstr???作用尚不明确

    data中的protocols数组:

    类型内容备注
    0obj???作用尚不明确

    data中的protocols数组中的对象:

    字段类型内容备注
    protocolstrrtmp作用尚不明确
    addrstrRTMP推流(发送)地址
    codestrRTMP推流参数(密钥)
    new_linkstr获取CDN推流ip地址重定向信息的url
    providerstrtxy作用尚不明确

    data中的notice对象:

    字段类型内容备注
    typenum1作用尚不明确
    statusnum0作用尚不明确
    titlestr作用尚不明确
    msgstr作用尚不明确
    button_textstr作用尚不明确
    button_urlstr作用尚不明确

    示例:

    27作为分区id开播直播间10352053

    其中"data"."rtmp"."addr"为推流地址

    "data"."rtmp"."code"为推流参数

    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'
    +
    查看响应示例:
    {
    +    "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_idnum直播间id必要必须为自己的直播间id
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    -400:没有权限
    (其他错误码有待补充)
    msgstr错误信息默认为空
    messagestr错误信息默认为空
    dataobj信息本体

    data对象:

    字段类型内容备注
    changenum是否改变状态0:未改变
    1:改变
    statusstrPREPARING

    示例:

    关闭直播间10352053的直播

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "",
    +    "message": "",
    +    "data": {
    +        "change": 1,
    +        "status": "PREPARING"
    +    }
    +}
    +

    更新直播间公告

    https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idnum直播间id必要必须为自己的直播间id
    uidnum用户id必要
    contentstr公告内容必要最大60个字符,可以为空
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    dataarray
    messagestr错误信息默认为ok
    ttlnum1作用尚不明确

    示例:

    修改直播间11996900公告为测试修改公告

    curl 'https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews' \
    +--data-urlencode 'room_id=11996900' \
    +--data-urlencode 'uid=306903238' \
    +--data-urlencode 'content=测试修改公告' \
    +--data-urlencode 'csrf_token=xxx' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx;bili_jct=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {}
    +}
    +

    编辑直播间标签

    https://api.live.bilibili.com/room/v1/Room/update

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idnum直播间id必要必须为自己的直播间id
    add_tagstr要添加的标签必要最大10个字符
    del_tagstr要删除的标签必要
    csrfstrCSRF Token(位于cookie)必要
    csrf_tokenstrCSRF Token(位于 cookie)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    dataobj
    messagestr错误信息默认为ok
    msgstr错误信息默认为ok

    data对象:

    字段类型内容备注
    audit_infoobj
    sub_session_keystr

    data中的audit_info对象:

    字段类型内容备注
    audit_title_reasonstr
    audit_title_statusnum0
    update_titlestr

    示例:

    给直播间11996900添加一个标签为测试标签

    curl 'https://api.live.bilibili.com/room/v1/Room/update' \
    +--data-urlencode 'room_id=11996900' \
    +--data-urlencode 'add_tag=测试标签' \
    +--data-urlencode 'csrf_token=xxx' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx;bili_jct=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "ok",
    +    "message": "ok",
    +    "data": {
    +        "sub_session_key": "",
    +        "audit_info": {
    +            "audit_title_reason": "",
    +            "update_title": "",
    +            "audit_title_status": 0
    +        }
    +    }
    +}
    +

    给直播间11996900删除内容为测试标签的标签

    curl 'https://api.live.bilibili.com/room/v1/Room/update' \
    +--data-urlencode 'room_id=11996900' \
    +--data-urlencode 'del_tag=测试标签' \
    +--data-urlencode 'csrf_token=xxx' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx;bili_jct=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "ok",
    +    "message": "ok",
    +    "data": {
    +        "sub_session_key": "",
    +        "audit_info": {
    +            "audit_title_reason": "",
    +            "update_title": "",
    +            "audit_title_status": 0
    +        }
    +    }
    +}
    +
    + + + diff --git a/docs/live/message_stream.html b/docs/live/message_stream.html new file mode 100644 index 0000000000..59d4840d10 --- /dev/null +++ b/docs/live/message_stream.html @@ -0,0 +1,1310 @@ + + + + + + + + + 直播间信息流 | BAC Document + + + + +

    直播间信息流

    获取信息流认证秘钥

    https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    idnum直播间真实id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    65530:token错误(登录错误)
    1:错误
    60009:分区不存在
    (其他错误码有待补充)
    messagestr错误信息默认为空
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    groupstrlive
    business_idnum0
    refresh_row_factornum0.125
    refresh_ratenum100
    max_delaynum5000
    tokenstr认证秘钥
    host_listarray信息流服务器节点列表

    host_list数组中的对象:

    字段类型内容备注
    hoststr服务器域名
    portnumtcp端口
    wss_portnumwss端口
    ws_portnumws端口

    示例:

    获得直播间22824550的信息流认证秘钥

    curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \
    +--data-urlencode 'id=22824550'
    +
    查看响应示例:
    {
    +  "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
    +      }
    +    ]
    +  }
    +}
    +

    注:最终URI格式为: host+对应port+"/sub",例如以上示例中一个可行的ws连接URI应当为tx-sh-live-comet-02.chat.bilibili.com:2244/sub

    数据包格式

    数据包为MQ(Message Queue,消息队列)使用Websocket或TCP连接作为通道,具体格式为头部数据+正文数据

    操作流程:

    发送认证包->接收认证包回应->接收普通包&(每30秒发送心跳包->接收心跳回应)

    头部格式:

    偏移量长度类型含义
    04uint32封包总大小(头部大小+正文大小)
    42uint16头部大小(一般为0x0010,16字节)
    62uint16协议版本:
    0普通包正文不使用压缩
    1心跳及认证包正文不使用压缩
    2普通包正文使用zlib压缩
    3普通包正文使用brotli压缩,解压为一个带头部的协议0普通包
    84uint32操作码(封包类型)
    124uint32sequence,每次发包时向上递增

    操作码:

    代码含义
    2心跳包
    3心跳包回复(人气值)
    5普通包(命令)
    7认证包
    8认证包回复

    普通包可能包含多条命令,每个命令有一个头部,指示该条命令的长度等信息

    数据包

    认证包

    方式:(上行)

    连接成功后5秒内发送,否则强制断开连接

    正文:

    json格式

    字段类型内容必要性备注
    uidnum用户mid非必要uid为0即为游客登录
    roomidnum加入房间的id必要直播间真实id
    protovernum协议版本非必要3
    platformstr平台标识非必要"web"
    typenum2非必要
    keystr认证秘钥非必要

    示例:

    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格式

    字段类型内容备注
    codenum返回值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格式

    字段类型内容备注
    cmdstr"DANMU_MSG"如果是弹幕消息,内容则是"DANMU_MSG"
    infoarray这条弹幕的用户、内容与粉丝勋章等各种信息待调查其中每个数据的含义
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"DM_INTERACTION"如果是进入直播间或关注消息,内容则是"INTERACT_WORD"
    dataobj进入直播间的用户的信息

    data字段

    字段类型内容备注
    idnum事件ID
    statusnum状态
    typenum事件类型
    datastr事件数据

    连续发送弹幕事件的data.data字段

    字段类型内容备注
    comboarray连续发送弹幕事件信息
    merge_intervalnum合并弹幕时间间隔
    card_appear_intervalnum弹窗出现时间间隔
    send_intervalnum发送时间间隔

    连续发送弹幕事件的data.data.combo字段

    字段类型内容备注
    idnum时间ID
    statusnum状态
    contentstr重复的弹幕内容
    cntnum重复数量
    guidestr标题词"他们都在说:"
    left_durationnum左移时长
    fade_durationnum淡化时长
    查看消息示例:
    {
    +    '': 6785480089600,
    +    'status': 4,
    +    'type': 102,
    +    'data': '{
    +        "combo":[{
    +            "id":6785480089600,
    +            "status":4,
    +            "content":"晚安",
    +            "cnt":3,
    +            "guide":"他们都在说:",
    +            "left_duration":20000,
    +            "fade_duration":60000}],
    +        "merge_interval":1000,
    +        "card_appear_interval":1000,
    +        "send_interval":1000}'
    +}
    +

    进场或关注消息

    有用户进入直播间或关注主播时触发

    json格式

    字段类型内容备注
    cmdstr"INTERACT_WORD"如果是进入直播间或关注消息,内容则是"INTERACT_WORD"
    dataobj进入直播间的用户的信息

    data字段

    字段类型内容备注
    contributionobj待调查
    dmscorenum待调查
    fans_medalobj粉丝勋章
    identitiesnum待调查
    is_spreadnum待调查
    msg_typenum1为进场,2为关注
    roomidnum房间号
    is_spreadnum待调查
    is_spreadnum待调查
    scorenum待调查
    spread_descstr待调查
    spread_infostr待调查
    tail_iconnum待调查
    timestampnum时间戳
    trigger_timenum触发时间
    uidnum用户ID
    unamestr用户名称
    uname_colorstr用户名称颜色
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"GUARD_BUY"用户购买舰长 / 提督 / 总督,内容则是"GUARD_BUY"
    dataobj上舰人uid & 昵称、上舰信息

    data字段

    字段类型内容备注
    uidnum用户ID
    usernamestr用户名称
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    numnum数量
    pricenum待调查
    gift_idnum礼物id
    gift_namestr礼物名称
    start_timenum待调查
    end_timenum待调查
    查看消息示例:
    {
    +  "cmd": "GUARD_BUY",
    +  "data": {
    +    "uid": 14225357,
    +    "username": "妙妙喵喵妙妙喵O_O",
    +    "guard_level": 3,
    +    "num": 1,
    +    "price": 198000,
    +    "gift_id": 10003,
    +    "gift_name": "舰长",
    +    "start_time": 1677069316,
    +    "end_time": 1677069316
    +  }
    +}
    +

    用户庆祝消息

    json格式

    字段类型内容备注
    cmdstr"USER_TOAST_MSG"用户购买舰长 / 提督 / 总督后的庆祝消息,内容包含用户陪伴天数
    dataobj上舰人uid & 昵称、上舰信息

    data字段

    字段类型内容备注
    anchor_showbool是否显示
    colorstr颜色
    dmscorenum待调查
    effect_idnum待调查
    face_effect_idnum待调查
    gift_idnum礼物id
    group_namestr待调查
    group_op_typenum待调查
    group_role_namestr待调查
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    is_groupnum待调查
    is_shownum待调查
    numnum上舰个数
    op_typenum待调查
    payflow_idstr待调查
    pricenum价格
    role_namestr身份名称
    room_effect_idnum待调查
    room_group_effect_idnum待调查
    start_timenum待调查
    svga_blocknum待调查
    target_guard_countstr庆祝消息正文
    toast_msgnum待调查
    uidnum上舰人UID
    unitstr购买身份时间单位
    user_showbool待调查
    usernamestr上舰人用户名
    查看消息示例:
    {
    +    'anchor_show': True,
    +    'color': '#00D1F1',
    +    'dmscore': 90,
    +    'effect_id': 397,
    +    'end_time': 1702580687,
    +    'face_effect_id': 44,
    +    'gift_id': 10003,
    +    'group_name': '',
    +    'group_op_type': 0,
    +    'group_role_name': '',
    +    'guard_level': 3,
    +    'is_group': 0,
    +    'is_show': 0,
    +    'num': 1,
    +    'op_type': 1,
    +    'payflow_id':'2312150304155852173446521',
    +    'price': 138000,
    +    'role_name': '舰长',
    +    'room_effect_id': 590,
    +    'room_group_effect_id': 1337,
    +    'start_time': 1702580687,
    +    'svga_block': 0,
    +    'target_guard_count': 146,
    +    'toast_msg': '<%无光之日%> 在主播Mia米娅-的直播间开通了舰长,今天是TA陪伴主播的第1天',
    +    'uid': 79667344,
    +    'unit': '月',
    +    'user_show': True,
    +    'username': '无光之日'}
    +

    醒目留言

    json格式

    字段类型内容备注
    cmdstr"SUPER_CHAT_MESSAGE"用户发送醒目留言,内容则是"SUPER_CHAT_MESSAGE"
    dataobj醒目留言内容、发送者信息等
    roomidnum直播间房间号(非短号

    data字段

    字段类型内容备注
    background_bottom_colorstr待调查
    background_colorstr待调查
    background_color_endstr待调查
    background_color_startstr待调查
    background_iconstr待调查
    background_imagestr待调查
    background_price_colorstr待调查
    color_pointnum待调查
    dmscorenum待调查
    end_timenum待调查
    giftobj礼物信息
    idnum待调查
    is_rankednum待调查
    is_send_auditnum待调查
    medal_infoobjSC发送用户佩戴的粉丝牌信息
    messagestrsc内容
    message_font_colorstrSC文本颜色
    message_transstr机翻sc内容
    pricenumsc金额
    ratenum待调查
    start_timenum待调查
    timenumsc持续时间
    tokennum待调查
    trans_marknum待调查
    tsnum待调查
    uidnum发送用户uid
    user_infoobj发送用户信息

    gift字段

    字段类型内容备注
    gift_idnum礼物id
    gift_namestr礼物名称一般均为"醒目留言"
    numnum数量

    medal_info字段

    字段类型内容备注
    anchor_roomidnum房间号包含短号
    anchor_unamestr主播昵称
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    icon_idnum待调查
    is_lightednum待调查
    medal_colorstr待调查
    medal_color_bordernum待调查
    medal_color_endnum待调查
    medal_color_startnum待调查
    medal_levelnum粉丝牌等级
    medal_namestr粉丝牌名称
    specialstr待调查
    target_idnum粉丝牌对应的主播uid

    user_info字段

    字段类型内容备注
    facenum用户头像
    face_framenum头像边框
    guard_levelnum大航海等级1: 总督 2: 提督 3:舰长
    is_main_vipnum待调查
    is_svipnum待调查
    is_vipnum待调查
    level_colorstr待调查
    managernum待调查
    name_colorstr待调查
    titlestr待调查
    unamestr用户名称
    user_levelnum待调查
    查看消息示例:
    {
    +  "cmd": "SUPER_CHAT_MESSAGE",
    +  "data": {
    +    "background_bottom_color": "#2A60B2",
    +    "background_color": "#EDF5FF",
    +    "background_color_end": "#405D85",
    +    "background_color_start": "#3171D2",
    +    "background_icon": "",
    +    "background_image": "https://i0.hdslb.com/bfs/live/a712efa5c6ebc67bafbe8352d3e74b820a00c13e.png",
    +    "background_price_color": "#7497CD",
    +    "color_point": 0.7,
    +    "dmscore": 120,
    +    "end_time": 1677069095,
    +    "gift": {
    +      "gift_id": 12000,
    +      "gift_name": "醒目留言",
    +      "num": 1
    +    },
    +    "id": 6522809,
    +    "is_ranked": 1,
    +    "is_send_audit": 0,
    +    "medal_info": {
    +      "anchor_roomid": 732,
    +      "anchor_uname": "Asaki大人",
    +      "guard_level": 3,
    +      "icon_id": 0,
    +      "is_lighted": 1,
    +      "medal_color": "#1a544b",
    +      "medal_color_border": 6809855,
    +      "medal_color_end": 5414290,
    +      "medal_color_start": 1725515,
    +      "medal_level": 21,
    +      "medal_name": "ASAKI",
    +      "special": "",
    +      "target_id": 194484313
    +    },
    +    "message": "猪播完美预测自己第一个死,这就是鹅鸭杀高玩吗",
    +    "message_font_color": "#A3F6FF",
    +    "message_trans": "",
    +    "price": 30,
    +    "rate": 1000,
    +    "start_time": 1677069035,
    +    "time": 60,
    +    "token": "7BED5681",
    +    "trans_mark": 0,
    +    "ts": 1677069035,
    +    "uid": 294094150,
    +    "user_info": {
    +      "face": "https://i1.hdslb.com/bfs/face/7a11b48e0a3055e220fa8b4c7d938cd4bcac2577.jpg",
    +      "face_frame": "https://i0.hdslb.com/bfs/live/80f732943cc3367029df65e267960d56736a82ee.png",
    +      "guard_level": 3,
    +      "is_main_vip": 1,
    +      "is_svip": 0,
    +      "is_vip": 0,
    +      "level_color": "#969696",
    +      "manager": 0,
    +      "name_color": "#00D1F1",
    +      "title": "0",
    +      "uname": "界原虚",
    +      "user_level": 6
    +    }
    +  },
    +  "roomid": 6154037
    +}
    +

    送礼

    json格式

    字段类型内容备注
    cmdstr"SEND_GIFT"投喂礼物等,内容则是"SEND_GIFT"
    dataobj礼物投喂人、礼物信息、礼物数量等

    data字段

    字段类型内容备注
    actionstr礼物操作,一般为"投喂"
    batch_combo_idstr待调查有时为空字符串
    batch_combo_sendobj待调查有时为null
    beatIdstr待调查
    biz_sourcestr待调查
    blind_gift待调查
    broadcast_idnum待调查
    coin_typestr待调查
    combo_resources_idnum待调查
    combo_send待调查
    comber_stay_timenum待调查
    combo_total_coinnum待调查
    crit_probnum待调查
    demarcationnum待调查
    discount_pricenum待调查
    dmscorenum待调查
    drawnum待调查
    effectnum待调查
    effect_blocknum待调查
    facestr礼物投喂者的头像URL
    face_effect_idnum待调查
    face_effect_typenum待调查
    float_sc_resource_idnum待调查
    giftIdnum礼物ID
    giftNamestr礼物名称
    giftTypenum待调查
    goldnumber待调查
    guard_levelnum待调查
    is_firstbool待调查
    is_join_receiverbool待调查
    is_namingbool待调查
    is_special_batchnum待调查
    magnificationnum待调查
    medal_infoobj礼物投喂者粉丝奖牌信息
    name_colorstr待调查
    numnumber该次投喂的礼物数量
    original_gift_namestr待调查
    pricenum待调查
    rcostnum待调查
    receive_user_infoobj礼物接收者信息,一般是主播
    remainnum待调查
    rndnum礼物发送时的时间戳,以及后面9位未知数字
    send_master待调查
    silvernum待调查
    supernum待调查
    super_batch_gift_numnum待调查
    super_gift_numnum待调查
    svga_blocknum待调查
    switchbool待调查
    tag_imagestr待调查
    tidnum礼物发送时的时间戳,以及后面9位未知数字似乎与rnd字段相同
    timestampnum礼物发送时的时间戳
    top_list待调查
    total_coinnum待调查
    uidnum礼物投喂者的UID
    unamestr礼物投喂者的名称

    batch_combo_send字段

    字段类型内容备注
    actionstr礼物操作,一般为"投喂"
    batch_combo_idstr待调查
    batch_combo_numnum待调查
    blind_gift待调查
    gift_idnum待调查
    gift_namestr投喂的礼物名称待调查
    gift_numnum投喂礼物数量待调查
    send_master待调查
    uidnum礼物投喂者的UID
    unamestr礼物投喂者的名称

    medal_info字段

    字段类型内容备注
    anchor_roomidnum待调查
    anchor_unamestr待调查
    guard_levelnum待调查
    icon_idnum待调查
    is_lightednum待调查
    medal_colornum礼物投喂者的粉丝奖牌颜色十六进制颜色值转为了十进制表示
    medal_border_colornum礼物投喂者的粉丝奖牌边框颜色十六进制颜色值的十进制表示
    medal_color_endnum待调查
    medal_color_startnum待调查
    medal_levelnum礼物投喂者的粉丝奖牌等级
    medal_namestr礼物投喂者的粉丝奖牌名称
    specialstr待调查
    target_idnum待调查

    receive_user_info字段

    字段类型内容备注
    uidnum礼物接收者的UID一般为主播的UID
    unamestr礼物接收者的名称一般为主播的名称
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"GIFT_STAR_PROCESS"主播的礼物星球其一点亮之后,则内容为"GIFT_STAR_PROCESS"
    dataobj消息文本

    data字段

    字段类型内容备注
    statusnum待调查
    tipstr点亮礼物星球的消息文本
    查看消息示例:
    {
    +    "cmd": "GIFT_STAR_PROCESS",
    +    "data": {
    +        "status": 1,
    +        "tip": "情书已点亮"
    +    }
    +}
    +

    礼物连击

    json格式

    字段类型内容备注
    cmdstr"COMBO_SEND"
    dataobj礼物投喂者、礼物信息等

    data字段

    字段类型内容备注
    actionstr礼物操作,一般为"投喂"
    batch_combo_idstr待调查
    batch_combo_numnum连击礼物数量
    combo_idstr待调查
    combo_numstr连击礼物数量
    combo_total_coinnum待调查
    dmscorenum待调查
    gift_idnum待调查
    gift_namestr连击礼物的名称
    gift_numnum0
    is_join_receiverbool待调查
    is_namingbool待调查
    is_shownum待调查
    medal_infoobj礼物投喂者的粉丝勋章信息
    name_colorstr待调查
    r_unamestr主播的名称
    receive_user_infoobj主播的UID和名称
    ruidnum主播的UID
    send_master待调查
    total_numnum连击礼物数量
    uidnum礼物投喂者的UID
    unamestr礼物投喂者的名称

    receive_user_info字段

    字段类型内容备注
    uidnumber礼物接收者的UID一般为主播的UID
    unamestring礼物接收者的名称一般为主播的名称
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"NOTICE_MSG"通知消息,内容则是"NOTICE_MSG"
    idnum待调查
    fullobj待调查
    halfobj待调查
    sideobj待调查
    roomidnum目标直播间短号
    real_roomidnum目标直播间真实ID
    msg_commonstr显示的消息内容
    msg_selfstr消息内容本身剔除额外文本
    link_relstr通知消息跳转的URL
    msg_typenum待调查
    shield_uidnum待调查
    business_idstr待调查
    scatterobj待调查
    marquee_idstr待调查
    notice_typenum待调查
    查看消息示例:
    {
    +    "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
    +}
    +
    {
    +    "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格式

    字段类型内容备注
    cmdstr"PREPARING"
    roundnum轮播状态:
    1正在轮播
    0未轮播
    roomidnum直播间ID未知是真实ID还是短号
    查看消息示例:
    {
    +    "cmd": "PREPARING",
    +    "round": 1,
    +    "roomid": "8618057"
    +}
    +

    直播开始

    主播信息更新

    json格式

    字段类型内容备注
    cmdstr"ROOM_REAL_TIME_MESSAGE_UPDATE"
    dataobj房间ID、主播粉丝数等

    data字段

    字段类型内容备注
    roomidnum直播间ID未知是真实ID还是短号
    fansnum主播当前粉丝数
    red_noticenum待调查
    fans_clubnum主播粉丝团人数
    查看消息示例:
    {
    +    "cmd": "ROOM_REAL_TIME_MESSAGE_UPDATE",
    +    "data": {
    +        "roomid": 8618057,
    +        "fans": 136,
    +        "red_notice": -1,
    +        "fans_club": 8
    +    }
    +}
    +

    直播间高能榜

    json格式

    字段类型内容备注
    cmdstr"ONLINE_RANK_V2"直播间高能用户数据刷新,内容则是"ONLINE_RANK_V2"
    dataobj直播间高能用户数据

    data字段

    字段类型内容备注
    listarray在直播间高能用户中的用户信息
    rank_typestr待调查

    list数组中的对象

    字段类型内容备注
    uidnum用户UID
    facestr用户头像URL
    scorestr该用户的贡献值
    unamestr用户名称
    ranknum该用户在高能榜中的排名
    guard_levelnum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"ONLINE_RANK_COUNT"直播间高能用户数,内容是"ONLINE_RANK_COUNT"
    dataobj直播间高能用户数量

    data字段

    字段类型内容备注
    countnum直播间高能用户数量
    查看消息示例:
    {
    +    "cmd": "ONLINE_RANK_COUNT",
    +    "data": {
    +        "count": 4
    +    }
    +}
    +

    用户到达直播间高能榜前三名的消息

    json格式

    字段类型内容备注
    cmdstr"ONLINE_RANK_TOP3"
    dataobj消息内容、高能榜排名等

    data字段

    字段类型内容备注
    dmscorenum待调查
    listarray消息内容和高能榜排名

    list数组中的对象

    字段类型内容备注
    msgstr消息内容
    ranknum该用户的高能榜排名
    查看消息示例:
    {
    +    "cmd": "ONLINE_RANK_TOP3",
    +    "data": {
    +        "dmscore": 112,
    +        "list": [
    +            {
    +                "msg": "恭喜 <%你干嘛哈哈哎哟%> 成为高能用户",
    +                "rank": 1
    +            }
    +        ]
    +    }
    +}
    +

    直播间在人气榜的排名改变

    json格式

    字段类型内容备注
    cmdstr"POPULAR_RANK_CHANGED"
    dataobj直播间的人气榜排名信息

    data字段

    字段类型内容备注
    uidnum主播UID
    ranknum人气榜排名
    countdownnum人气榜下轮结算剩余时长
    timestampnum触发时的Unix时间戳
    timestampstr待调查
    查看消息示例:
    {
    +    'cmd': 'POPULAR_RANK_CHANGED',
    +    'data': {
    +        'uid': 780791,
    +        'rank': 36,
    +        'countdown': 1927,
    +        'timestamp': 1702578474,
    +        'cache_key': 'rank_change:91a4e81ba3034ae894d61e432aa13081'
    +            }
    +}
    +

    直播间用户点赞

    json格式

    字段类型内容备注
    cmdstr"LIKE_INFO_V3_CLICK"若直播间被赞,则内容是"LIKE_INFO_V3_CLICK"
    dataobj点赞的用户的信息

    data字段

    字段类型内容备注
    show_areanum待调查
    msg_typenum待调查
    like_iconstr点赞图标的URL
    uidnum点赞的用户的UID
    like_textstr点赞文本
    unamestr点赞的用户的名称
    uname_colorstr点赞的用户的名称颜色
    identitiesarray待调查
    fans_medalobj点赞的用户的粉丝勋章信息
    contribution_infoobj待调查
    dmscorenum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"LIKE_INFO_V3_UPDATE"若直播间点赞数更新,则内容是"LIKE_INFO_V3_UPDATE"
    dataobj直播间点赞数

    data字段

    字段类型内容备注
    click_countnum直播间点赞数
    查看消息示例:
    {
    +    "cmd": "LIKE_INFO_V3_UPDATE",
    +    "data": {
    +        "click_count": 3227
    +    }
    +}
    +

    直播间发红包弹幕

    json格式

    字段类型内容备注
    cmdstr"POPULARITY_RED_POCKET_START"
    dataobj送红包的老板的信息、里面的礼物信息

    data字段

    字段类型内容备注
    lot_idnum发送的红包的ID
    sender_uidnum发送者的UID
    sender_namestr发送者的名称
    sender_facestr发送者的头像的URL
    join_requirementnum待调查
    danmustr用户参与红包时自动发送的弹幕内容
    current_timenum服务器发送数据包的Unix时间戳
    start_timenum可以开始抢红包的Unix时间戳
    end_timenum抢红包的结束时间Unix时间戳
    last_timenum红包的持续时间(秒)start_time - end_time
    remove_timenum待调查
    replace_timenum待调查
    lot_statusnum待调查
    h5_urlstr红包页面的URL
    user_statusnum用户参与状态,但是不知道是哪个用户1已参与
    2未参与
    awardsarray红包内包含的礼物的信息
    lot_config_idnum待调查
    total_pricenum红包总价格
    wait_numnum待调查

    awards数组中的对象

    字段类型内容备注
    gift_idnum礼物ID
    gift_namestr礼物名称
    gift_picstr礼物图标URL
    numnum该礼物的数量
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"POPULARITY_RED_POCKET_NEW"与“直播间发红包弹幕”不同
    那个是发红包的弹幕信息
    这个则和“送礼”的信息相似,但也有前者的一些字段
    dataobj发送者信息和红包(礼物)信息

    data字段

    字段类型内容备注
    lot_idnum发送的红包的ID
    start_timenum开始抢红包的Unix时间戳
    current_timenum服务器发送数据包的Unix时间戳
    wait_numnum待调查
    unamestr发送者的名称
    uidnum发送者的UID
    actionstr礼物操作
    numnum礼物数量
    gift_namestr"红包"
    gift_idnum礼物ID
    pricenum待调查
    name_colorstr发送者的名称的颜色
    medal_infoobj发送者的粉丝勋章信息
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"POPULARITY_RED_POCKET_WINNER_LIST"
    dataobj抢到红包的用户信息、红包内的礼物信息

    data字段

    字段类型内容备注
    lot_idnum该红包的ID
    total_numnum该红包内所有礼物的总数
    winner_infoarray抢到红包的用户的信息
    抢到的礼物ID等
    awardsobj该红包内的礼物信息
    versionnum待调查

    winner_info数组中的数组

    索引类型内容备注
    0num该抢到红包的用户的UID
    1str该抢到红包的用户的名称
    2num待调查
    3num该用户抢到的礼物的ID

    awards字段

    字段类型内容备注
    礼物IDobj礼物信息
    ...obj

    礼物ID 对象

    字段类型内容备注
    award_typenum待调查
    award_namestr该礼物的名称
    award_picstr该礼物的图标URL
    award_big_picstr该礼物的高分辨率图标URL
    award_pricenum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"WATCHED_CHANGE"若直播间看过人数更新,则内容是"WATCHED_CHANGE"
    dataobj直播间看过人数

    data字段

    字段类型内容备注
    numnum
    text_smallstr
    text_largestr
    查看消息示例:
    {
    +    "cmd": "WATCHED_CHANGE",
    +    "data": {
    +        "num": 17903,
    +        "text_small": "1.7万",
    +        "text_large": "1.7万人看过"
    +    }
    +}
    +

    用户进场特效

    json格式

    字段类型内容备注
    cmdstr"ENTRY_EFFECT"有进场特效的用户进入直播间,则内容是"ENTRY_EFFECT"
    dataobj进场用户、进场特效信息

    data字段

    字段类型内容备注
    idnum待调查
    uidnum进场用户的UID
    target_idnum主播的UID?
    mock_effectnum待调查
    facestr进场用户的头像URL
    privilege_typenum待调查
    copy_writingstr进场欢迎文本
    copy_colorstr进场欢迎文本的十六进制颜色值
    highlight_colorstr待调查
    prioritynum待调查
    basemap_urlstr进场特效背景图片URLAPP端使用该URL
    show_avatarnum是否显示用户头像1显示
    0不显示
    web_basemap_urlstr进场特效背景图片URL网页端使用该URL
    web_effective_timenum进场特效生存时间网页端
    web_effect_closenum待调查
    web_close_timenum待调查
    businessnum待调查
    copy_writing_v2str进场欢迎文本的复制?
    icon_listarray待调查
    max_delay_timenum待调查
    trigger_timenum触发的Unix时间戳,以及后面9位未知数字
    identitiesnum待调查
    effect_silent_timenum待调查
    effective_time_newnum待调查
    web_dynamic_url_webpstr待调查
    web_dynamic_url_apngstr待调查
    mobile_dynamic_url_webpstr待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"AREA_RANK_CHANGED"若直播间在所属分区的排名改变,则内容是"AREA_RANK_CHANGED"
    dataobj直播间在所属分区的排名信息

    data字段

    字段类型内容备注
    conf_idnum待调查
    rank_namestr排行榜名称
    uidnum主播的UID
    ranknum直播间在分区的排名若没有上榜则为0
    icon_url_bluestr蓝色排名图标URL
    icon_url_pinkstr粉色排名图标URL
    icon_url_greystr灰色排名图标URL
    action_typenum待调查
    timestampnum触发时的Unix时间戳
    msg_idstr待调查
    jump_url_linkstr排行榜跳转链接APP端页面
    jump_url_pcstr排行榜跳转链接APP端页面
    jump_url_pinkstr排行榜跳转链接APP端页面
    jump_url_webstr排行榜跳转链接APP端页面
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"COMMON_NOTICE_DANMAKU"例如提示“恭喜主播 时雨ioo 成为手游航海当前第5名”,
    ,则内容是"COMMON_NOTICE_DANMAKU"
    dataobj直播间在所属分区排名提升的祝福的信息

    data字段

    字段类型内容备注
    biz_idnum待调查
    content_segmentsarray文本分段
    danmaku_styleobj文本样式信息
    danmaku_urlstr待调查
    dmscorenum待调查
    terminalsarray待调查

    content_segments数组中的对象

    字段类型内容备注
    font_colorstrtext字段的十六进制颜色值
    font_color_darkstrtext字段的十六进制颜色值APP端设置为深色模式时使用
    textstr祝贺文本
    typenum待调查

    danmaku_style字段

    字段类型内容备注
    background_colorstr文本背景颜色的十六进制颜色值
    background_color_darkstr文本背景颜色的十六进制颜色值APP端设置为深色模式时使用
    查看消息示例:

    第一条数据:

    {
    +    "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
    +        ]
    +    }
    +}
    +

    第二条数据:

    {
    +    "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
    +        ]
    +    }
    +}
    +

    第三条数据:

    {
    +    "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格式

    字段类型内容备注
    cmdstr"ROOM_CHANGE"例如直播间标题更改、直播间分区更改
    dataobj

    data字段

    字段类型内容备注
    titlestr直播间标题
    area_idnum当前直播间所属分区的ID
    parent_area_idnum待调查
    area_namestr当前直播间所属分区的名称
    parent_area_namestr待调查
    live_keystr待调查
    sub_session_keystr待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"SUPER_CHAT_ENTRANCE"不知道有什么意义
    dataobj醒目留言按钮的信息
    roomidnum直播间ID未知是短号还是真实ID

    data字段

    字段类型内容备注
    statusnum待调查
    jump_urlstr按下“醒目留言”按钮后弹出小窗的页面URL
    iconstr“醒目留言”按钮图标的URL
    broadcast_typenum待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"WIDGET_BANNER"
    dataobj横幅信息

    data字段

    字段类型内容备注
    timestampnum服务器发送数据包时的Unix时间戳
    widget_listobj横幅信息待调查

    widget_list字段

    字段类型内容备注
    横幅IDobj横幅信息
    ...obj

    横幅ID 字段

    字段类型内容备注
    idnum横幅ID
    titlestr待调查
    coverstr待调查
    web_coverstr待调查
    tip_textstr待调查
    tip_text_colorstr待调查
    tip_bottom_colorstr待调查
    jump_urlstr点击横幅后出现小窗的页面的URL
    urlstr待调查
    stay_timenum待调查
    sitenum待调查
    platform_inarray待调查
    typenum待调查
    band_idnum待调查
    sub_keystr待调查
    sub_datastr横幅数据
    is_addbool待调查
    查看消息示例:
    {
    +    "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格式

    字段类型内容备注
    cmdstr"STOP_LIVE_ROOM_LIST"
    dataobj下播的直播间ID列表

    data字段

    字段类型内容备注
    room_id_listarray下播的直播间ID

    room_id_list数组中的数字

    类型内容备注
    num下播的直播间ID未知是真实ID还是短号
    num...
    查看消息示例:
    {
    +    "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:

    {
    +    "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

    {
    +    "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.html b/docs/live/redpocket.html new file mode 100644 index 0000000000..50f6654fcd --- /dev/null +++ b/docs/live/redpocket.html @@ -0,0 +1,90 @@ + + + + + + + + + 直播间人气红包 | BAC Document + + + + +

    直播间人气红包

    获取指定直播间的红包信息

    https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb

    请求方式:GET

    认证方式(可选):Cookie(SESSDATA)

    如果不携带Cookie信息,user_status将始终返回2(未参与)。

    如果所查询的直播间无红包,popularity_red_pocket为null。

    url参数:

    参数名类型内容必要性备注
    roomidstr直播间id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息0:成功
    ttlnumTimeToLive正常为1
    dataobject返回数据

    data对象:

    类型内容备注
    popularity_red_pocketarray人气红包信息
    ……......…………

    popularity_red_pocket数组中的对象:

    字段类型内容备注
    lot_idnum红包id
    sender_uidnum红包发送者uid
    sender_namestr红包发送者昵称
    sender_facestr红包发送者头像
    join_requirementnum参与条件?
    danmustr参与红包时自动发送的弹幕内容
    awardsarray红包内容
    lot_statusnum未知
    h5_urlstr红包界面
    user_statusnum用户是否已参与1:已参与 2:未参与
    lot_config_idnum未知
    total_pricenum红包总计价格

    示例:

    查询房间号为24146996的直播间红包信息:

    curl -G 'https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb?roomid=24146996'
    +
    查看响应示例:
    
    +{
    +	"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/report.html b/docs/live/report.html new file mode 100644 index 0000000000..3cc8a27c3b --- /dev/null +++ b/docs/live/report.html @@ -0,0 +1,44 @@ + + + + + + + + + 直播心跳上报 | BAC Document + + + + +

    直播心跳上报

    直播心跳 (Web端)

    https://live-trace.bilibili.com/xlive/rdata-interface/v1/heartbeat/webHeartBeat

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    hbstrheartbeat 正文不必要使用 base64 编码
    pfstr平台名称不必要可为 web

    hb 解码参数:

    类型内容备注
    0num上次返回的 next_interval 值默认 60
    1num真实直播间号
    2num1作用尚不明确
    3num0作用尚不明确

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    next_intervalnum下次心跳间隔

    示例:

    上报直播间 26863308 的心跳

    curl -G "https://live-trace.bilibili.com/xlive/rdata-interface/v1/heartbeat/webHeartBeat" \
    +--data-urlencode "hb=$(echo "60|26863308|1|0" | base64 -)" \
    +--data-urlencode "pf=web"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "next_interval": 60
    +  }
    +}
    +
    + + + diff --git a/docs/live/silent_user_manage.html b/docs/live/silent_user_manage.html new file mode 100644 index 0000000000..2367fe300f --- /dev/null +++ b/docs/live/silent_user_manage.html @@ -0,0 +1,94 @@ + + + + + + + + + 直播间禁言相关 API | BAC Document + + + + +

    直播间禁言相关 API

    禁言观众

    https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/AddSilentUser

    请求方式:post

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idstr直播间Id必要
    tuidstr要禁言的uid必要
    msgstr要禁言的弹幕内容非必要
    mobile_appstrweb必要定值"web"即可
    csrf_tokenstrCSRF Token必要cookie中的bili_jct字段
    csrfstrCSRF Token必要cookie中的bili_jct字段
    visit_idstr不明非必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 "0"
    ttlstr1
    dataobj信息本体成功为空

    示例:

    curl -X POST 'https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/AddSilentUser' \
    +--data-urlencode 'room_id=xxxxxx' \
    +--data-urlencode 'tuid=xxx' \
    +--data-urlencode 'msg=xxxx' \
    +--data-urlencode 'mobile_app=web' \
    +--data-urlencode 'csrf_token=xx' \
    +--data-urlencode 'csrf=xx' \
    +--data-urlencode 'visit_id=' \
    +-H 'Content-Type:application/x-www-form-urlencoded' \
    +-b 'SESSDATA=xxx; bili_jct=xx;'
    +
    查看响应示例:
    {"code":0,"message":"0","ttl":1,"data":{}}
    +

    查询直播间禁言列表

    https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/GetSilentUserList

    请求方式:post

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    room_idstr直播间Id必要
    ps1str列表页码必要
    csrf_tokenstrCSRF Token必要cookie中的bili_jct字段
    csrfstrCSRF Token必要cookie中的bili_jct字段
    visit_idstr不明非必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 "0"
    ttlstr1
    dataobj信息本体

    data对象:

    字段类型内容备注
    dataarray禁言列表数组中为obj
    totalint禁言观众数量
    total_pageint页码总数量

    data对象中data数组的元素对象:

    字段类型内容备注
    tuidnum禁言者uid
    tnamestr禁言者昵称
    uidnum发起者uid
    namestr发起者昵称
    ctimestr禁言时间
    idnum禁言记录Id解除禁言时用到
    is_anchornum不明
    facestr禁言者头像
    admin_levelnum发起者权限0:主播,1:房管

    示例:

    curl -X POST 'https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/GetSilentUserList' \
    +--data-urlencode 'room_id=xxxxxxx' \
    +--data-urlencode 'ps=1' \
    +--data-urlencode 'csrf_token=xxx' \
    +--data-urlencode 'csrf=xxx' \
    +--data-urlencode 'visit_id=' \
    +-H 'Content-Type:application/x-www-form-urlencoded' \
    +-b 'SESSDATA=xxxx; bili_jct=xxx;'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "data":[
    +            {
    +                "tuid":123456,
    +                "tname":"xxxxx",
    +                "uid":123456,
    +                "name":"xxxx",
    +                "ctime":"2023-12-15 16:32:46",
    +                "id":13493921,
    +                "is_anchor":0,
    +                "face":"https://i1.hdslb.com/bfs/face/xxxxx.jpg",
    +                "admin_level":1
    +            },
    +            {
    +                "tuid":123456,
    +                "tname":"xx",
    +                "uid":123456,
    +                "name":"xxxx",
    +                "ctime":"2021-08-23 22:26:06",
    +                "id":8018136,
    +                "is_anchor":1,
    +                "face":"https://i1.hdslb.com/bfs/face/xxxxxx.jpg",
    +                "admin_level":0
    +            }
    +        ],
    +        "total":2,
    +        "total_page":1
    +    }
    +}
    +

    解除禁言

    https://api.live.bilibili.com/banned_service/v1/Silent/del_room_block_user

    请求方式:post

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中bili_jct的值正确并与csrf相同

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    roomidstr直播间Id必要注意该接口名称没有“_”
    idstr禁言记录Id必要GetSilentUserList 接口获取
    csrf_tokenstrCSRF Token必要cookie中的bili_jct字段
    csrfstrCSRF Token必要cookie中的bili_jct字段
    visit_idstr不明非必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息成功为空
    ttlstr1
    dataobj信息本体成功为空

    示例:

    curl -X POST 'https://api.live.bilibili.com/banned_service/v1/Silent/del_room_block_user' \
    +--data-urlencode 'roomid=xxxxxxxxx' \
    +--data-urlencode 'id=xxxxx' \
    +--data-urlencode 'csrf_token=xxx' \
    +--data-urlencode 'csrf=xxx' \
    +--data-urlencode 'visit_id=' \
    +-H 'Content-Type:application/x-www-form-urlencoded' \
    +-b 'SESSDATA=xxxxxx; bili_jct=xxx;'
    +
    查看响应示例:
    {"code":0,"msg":"","message":"","data":[]}
    +
    + + + diff --git a/docs/live/user.html b/docs/live/user.html new file mode 100644 index 0000000000..13d0d0c2b9 --- /dev/null +++ b/docs/live/user.html @@ -0,0 +1,166 @@ + + + + + + + + + 直播间用户实用 API | BAC Document + + + + +

    直播间用户实用 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_sizenum每页的数量必要最大为 10,超出 1002002:参数异常
    pagenum返回结果页数必要两个参数不填返回空,只 page 不填或错误则 500 异常

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -1002002:参数异常
    -500:服务器异常
    messagestr错误信息默认为 "0"
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum勋章数量
    itemsarray粉丝勋章信息本体
    page_infoobj页码信息

    items数组中的对象:

    字段类型内容备注
    can_deletebool可否删除
    day_limitnum日经验上限(原力值)eg: 1500
    guard_levelnum
    guard_medal_titlestr加成状态
    intimacynum当前已得亲密度
    is_lightednum是否点亮0:未点亮
    1:点亮
    levelnum勋章等级
    medal_namestr勋章名
    medal_color_bordernum勋章边框颜色信息颜色数值为 10 进制的 16 进制值(下同)
    medal_color_startnum勋章起始颜色从右往左渐变(20 级+勋章)
    medal_color_endnum勋章结束颜色从右往左渐变(20 级+勋章)
    medal_idnum粉丝勋章 id
    next_intimacynum升级所需经验
    today_feednum本日亲密度
    roomidnum直播间房间号
    statusnum
    target_idnumberup 主 mid
    target_namestrup 主用户名
    unamestrup 主用户名

    page_info对象:

    字段类型内容备注
    total_pagenum页码总长度
    cur_pagenum当前返回的页码

    示例:

    curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&page_size=10 \
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "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_idnum勋章 id必要
    csrfnumcookie 中 bili_jct 字段必要
    csrf_tokennum同上必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    ttlnum1
    messagestr错误信息默认为佩戴成功
    dataobj信息本体默认为无

    示例:

    佩戴勋章 id 为 1 的勋章

    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 (){
    +
    +    }
    +})
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "佩戴成功",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    直播签到

    https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1:参数错误
    ttlnum1
    messagestr错误信息默认为当日签到奖励内容
    dataobj信息本体默认为空

    本月直播签到信息

    https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/WebGetSignInfo

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    ttlnum1
    messagestr错误信息默认为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    textstr今日签到奖励信息默认为空
    specialTextstr连续签到奖励信息默认为空
    statusnum签到状态0:未签到
    1:已签到
    allDaysnum当月天数
    curMonthnum当前月
    curYearnum当前年
    curDaynum当前日
    curDatastr当前日期(格式化)eg: 2023-2-19
    hadSignDaysnum当月已签到天数默认为0
    newTasknum作用未知默认为0
    signDaysListarray当月已签到日列表默认为空
    signBonusDaysListarray当月已签到且有特殊奖励日列表默认为空
    查看响应示例:
    {
    +    "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 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    ttlnum1
    messagestr错误信息默认为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    daysnum上月天数
    monthnum上月月份值
    hadSignDaysnum上月已签到天数默认为0
    signDaysListarray上月已签到日列表默认为空
    signBonusDaysListarray上月已签到且有特殊奖励日列表默认为空
    查看响应示例:
    {
    +    "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/cookie_refresh.html b/docs/login/cookie_refresh.html new file mode 100644 index 0000000000..cc3743bf7d --- /dev/null +++ b/docs/login/cookie_refresh.html @@ -0,0 +1,329 @@ + + + + + + + + + Web端Cookie刷新 | BAC Document + + + + +

    Web端Cookie刷新

    自从 2023 以来,社区反馈似乎 Web 端的 Cookie 会随着一些敏感接口的访问逐渐失效,而在 Web 页面上会判断 Cookie 是否需要刷新,如需刷新则会以动态加载 iframe 方式实现,同时登录(二维码 / 密码 / 短信验证码等)接口也会返回refresh_token字段,需要持久化保存,是一种官方的风控机制实现

    感谢 #524open in new window 提供相关研究报告以及逆向工程结果

    cookie 不会主动刷新的,只要他没有调用下面的刷新接口就不会刷新。也就是说,你只要不再打开浏览器,或者直接把 localStorage 的 ac_time_value 字段删除了。那么 cookie 在真的失效前(登录过期、账号风控等强制下线)都是不变化的。

    刷新步骤(伪代码)

    cookie, refresh_token = 进行登录操作() # can be 二维码 / 密码 / 短信验证码
    +
    +while True:
    +    if 每日第一次访问接口:
    +        if 检查是否需要刷新(cookie):
    +            CorrespondPath = 生成CorrespondPath(当前毫秒时间戳)
    +            refresh_csrf = 获取refresh_csrf(CorrespondPath, cookie)
    +            refresh_token_old = refresh_token # 这一步必须保存旧的 refresh_token 备用
    +            cookie, refresh_token = 刷新Cookie(refresh_token, refresh_csrf, cookie)
    +            确认更新(refresh_token_old, cookie) # 这一步需要新的 Cookie 以及旧的 refresh_token
    +            SSO站点跨域登录(cookie)
    +    do_somethings(cookie) # 其他业务逻辑处理
    +

    检查是否需要刷新

    https://passport.bilibili.com/x/passport-login/web/cookie/info

    请求方式:GET

    鉴权方式:Cookie

    url 参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于 Cookie)非必要位于 Cookie 中的bili_jct字段

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    refreshbool是否应该刷新 Cookietrue:需要刷新 Cookie
    false:无需刷新 Cookie
    timestampnum当前毫秒时间戳用于获取 refresh_csrf

    示例:

    curl -G 'https://passport.bilibili.com/x/passport-login/web/cookie/info' \
    +	--data-urlencode 'csrf=xxx' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "refresh": false,
    +        "timestamp": 1684466082562
    +    }
    +}
    +

    生成CorrespondPath算法

    该算法逆向于以下 wasm 以及 JavaScript bind 接口,抓取于官方 Web 首页中,感谢 #524open in new window 提供

    https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_rsa_encrypt_bg.wasm

    https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_ras_umd.js

    算法细节

    refresh_${timestamp}作为消息体(参数timestamp为当前毫秒时间戳),用下方 PubKey 进行 RSA-OAEPopen in new window 算法加密,之后密文通过小写 Base16 编码为字符串

    JWK 格式:

    { "kty": "RSA", "n": "y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE", "e": "AQAB" }

    PEM 格式:

    -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71 nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40 JNrRuoEUXpabUzGB8QIDAQAB -----END PUBLIC KEY-----

    相关Demo

    该 Demo 提供 JavaScriptPython 以及 Vercel 云函数,感谢 #524open in new window 提供

    JavaScript

    const publicKey = await crypto.subtle.importKey(
    +  "jwk",
    +  {
    +    kty: "RSA",
    +    n: "y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE",
    +    e: "AQAB",
    +  },
    +  { name: "RSA-OAEP", hash: "SHA-256" },
    +  true,
    +  ["encrypt"],
    +)
    +
    +async function getCorrespondPath(timestamp) {
    +  const data = new TextEncoder().encode(`refresh_${timestamp}`);
    +  const encrypted = new Uint8Array(await crypto.subtle.encrypt({ name: "RSA-OAEP" }, publicKey, data))
    +  return encrypted.reduce((str, c) => str + c.toString(16).padStart(2, "0"), "")
    +}
    +
    +const ts = Date.now()
    +console.log(await getCorrespondPath(ts))
    +
    b77f21ab5b7ce7879c410b2311dd6e7ea1a2cd1cd941073db067f4c3279fdabca3a06dfa744168ee14ad050b9f4889bd4edb8e76eb597fdd18c16804d82566b55c6dba8e225d838aa93d8e5b31cf7c56720db8244d92373f4944e0561f6ca5bf721a36ac079786060fc853605ccd1ddcb33f54617de6aedd44e3b9850d13b45f
    +

    Python

    需要pycryptodome依赖

    from Crypto.Cipher import PKCS1_OAEP
    +from Crypto.PublicKey import RSA
    +from Crypto.Hash import SHA256
    +import binascii
    +import time
    +
    +key = RSA.importKey('''\
    +-----BEGIN PUBLIC KEY-----
    +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
    +Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
    +nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
    +JNrRuoEUXpabUzGB8QIDAQAB
    +-----END PUBLIC KEY-----''')
    +
    +def getCorrespondPath(ts):
    +    cipher = PKCS1_OAEP.new(key, SHA256)
    +    encrypted = cipher.encrypt(f'refresh_{ts}'.encode())
    +    return binascii.b2a_hex(encrypted).decode()
    +
    +ts = round(time.time() * 1000)
    +print(getCorrespondPath(ts))
    +
    47bbd615f333d6a2c597bbb46ad47a6e59752a305a2f545d3ba5d49ca055309347796f80d257613696d36170c57443a0e9dea2b47f83b0b4224d431e46124fadd9a24c8fa468147e8bf2d2501eaacae43310e19bf58fc4a728d80c90b9401afcfc1536ba9a2f6438ea53c0b2652f8b8d01c87355dd5a5da51de998b1a35d519a
    +

    Kotlin

    import java.security.KeyFactory
    +import java.security.spec.MGF1ParameterSpec
    +import java.security.spec.X509EncodedKeySpec
    +import java.util.*
    +import javax.crypto.Cipher
    +import javax.crypto.spec.OAEPParameterSpec
    +import javax.crypto.spec.PSource
    +
    +
    +fun main() {
    +    println(getCorrespondPath(System.currentTimeMillis()))
    +}
    +
    +fun getCorrespondPath(timestamp: Long): String {
    +    val publicKeyPEM = """
    +        -----BEGIN PUBLIC KEY-----
    +        MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
    +        Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
    +        nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
    +        JNrRuoEUXpabUzGB8QIDAQAB
    +        -----END PUBLIC KEY-----
    +    """.trimIndent()
    +
    +    val publicKey = KeyFactory.getInstance("RSA").generatePublic(
    +        X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyPEM
    +            .replace("-----BEGIN PUBLIC KEY-----", "")
    +            .replace("-----END PUBLIC KEY-----", "")
    +            .replace("\n", "")
    +            .trim()))
    +    )
    +
    +    val cipher = Cipher.getInstance("RSA/ECB/OAEPPadding").apply {
    +        init(Cipher.ENCRYPT_MODE,
    +            publicKey,
    +            OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)
    +        )
    +    }
    +
    +    return cipher.doFinal("refresh_$timestamp".toByteArray()).joinToString("") { "%02x".format(it) }
    +}
    +
    1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7
    +

    Go

    package main
    +
    +import (
    +	"crypto/rand"
    +	"crypto/rsa"
    +	"crypto/sha256"
    +	"crypto/x509"
    +	"encoding/hex"
    +	"encoding/pem"
    +	"fmt"
    +	"time"
    +)
    +
    +func main() {
    +	result, err := getCorrespondPath(time.Now().UnixMilli())
    +	if err != nil {
    +		panic(err)
    +	}
    +	fmt.Println(result)
    +}
    +
    +func getCorrespondPath(ts int64) (string, error) {
    +	const publicKeyPEM = `
    +-----BEGIN PUBLIC KEY-----
    +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
    +Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
    +nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
    +JNrRuoEUXpabUzGB8QIDAQAB
    +-----END PUBLIC KEY-----
    +`
    +	pubKeyBlock, _ := pem.Decode([]byte(publicKeyPEM))
    +	hash := sha256.New()
    +	random := rand.Reader
    +	msg := []byte(fmt.Sprintf("refresh_%d", ts))
    +	var pub *rsa.PublicKey
    +	pubInterface, parseErr := x509.ParsePKIXPublicKey(pubKeyBlock.Bytes)
    +	if parseErr != nil {
    +		return "", parseErr
    +	}
    +	pub = pubInterface.(*rsa.PublicKey)
    +	encryptedData, encryptErr := rsa.EncryptOAEP(hash, random, pub, msg, nil)
    +	if encryptErr != nil {
    +		return "", encryptErr
    +	}
    +	return hex.EncodeToString(encryptedData), nil
    +}
    +
    97759947aa357ed5d88cf9bf1172737570b7bba2d6788d39006f082b2b25ddf53b581f1f0c61ed8573317485ef525d2789faa25a277b4602a4b9cbf837681093a03e96cb9773a11df4bb1e20f1587180b3e958194de922d7dd94d0a2f0b9b0ef74e426e8041f99b99e7c02407ef4ab38040e61be81e4fdfbdb73461e3a2ad810
    +

    Java

    import javax.crypto.Cipher;
    +import javax.crypto.spec.OAEPParameterSpec;
    +import javax.crypto.spec.PSource;
    +import java.math.BigInteger;
    +import java.security.KeyFactory;
    +import java.security.PublicKey;
    +import java.security.spec.MGF1ParameterSpec;
    +import java.security.spec.X509EncodedKeySpec;
    +import java.util.Base64;
    +
    +public class CookieRefresh {
    +    private static final String PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\n" +
    +            "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg\n" +
    +            "Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71\n" +
    +            "nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40\n" +
    +            "JNrRuoEUXpabUzGB8QIDAQAB\n" +
    +            "-----END PUBLIC KEY-----";
    +
    +    public static void main(String[] args) {
    +        try {
    +            String correspondPath = getCorrespondPath(String.format("refresh_%d", System.currentTimeMillis()), PUBLIC_KEY);
    +            System.out.println(correspondPath);
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +
    +    public static String getCorrespondPath(String plaintext, String publicKeyStr) throws Exception {
    +        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    +        publicKeyStr = publicKeyStr
    +                .replace("-----BEGIN PUBLIC KEY-----", "")
    +                .replace("-----END PUBLIC KEY-----", "")
    +                .replace("\n", "")
    +                .trim();
    +        byte[] publicBytes = Base64.getDecoder().decode(publicKeyStr);
    +        X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicBytes);
    +        PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
    +
    +        String algorithm = "RSA/ECB/OAEPPadding";
    +        Cipher cipher = Cipher.getInstance(algorithm);
    +        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    +
    +        // Encode the plaintext to bytes
    +        byte[] plaintextBytes = plaintext.getBytes("UTF-8");
    +
    +        // Add OAEP padding to the plaintext bytes
    +        OAEPParameterSpec oaepParams = new OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);
    +        cipher.init(Cipher.ENCRYPT_MODE, publicKey, oaepParams);
    +        // Encrypt the padded plaintext bytes
    +        byte[] encryptedBytes = cipher.doFinal(plaintextBytes);
    +        // Convert the encrypted bytes to a Base64-encoded string
    +        return new BigInteger(1, encryptedBytes).toString(16);
    +    }
    +}
    +
    f87666152da692735123f4e49053e5a98c16854673b2e632f31a3ff0c029640772873661a9a8412db6be447a0bfa03a295d15548cbfd2bb35634e98ba5f25b1205519d6e6119b483f4c516c1e106d45b04ff98c73560949d379d3edaf3c0ecd10a1d46134fb9ca443122ab33c16d1dd48280496f949ed960a2fbcd65f10935e
    +

    vercel云函数

    curl -G 'https://wasm-rsa.vercel.app/api/rsa' \
    +	--data-urlencode "t=$((`date '+%s'`*1000+`date '+%N'`/1000000))"
    +
    {
    +    "timestamp": "1684468084078",
    +    "hash": "a768efe5114ef8610f9ed9ebc28c00827375f4a3448ec4ab17958cacc4fde9898e5b7aa27f649426bba1acae4aa222aafaff7d528669b15249de0b2b60d86618557d8dc90684db4ec68e8d98e41d94f1c97d1d431c288e595ceb522d033822442a9e1ee150b32771a83fbf65c13329e9fda080fbe3bc85c49c1de7ab148d228f",
    +    "code": 0
    +}
    +

    获取refresh_csrf

    https://www.bilibili.com/correspond/1/{correspondPath}

    请求方式:GET

    鉴权方式:Cookie

    path 参数:

    参数名类型内容必要性备注
    correspondPathstr使用当前毫秒时间戳生成的签名必要生成CorrespondPath算法 加密获得

    将参数correspondPath拼接在 https://www.bilibili.com/correspond/1/ 后进行请求,例如

    https://www.bilibili.com/correspond/1/0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95

    请求该 url 会返回一个 html 页面,通常由 iframe 方式加载,它通过 SSR 方式返回一个实时刷新口令refresh_csrf存放于 html 标签中,并在 Client 端通过 js 请求 RestAPI 完成一些列的提交刷新、确认、SSO 站点登录等操作

    若参数correspondPath错误或过期,则返回一个 404 Page

    以下为返回的参数:

    标签 id内容xpath备注
    1-namerefresh_csrf//div[id='1-name']/text()实时刷新口令
    用于更新 Cookie

    示例:

    correspondPath='0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95'
    +
    +curl -G "https://www.bilibili.com/correspond/1/$correspondPath" \
    +	-b 'SESSDATA=xxx'
    +
    <!DOCTYPE html>
    +<html lang="zh-Hans">
    +
    +<head>
    +  <meta name="spm_prefix" content="333.1193">
    +  <link
    +    href="//s1.hdslb.com/bfs/static/jinkela/token-iframe/css/token-iframe.1.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.css"
    +    rel="stylesheet">
    +</head>
    +<title>Correspond</title>
    +<script type="text/javascript"
    +  src="//www.bilibili.com/gentleman/polyfill.js?features=Promise%2CObject.assign%2CString.prototype.includes%2CNumber.isNaN2%CglobalThis"></script>
    +
    +<body>
    +  <div id="1-name">b0cc8411ded2f9db2cff2edb3123acac</div>
    +  <div id="token-iframe-app"></div>
    +  <script type="text/javascript"
    +    src="//s1.hdslb.com/bfs/static/jinkela/token-iframe/2.token-iframe.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.js"></script>
    +  <script type="text/javascript"
    +    src="//s1.hdslb.com/bfs/static/jinkela/token-iframe/token-iframe.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.js"></script>
    +</body>
    +<script type="text/javascript">window.reportMsgObj = {};
    +  window.reportConfig = {
    +    sample: 1,
    +    scrollTracker: true,
    +    msgObjects: 'reportMsgObj',
    +  };
    +
    +  let reportScript = document.createElement('script');
    +  reportScript.src = '//s1.hdslb.com/bfs/seed/log/report/log-reporter.js';
    +  document.getElementsByTagName('body')[0].appendChild(reportScript);</script>
    +
    +</html>
    +

    所以当前账号的实时刷新口令refresh_csrfb0cc8411ded2f9db2cff2edb3123acac

    刷新Cookie

    https://passport.bilibili.com/x/passport-login/web/cookie/refresh

    请求方式:POST

    鉴权方式:Cookie

    刷新成功后会设置以下 Cookie 项:

    sidDedeUserIDDedeUserID__ckMd5SESSDATAbili_jct

    正文参数 (application/x-www-form-urlencoded)或 url 参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token必要位于 Cookie 中的bili_jct字段
    refresh_csrfstr实时刷新口令必要通过 获取refresh_csrf 获得
    sourcestr访问来源?必要一般为main_web
    refresh_tokenstr持久化刷新口令必要localStorage 中的ac_time_value字段,在登录成功后返回并保存

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    86095:refresh_csrf 错误或 refresh_token 与 cookie 不匹配
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    statusnum0
    messagestr
    refresh_tokenstr新的持久化刷新口令将存储于 localStorage 中的ac_time_value字段,以便下次使用

    示例:

    curl -i 'https://passport.bilibili.com/x/passport-login/web/cookie/refresh' \
    +	--data-urlencode 'csrf=f610640a37f51f6266f6b83cfc5eedbb' \
    +	--data-urlencode 'refresh_csrf=b0cc8411ded2f9db2cff2edb3123acac' \
    +	--data-urlencode 'source=main_web' \
    +	--data-urlencode 'refresh_token=45240a041836905fe953e3b98b83d751' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:

    http 响应(关键信息已做脱敏处理):

    HTTP/2 200
    +date: Fri, 19 May 2023 07:34:11 GMT
    +content-type: application/json; charset=utf-8
    +content-length: 116
    +bili-status-code: 0
    +bili-trace-id: 17f4251365646726
    +set-cookie: SESSDATA=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT; HttpOnly; Secure
    +set-cookie: bili_jct=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +set-cookie: DedeUserID=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +set-cookie: DedeUserID__ckMd5=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +set-cookie: sid=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
    +x-bili-trace-id: 3f6f6174aaa087b517f4251365646726
    +expires: Fri, 19 May 2023 07:34:10 GMT
    +cache-control: no-cache
    +x-cache-webcdn: BYPASS from blzone03
    +
    +{"code":0,"message":"0","ttl":1,"data":{"status":0,"message":"","refresh_token":"ae1bd1149b56af9743ffe7bbbeff3e51"}}
    +

    JSON Payload:

    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "status": 0,
    +        "message": "",
    +        "refresh_token": "ae1bd1149b56af9743ffe7bbbeff3e51"
    +    }
    +}
    +

    确认更新

    https://passport.bilibili.com/x/passport-login/web/confirm/refresh

    请求方式:POST

    鉴权方式:Cookie

    该步操作将让旧的refresh_token对应的 Cookie 失效

    正文参数 (application/x-www-form-urlencoded)或 url 参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于 cookie)必要从新的 cookie 中获取,位于 Cookie 中的bili_jct字段
    refresh_tokenstr旧的持久化刷新口令必要在刷新前 localStorage 中的ac_time_value获取,并非刷新后返回的值

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    curl 'https://passport.bilibili.com/x/passport-login/web/confirm/refresh' \
    +	--data-urlencode 'csrf=1e9658858e6da76be64bd92cdc0fa324' \
    +	--data-urlencode 'refresh_token=45240a041836905fe953e3b98b83d751' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/login/exit.html b/docs/login/exit.html new file mode 100644 index 0000000000..1356c08a8d --- /dev/null +++ b/docs/login/exit.html @@ -0,0 +1,45 @@ + + + + + + + + + 退出账号登录 | BAC Document + + + + +

    退出账号登录

    退出登录(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):

    参数名类型内容必要性备注
    biliCSRFstrCSRF Token (位于 cookie 中的 bili_jct)必要
    gourlstr成功后跳转到的页面非必要默认为javascript:history.go(-1)

    json 回复:

    如果 cookie 已经失效则输出登录页 html

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    2202:csrf 请求非法
    statusbool返回值true:成功
    tsnum时间戳
    messagestr错误信息成功时不存在
    data有效时:obj信息本体失败时不存在

    data对象:

    字段类型内容备注
    redirectUrlstr重定向 url

    示例:

    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'
    +
    查看响应示例:
    {
    +  "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"
    +  }
    +}
    +
    + + + diff --git a/docs/login/login_action/QR.html b/docs/login/login_action/QR.html new file mode 100644 index 0000000000..09f2bb2b4b --- /dev/null +++ b/docs/login/login_action/QR.html @@ -0,0 +1,260 @@ + + + + + + + + + 二维码登录 | BAC Document + + + + +

    二维码登录

    扫码登录流程(伪代码)

    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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    urlstr二维码内容 (登录页面 url)
    qrcode_keystr扫码登录秘钥恒为32字符

    示例:

    url中的值生成二维码,等待手机客户端扫描,并将qrcode_key保存备用

    curl 'https://passport.bilibili.com/x/passport-login/web/qrcode/generate'
    +
    查看响应示例:
    {
    +    "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

    url参数:

    参数名类型内容必要性备注
    qrcode_keystr扫码登录秘钥必要

    密钥超时为180秒

    验证登录成功后会进行设置以下cookie项:

    DedeUserID DedeUserID__ckMd5 SESSDATA bili_jct

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    dataobj信息本体

    data 对象:

    字段类型内容备注
    urlstr游戏分站跨域登录 url未登录为空
    refresh_tokenstr刷新refresh_token未登录为空
    timestampnum登录时间未登录为0
    时间戳 单位为毫秒
    codenum0:扫码登录成功
    86038:二维码已失效
    86090:二维码已扫码未确认
    86101:未扫码
    messagestr扫码状态信息

    示例:

    使用扫描秘钥c3bd5286a2b40a822f5f60e9bf3f602e登录

    curl -G "https://passport.bilibili.com/x/passport-login/web/qrcode/poll"\
    +--data-urlencode 'qrcode_key=c3bd5286a2b40a822f5f60e9bf3f602e' \
    +-c 'cookie.txt'
    +

    当密钥正确时但未扫描时code86101

    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "url": "",
    +    "refresh_token": "",
    +    "timestamp": 0,
    +    "code": 86101,
    +    "message": "未扫码"
    +  }
    +}
    +

    扫描成功但手机端未确认时code86090

    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "url": "",
    +        "refresh_token": "",
    +        "timestamp": 0,
    +        "code": 86090,
    +        "message": "二维码已扫码未确认"
    +    }
    +}
    +

    扫描成功手机端确认登录后,code0,并向浏览器写入cookie

    查看响应示例:
    {
    +    "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/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
    +

    二维码失效时code86038

    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    statusbooltrue作用尚不明确
    tsnum请求时间时间戳
    dataobj信息本体

    data对象:

    字段类型内容备注
    urlstr二维码内容 (登录页面 url)
    oauthKeystr扫码登录秘钥恒为32字符

    示例:

    url中的值生成二维码,等待手机客户端扫描,并将oauthKey保存备用

    curl 'https://passport.bilibili.com/qrcode/getLoginUrl'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"status": true,
    +	"ts": 1583314311,
    +	"data": {
    +		"url": "https://passport.bilibili.com/qrcode/h5/login?oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e",
    +		"oauthKey": "c3bd5286a2b40a822f5f60e9bf3f602e"
    +	}
    +}
    +

    扫码登录(web端-旧版)

    接口已失效,请求结果始终为 { code: 20000, message: '该版本已不支持当前功能,请升级新版本!' }

    https://passport.bilibili.com/qrcode/getLoginInfo

    请求方式:POST

    内容已过时:

    密钥超时为180秒

    验证登录成功后会进行设置以下cookie项:

    DedeUserID DedeUserID__ckMd5 SESSDATA bili_jct

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    oauthKeystr扫码登录秘钥必要
    gourlstr跳转url非必要默认为http://www.bilibili.com

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功,
    20000:该版本已不支持当前功能,请升级新版本!
    messagestr正确无
    tsnum扫码时间错误无
    statusbool扫码是否成功true:成功
    false:未成功
    data正确时:obj
    错误时:num
    正确时:游戏分站url
    错误时:错误代码
    未成功时:
    -1:密钥错误
    -2:密钥超时
    -4:未扫描
    -5:未确认

    data 对象:

    字段类型内容备注
    urlstr游戏分站跨域登录 url

    示例:

    使用扫描秘钥c3bd5286a2b40a822f5f60e9bf3f602e登录

    curl "https://passport.bilibili.com/qrcode/getLoginInfo"\
    +--data-urlencode 'oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e' \
    +-c 'cookie.txt'
    +

    当密钥正确时但未扫描时statusfalsedata-4

    查看响应示例:
    {
    +    "status":false,
    +    "data":-4,
    +    "message":"Can't scan~"
    +}
    +

    扫描成功但手机端未确认时statusfalsedata-5

    查看响应示例:
    {
    +    "status":false,
    +    "data":-5,
    +    "message":"Can't confirm~"
    +}
    +

    扫描成功手机端确认登录后,statustruedata为对象,并向浏览器写入cookie

    查看响应示例:
    {
    +	"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/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 ):

    参数名类型内容必要性备注
    appkeystrAPP 密钥APP 方式必要可用
    local_idnumTV 端 idTV 端必要可为0
    tsnum当前时间戳APP 方式必要
    signstrAPP 签名APP 方式必要
    mobi_appstr平台标识非必要会被拼接到返回的 url query

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    urlstr二维码内容 url
    auth_codestr扫码登录秘钥恒为 32 字符

    示例:

    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'
    +
    查看响应示例:
    {
    +  "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):

    参数名类型内容必要性备注
    appkeystrAPP密钥APP方式必要可用
    auth_codestr扫码秘钥必要
    local_idnumTV端idTV端必要可为0
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -400:请求错误
    -404:啥都木有
    86038:二维码已失效
    86039:二维码尚未确认
    86090:二维码已扫码未确认
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    信息本体

    data对象:

    字段类型内容备注
    midnum登录用户mid
    access_tokenstrAPP登录Token
    refresh_tokenstrAPP刷新Token
    expires_innum有效时间默认:15552000秒,等于180天

    示例:

    使用扫描秘钥6214464b3025541abf6f654cf7569a01进行验证登录

    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' 
    +
    查看响应示例:
    {
    +  "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"
    +    ]
    +  }
    +}
    +

    appkey 可用列表

    仅覆盖 docs/misc/sign/APPKey 中包含的 appkey

    APPKEYAPPSECplatformAPP类型neuronAppIdmobi_app2备注
    783bbb7264451d822653583c8873dea268ab9386918b1d65android粉版1android仅获取用户信息时使用(7.X及更新版本)
    8d23902c1688a798710f0212e62bd499b8d3ac6e1db9302aandroidAndroidBiliThings??
    bca7e84c2d947ac660698ba2f68e01ce44738920a0ffe768?login-?
    27eb53fc9058f8c3c2ed53a74eeefe3cf99fbd01d8c9c375web/ios?---第三方授权使用
    4409e2ce8ffd12b859b43e04ad6965f34319062b478f83ddandroid云视听小电视(TV版)9?android_tv_yst?
    dfca71928277209bb5475a8825547a4fc26c7d518eaaa02eandroidHD 版5android_hd

    注意:

    通过某一组 APPKEY/APPSEC 获取到的 access_token,当接口需要 sign 签名时也只能使用该组 APPKEY/APPSEC,否则出现 { code: -663, message: '鉴权失败,请联系账号组', ttl: 1 } 错误。

    例外:

    783bbb7264451d82/2653583c8873dea268ab9386918b1d65 获取到的 access_token 可配合 1d8b6e7d45233436/560c52ccd288fed045859ed18bffd973 使用。

    + + + diff --git a/docs/login/login_action/SMS.html b/docs/login/login_action/SMS.html new file mode 100644 index 0000000000..e9e3d19170 --- /dev/null +++ b/docs/login/login_action/SMS.html @@ -0,0 +1,176 @@ + + + + + + + + + 短信登录 | BAC Document + + + + +

    短信登录

    web端短信登录流程:

    1. 完成人机验证
    2. 发送短信,使用国际地区代码cid+手机号码tel+登录密钥token+极验challenge+验证结果validate+验证结果seccode
    3. 提交短信验证码以验证登录操作,使用国际地区代码cid+手机号码tel+短信验证码code

    获取国际冠字码_web端

    https://passport.bilibili.com/web/generic/country/list

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj数据本体

    data对象:

    字段类型内容备注
    commonarray常用国家&地区
    othersarray其他国家&地区

    data中的commonothers数组:

    类型内容备注
    0obj国家&地区1
    nobj国家&地区(n+1)
    ……obj…………

    commonothers数组中的对象:

    字段类型内容备注
    idnum国际代码值
    cnamestr国家&地区名
    country_idstr国家&地区区号

    示例:

    curl 'https://passport.bilibili.com/web/generic/country/list'
    +
    查看响应示例:
    {
    +    "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"
    +            },
    +            …………
    +        ]
    +    }
    +}
    +

    发送短信验证码_app端

    https://passport.bilibili.com/x/passport-login/sms/send

    请求方式:POST

    同手机号短信发送 CD 时间为 60s

    短信验证码 timeout 为 5min

    验证内容由第一次返回进行处理,解析recaptcha_url的params传到极验进行验证后取到验证结果入参后再次调用即可

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从获取国际冠字码获取
    telnum手机号码必要
    login_session_idstr登录标识必要uuid去掉'-'后得到
    recaptcha_tokenstr登录 API token必要申请 captcha 验证码接口处获取
    gee_challengestr极验 challenge必要申请 captcha 验证码接口处获取
    gee_validatestr极验 result必要极验验证后得到
    gee_seccodestr极验 result +|jordan必要极验验证后得到
    channelstr通道?必要一般固定值为"bili"
    buvidstrbuvid必要参考如下方法生成
    local_idstr同上必要同上
    statisticsstr?必要一般固定为{"appId":1,"platform":3,"version":"7.27.0","abtest":""},非key-value入参需要转URL编码

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1002:手机号格式错误
    86203:短信发送次数已达上限
    1003:验证码已经发送
    1025:该手机号在哔哩哔哩有过永久封禁记录,无法再次注册或绑定新账号
    2400:登录秘钥错误
    2406:验证极验服务出错
    messagestr错误信息成功为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    captcha_keystr短信登录 token在下方传参时需要,请备用

    示例:

    例如手机号为13888888888,国际id为1 (中国大陆),登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行发送短信验证码操作

    curl 'https://passport.bilibili.com/x/passport-login/sms/send' \
    +--data-urlencode 'tel=13888888888' \
    +--data-urlencode 'cid=1' \
    +--data-urlencode 'login_session_id=669900' \
    +--data-urlencode 'recaptcha_token=aabbccdd' \
    +--data-urlencode 'gee_challenge=2333' \
    +--data-urlencode 'gee_validate=666666' \
    +--data-urlencode 'gee_seccode=666666|jordan' \
    +--data-urlencode 'channel=bili' \
    +--data-urlencode 'buvid=999999' \
    +--data-urlencode 'local_id=999999' \
    +--data-urlencode 'statistics=%7B%22appId%22%3A1%2C%22platform%22%3A3%2C%22version%22%3A%227.27.0%22%2C%22abtest%22%3A%22%22%7D'
    +

    生成buvid方法

    static buvid() : string {
    +    var mac = [];
    +    for (let i = 0; i < 6; i++) {
    +        var min = Math.min(0, 0xff)
    +        var max = Math.max(0, 0xff)
    +        var num = parseInt((Math.random() * (min - max + 1) + max).toString()).toString(16)
    +        mac.push(num)
    +    }
    +    var md5 = this.md5(mac.join(':'));
    +    var md5Arr = md5.split('');
    +    return "XY${md5Arr[2]}${md5Arr[12]}${md5Arr[22]}${md5}"
    +}
    +
    查看响应示例:
    {"code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "captcha_key":"7542f109c3318d74847626495c68c321",
    +        "recaptcha_url":"...."
    +    }
    +}
    +

    发送短信验证码_web端

    https://passport.bilibili.com/x/passport-login/web/sms/send

    请求方式:POST

    同手机号短信发送 CD 时间为 60s

    短信验证码 timeout 为 5min

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从获取国际冠字码获取
    telnum手机号码必要
    sourcestr登录来源必要main_web:独立登录页
    main_mini:小窗登录
    tokenstr登录 API token必要申请 captcha 验证码接口处获取
    challengestr极验 challenge必要申请 captcha 验证码接口处获取
    validatestr极验 result必要极验验证后得到
    seccodestr极验 result +|jordan必要极验验证后得到

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1002:手机号格式错误
    86203:短信发送次数已达上限
    1003:验证码已经发送
    1025:该手机号在哔哩哔哩有过永久封禁记录,无法再次注册或绑定新账号
    2400:登录秘钥错误
    2406:验证极验服务出错
    messagestr错误信息成功为0
    dataobj信息本体

    data对象:

    字段类型内容备注
    captcha_keystr短信登录 token在下方传参时需要,请备用

    示例:

    例如手机号为13888888888,国际id为1 (中国大陆),登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行发送短信验证码操作

    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'
    +
    查看响应示例:
    {"code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "captcha_key":"7542f109c3318d74847626495c68c321"
    +    }
    +}
    +

    使用短信验证码登录_app端

    https://passport.bilibili.com/x/passport-login/login/sms

    请求方式:POST

    验证登录成功后会返回实体内容:

    mid expires_in access_token refresh_token

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从获取国际冠字码获取
    telnum手机号码必要
    login_session_idstr登录标识必要必须与上述login_session_id保持一致
    codenum短信验证码必要timeout 为 5min
    captcha_keystr短信登录 token必要上述API请求成功后返回

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1006:请输入正确的短信验证码
    1007:短信验证码已过期
    messagestr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    midstr用户uid
    expires_instr过时时间
    access_tokenstr登录 token
    refresh_tokenstr刷新 token
    cookie_infoArraycookie集合

    示例:

    使用手机号13888888888,短信验证码为123456,进行验证登录操作

    curl 'https://passport.bilibili.com/x/passport-login/login/sms' 
    +--data-urlencode 'cid=1' \
    +--data-urlencode 'tel=13888888888' \
    +--data-urlencode 'code=123456' \
    +--data-urlencode 'captcha_key=999999' \
    +--data-urlencode 'login_session_id=669900' 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "token_info": {
    +        "mid": "...",
    +        "expires_in": "114514",
    +        "access_token": "",
    +        "refresh_token": ""
    +        //...
    +    },
    +    "cookie_info":[
    +        //...
    +    ],
    +    "message": "0"
    +  }
    +}
    +

    响应头部抓包信息:

    可明显看见设置了几个cookie(填入浏览器即可成功登录)

    查看响应示例:
    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
    +
    +

    使用短信验证码登录_web端

    https://passport.bilibili.com/x/passport-login/web/login/sms

    请求方式:POST

    验证登录成功后会进行设置以下cookie项:

    DedeUserID DedeUserID__ckMd5 SESSDATA bili_jct

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从获取国际冠字码获取
    telnum手机号码必要
    codenum短信验证码必要timeout 为 5min
    sourcestr登录来源必要main_web:独立登录页
    main_mini:小窗登录
    captcha_keystr短信登录 token必要上述API请求成功后返回
    go_urlstr跳转url非必要默认为 https://www.bilibili.com
    keepbool是否记住登录非必要true:记住登录
    false:不记住登录

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    1006:请输入正确的短信验证码
    1007:短信验证码已过期
    messagestr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    is_newbool是否为新注册用户false:非新注册用户
    true:新注册用户
    statusnum0未知,可能0就是成功吧
    urlstr跳转 url默认为 https://www.bilibili.com

    示例:

    使用手机号13888888888,短信验证码为123456,进行验证登录操作

    curl 'https://passport.bilibili.com/x/passport-login/web/login/sms' 
    +--data-urlencode 'cid=1' \
    +--data-urlencode 'tel=13888888888' \
    +--data-urlencode 'code=123456'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "is_new": false,
    +    "status": 0,
    +    "url": "https://space.bilibili.com"
    +  }
    +}
    +

    响应头部抓包信息:

    可明显看见设置了几个cookie(填入浏览器即可成功登录)

    查看响应示例:
    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/index.html b/docs/login/login_action/index.html new file mode 100644 index 0000000000..1107082422 --- /dev/null +++ b/docs/login/login_action/index.html @@ -0,0 +1,63 @@ + + + + + + + + + 登录操作 | BAC Document + + + + +

    登录操作

    人机验证方式登录包含账号密码登录手机短信验证码登录

    注:扫码登录不需要进行人机验证,故不使用以下接口

    扫码登录

    验证登录

    人机验证流程:

    1. 请求验证码参数,得到登录密钥key与极验idgt和极验KEYchallenge
    2. 进行滑动or点击验证
    3. 返回验证结果validateseccode,进行短信或密码登录

    申请captcha验证码

    https://passport.bilibili.com/x/passport-login/captcha?source=main_web

    请求方式:GET

    注: 另外参见 密码登录-手机号验证-获取 captcha

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr返回信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    geetestobj极验captcha数据
    tencentobj(?)作用尚不明确
    tokenstr登录 API token与 captcha 无关,与登录接口有关
    typestr验证方式用于判断使用哪一种验证方式,目前所见只有极验
    geetest:极验

    geetest对象:

    字段类型内容备注
    gtstr极验id一般为固定值
    challengestr极验KEY由B站后端产生用于人机验证

    示例:

    curl 'https://passport.bilibili.com/x/passport-login/captcha?source=main_web'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "type": "geetest",
    +        "token": "00fbe75cc2864ba0af969231f193a974",
    +        "geetest": {
    +            "challenge": "a57d9be17505d4a15ed84694c48fbf74",
    +            "gt": "ac597a4506fee079629df5d8b66dd4fe"
    +        },
    +        "tencent": {
    +            "appid": ""
    +        }
    +    }
    +}
    +

    申请captcha验证码 (旧版)

    http://passport.bilibili.com/web/captcha/combine

    请求方式:GET

    该接口曾从文档移除过, 经过测试仍可正常使用

    URL参数:

    参数名类型内容必要性备注
    platnum平台类型必要默认为 6

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    dataobj信息本体

    data对象:

    字段类型内容备注
    resultobj套了个娃
    typenum1作用尚不明确

    result对象:

    字段类型内容备注
    successnum1作用尚不明确
    gtstr极验id一般为固定值
    challengestr极验KEY由B站后端产生用于人机验证
    keystr登录秘钥与 captcha 无关, 与登录接口有关, 亦作 token

    示例:

    curl 'https://passport.bilibili.com/web/captcha/combine?plat=6'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "result": {
    +      "success": 1,
    +      "gt": "bd111e81eda1cbb9f54425aafc0908ac",
    +      "challenge": "2903a8eb967a1d990444cb23ea42f417",
    +      "key": "76fb59fbd83a4d9d816162c5156fc964"
    +    },
    +    "type": 1
    +  }
    +}
    +

    进行验证

    本文档为 Bilibili 文档,验证码为 geetest 极验open in new window 提供,故不提供相关 API

    附: 手动验证器open in new window及其源码open in new window

    1. 打开手动验证器,在1、2分别填入上面API返回的gtchallenge
    2. 点击按钮3,稍等加载验证码,点击按钮4进行验证
    3. 验证完成后,点击按钮5生成验证结果
    4. 使用最开始获得到的keychallenge和刚获得到的validateseccode继续之后的登录操作

    继续登录

    + + + diff --git a/docs/login/login_action/password.html b/docs/login/login_action/password.html new file mode 100644 index 0000000000..0b9354f21d --- /dev/null +++ b/docs/login/login_action/password.html @@ -0,0 +1,282 @@ + + + + + + + + + 密码登录 | BAC Document + + + + +

    密码登录

    密码登录流程(伪代码)

    账号 = '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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hashstr密码盐值有效时间为 20s
    恒为 16 字符
    需要拼接在明文密码之前
    keystrrsa 公钥PEM 格式编码
    加密密码时需要使用

    示例:

    curl 'https://passport.bilibili.com/x/passport-login/web/key'
    +
    查看响应示例:
    {
    +    "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):

    参数名类型内容必要性备注
    usernamestr用户登录账号必要手机号或邮箱地址
    passwordstr加密后的带盐密码必要base64 格式
    keepnum0必要
    tokenstr登录 token必要申请 captcha 验证码接口处获取
    challengestr极验 challenge必要申请 captcha 验证码接口处获取
    validatestr极验 result必要极验验证后得到
    seccodestr极验 result +|jordan必要极验验证后得到
    go_urlstr跳转 url非必要默认为 https://www.bilibili.com
    sourcestr登录来源非必要main_web:独立登录页
    main_mini:小窗登录

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -105:验证码错误
    -400:请求错误
    -629:账号或密码错误
    -653:用户名或密码不能为空
    -662:提交超时,请重新提交
    -2001:缺少必要的的参数
    -2100:需验证手机号或邮箱
    2400:登录秘钥错误
    2406:验证极验服务出错
    86000:RSA解密失败
    messagestr错误信息
    data成功时:obj
    失败时:null
    数据本体

    data 对象:

    字段类型内容备注
    messagestr扫码状态信息若提示 本次登录环境存在风险, 需使用手机号进行验证或绑定, 参见 手机号验证
    refresh_tokenstr刷新refresh_token
    statusnum0
    timestampnum登录时间未登录为0
    时间戳 单位为毫秒
    urlstr游戏分站跨域登录 url

    示例:

    例如用户账号为12345678900,加密后的密码为xxx,登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行验证登录操作

    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'
    +
    查看响应示例:
    {
    +    "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/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回复:

    根对象:

    字段类型内容备注
    hashstr密码盐值有效时间为 20s
    恒为 16 字符
    需要拼接在明文密码之前
    keystrrsa 公钥PEM 格式编码
    加密密码时需要使用

    示例:

    curl 'https://passport.bilibili.com/login?act=getkey'
    +
    查看响应示例:
    {
    +    "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):

    参数名类型内容必要性备注
    captchaTypenum6必要必须为6
    usernamestr用户登录账号必要手机号或邮箱地址
    passwordstr加密后的带盐密码必要base64 格式
    keepbool是否记住登录必要true:记住登录
    false:不记住登录
    keystr登录 token必要申请 captcha 验证码接口处获取
    challengestr极验 challenge必要申请 captcha 验证码接口处获取
    validatestr极验 result必要极验验证后得到
    seccodestr极验 result +|jordan必要极验验证后得到

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -629:账号或密码错误
    -653:用户名或密码不能为空
    -662:提交超时,请重新提交
    -2001:缺少必要的的参数
    -2100:需验证手机号或邮箱
    2400:登录秘钥错误
    2406:验证极验服务出错
    86000:RSA解密失败
    tsnum当前时间戳成功时无此项
    messagestr错误信息默认为0
    dataobj数据本体成功时有此项

    data对象:

    未登录时:

    字段类型内容备注
    redirectUrlstr游戏分站跨域登录 url

    已登录时:

    字段类型内容备注
    isLoginbooltrue
    goUrlstrhttps://www.bilibili.com

    需验证手机号或邮箱时

    字段类型内容备注
    midnum用户 mid
    telstr绑定的手机号星号隐藏部分信息
    emailstr绑定的邮箱星号隐藏部分信息
    sorcenum0作用尚不明确
    keeptimenum1作用尚不明确
    goUrlstrhttps://www.bilibili.com

    示例:

    例如用户账号为12345678900,加密后的密码为xxx,登录秘钥为aabbccdd,极验challenge为2333,极验结果为666666,进行验证登录操作

    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'
    +
    查看响应示例:
    {
    +    "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/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 ):

    参数名类型内容必要性备注
    appkeystrAPP密钥APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    hashstr密码盐值有效时间为 20s
    恒为 16 字符
    需要拼接在明文密码之前
    keystrrsa 公钥PEM 格式编码
    加密密码时需要使用

    示例:

    curl 'https://passport.bilibili.com/api/oauth2/getKey' \
    +--data-urlencode 'appkey=1d8b6e7d45233436' \
    +--data-urlencode 'sign=17004c193f688f0b5665c1068e733aff'
    +
    查看响应示例:
    {
    +    "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 备用

    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 加密

    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 编码

    import base64
    +b64Password = base64.b64encode(encryptedPassword).decode()
    +print('result =', b64Password)
    +

    以下为最终加密结果,可直接向 API 请求体传参以登录:

    因为 RSA 公钥加密的无法解密性,故无法本地验证,仅可请求 API 验证(略...

    result = fZzUzYiSp96F26tt19MIAkB4b4Wk4RHQb4ADLiTIbL66O/7upyj4U5UekTA2pB3Pjr6NlEGGc/kiEgwTNbu84d4bkAkpUOupj1hZXYMYgWYKOtvhvugeuhwgRDhkfUIX+YrwaScxpcQFJqo7bvh7oDL/Wc5sVdWvikpL3PFAvJM=
    +

    以下为密码加密的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);
    +  }
    +}
    +
    +

    手机号验证

    简述

    有时 登录操作(web端) (APP 端可能也有类似操作) 会返回如下内容, 此时需要进行手机号验证或绑定

    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "is_new": false,
    +    "status": 2,
    +    "message": "本次登录环境存在风险, 需使用手机号进行验证或绑定",
    +    "url": "https://passport.bilibili.com/h5-app/passport/risk/verify?tmp_token=imtmptk&request_id=imreqid&source=risk",
    +    "refresh_token": "",
    +    "timestamp": 0,
    +    "hint": "",
    +    "in_reg_audit": 0
    +  }
    +}
    +

    获取 captcha

    https://passport.bilibili.com/x/safecenter/captcha/pre

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    sourcestrrisk不必要

    JSON 回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    recaptcha_typestr验证码类型目前仅 geetest
    recaptcha_tokenstr验证码 token
    gee_challengestr极验 challenge
    gee_gtstr极验 gt

    示例:

    curl -X POST 'https://passport.bilibili.com/x/safecenter/captcha/pre'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "recaptcha_type": "geetest",
    +    "recaptcha_token": "8a418aa9eebe411599d759fc318d55e1",
    +    "gee_challenge": "4e5353e7ab9f9aef0c97fa5a5b1ad101",
    +    "gee_gt": "ac597a4506fee079629df5d8b66dd4fe"
    +  }
    +}
    +

    发送验证码

    https://passport.bilibili.com/x/safecenter/common/sms/send

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    tmp_codestrurl query 中的 tmp_code必要参见 简述 中 JSON 示例中的 url
    sms_typestrloginTelCheck必要
    recaptcha_tokenstr验证码 token必要参见 获取 captcha
    gee_challengestr极验 challenge必要参见 获取 captcha
    gee_validatestr极验 validate必要验证后获得
    gee_seccodestr极验 seccode必要验证后获得

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    captcha_keystr验证码 key

    示例:

    假设 tmp_codeimtmptk, recaptcha_tokenkfc, gee_challengecrazythursday, gee_validatevivo50, gee_seccodevivo50|jordan

    curl -X POST 'https://passport.bilibili.com/x/safecenter/common/sms/send' \
    +--data-urlencode 'tmp_code=imtmptk' \
    +--data-urlencode 'sms_type=loginTelCheck' \
    +--data-urlencode 'recaptcha_token=kfc' \
    +--data-urlencode 'gee_challenge=crazythursday' \
    +--data-urlencode 'gee_validate=vivo50' \
    +--data-urlencode 'gee_seccode=vivo50|jordan'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "captcha_key": "42403fb08ed2cd97afff14edefbae482"
    +  }
    +}
    +

    验证手机验证码

    https://passport.bilibili.com/x/safecenter/login/tel/verify

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    tmp_codestrurl query 中的 tmp_code必要参见 简述 中 JSON 示例中的 url
    captcha_keystr验证码 key必要参见 发送验证码
    typestrloginTelCheck必要
    codenum接收到的验证码必要
    request_idstrurl query 中的 request_id必要参见 简述 中 JSON 示例中的 url
    sourcestrrisk必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    codestr交换代码用于后面 交换 Cookie

    示例:

    假设 tmp_codeimtmptk, captcha_key42403fb08ed2cd97afff14edefbae482, code114514, request_idimreqid

    curl -X POST 'https://passport.bilibili.com/x/safecenter/login/tel/verify' \
    +--data-urlencode 'tmp_code=imtmptk' \
    +--data-urlencode 'captcha_key=42403fb08ed2cd97afff14edefbae482' \
    +--data-urlencode 'type=loginTelCheck' \
    +--data-urlencode 'code=114514' \
    +--data-urlencode'request_id=imreqid' \
    +--data-urlencode'source=risk'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "code": "6eadf783c55a387b143773282b217682"
    +  }
    +}
    +

    https://passport.bilibili.com/x/passport-login/web/exchange_cookie

    请求方法: POST

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    sourcestrrisk必要
    codestr交换代码必要参见 验证手机验证码

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    urlstr游戏分站跨域登录 url
    refresh_tokenstr刷新 token

    示例:

    假设 code6eadf783c55a387b143773282b217682

    curl -X POST 'https://passport.bilibili.com/x/passport-login/web/exchange_cookie' \
    +--data-urlencode 'code=6eadf783c55a387b143773282b217682' \
    +--data-urlencode'source=risk'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "url": "https://passport.biligame.com/x/passport-login/web/crossDomain?DedeUserID=645769214&DedeUserID__ckMd5=653409864bf9e200&Expires=1739265009&SESSDATA=11d97d2a,1739265009,928d7*82CjCKOhDRm5gROpSfgQ7B2axGVMWm5LuwNTkNDK2vjeGl7xvAsfsCINKmczXvO_Z45FsSVlJ1NHdlYlpSei1lYjdqUXRMaUpuRk9GbjVPS0psc3ZTcDFGRjhnNGhIbHRlZ0ZQRWQ1MUlUY2pnQ0lkTVRYNjlabmlUWGxHcVdkV3hrcElpa0ZEZEZRIIEC&bili_jct=3cdee5b84eb48d4f08bcfd57b58cf40b&gourl=https%3A%2F%2Fwww.bilibili.com%2F&first_domain=.bilibili.com",
    +    "refresh_token": "43de156ad241864640f9d9721656a682"
    +  }
    +}
    +
    查看响应头部示例:
    HTTP/2 200 OK
    +date: Thu, 15 Aug 2024 09:10:09 GMT
    +content-type: application/json; charset=utf-8
    +access-control-allow-credentials: true
    +access-control-allow-methods: GET,POST,PUT,DELETE
    +access-control-allow-origin: https://passport.bilibili.com
    +bili-status-code: 0
    +bili-trace-id: 175262647666bdc5
    +set-cookie: SESSDATA=xxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT; HttpOnly; Secure
    +set-cookie: bili_jct=xxxxxxxxxxxxxxxxxxxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +set-cookie: DedeUserID=114514191; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +set-cookie: DedeUserID__ckMd5=0123456789abcdef; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +set-cookie: sid=xxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
    +vary: Origin
    +x-bili-trace-id: 60f0305e2abc511d175262647666bdc5
    +access-control-allow-headers: Origin,No-Cache,X-Requested-With,If-Modified-Since,Pragma,Last-Modified,Cache-Control,Expires,Content-Type,Access-Control-Allow-Credentials,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Cache-Webcdn,x-bilibili-key-real-ip,x-backend-bili-real-ip,x-risk-header
    +cross-origin-resource-policy: cross-origin
    +access-control-expose-headers: X-Bili-Gaia-Vvoucher,X-Bili-Trace-Id
    +expires: Thu, 15 Aug 2024 09:10:08 GMT
    +cache-control: no-cache
    +x-cache-webcdn: BYPASS from blzone01
    +content-encoding: br
    +X-Firefox-Spdy: h2
    +
    + + + diff --git a/docs/login/login_info.html b/docs/login/login_info.html new file mode 100644 index 0000000000..f056d62cc0 --- /dev/null +++ b/docs/login/login_info.html @@ -0,0 +1,264 @@ + + + + + + + + + 登录基本信息 | BAC Document + + + + +

    登录基本信息

    导航栏用户信息

    https://api.bilibili.com/nav(带有转义) (已失效)

    https://api.bilibili.com/x/web-interface/nav(原始数据)

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    isLoginbool是否已登录false:未登录
    true:已登录
    email_verifiednum是否验证邮箱地址0:未验证
    1:已验证
    facestr用户头像 url
    level_infoobj等级信息
    midnum用户 mid
    mobile_verifiednum是否验证手机号0:未验证
    1:已验证
    moneynum拥有硬币数
    moralnum当前节操值上限为70
    officialobj认证信息
    officialVerifyobj认证信息 2
    pendantobj头像框信息
    scoresnum(?)
    unamestr用户昵称
    vipDueDatenum会员到期时间毫秒 时间戳
    vipStatusnum会员开通状态0:无
    1:有
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度及以上大会员
    vip_pay_typenum会员开通状态0:无
    1:有
    vip_theme_typenum(?)
    vip_labelobj会员标签
    vip_avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    vip_nickname_colorstr会员昵称颜色颜色码
    walletobjB币钱包信息
    has_shopbool是否拥有推广商品false:无
    true:有
    shop_urlstr商品推广页面 url
    allowance_countnum(?)
    answer_statusnum(?)
    is_senior_membernum是否硬核会员0:非硬核会员
    1:硬核会员
    wbi_imgobjWbi 签名实时口令该字段即使用户未登录也存在
    is_jurybool是否风纪委员true:风纪委员
    false:非风纪委员

    data中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级
    current_minnum当前等级经验最低值
    current_expnum当前经验
    next_exp小于6级时:num
    6级时:str
    升级下一等级需达到的经验当用户等级为Lv6时,值为--,代表无穷大

    data中的official对象:

    字段类型内容备注
    rolenum认证类型用户认证类型一览
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum是否认证-1:无
    0:认证

    data中的official_verify对象:

    字段类型内容备注
    typenum是否认证-1:无
    0:认证
    descstr认证信息无为空

    data中的pendant对象:

    字段类型内容备注
    pidnum挂件id
    namestr挂件名称
    imagestr挂件图片url
    expirenum(?)

    data中的vip_label对象:

    字段类型内容备注
    pathstr(?)
    textstr会员名称
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员

    data中的wallet对象:

    字段类型内容备注
    midnum登录用户mid
    bcoin_balancenum拥有B币数
    coupon_balancenum每月奖励B币数
    coupon_due_timenum(?)

    data中的wbi_img对象:

    字段类型内容备注
    img_urlstrWbi 签名参数 imgKey的伪装 url详见文档 Wbi 签名
    sub_urlstrWbi 签名参数 subKey的伪装 url详见文档 Wbi 签名

    示例:

    登录状态:

    curl 'https://api.bilibili.com/x/web-interface/nav' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "isLogin": true,
    +        "email_verified": 1,
    +        "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +        "face_nft": 0,
    +        "face_nft_type": 0,
    +        "level_info": {
    +            "current_level": 6,
    +            "current_min": 28800,
    +            "current_exp": 52689,
    +            "next_exp": "--"
    +        },
    +        "mid": 293793435,
    +        "mobile_verified": 1,
    +        "money": 172.4,
    +        "moral": 70,
    +        "official": {
    +            "role": 0,
    +            "title": "",
    +            "desc": "",
    +            "type": -1
    +        },
    +        "officialVerify": {
    +            "type": -1,
    +            "desc": ""
    +        },
    +        "pendant": {
    +            "pid": 2511,
    +            "name": "初音未来13周年",
    +            "image": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
    +            "expire": 0,
    +            "image_enhance": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
    +            "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png"
    +        },
    +        "scores": 0,
    +        "uname": "社会易姐QwQ",
    +        "vipDueDate": 1707494400000,
    +        "vipStatus": 1,
    +        "vipType": 2,
    +        "vip_pay_type": 0,
    +        "vip_theme_type": 0,
    +        "vip_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"
    +        },
    +        "vip_avatar_subscript": 1,
    +        "vip_nickname_color": "#FB7299",
    +        "vip": {
    +            "type": 2,
    +            "status": 1,
    +            "due_date": 1707494400000,
    +            "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,
    +            "tv_due_date": 1640793600
    +        },
    +        "wallet": {
    +            "mid": 293793435,
    +            "bcoin_balance": 5,
    +            "coupon_balance": 5,
    +            "coupon_due_time": 0
    +        },
    +        "has_shop": true,
    +        "shop_url": "https://gf.bilibili.com?msource=main_station",
    +        "allowance_count": 0,
    +        "answer_status": 0,
    +        "is_senior_member": 1,
    +        "wbi_img": {
    +            "img_url": "https://i0.hdslb.com/bfs/wbi/653657f524a547ac981ded72ea172057.png",
    +            "sub_url": "https://i0.hdslb.com/bfs/wbi/6e4909c702f846728e64f6007736a338.png"
    +        },
    +        "is_jury": false
    +    }
    +}
    +

    未登录状态:

    curl 'https://api.bilibili.com/x/web-interface/nav'
    +
    查看响应示例:
    {
    +    "code": -101,
    +    "message": "账号未登录",
    +    "ttl": 1,
    +    "data": {
    +        "isLogin": false,
    +        "wbi_img": {
    +            "img_url": "https://i0.hdslb.com/bfs/wbi/653657f524a547ac981ded72ea172057.png",
    +            "sub_url": "https://i0.hdslb.com/bfs/wbi/6e4909c702f846728e64f6007736a338.png"
    +        },
    +    }
    +}
    +

    登录用户信息仅部分(已弃用)

    查看折叠内容

    https://account.bilibili.com/home/userInfo

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserID存在且不为0

    带有转义

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    statusbooltrue作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    level_infoobj等级信息
    bCoinsnum拥有B币数
    coinsnum拥有硬币数
    facestr登录用户头像url
    nameplate_currentnull???作用尚不明确
    nameplate_currentstr登录用户勋章url
    pendant_currentstr登录用户头像框url
    unamestr登录用户昵称
    userStatusstr登录用户状态
    vipTypenum大会员类型0:无
    1:月度
    2:年度
    vipStatusnum会员开通状态0:无
    1:有
    official_verifynum是否认证-1:无
    0:认证
    pointBalancenum0作用尚不明确

    data中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级
    current_minnum当前等级经验最低值
    current_expnum当前经验
    next_expnum升级下一等级需达到的经验

    示例:

    curl 'https://account.bilibili.com/home/userInfo' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +	"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_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -3:API校验密匙错误
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum用户mid
    namestr用户昵称
    signstr用户签名
    coinsnum拥有硬币数
    birthdaystr用户生日YYYY-MM-DD
    facestr用户头像url
    sexnum用户性别0:私密
    1:男
    2:女
    levelnum用户等级0-6
    ranknum1000作用尚不明确
    silencenum用户是否被封禁0:正常
    1:封禁
    vipobj会员信息
    email_statusnum是否验证邮箱地址0:未验证
    1:已验证
    tel_statusnum是否验证手机号0:未验证
    1:已验证
    officialobj认证信息
    identificationnum1作用尚不明确
    inviteobj
    is_touristnum0作用尚不明确
    pin_promptingnum0作用尚不明确

    data中的vip对象:

    字段类型内容备注
    typenum大会员类型0:无
    1:月度
    2:年度
    statusnum会员开通状态0:无
    1:有
    due_datenum大会员到期时间毫秒 时间戳
    vip_pay_typenum会员开通状态0:无
    1:有
    theme_typenum会员开通状态0:无
    1:有
    labelobj大会员信息
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文字
    label_themestr会员类型

    data中的official对象:

    字段类型内容备注
    rolenum认证类型0:无
    1 2 7:个人认证
    3 4 5 6:机构认证
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum认证备注无为空

    data中的invite对象:

    字段类型内容备注
    invite_remindnum1作用尚不明确
    displaybooltrue作用尚不明确

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体
    字段类型内容备注
    followingnum关注数
    followernum粉丝数
    dynamic_countnum发布动态数

    示例:

    当前登录用户的状态数为粉丝596,关注754,发送的动态252

    Cookie方式:

    curl 'https://api.bilibili.com/x/web-interface/nav/stat' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "following": 754,
    +        "follower": 596,
    +        "dynamic_count": 252
    +    }
    +}
    +

    APP方式:

    curl -G 'https://api.bilibili.com/x/web-interface/nav/stat' \
    +--data-urlencode 'access_key=d907f51122c59599d580ade2315af971'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    statusbooltrue作用尚不明确
    dataobj信息本体

    data对象:

    字段类型内容备注
    money硬币为正数时:num
    硬币为0时:null
    当前硬币数

    示例:

    curl 'https://account.bilibili.com/site/getCoin' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "status": true,
    +    "data": {
    +        "money": 42.4
    +    }
    +}
    +
    + + + diff --git a/docs/login/login_notice.html b/docs/login/login_notice.html new file mode 100644 index 0000000000..7f59760ff2 --- /dev/null +++ b/docs/login/login_notice.html @@ -0,0 +1,174 @@ + + + + + + + + + 登录记录 | BAC Document + + + + +

    登录记录

    查询登录记录

    https://api.bilibili.com/x/safecenter/login_notice

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    midnum用户mid必要
    buvidstr设备虚拟id非必要web端为操作登录接口时Cookie中的buvid3
    若登录设备无buvid则留空

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum登录用户mid
    device_namestr登录设备依靠操作登录接口时的UA决定
    login_typestr登录方式根据登录接口决定
    login_timestr登录时间YYYY-MM-DD hh:mm:ss
    locationstr登录位置依靠ip决定
    ipstr登录ip部分用*打码

    示例:

    查询用户293793435设备id为fuck_chenrui的登录记录

    curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \
    +--data-urlencode 'mid=293793435' \
    +--data-urlencode 'buvid=fuck_chenrui' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.***.**"
    +    }
    +}
    +

    最近一周的登录情况

    https://api.bilibili.com/x/member/web/login/log

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    jsonpstr回调函数名?非必要默认 jsonp
    web_locationstr网页位置?非必要默认 333.33

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum记录总数
    listarr登录记录列表

    data中的list数组:

    类型内容备注
    0obj登录记录1
    ……obj……
    nobj登录记录(n+1)

    list数组中的对象:

    字段类型内容备注
    ipstr登录 IP末两位以 * 打码
    timenum登录时间UNIX 秒级时间戳
    time_atstr登录时间格式为 yyyy-MM-dd HH:mm:ss
    statusbool是否登录成功?
    typenum登录方式?
    geostr登录地理位置

    示例:

    查询本用户最近一周的登录情况

    curl -G "https://api.bilibili.com/x/member/web/login/log" \
    +-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "count": 14,
    +    "list": [
    +      {
    +        "ip": "108.181.*.*",
    +        "time": 1722036741,
    +        "time_at": "2024-07-27 07:32:21",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国加利福尼亚州洛杉矶telus.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1722040653,
    +        "time_at": "2024-07-27 08:37:33",
    +        "status": true,
    +        "type": 0,
    +        "geo": "巴西"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721950332,
    +        "time_at": "2024-07-26 07:32:12",
    +        "status": true,
    +        "type": 0,
    +        "geo": "新加坡cloudflare.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721964627,
    +        "time_at": "2024-07-26 11:30:27",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国弗吉尼亚州雷斯顿cloudflare.com"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721861861,
    +        "time_at": "2024-07-25 06:57:41",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721861855,
    +        "time_at": "2024-07-25 06:57:35",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721709514,
    +        "time_at": "2024-07-23 12:38:34",
    +        "status": true,
    +        "type": 0,
    +        "geo": "日本千叶县成田市cloudflare.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721709618,
    +        "time_at": "2024-07-23 12:40:18",
    +        "status": true,
    +        "type": 0,
    +        "geo": "日本千叶县成田市cloudflare.com"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721636125,
    +        "time_at": "2024-07-22 16:15:25",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "143.92.*.*",
    +        "time": 1721636111,
    +        "time_at": "2024-07-22 16:15:11",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721539870,
    +        "time_at": "2024-07-21 13:31:10",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国加利福尼亚州东洛杉矶cloudflare.com"
    +      },
    +      {
    +        "ip": "104.28.*.*",
    +        "time": 1721539965,
    +        "time_at": "2024-07-21 13:32:45",
    +        "status": true,
    +        "type": 0,
    +        "geo": "美国加利福尼亚州东洛杉矶cloudflare.com"
    +      },
    +      {
    +        "ip": "42.2.*.*",
    +        "time": 1721477962,
    +        "time_at": "2024-07-20 20:19:22",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区pccw.com"
    +      },
    +      {
    +        "ip": "42.2.*.*",
    +        "time": 1721477960,
    +        "time_at": "2024-07-20 20:19:20",
    +        "status": true,
    +        "type": 0,
    +        "geo": "中国香港特别行政区pccw.com"
    +      }
    +    ]
    +  }
    +}
    +
    + + + diff --git a/docs/login/member_center.html b/docs/login/member_center.html new file mode 100644 index 0000000000..5cd01dc828 --- /dev/null +++ b/docs/login/member_center.html @@ -0,0 +1,304 @@ + + + + + + + + + 个人中心 | BAC Document + + + + +

    个人中心

    获取我的信息

    https://api.bilibili.com/x/member/web/account

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum我的mid
    unamestr我的昵称
    useridstr我的用户名
    signstr我的签名
    birthdaystr我的生日YYYY-MM-DD
    sexstr我的性别男 女 保密
    nick_freebool是否未设置昵称false:设置过昵称
    true:未设置昵称
    rankstr我的会员等级

    示例:

    curl 'https://api.bilibili.com/x/member/web/account' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    loginbool每日登录false:未完成
    true:已完成
    完成奖励5经验
    watchbool每日观看false:未完成
    true:已完成
    完成奖励5经验
    coinsnum每日投币所奖励的经验上限为50
    注:该值更新存在延迟
    另外一个专门API
    sharebool每日分享false:未完成
    true:已完成
    完成奖励5经验
    emailbool绑定邮箱false:未完成
    true:已完成
    首次完成奖励20经验
    telbool绑定手机号false:未完成
    true:已完成
    首次完成奖励100经验
    safe_questionbool设置密保问题false:未完成
    true:已完成
    首次完成奖励30经验
    identify_cardbool实名认证false:未完成
    true:已完成
    首次完成奖励50经验

    示例:

    curl 'https://api.bilibili.com/x/member/web/exp/reward' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    numbernum每日投币所奖励的经验上限为50<br

    示例:

    curl 'https://www.bilibili.com/plus/account/exp.php' \
    +-b 'SESSDATA=xxx;DedeUserID=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "number": 20
    +}
    +

    查询大会员状态

    https://api.bilibili.com/x/vip/web/user/info

    请求方式:GET

    认证方式:仅可Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum我的mid
    vip_typenum大会员类型0:无
    1:月度
    2:年度
    vip_statusnum大会员状态1:正常
    2:由于IP地址更换过于频繁,服务被冻结
    3:你的大会员账号风险过高,大会员功能已被锁定
    vip_due_datenum大会员到期时间时间戳 毫秒
    vip_pay_typenum是否已购买大会员0:未购买
    1:已购买
    theme_typenum0作用尚不明确

    示例:

    curl 'https://api.bilibili.com/x/vip/web/user/info' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    account_infoobj账号绑定信息
    account_safeobj密码安全信息
    account_snsobj互联登录绑定信息
    account_otherobj

    data中的account_info对象:

    字段类型内容备注
    hide_telstr绑定的手机号星号隐藏部分信息
    hide_mailstr绑定的邮箱星号隐藏部分信息
    bind_telbool是否绑定手机号false:未绑定
    true:已绑定
    bind_mailbool是否绑定邮箱false:未绑定
    true:已绑定
    tel_verifybool是否验证手机号false:未验证
    true:已验证
    mail_verifybool是否验证邮箱false:未验证
    true:已验证
    unneeded_checkbool是否未设置密码false:已设置
    true:未设置
    realname_certifiedbool是否实名认证false:未认证
    true:已认证

    data中的account_safe对象:

    字段类型内容备注
    Scorenum账号安全等级0-100
    已弃用?
    score_newnum新版账号安全等级0-100
    pwd_levelnum当前密码强度等级1:弱
    2:中
    3:强
    securitybool当前密码是否安全false:不安全
    true:安全

    data中的account_sns对象:

    字段类型内容备注
    weibo_bindnum是否绑定微博0:未绑定
    1:已绑定
    qq_bindnum是否绑定qq0:未绑定
    1:已绑定
    wechat_bindnum是否绑定微信0:未绑定
    1:已绑定

    data中的account_other对象:

    字段类型内容备注
    skipVerifyboolfalse作用尚不明确

    示例:

    curl 'https://passport.bilibili.com/web/site/user/info' \
    +-b 'SESSDATA=xxx;DedeUserID=1;'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    statusnum实名认证状态0:未认证
    1:已认证

    示例:

    当前状态为已认证

    curl 'https://api.bilibili.com/x/member/realname/status' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "status": 1
    +    }
    +}
    +

    查询实名认证详细信息

    https://api.bilibili.com/x/member/realname/apply/status

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    statusnum认证状态1:已认证
    3:未认证
    remarkstr驳回信息默认为空
    realnamestr实名姓名星号隐藏完全信息
    cardstr证件号码星号隐藏部分信息
    card_typenum证件类型代码0:身份证
    2:港澳居民来往内地通行证
    3:台湾居民来往大陆通行证
    4:护照(中国签发)
    5:外国人永久居留证
    6:其他国家或地区身份证明
    curl 'https://api.bilibili.com/x/member/realname/apply/status' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "status": 1,
    +        "remark": "",
    +        "realname": "***",
    +        "card": "6****************7",
    +        "card_type": 0
    +    }
    +}
    +

    查询硬币变化情况

    https://api.bilibili.com/x/member/web/coin/log

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    仅能查询最近一周的情况

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    listarray变化记录条目列表
    countnum变化记录条目数

    data中的list数组:

    类型内容备注
    0obj变化记录条目1
    nobj变化记录条目(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    timestr变化时间YYYY-MM-DD HH:MM:SS
    deltanum变化量正值为收入,负值为支出
    reasonstr变化说明

    示例:

    curl 'https://api.bilibili.com/x/member/web/coin/log' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP登录TokenAPP方式必要
    user_signstr要设置的签名内容非必要删除签名留空或省去即可
    最多支持70个字符
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    40015:签名包含敏感词
    40021:签名不能包含表情图片
    40022:签名过长
    messagestr错误信息默认为0
    ttlnum1

    示例:

    更新个人标签为高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    最近一周的经验记录

    https://api.bilibili.com/x/member/web/exp/log

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    jsonpstr回调函数名?非必要默认 jsonp
    web_locationstr网页位置?非必要默认 333.33

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    listarray经验记录条目列表
    countnum经验记录条目数

    data中的list数组:

    类型内容备注
    0obj记录1
    ……obj…………
    nobj记录(n+1)

    list数组中的对象:

    字段类型内容备注
    deltanum经验值
    timestr记录时间格式为 yyyy-MM-dd HH:mm:ss
    reasonstr记录原因

    示例:

    curl -G "https://api.bilibili.com/x/member/web/exp/log" \
    +-b "SESSDATA=xxx
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "delta": 5,
    +        "time": "2024-07-27 15:08:23",
    +        "reason": "分享视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-27 08:28:21",
    +        "reason": "登录奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-27 08:28:21",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-26 12:44:19",
    +        "reason": "登录奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-26 12:44:19",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 20,
    +        "time": "2024-07-25 06:58:49",
    +        "reason": "视频投币奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-25 06:58:30",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-25 06:58:30",
    +        "reason": "登录奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-23 18:47:48",
    +        "reason": "观看视频奖励"
    +      },
    +      {
    +        "delta": 5,
    +        "time": "2024-07-23 18:47:48",
    +        "reason": "登录奖励"
    +      }
    +    ],
    +    "count": 10
    +  }
    +}
    +

    最近一周的节操记录

    https://api.bilibili.com/x/member/web/moral/log

    请求方式: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    jsonpstr回调函数名?非必要默认 jsonp
    web_locationstr网页位置?非必要默认 333.33

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    moralnum节操值
    listarray记录条目列表
    countnum记录条目数

    data中的list数组:

    类型内容备注
    0obj记录1
    ……obj…………
    nobj记录(n+1)

    list数组中的对象:

    表现良好暂时没有记录, 欢迎封号斗罗前来补充

    示例:

    curl -G "https://api.bilibili.com/x/member/web/moral/log" \
    +-b "SESSDATA=xxx
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "moral": 70,
    +    "list": [],
    +    "count": 0
    +  }
    +}
    +
    + + + diff --git a/docs/manga/Activity.html b/docs/manga/Activity.html new file mode 100644 index 0000000000..d9d810bd33 --- /dev/null +++ b/docs/manga/Activity.html @@ -0,0 +1,47 @@ + + + + + + + + + 漫画任务操作 | BAC Document + + + + +

    漫画任务操作

    分享漫画

    https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    platformstr平台必要android

    json 回复:

    根对象:

    字段类型内容备注
    codenum / str返回值见对应表格
    msgstr错误信息
    metaobj错误信息invalid_argument 时存在,例如 {"argument":"platform"}
    dataobjcode 为 0,msg 为空时存在

    code - msg 对应表:

    codecode 类型msg备注
    0num分享成功,data 存在
    0num今日已分享
    invalid_argumentstrxxxx must be validxxxx 字段为必须,meta存在
    unauthenticatedstrmust login必须登录才能分享

    data 对象:

    字段类型内容备注
    pointnum获取积分

    示例:

    curl -X POST https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic \
    +-b "SESSDATA=xxxxx" \
    +--data-urlencode 'platform=android'
    +
    分享成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "point": 5
    +  }
    +}
    +
    今日已分享:
    {
    +  "code": 0,
    +  "msg": "今日已分享"
    +}
    +
    + + + diff --git a/docs/manga/ClockIn.html b/docs/manga/ClockIn.html new file mode 100644 index 0000000000..9edfeb3980 --- /dev/null +++ b/docs/manga/ClockIn.html @@ -0,0 +1,127 @@ + + + + + + + + + 签到 | BAC Document + + + + +

    签到

    https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    platformstr平台必要android
    devicestr平台非必要h5

    正文参数( application/json ):

    参数名类型内容必要性备注
    typenum非必要补签时使用
    datestr补签日期必要补签时使用

    json回复:

    根对象:

    字段类型内容备注
    codenum / str返回值0:成功
    invalid_argument:今日已签到
    msgstr错误信息成功:空
    已签到:clockin clockin is duplicate
    metaobj错误信息今日已签到时存在
    dataobj

    示例:

    普通签到:

    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'
    +
    签到成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {}
    +}
    +
    今日已签到:
    {
    +  "code": "invalid_argument",
    +  "msg": "clockin clockin is duplicate",
    +  "meta": {
    +    "argument": "clockin"
    +  }
    +}
    +

    补签:

    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"}'
    +
    补签成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {}
    +}
    +

    查询签到状态

    https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj信息本体

    data 对象:

    字段类型内容备注
    day_countnum连续签到天数
    statusnum今日是否已签到0:未签到
    1:已签到
    credit_iconstr
    sign_before_iconstr
    sign_today_iconstr
    breathe_iconstr
    new_credit_x_iconstr
    coupon_picstr
    pointsarray一次签到周期中每次签到可获得点数
    point_infosarray

    point_infos数组中的对象:

    字段类型内容备注
    pointnum签到可获取积分
    origin_pointnum
    is_activitybool
    titlestr签到奖励描述

    示例:

    curl -L -X POST 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo' \
    +-H 'Cookie: SESSDATA=xxx'
    +
    成功:
    {
    +  "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"
    +  }
    +}
    +
    + + + diff --git a/docs/manga/Comic.html b/docs/manga/Comic.html new file mode 100644 index 0000000000..af63941426 --- /dev/null +++ b/docs/manga/Comic.html @@ -0,0 +1,4008 @@ + + + + + + + + + 购买漫画章节 | BAC Document + + + + +

    购买漫画章节

    https://manga.bilibili.com/twirp/comic.v1.Comic/BuyEpisode

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证必要使用APP鉴权方式时必填
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.13.0非必要
    buildstr36413002非必要
    channelstrbilicomic非必要
    platformstrandroid必要
    devicestrandroid非必要
    buvidstr非必要
    machinestrsamsung+SM-G9730非必要
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    epIdnum章节id必要
    buyMethodnum购买方式必要2:漫读券
    4:新人等免
    5:通用券
    couponIdnum漫读券id必要
    comicIdnum漫画id可选buyMethod:4为必要
    autoPayGoldStatusnum2可选buyMethod:2,5 为必要
    buyMethod:4为不必要
    isPresalenum0可选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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    0:本话无需购买
    1:没有足够的卡券使用次数
    msgstr错误信息

    示例:

    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
    +}'
    +
    购买成功:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "auto_use_item": ""
    +  }
    +}
    +

    获取漫画详情

    https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证非必要可不登录访问
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.13.0非必要
    buildstr36413002非必要
    channelstrbilicomic非必要
    platformstrandroid非必要可选值:web/android
    devicestrandroid必要如不填则不会获取ep_list信息,可选值:pc/android
    buvidstr非必要
    machinestrsamsung+SM-G9730非必要
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    comicIdnum漫画id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    idnum漫画id
    titlestr漫画名称
    comic_typenum0,1
    page_defaultnum0,1,2,4,8
    page_allownum
    horizontal_coverstr横板封面
    square_coverstr方形封面
    vertical_coverstr竖版封面
    author_namearray作者列表
    stylesarray
    last_ordnum最新一话序号
    is_finishnum完结状态
    0:未完结 1:已完结
    statusnum-1,0
    favnum
    read_ordernum
    evaluatenum漫画简介
    totalnum总话数
    ep_listarray章节信息
    release_timestr
    is_limitnum
    read_epidnum
    last_read_timestr
    is_downloadnum
    read_short_titlestr
    styles2array
    renewal_timestr
    last_short_titlestr最新一话短标题
    discount_typenum
    discountnum
    discount_endstr
    no_rewardbool
    batch_discount_typenum
    ep_discount_typenum
    has_fav_activitybool
    fav_free_amountnum
    allow_wait_freebool是否等就免费
    wait_hournum等待时间(小时)
    wait_free_atnum等待时间(小时)
    no_danmakunum
    auto_pay_statusnum
    no_month_ticketbool
    immersivebool
    no_discountbool
    show_typenum
    pay_modenum
    chaptersarray
    classic_linesstr漫画简介
    pay_for_newnum
    fav_comic_infoobj
    serial_statusnum
    series_infoobj
    album_countnum
    wiki_idnum
    disable_coupon_amountnum
    japan_comicbool是否为日本漫画
    interact_valuenum
    temporary_finish_timestr
    video
    introductionstr介绍
    comment_statusnum
    no_screenshotbool
    typenum
    vomic_cvsarray
    no_rankbool
    presale_epsarray
    presale_textstr
    presale_discountnum
    no_leaderboardbool

    ep_list数组中的对象:

    字段类型内容备注
    idnum章节id
    ordnum章节序号,最新章节排在前面
    readnum是否阅读过,0:没有 1:阅读过
    pay_modenum
    is_lockedbool是否处于锁定状态
    pay_goldnum解锁所需漫币
    sizenum文件大小(字节)
    short_titlestr短标题
    is_in_freebool
    titlestr标题
    coverstr封面
    pub_timestr发布日期
    commentsnum评论数
    unlock_expire_atstr
    unlock_typenum
    allow_wait_freebool
    progressstr
    like_countnum点赞数
    chapter_idnum
    typenum
    extranum

    styles2数组中的对象:

    字段类型内容备注
    idnum漫画风格id
    namestr漫画风格名称

    fav_comic_info对象:

    字段类型内容备注
    has_fav_activitybool
    fav_free_amountnum
    fav_coupon_typenum

    series_info对象:

    字段类型内容备注
    idnum
    comicsarray

    示例:

    curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail?device=pc' \
    +-H 'Content-Type: application/json' \
    +--data-raw '{
    +    "comicId": 28500
    +}'
    +
    查看响应示例:
    {
    +  "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.html b/docs/manga/Download.html new file mode 100644 index 0000000000..35209e8f1e --- /dev/null +++ b/docs/manga/Download.html @@ -0,0 +1,113 @@ + + + + + + + + + 获取当前话全部图片地址 | BAC Document + + + + +

    获取当前话全部图片地址

    https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证必要使用APP鉴权方式时必填
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.21.0非必要
    buildstr36421000非必要
    channelstrbilicomic非必要
    platformstrandroid非必要
    devicestrandroid非必要
    buvidstrXY118701XXXXXXXXX104911DXXXXXCAEXXXXE非必要长度为37
    machinestr非必要手机品牌+型号
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    epId(ep_id)num当前话的id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj

    data 对象:

    字段类型内容备注
    pathstr.index 文件路径
    imagesarray本话图片信息
    last_modifiedstr本话信息最后修改时间
    hoststrhttps://manga.hdslb.com
    videoobj

    images 数组中的对象:

    字段类型内容备注
    pathstr图片的路径不包含host
    xnum图片宽度单位:像素px
    ynum图片高度单位:像素px
    video_pathstr
    video_sizestr

    video 对象:

    字段类型内容备注
    svidstr
    filenamestr
    routestr
    resourcearray
    raw_widthstr
    raw_heightstr
    raw_rotatestr
    img_urlsarray
    bin_urlstr
    img_x_lennum
    img_x_sizenum
    img_y_lennum
    img_y_sizenum

    示例:

    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
    +}'
    +
    查看响应示例:
    {
    +  "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_keystrAPP登录凭证必要使用APP鉴权方式时必填
    appkeystrcc8617fd6961e070非必要
    mobi_appstrandroid_comic非必要
    versionstr4.21.0非必要
    buildstr36421000非必要
    channelstrbilicomic非必要
    platformstrandroid非必要
    devicestrandroid非必要
    buvidstrXY118701XXXXXXXXX104911DXXXXXCAEXXXXE非必要长度为37
    machinestrsamsung+SM-G9730非必要手机品牌+型号
    is_teenagernum0非必要
    no_recommendnum0非必要
    tsnum秒级时间戳非必要

    正文参数( application/json ):

    参数名类型内容必要性备注
    urlsstr请求token的图片地址必要[\"https://i0.hdslb.com{path}\"]
    {path}代表图片的相对网站路径,支持jpg和webp

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataarray

    data 数组中的对象:

    字段类型内容备注
    urlstr图片下载的地址此时网址开头 https://manga.hdslb.com
    tokenstr图片下载需要的token

    示例:

    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\"]"
    +}'
    +
    查看响应示例:
    {
    +  "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
    +

    :若不加取图 Token 直接访问 https://(i0|i1).hdslb.com/bfs/(manga|new_dyn|archive)/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg均无法获取

    + + + diff --git a/docs/manga/Season.html b/docs/manga/Season.html new file mode 100644 index 0000000000..70bb0472a0 --- /dev/null +++ b/docs/manga/Season.html @@ -0,0 +1,258 @@ + + + + + + + + + 漫画赛季 | BAC Document + + + + +

    漫画赛季

    :漫画赛季仅在 app 端可见,但可以使用 Cookie 鉴权

    获取赛季信息

    https://manga.bilibili.com/twirp/user.v1.Season/GetSeasonInfo

    请求方式:POST

    :接口不鉴权可查看基本信息,鉴权后可查看赛季个人信息和赛季规则。

    认证方式:Cookie(SESSDATA)/ APP

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data 对象:

    字段类型内容备注
    current_timestr当前时间字符串ISO 8601
    start_timestr赛季开始ISO 8601
    end_timestr赛季结束ISO 8601
    remain_amountnum拥有积分未登录为 0
    season_idstr第几个赛季
    tasksarray待领取奖励的任务未登录/没有可领取时为 []
    welfarearray赛季奖励
    nextobj未知未登录为 null
    coverstr版头图片
    today_tasksarray今日的任务完成情况
    textobj赛季相关文案未登录为 null
    season_clock_inobj
    announcementobj未知未登录为 null
    lotteryobj
    mission_point_ratestr
    season_titlestr赛季标题
    point_rateobj
    rankobj

    data 对象的 rank

    字段类型内容备注
    is_visibleboolfalse

    data 对象的 tasks

    字段类型内容备注
    titlestr任务描述
    idstr
    statusnum任务状态应该都是1:待领取奖励
    typenum与 today_tasks 的一致
    amountnum可获取积分
    ctimestr完成时间ISO 8601

    data 对象的 next

    字段类型内容备注
    titlestr
    amountnum0
    gap_timenum0
    current_timenum0

    data 对象的 text

    字段类型内容备注
    noticestr赛季公告
    clonckInRulestr赛季签到规则

    data 对象的 announcement

    字段类型内容备注
    titlestr
    jump_urlstr
    enableboolfalse

    data 对象的 point_rate

    字段类型内容备注
    sign_innum0
    gamenum0
    daily_missionnum0
    week_missionnum0

    data 对象的 lottery

    字段类型内容备注
    lottery_act_idstr'0'
    enable_lotterybool是否开启抽奖
    lottery_idstr'0'
    advance_lottery_act_idstr'0'
    advance_pool_idstr'0'

    data 对象的 season_clock_in

    字段类型内容备注
    is_super_luckbool
    draw_luck_timestr
    prize_typenum
    prize_titlestr
    add_up_signnum赛季连续签到天数
    titlestr签到标题
    sign_old_amountnum
    preluck_amountnum
    continuous_daysnum连续签到天数
    address_idstr
    has_super_prizebool
    subtitlestr签到子标题
    prize_imagestr
    prize_target_daysnum
    prize_amountnum
    tomorrow_amountnum明日签到积分
    entrance_tagstr

    data 对象的 today_tasks

    字段类型内容备注
    typenum
    titlestr任务标题可能为空字符串
    amountnum可获得积分
    statusnum完成状态0:未完成
    1:待领取奖励
    2:已完成
    durationnum耗时(分)直接完成的为 0
    comicscomic 数组任务指定漫画type=22时有内容,所有账号是一致的
    page_urlstr
    progressnum已完成进度
    sub_idnumtype 一致时有效
    share_typenum0

    today_tasks对象的 comics

    字段类型内容备注
    comic_idnum漫画 id
    titlestr漫画名称
    vertical_coverstr漫画封面
    stylesstr 数组漫画类型

    data 对象的 welfare

    字段类型内容备注
    typenum奖励类型200-限免卡
    202-漫读券
    203-优惠券
    205-最终宝箱
    successnum兑换状态0-未兑换
    2-已兑换
    exchange_amountnum积分消耗
    boss_welfarebool最终奖励
    boss_remainnum最终奖励剩余
    ranknum顺序
    titlestr
    urlstr
    kind_address_idstr'0'

    示例:

    curl -X POST https://manga.bilibili.com/twirp/user.v1.Season/GetSeasonInfo
    +
    查看响应示例:
    {
    +  "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_idnum赛季 id必要必须为本赛季 id

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息

    code - msg 对照表:

    codemsg备注
    0领取成功
    2当前没有正在进行的赛季,无法兑换奖励season_id 字段不正确
    7任务已领取或者未完成没有已经完成的 today_tasks
    + + + diff --git a/docs/manga/User.html b/docs/manga/User.html new file mode 100644 index 0000000000..1c986b5859 --- /dev/null +++ b/docs/manga/User.html @@ -0,0 +1,573 @@ + + + + + + + + + 漫画用户信息 | BAC Document + + + + +

    漫画用户信息

    获取拥有的漫读券列表

    https://manga.bilibili.com/twirp/user.v1.User/GetCoupons

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    URL参数:

    参数名类型内容必要性备注
    access_keystrAPP登录凭证必要使用APP鉴权方式时必填

    正文参数 (application/json):

    参数名类型内容必要性备注
    pageNumnum页数必要
    pageSizenum分页大小必要默认20,取值范围[1,100]
    notExpiredbooltrue非必要
    tabTypenum1非必要
    typenum0非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj

    data 对象:

    字段类型内容备注
    total_remain_amountnum
    user_couponsarray
    coupon_infoobj

    user_coupons 数组中的对象:

    字段类型内容备注
    IDnum漫读券id
    remain_amountnum漫读券剩余数
    expire_timenum过期时间
    reasonnum获取方式
    typenum类型
    ctimenum获取时间
    total_amountnum漫读券总数
    limitsarray(?)
    type_numnum7:福利券
    will_expirenum是否即将过期?
    0:否
    1:是
    discountnum0
    discount_limitnum0
    is_from_cardnum0
    valid_timestr0001-01-01
    discount_basenum0

    coupon_info 对象:

    字段类型内容备注
    new_coupon_numnum
    coupon_will_expirenum
    rent_will_expirenum
    new_rent_numnum
    discount_will_expirenum
    new_discount_numnum
    month_ticket_will_expirenum
    new_month_ticket_numnum
    silver_will_expirenum
    new_silver_numnum
    remain_itemnum
    remain_discountnum
    remain_couponnum拥有的漫读券数量
    remain_silvernum拥有的通用券数量
    remain_shop_couponnum拥有的商城优惠券数量
    new_shop_numnum
    shop_will_expirenum
    new_suit_idnum
    remain_suit_couponnum
    new_suit_numnum
    suit_will_expirenum
    vip_priv_couponbool

    示例:

    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
    +}'
    +
    查看响应示例:
    {
    +  "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参数:

    参数名类型内容必要性备注
    devicestr设备非必要
    platformstr平台非必要

    正文参数 (application/json):

    参数名类型内容必要性备注
    page_numnum页数必要
    page_sizenum分页大小必要默认15

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息
    dataobj(array)

    dataarray中的对象

    字段类型内容备注
    idnum内部id
    comic_idstr漫画id
    comic_titlestr漫画标题
    hcoverstr横版头图
    scoverstr方形头图
    vcoverstr竖版封面图
    bought_ep_countnum已购章节数
    gold_statusnum
    coupon_statusnum
    comic_statusnum漫画状态
    last_ordnum最后一话
    ctimestr获取时间
    last_short_titlestr最后一话的短标题
    bug_typenum购买类型
    ep_for_chaptersnum
    ordersobj自动扣费顺序
    enable_auto_paybool是否开启自动付费
    typenum

    示例:

    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}'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    ]
    +}
    +
    + + + diff --git a/docs/manga/index_file.html b/docs/manga/index_file.html new file mode 100644 index 0000000000..32ba4fd288 --- /dev/null +++ b/docs/manga/index_file.html @@ -0,0 +1,183 @@ + + + + + + + + + data.index | BAC Document + + + + +

    data.index

    data.index文件解析

    本解密及数据解析例程以《在魔王城说晚安 第 1 话 不眠之城的公主》为例

    本话链接:https://manga.bilibili.com/mc26731/329893 (mcid=26731, epid=329893

    使用 Python 语言为例

    获取data.index

    直接使用 GET 方法请求该话对应的 data.index 文件地址,就会得到一个二进制文件

    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  |<B~.'.<p...3..!;|
    +000001a0  6c b4 52 ed 16 27 c8 c9  3a a5 fb 21 b9 dc a9 8a  |l.R..'..:..!....|
    +000001b0  68 0a 38 f0 4c 33 55 96  a8 a5 dd b1 1a 75 b0 26  |h.8.L3U......u.&|
    +000001c0  83 ea a4 49 23 03 77 42  bd f3 f1 5d 82 a8 73 67  |...I#.wB...]..sg|
    +000001d0  2f ef 67 49 14 69 8c b9  d6 62 2c 8d 43 93 f2 b9  |/.gI.i...b,.C...|
    +000001e0  d2 bd 21 4f 2d 48 20 f6  02 d0 05 17 d3 8e 1b 9d  |..!O-H .........|
    +000001f0  58 6c 6a 67 a9 ef 64 ca  4d 9c 40 17 c3 6f 2a 70  |Xljg..d.M.@..o*p|
    +00000200  36 0b 14 4c 51 a9 4f ff  b9 75 42 b2 8f 2c fb c3  |6..LQ.O..uB..,..|
    +00000210  d1 13 2c 0b de 48 24 64  24 6f 88 b4 eb af cf ce  |..,..H$d$o......|
    +00000220  66 3a 12 58 dc 3f c5 03  94 a3 e1 ef 1d 59 ca d5  |f:.X.?.......Y..|
    +00000230  58 07 b8 e3 c9 71 b2 e0  c9 15 54 4c cd e1 62 19  |X....q....TL..b.|
    +00000240  66 4e 02 f0 a0 85 8c a4  b5 f6 47 e3 c9 dd c3 54  |fN........G....T|
    +00000250  4d fc c8 45 e7 8f 22 00  68 e0 46 f4 ec 19 b4 b0  |M..E..".h.F.....|
    +00000260  f8 01 53 21 68 ad 49 6b  37 f5 fa 5f 0e 18 07 f3  |..S!h.Ik7.._....|
    +00000270  14 bf 03 59 f4 d5 5e a7  9c fd e1 90 9b 18 a9 12  |...Y..^.........|
    +00000280  b1 a7 2c 52 1d d2 b8 81  c7 3d 22 6f 5b de f9 4e  |..,R.....="o[..N|
    +00000290  ba 38 c0 84 99 5d e3 7b  ba 04 e1 e1 9a 0d bc 31  |.8...].{.......1|
    +000002a0  ef 6e 79 5c 38 e7 1d 72  9a 51 ea 55 6e fb a1 b8  |.ny\8..r.Q.Un...|
    +000002b0  75 29 b3 06 a9 52 10 53  17 24 e6 84 4b 00 f5 59  |u)...R.S.$..K..Y|
    +000002c0  81 28 ad cd cc dd a9 a6  56 a5 06 e7 65 39 6b 89  |.(......V...e9k.|
    +000002d0  5c 13 ba 51 c0 48 91 fc  74 19 b5 f9 bd d4 d5 44  |\..Q.H..t......D|
    +000002e0  ea 6a e7 02 6c 96 9d ed  2d d7 37 49 7f c3 e2 cd  |.j..l...-.7I....|
    +000002f0  ff 0e f7 90 ea 88 7e bc  17 4a df e5 fb 98 93 3f  |......~..J.....?|
    +00000300  01 a5 08 fa ff 3b 23 07  08 ac 60 82 8a be 6a 00  |.....;#...`...j.|
    +00000310  00 dd 02 05 00 3b 23 01  02 b1 08 11 00 63 68 08  |.....;#......ch.|
    +00000320  00 a5 08 05 00 62 00 87  8a 70 0a 05 00 13 62 00  |.....b...p....b.|
    +00000330  00 ac 08 05 00 6b 68 00  00 a5 08 05 00 6b 68 00  |.....kh......kh.|
    +00000340  00 a5 08 6c 6e 0f 0d 78  2e c1 69 71 50 20 6d 06  |...ln..x..iqP m.|
    +00000350  00 a5 08 05 01 6b 69 00  37 a5 08 05 0c 68 68 00  |.....ki.7....hh.|
    +00000360  00 a5                                             |..|
    +

    文件解密算法

    首先以mcid(对应漫画id)以及epid(对应单话)生成一个 8 Byte 的数组作为密钥

    具体内容为前 4 Byte 为 epid 后 4 Byte 为 mcid,字节排序均为小端序 MSB First

    接下来从返回数据的 09H 处开始,逐字节与密钥取单个字节进行 **XOR(异或)**运算,密钥数组每 8 Byte 循环一次

    解密成功的数据是一个 zip 格式的压缩文件,提取index.dat中的数据并以 JSON 数据解析就完成了

    进行解密操作

    mcid=26731 epid=329893,计算得到的数组便是密钥

    mcid = 26731
    +epid = 329893
    +key = list(epid.to_bytes(4, 'little') + mcid.to_bytes(4, 'little'))
    +print(key)
    +
    [165, 8, 5, 0, 107, 104, 0, 0]
    +

    拉取索引数据并解密,需要跳过前 9 Byte,这时候已经能看到数据具有 zip 格式压缩文件的特征,前两 Byte 为 “PK”(50H 4BH)

    import requests
    +
    +data = requests.get('https://manga.hdslb.com/bfs/manga/26731/329893/data.index?token=0ba7042d3a5d138c59151316a1914058&ts=634e53fb').content
    +
    +temp = bytearray(data[9:])
    +for i in range(len(temp)):
    +   temp[i] ^= key[i % 8]
    +print(temp)
    +
    bytearray(b'PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00index.dat\xec\x96\xcb\x8a\\G\x0c\x86\xdf\xe5\xac\x87X\xf7*\xf5\xab\x84YH\xaa\x92\x99\xe0\x84!\x93E\x123\xef\x1e\xba\x8d!x\xce\xe2l\x03\xd94\x85\xf8~Zu\xbe\xba}=\xea\xcb\xcb\xeb\xdbq\xfb\xf9\xeb\xf1\xfbqC\x03x:\xf2\xb8\x11\xdf\x07\x7f\x1c7x:\xbe<~__\xea\xb8\xc1\xfb\xd3\x0f\x9c\xd8<\xe1\xf0"G\x179\xbe\xc8\xc9EN/rv\x91\x1b\x17\xb9y\x91\xf3\x8b\x1c^\x16r\xd5\x08^U\x82W\x9d\xe0U)x\xd5\n^\xd5\x82W\xbd\xe0U1x\xd5\x0c}73\xc5\x1e\x1c\xd2\xe9\x8e"|\x7f~\x0c\xef{\xf0\xf8\x94\xfd\xf6\xe9\xd7\xf8\xeds|\xea2\xd5\x0e"X\x1d9$\xd31=m3\xcc\xed\xb4\xb1\x87tI\xfe\xf4\xcb\xeb\xe7\xe3\xe9\xdf\xc9J\xae9\xa95\x06\x95(OU\xc1m\xba2,j\xd8\xf4"\xd9Y\x1f\x93\xde\xc3mr0\x046\x9a\x86E\xd6"U\x00\xb3\\\xd0\x9e\xb5\x07\xfa\xc7\xa4:\r\xa00A\x8c9\xd8\x17\x08.\x85\xea\xf6(\xa5\xaa\xe2\r\x91x\x92\xa4N\x06\x8d1z\xc2\x12\x18S\xcc\xcbF\x85\x94\xac\t\x8c\x83(\xea\xa4\xdb\xc5\x99\x8c\x15\xe8\xc2E\xaasW\xf8j\x0f\x91\x1c\x9dJ\xcbi4\xee\x8fI\x8a\x02\xcb\xb92b\x83\xb8\xef\xd5\xa3\xd3j\xb9\x17\xf6\x96\x14\x92p\xeb\x93/4\xdb\xb8\x91}W3lN\xe0a\xac]\xd8\xea\x9d\x02<\xe7v\x19\'\xf3Tp\xdf\xa1\x1b6\xfa\x94I;l\x11Z\xe8\x16L\xa0\xc9:\x00\xf3$\xb9\xb7\xc1\x8ah\xaf0\xf5LX=\x96\xa8\x00\xd5\xb4\x1a\x1e\xd8&\x83O\xacL#h\x1fB\xbdV\xf9X\x82\xc3\x1bg/JoL\x14\x02\xe4\xb9\xd6\xc7$\x88C\xf8\x9a\xb9\xd2\x18)J-#H\xf6\x02u\r\x12\xd3\xe5s\x9dX\xc9bb\xa9\x84\x0c\xcaM9H\x12\xc3\x04Bp6\xae\x1cIQ\xc2\'\xff\xb9\xd0J\xb7\x8fG\x93\xc3\xd1\xb6$\x0e\xde#Ld$\xca\x80\xb1\xeb\xc4\xa7\xcef\x9f\x1a]\xdcT\xad\x03\x94\x06\xe9\xea\x1d2\xa2\xd5X\xa2\xb0\xe6\xc9\x1a\xda\xe0\xc9\xb0\\I\xcd\x8a\n\x19f\xeb\n\xf5\xa0\xee\xe4\xa4\xb5SO\xe6\xc9\xb6\xabTMY\xc0@\xe7\xe4J\x00hEN\xf1\xecr\xdc\xb0\xf8\xa4[$h\xc6!k7P\xf2Z\x0eso\xf3\x14\x1a\x0b\\\xf4\xbe6\xa7\x9cX\xe9\x95\x9bs\xc1\x12\xb1\x02$W\x1d\xb9\xd0\x81\xc7\x98*j[\xb5\x91N\xba\x9d\xc8\x81\x996\x8b{\xba\xa1\xe9\xe4\x9af\xd41\xef\xcbqY8\x8cur\x9a\xf4\xe2Pn\x90\xc9\xb8u\x8c\xbb\x03\xa99xS\x17\x81\xee\x81Kk\x9dY\x81\x8d\xa5\xc8\xcc\xb6\xc1\xa6V\x00\x0e\xe2eR\x03\x89\\\xb6\xb2T\xc0#\xf9\xfct\xbc\xbd\xfc\xbd\xbf\xbdD\xea\xcf\xef\x07l\xfd\xf5\xed-r?L\x7f\xa8\x8a\xcd\xff\xab\xff\x95\xea\xe3\x16\xbc\x17\xef\xd7\xe0\xfb\xf3\xfb?\x01\x00\x00\xff\xffPK\x07\x08\th\x87\x8a\xd5\x02\x00\x00x\n\x00\x00PK\x01\x02\x14\x00\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\th\x87\x8a\xd5\x02\x00\x00x\n\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00index.datPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x007\x00\x00\x00\x0c\x03\x00\x00\x00\x00')
    +

    进行解压缩数据,提取index.dat中的数据

    import zipfile
    +from io import BytesIO
    +
    +with zipfile.ZipFile(BytesIO(temp)) as zf:
    +    index_data = zf.read('index.dat')
    +print(index_data)
    +

    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 数据定义

    根对象:

    字段类型内容备注
    clipsarray尺寸信息
    picsarray图片路径
    sizesarray尺寸信息

    根对象中的clips数组:

    类型内容备注
    0obj第 1 页信息
    nobj第 (n+1) 页信息
    ……obj…………

    clips数组中的对象:

    字段类型内容备注
    rnum图片宽度
    bnum图片高度
    tnum(?)
    lnum(?)
    picnum图片页码序号从 0 开始递增

    根对象中的pics数组:

    类型内容备注
    0str第 1 图片路径图片不能直接访问,需要二次鉴权
    nstr第 (n+1) 图片路径
    ……str…………

    根对象中的sizes数组:

    类型内容备注
    0obj第 1 页信息
    nobj第 (n+1) 页信息
    ……obj…………

    clips数组中的对象:

    字段类型内容备注
    cxnum图片宽度
    cynum图片高度
    + + + diff --git a/docs/manga/light_card.html b/docs/manga/light_card.html new file mode 100644 index 0000000000..aefd18eb77 --- /dev/null +++ b/docs/manga/light_card.html @@ -0,0 +1,106 @@ + + + + + + + + + 获取轻享卡信息 | BAC Document + + + + +

    获取轻享卡信息

    https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystr登录access_keySESSDATA二选其一

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    msgstr
    dataobj信息本体

    data对象:

    字段名类型内容备注
    statenum轻享卡开通状态0:未开通
    1:已开通
    show_statenum
    expire_datestr轻享卡到期时间
    receive_amountnum已领取数量
    save_moneynum已节省漫币
    indexnum默认选择签到周期
    weekarray一个领取周期内的领取状态信息
    month_reward_statenum是否可选择全勤奖0:不可领取
    1:可领取
    2:不可领取(灰色)
    month_rewardnum
    cur_month_endstr全勤奖领取剩余时间
    server_timestr当前服务器时间

    week数组中的对象:

    字段名类型内容备注
    indexnum第几领取周期1开始
    start_timestr本周期领取开始时间1:待领取
    2:已领取
    3:明日可领
    4:已失效
    5:可领取
    end_timestr本周期领取结束时间同上
    firstnum本周期第1天的领取状态同上
    secondnum本周期第2天的领取状态同上
    thirdnum本周期第3天的领取状态同上
    fourthnum本周期第4天的领取状态同上
    full_reward_statenum周期全勤奖领取状态1:不可领取
    2:可领取
    3:已领取

    示例:

    SESSDATA方式:

    curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard' \
    +-H 'Cookie: SESSDATA=xxx'
    +

    access_key方式:

    curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard?access_key=xxx'
    +
    查看响应示例:
    {
    +  "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_keystrSESSDATA二选其一

    正文参数( application/json ):

    参数名类型必填内容备注
    weekIndexnum第几周1开始
    typenum领取类型1:领取漫读券
    2:领取限免卡

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    3:今日已领取,请明日再来
    3:还未满足领取条件
    4:找不到数据~
    6:你点击太快了哦~
    msgstr
    dataobj

    示例:

    SESSDATA方式:

    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方式:

    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}'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {}
    +}
    +
    + + + diff --git a/docs/manga/point_shop.html b/docs/manga/point_shop.html new file mode 100644 index 0000000000..43f05d4703 --- /dev/null +++ b/docs/manga/point_shop.html @@ -0,0 +1,240 @@ + + + + + + + + + 积分商城 | BAC Document + + + + +

    积分商城

    :积分商城由web页面提供功能,地址为 https://manga.bilibili.com/eden/credits-exchange.html

    获取当前持有点数

    https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    pointstr点数不登录时为0

    示例:

    curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "point": "66666"
    +  }
    +}
    +

    获取兑换奖品列表

    https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct

    请求方式:POST

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataarray奖品列表

    data数组:

    类型内容备注
    0obj奖品1
    nobj奖品(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum物品id
    typenum物品类型0:商城相关
    3:限免券
    7:福利券
    titlestr物品名
    imagestr显示的图像福利券为空
    amountnum库存总量
    costnum兑换所需点数(原价)
    real_costnum兑换所需点数(现价)
    remain_amountnum库存剩余数
    comic_idnum相关漫画id
    limitsarray限定使用范围(漫画)限免券所适用的漫画
    discountnum(?)目前恒为0
    product_typenum物品类型1:限免券、福利券
    4:商城满99立减10元券、商城5元无门槛券
    5:商城5魔晶
    pendant_urlstr(?)
    pendant_expirenum(?)0:限免券、福利券
    7:商城满99立减10元券、商城5元无门槛券、商城5魔晶
    exchange_limitnum兑换次数限制
    address_deadlinestr(?)
    act_typenum(?)目前恒为0
    has_exchangedbool是否兑换过该物品
    main_coupon_deadlinestr兑换后使用截止时间
    deadlinestr兑换后使用截止时间
    pointstr(?)目前恒为0

    示例:

    curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct'
    +
    查看响应示例:
    {
    +  "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_idstr物品id必要
    product_numnum兑换个数必要
    pointnum物品所需点数必要现价(real_cost)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:兑换成功
    1:积分不足
    1:您点的太快了~
    2:库存不足
    3:product point mismatch(point填写错误)
    3:超过用户最大可兑换数量
    4:现在抢票的人太多啦,再点一下有机会优先上车喔 ε=ε=(ノ≧∇≦)ノ
    messagestr错误信息

    示例:

    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'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": ""
    +}
    +

    获取兑换历史记录

    https://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList

    请求方式:POST

    认证方式:Cookie(SESSDATA)/ APP

    正文参数( application/x-www-form-urlencoded 或 application/json):

    参数名类型内容必要性备注
    act_idnum固定值:90018必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    prizesobj兑换记录
    addrobj(?)

    data中的prizes对象:

    字段类型内容备注
    user_prize_idstr兑换id?
    prize_idnum兑换的物品id
    ctimestr兑换时间
    addrnull(?)
    deadlinestr过期时间
    typenum类型1:限免券、福利券
    8:商城5魔晶
    namestr物品名

    示例:

    curl 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList' \
    +--data-urlencode 'act_id=90018' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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回复:

    根对象:

    字段类型内容备注
    codenum返回值
    msgstr错误信息
    dataobj信息本体

    data对象:

    字段类型内容备注
    rulestr玩法说明

    示例:

    curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetExchangeRule'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "msg": "",
    +  "data": {
    +    "rule": "日常兑换说明:\n1、赛季积分达到一定数量可兑换积分商城内相应的商品;\n2、日常兑换奖品的刷新时间为每日中午12点,每天可兑换的奖品总数有限(具体可见商品页面展示),请尽快兑换。\n3、兑换的福利券&限免卡奖品有效期详见兑换框内显示或卡券包内详情说明哦,请及时在有效期内使用。\n4、赛季积分有效期为当前赛季时长(每期赛季时长详见福利中心页面倒计时显示),请及时在有效期内进行使用。\n5、赛季积分可在福利中心完成特定任务获取,具体详情可至福利中心查看(部分活动也可获取赛季积分,可随时关注活动信息哦)。"
    +  }
    +}
    +
    + + + diff --git a/docs/message/msg.html b/docs/message/msg.html new file mode 100644 index 0000000000..88b0c25889 --- /dev/null +++ b/docs/message/msg.html @@ -0,0 +1,54 @@ + + + + + + + + + 通知消息 | BAC Document + + + + +

    通知消息

    未读消息数

    https://api.bilibili.com/x/msgfeed/unread https://api.vc.bilibili.com/x/im/web/msgfeed/unread (新接口)

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    buildnum0不必要从新接口发现, 作用尚不明确
    mobi_appstrweb不必要从新接口发现, 作用尚不明确

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    atnum未读at数
    chatnum0作用尚不明确
    coinnum未读投币数
    danmunum未读弹幕数
    favoritenum未读收藏数?
    likenum未读点赞数
    recv_likenum未读点赞数
    recv_replynum未读回复数
    replynum未读回复数
    sys_msgnum未读系统通知数
    sys_msg_stylenum1仅新接口, 作用尚不明确
    upnumUP主助手信息数

    示例:

    以下信息代表了未读点赞数为10,未读回复数为4,未读at消息数为3,未读系统通知数为2,UP主助手信息数为1

    curl 'https://api.vc.bilibili.com/x/im/web/msgfeed/unread' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"at": 3,
    +		"chat": 0,
    +		"coin": 0,
    +		"danmu": 0,
    +		"favorite": 0,
    +		"like": 10,
    +		"recv_like": 10,
    +		"recv_reply": 4,
    +		"reply": 4,
    +		"sys_msg": 2,
    +		"sys_msg_style": 1,
    +		"up": 1
    +	}
    +}
    +
    + + + diff --git a/docs/message/private_msg.html b/docs/message/private_msg.html new file mode 100644 index 0000000000..a21d0e7ca3 --- /dev/null +++ b/docs/message/private_msg.html @@ -0,0 +1,158 @@ + + + + + + + + + 私信 | BAC Document + + + + +

    私信

    未读私信数

    https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    注: 该接口默认每 2 分钟请求一次

    URL参数:

    参数名类型内容必要性备注
    buildnum0不必要?
    mobi_appstrweb不必要?
    unread_typenum0不必要?

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为ok
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    unfollow_unreadnum未关注用户未读私信数
    follow_unreadnum已关注用户未读私信数
    unfollow_push_msgnum未关注用户推送消息数?
    dustbin_push_msgnum已拦截的推送消息数?
    dustbin_unreadnum已拦截的未读消息数?
    biz_msg_unfollow_unreadnum未订阅的未读系统通知数?
    biz_msg_follow_unreadnum已订阅的未读系统通知数?
    custom_unreadnum自定义未读消息数?

    示例:

    以下信息代表了为未关注用户未读私信数为1条,已关注用户未读私信数为6

    curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "msg": "ok",
    +    "message": "ok",
    +    "data": {
    +        "unfollow_unread": 1,
    +        "follow_unread": 6,
    +        "unfollow_push_msg": 0,
    +        "dustbin_push_msg": 0,
    +        "dustbin_unread": 0,
    +        "biz_msg_unfollow_unread": 0,
    +        "biz_msg_follow_unread": 1,
    +        "custom_unread": 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]num1必要固定为1
    msg[msg_type]num消息类型必要1:发送文字
    2:发送图片
    5:撤回消息
    msg[msg_status]num0非必要
    msg[dev_id]string372778FD-E359-461D-86A3-EA2BCC6FF52A必要获取方式在下面
    msg[timestamp]num时间戳(秒)必要
    msg[new_face_version]num表情包版本非必要详见下表
    msg[content]发送文字时:str
    撤回消息时:num
    消息内容必要详见下表
    csrfstrCSRF Token(位于cookie)必要

    dev_id的获取

    以JS为例:

    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/BLTHopen in new window

    以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序列字串

    根对象:

    字段类型内容备注
    contentstr私信内容

    当发送图片时(msg[msg_type]=2):

    该参数为json序列字串

    根对象:

    字段类型内容备注
    urlstr图片url默认为B站相簿图片上传通道
    也可用三方图床
    widthnum图片的宽单位:像素(非必要)
    heightnum图片的高单位:像素(非必要)
    typestr图片格式(非必要)
    originalnum1作用未知(非必要)
    sizenum文件大小单位:千字节(非必要)
    向上取整

    当撤回消息时(msg[msg_type]=5):

    该参数为数值,为目标消息的msg_key

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为ok
    ttlnum默认为1
    dataobj主体出错时为空

    data对象:

    字段类型内容备注
    msg_keynum消息唯一id
    msg_contentstr发送的消息
    key_hit_infosobj作用尚不明确

    示例:

    给目标用户mid=1发一条文字私信:

    up主你好,

    催更[doge]

    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'
    +
    查看响应示例:
    {"code":0,
    +"message":"0",
    +"ttl":1,
    +"data":{"msg_key":6984393491767669026,
    +	"msg_content":"up主你好,\n催更[doge]",
    +	"key_hit_infos":{}}}
    +

    给目标用户mid=1发一条图片私信:

    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'
    +
    查看响应示例:
    {
    +    "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_idnum发送者设备可选1
    talker_idnum聊天对象的UID必要--------------
    session_typenum聊天对象的类型必要1为用户,2为粉丝团
    sizenum列出消息条数可选默认是20,最大为200
    buildnum未知可选默认是0
    mobi_appstr设备可选web
    begin_seqnonum开始的序列号可选默认0为全部
    end_seqnonum结束的序列号可选默认0为全部

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    msgstr错误信息默认为0
    messagestr错误信息默认为0
    ttlnum1
    dataarray数据列表

    data数组:

    类型内容备注
    messagesarray聊天记录列表
    has_morenum0
    min_seqnonum所有消息最小的序列号(最早)
    max_seqnonum所有消息最大的序列号(最晚)
    e_infosarray聊天表情列表

    messages数组:

    类型内容备注
    sender_uidnum发送者uid注意名称是sender_uid
    receiver_typenum与session_type对应1为用户,2为粉丝团
    receiver_idnum接收者uid注意名称是receiver_id
    msg_typenum消息类型1:文字消息
    2:图片消息
    5:撤回的消息
    12、13:通知
    contentstr消息内容此处存在设计缺陷
    msg_seqnonum消息序列号,保证按照时间顺序从小到大
    timestampnum消息发送时间戳
    at_uidsarray未知
    msg_keynum未知
    msg_statusnum消息状态0
    notify_codestr未知
    new_face_versionnum表情包版本0或者没有是旧版,此时b站会自动转换成新版表情包,例如[doge] -> [tv_doge];1是新版

    e_infos数组:

    类型内容备注
    textstr表情名称
    uristr表情链接
    sizenum表情尺寸1

    示例:

    获取与目标用户mid=123私信记录:

    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'
    +
    查看响应示例:
    {
    +    "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/misc/b23tv.html b/docs/misc/b23tv.html new file mode 100644 index 0000000000..c365edecbb --- /dev/null +++ b/docs/misc/b23tv.html @@ -0,0 +1,59 @@ + + + + + + + + + b23.tv 短链 | BAC Document + + + + +

    b23.tv 短链

    简述

    b23.tv 是由 Bilibili 提供的短链服务, 主要用于站内长链接缩短便于分享, 目前仅在手机客户端生成

    格式

    目前已知的 b23.tv 短链格式有以下 3 种

    • 任意短链, 路径由7位数字或大小写英文字母组成, 为防止滥用似乎有时效限制, 如 https://b23.tv/pigt3PQ

    • 视频短链(AV号), 路径由字符串 av 尾随 视频 aid 组成, 如 https://b23.tv/av80433022

    • 视频短链(BV号), 路径由字符串 BV 尾随 视频 bvid 组成, 如 https://b23.tv/BV1GJ411x7h7

    生成

    视频短链

    1. 直接手动拼接字符串即可

    2. 参见任意短链

    任意短链

    https://api.bilibili.com/x/share/click
    https://api.biliapi.net/x/share/click

    请求方式: POST

    认证方式: 仅APP, 但实际上形同虚设

    注: 该接口参数对照表基本失效, 基本无实用价值, 已被注释, 参见 #979open in new window Nemo2011/bilibili-api#720open in new window

    正文参数(application/x-www-form-urlencoded):

    必要:

    参数名类型内容必要性备注
    buvidstr设备 BUVID必要实际任意非空字符串即可
    buildnum客户端版本号必要大于 5520400 的任意有效整数, 如 7710300
    platformstr客户端平台必要实际任意非空字符串即可
    share_channelstr分享方式?必要COPY
    share_modenum分享模式?必要任意有效正整数, 常见 1, 3, 4
    share_idstr分享 ID必要见下方对照表
    oidnum对象 ID必要见下方对照表

    不必要:

    参数名类型内容必要性备注
    object_extra_fieldsobj额外字段?非必要{"jumpfrom_id":30104} {"epid":"409808","cid":"1398781253"} {"season_type":"1","season_id":"39481","epid":"425006","dubbing_support":false,"background_audio":false,"role_audio_list":false}
    panel_typenum面板类型?非必要1
    share_titlestr分享标题?非必要分享标题
    share_contentstr分享内容?非必要分享内容, 当 oid 存在时无意义(可是 oid 不可能不存在啊)
    share_originstr分享来源?非必要vinfo_share dynamic vertical-three-point-panel vinfo_player
    share_patternnum分享模式?非必要0
    share_session_idstr分享会话 ID?非必要各部分用 - 分隔的小写的一串 UUID
    tsnumUNIX 秒级时间戳非必要

    对照表:

    类型分享 ID (share_id)对象 ID (oid)
    视频main.ugc-video-detail.0.0.pv视频 aid

    JSON回复:

    根对象:

    字段名类型内容备注
    codenum0恒为 0
    messagestr0恒为 0
    ttlnum1恒为 1
    dataobj信息本体

    data 对象:

    字段名类型内容备注
    contentstr短链内容若失败则不存在
    countnum0恒为 0

    示例:

    av80433022 生成 b23.tv 短链

    curl -X POST "http://api.biliapi.net/x/share/click" \
    +--data-urlencode "platform=unix" \
    +--data-urlencode "share_channel=COPY" \
    +--data-urlencode "share_id=main.ugc-video-detail.0.0.pv" \
    +--data-urlencode "share_mode=4" \
    +--data-urlencode "oid=80433022" \
    +--data-urlencode "buvid=qwq" \
    +--data-urlencode "build=6114514"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "content": "【【官方 MV】Never Gonna Give You Up - Rick Astley-哔哩哔哩】 https://b23.tv/5x4wy5f",
    +    "count": 0
    +  }
    +}
    +
    + + + diff --git a/docs/misc/buvid3_4.html b/docs/misc/buvid3_4.html new file mode 100644 index 0000000000..d3097f08ba --- /dev/null +++ b/docs/misc/buvid3_4.html @@ -0,0 +1,56 @@ + + + + + + + + + 获取 buvid3 / buvid4 / b_nut | BAC Document + + + + +

    获取 buvid3 / buvid4 / b_nut

    接口获取 buvid3 / buvid4

    https://api.bilibili.com/x/frontend/finger/spi

    请求方式: GET

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr信息ok: 成功
    dataobj数据本体

    data对象:

    字段类型内容备注
    b_3strbuvid3需手动存放至 cookie 中
    b_4strbuvid4同上

    示例:

    注: 建议自行生成, 不要复制本处示例的 buvid3 / buvid4.

    curl -G 'https://api.bilibili.com/x/frontend/finger/spi'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "data": {
    +    "b_3": "D9656DA8-9BEF-F464-5B72-C4849AFD336379044infoc",
    +    "b_4": "F6E0FD4B-520C-1902-4F7B-E461D8D1F5AB79044-024072309-666onEZSnlHVPjoRp4kDYg=="
    +  },
    +  "message": "ok"
    +}
    +

    从响应头获取 buvid3 / b_nut

    使用 GETHEAD 方法请求 https://www.bilibili.com/, 且请求头中 User-Agent 字段不包含 curl python awa 等敏感子字符串, 且相同 User-Agent 字段不得短时多次请求. 在响应头中的 Set-Cookie 字段中, 即可找到 buvid3b_nut.

    若不带任何 Cookie 请求, 则 b_nut 为响应生成时刻的 UNIX 秒级时间戳. 若请求 Cookie 仅带有 buvid3, 则 b_nut100. 若请求 Cookie 仅带有 b_nut, 则与不带任何 Cookie 的响应相同. 若请求 Cookie 仅带有 buvid3b_nut, 则响应无 Set-Cookie 字段. 若请求 Cookie 带有其他字段, 无影响.

    示例:

    curl -I "https://www.bilibili.com/" -A "awa"
    +
    查看响应示例:
    HTTP/2 200 
    +date: Fri, 26 Jul 2024 06:38:43 GMT
    +content-type: text/html; charset=utf-8
    +support: nantianmen
    +set-cookie: buvid3=805E4894-96A2-0684-6F00-C6EA1FFB911023315infoc; path=/; expires=Sat, 26 Jul 2025 06:38:43 GMT; domain=.bilibili.com
    +set-cookie: b_nut=1721975923; path=/; expires=Sat, 26 Jul 2025 06:38:43 GMT; domain=.bilibili.com
    +vary: Origin,Accept-Encoding
    +idc: shjd
    +expires: Fri, 26 Jul 2024 06:38:42 GMT
    +cache-control: no-cache
    +x-cache-webcdn: MISS from blzone01
    +x-cache-time: 0
    +x-save-date: Fri, 26 Jul 2024 06:38:43 GMT
    +
    + + + diff --git a/docs/misc/bvid_desc.html b/docs/misc/bvid_desc.html new file mode 100644 index 0000000000..f4eb61b2dc --- /dev/null +++ b/docs/misc/bvid_desc.html @@ -0,0 +1,655 @@ + + + + + + + + + bvid说明 | BAC Document + + + + +

    bvid说明

    2020-03-23 B站推出了全新的稿件视频idbvid来接替之前的avid,其意义与之相同

    详见:

    1. 【升级公告】AV号全面升级至BV号(专栏)open in new window
    2. 【升级公告】AV号全面升级至BV号open in new window

    概述

    格式

    “bvid”恒为长度为 12 的字符串,前 3 个固定为“BV1”,后 9 个为 base58 计算结果(不包含数字 0 和大写字母 IO 以及小写字母 l

    实质

    “bvid"为“avid”的base58编码,可通过算法进行相互转化

    avid发号方式的变化

    从 2009-09-09 09:09:09 av2open in new window 的发布到 2020-03-28 19:45:02 av99999999open in new window 的发布B站结束了以投稿时间为顺序的avid发放,改为随机发放avid

    暗示B站东方要完?泪目

    算法概述

    算法以及程序主要参考知乎@mcfx的回答open in new window实际上该算法并不完整,新的算法参考自【揭秘】av号转bv号的过程open in new window 实际上上面的算法依然不完整,新的算法参考自 SocialSisterYi#740open in new window来自 B 站某个 JS 文件?

    av->bv算法

    说明

    1. 目前的 BV 格式为 BV1XXXXXXXXX,以 BV1 开头,后面包含 9 位有效数据。
    2. AV 最大值为 2⁵¹。

    算法

    • 定义一个包含初始值为 ['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'] 的长度为 12 的数组bytes,用于存储转换后的字符。
      • 定义变量 bv_idx 并初始化为数组 bytes 的最后一个索引。
      • 将输入的 aid 与 avid 最大值(2⁵¹)进行按位或运算,其结果与常量 XOR_CODE(23442827791579)进行异或运算,得到变量 tmp
      • tmp 大于0时,循环执行以下操作直到小于0:
        • tmp 除以 58(码表的长度) 的余数作为索引,从 FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf 码表中取出对应的字符,并将其赋值给 bytes[bv_idx]
        • tmp 与 58 求模赋值给 tmp
        • bv_idx 减1。
      • bytes 数组中索引为 3 和 9 的元素进行交换。
      • bytes 数组中索引为 4 和 7 的元素进行交换。
      • bytes 数组转换为字符串,并返回结果。

    bv->av算法

    是 #av->bv算法 的逆向

    • bvid 中索引为 3 和 9 的字符进行交换。
    • bvid 中索引为 4 和 7 的字符进行交换。
    • 删除 bvid 前3个字符(固定为 BV1)。
    • 定义变量 tmp 并初始化为 0。
    • 遍历 bvid 的每个字符,执行以下操作:
      • 获取当前字符在 FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf 码表中的索引,并将其赋值给变量 idx
      • tmp 乘以常量 58,并加上 idx,最后赋值给 tmp
    • tmp 与常量 2⁵¹ - 1 进行按位与运算,其结果与常量 XOR_CODE(23442827791579) 进行异或运算,得到最终结果。

    编程实现

    JavaScript/TypeScript

    const XOR_CODE = 23442827791579n;
    +const MASK_CODE = 2251799813685247n;
    +const MAX_AID = 1n << 51n;
    +const BASE = 58n;
    +
    +const data = 'FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf';
    +
    +function av2bv(aid) {
    +  const bytes = ['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'];
    +  let bvIndex = bytes.length - 1;
    +  let tmp = (MAX_AID | BigInt(aid)) ^ XOR_CODE;
    +  while (tmp > 0) {
    +    bytes[bvIndex] = data[Number(tmp % BigInt(BASE))];
    +    tmp = tmp / BASE;
    +    bvIndex -= 1;
    +  }
    +  [bytes[3], bytes[9]] = [bytes[9], bytes[3]];
    +  [bytes[4], bytes[7]] = [bytes[7], bytes[4]];
    +  return bytes.join('');
    +}
    +
    +function bv2av(bvid) {
    +  const bvidArr = Array.from(bvid);
    +  [bvidArr[3], bvidArr[9]] = [bvidArr[9], bvidArr[3]];
    +  [bvidArr[4], bvidArr[7]] = [bvidArr[7], bvidArr[4]];
    +  bvidArr.splice(0, 3);
    +  const tmp = bvidArr.reduce((pre, bvidChar) => pre * BASE + BigInt(data.indexOf(bvidChar)), 0n);
    +  return Number((tmp & MASK_CODE) ^ XOR_CODE);
    +}
    +
    +console.log(av2bv(111298867365120));
    +console.log(bv2av('BV1L9Uoa9EUx'));
    +
    const XOR_CODE = 23442827791579n;
    +const MASK_CODE = 2251799813685247n;
    +const MAX_AID = 1n << 51n;
    +const BASE = 58n;
    +
    +const data = 'FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf';
    +
    +function av2bv(aid: number) {
    +  const bytes = ['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'];
    +  let bvIndex = bytes.length - 1;
    +  let tmp = (MAX_AID | BigInt(aid)) ^ XOR_CODE;
    +  while (tmp > 0) {
    +    bytes[bvIndex] = data[Number(tmp % BigInt(BASE))];
    +    tmp = tmp / BASE;
    +    bvIndex -= 1;
    +  }
    +  [bytes[3], bytes[9]] = [bytes[9], bytes[3]];
    +  [bytes[4], bytes[7]] = [bytes[7], bytes[4]];
    +  return bytes.join('') as `BV1${string}`;
    +}
    +
    +function bv2av(bvid: `BV1${string}`) {
    +  const bvidArr = Array.from<string>(bvid);
    +  [bvidArr[3], bvidArr[9]] = [bvidArr[9], bvidArr[3]];
    +  [bvidArr[4], bvidArr[7]] = [bvidArr[7], bvidArr[4]];
    +  bvidArr.splice(0, 3);
    +  const tmp = bvidArr.reduce((pre, bvidChar) => pre * BASE + BigInt(data.indexOf(bvidChar)), 0n);
    +  return Number((tmp & MASK_CODE) ^ XOR_CODE);
    +}
    +
    +console.log(av2bv(111298867365120));
    +console.log(bv2av('BV1L9Uoa9EUx'));
    +

    Python

    来自:#847open in new window

    XOR_CODE = 23442827791579
    +MASK_CODE = 2251799813685247
    +MAX_AID = 1 << 51
    +ALPHABET = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf"
    +ENCODE_MAP = 8, 7, 0, 5, 1, 3, 2, 4, 6
    +DECODE_MAP = tuple(reversed(ENCODE_MAP))
    +
    +BASE = len(ALPHABET)
    +PREFIX = "BV1"
    +PREFIX_LEN = len(PREFIX)
    +CODE_LEN = len(ENCODE_MAP)
    +
    +def av2bv(aid: int) -> str:
    +    bvid = [""] * 9
    +    tmp = (MAX_AID | aid) ^ XOR_CODE
    +    for i in range(CODE_LEN):
    +        bvid[ENCODE_MAP[i]] = ALPHABET[tmp % BASE]
    +        tmp //= BASE
    +    return PREFIX + "".join(bvid)
    +
    +def bv2av(bvid: str) -> int:
    +    assert bvid[:3] == PREFIX
    +
    +    bvid = bvid[3:]
    +    tmp = 0
    +    for i in range(CODE_LEN):
    +        idx = ALPHABET.index(bvid[DECODE_MAP[i]])
    +        tmp = tmp * BASE + idx
    +    return (tmp & MASK_CODE) ^ XOR_CODE
    +
    +assert av2bv(111298867365120) == "BV1L9Uoa9EUx"
    +assert bv2av("BV1L9Uoa9EUx") == 111298867365120
    +

    Rust

    参考 https://github.com/Colerar/abv/blob/main/src/lib.rsopen in new window

    Swift

    fileprivate let XOR_CODE: UInt64 = 23442827791579
    +fileprivate let MASK_CODE: UInt64 = 2251799813685247
    +fileprivate let MAX_AID: UInt64 = 1 << 51
    +
    +fileprivate let data: [UInt8] = [70, 99, 119, 65, 80, 78, 75, 84, 77, 117, 103, 51, 71, 86, 53, 76, 106, 55, 69, 74, 110, 72, 112, 87, 115, 120, 52, 116, 98, 56, 104, 97, 89, 101, 118, 105, 113, 66, 122, 54, 114, 107, 67, 121, 49, 50, 109, 85, 83, 68, 81, 88, 57, 82, 100, 111, 90, 102]
    +
    +fileprivate let BASE: UInt64 = 58
    +fileprivate let BV_LEN: Int = 12
    +fileprivate let PREFIX: String = "BV1"
    +
    +func av2bv(avid: UInt64) -> String {
    +    var bytes: [UInt8] = [66, 86, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48]
    +    var bvIdx = BV_LEN - 1
    +    var tmp = (MAX_AID | avid) ^ XOR_CODE
    +
    +    while tmp != 0 {
    +        bytes[bvIdx] = data[Int(tmp % BASE)]
    +        tmp /= BASE
    +        bvIdx -= 1
    +    }
    +
    +    bytes.swapAt(3, 9)
    +    bytes.swapAt(4, 7)
    +
    +    return String(decoding: bytes, as: UTF8.self)
    +}
    +
    +func bv2av(bvid: String) -> UInt64 {
    +    let fixedBvid: String
    +    if bvid.hasPrefix("BV") {
    +        fixedBvid = bvid
    +    } else {
    +        fixedBvid = "BV" + bvid
    +    }
    +    var bvidArray = Array(fixedBvid.utf8)
    +
    +    bvidArray.swapAt(3, 9)
    +    bvidArray.swapAt(4, 7)
    +
    +    let trimmedBvid = String(decoding: bvidArray[3...], as: UTF8.self)
    +
    +    var tmp: UInt64 = 0
    +
    +    for char in trimmedBvid {
    +        if let idx = data.firstIndex(of: char.utf8.first!) {
    +            tmp = tmp * BASE + UInt64(idx)
    +        }
    +    }
    +
    +    return (tmp & MASK_CODE) ^ XOR_CODE
    +}
    +
    +print(av2bv(avid: 111298867365120))
    +print(bv2av(bvid: "BV1L9Uoa9EUx"))
    +

    Java

    import java.math.BigInteger;
    +
    +/**
    + * @author cctyl
    + */
    +public class AVBVConverter {
    +
    +    private static final BigInteger XOR_CODE = BigInteger.valueOf(23442827791579L);
    +    private static final BigInteger MASK_CODE = BigInteger.valueOf(2251799813685247L);
    +    private static final BigInteger MAX_AID = BigInteger.ONE.shiftLeft(51);
    +    private static final int BASE = 58;
    +
    +    private static final String DATA = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf";
    +
    +    public static String av2bv(long aidParam) {
    +        BigInteger aid = BigInteger.valueOf(aidParam);
    +        char[] bytes = {'B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'};
    +        int bvIndex = bytes.length - 1;
    +        BigInteger tmp = MAX_AID.or(aid).xor(XOR_CODE);
    +        while (tmp.compareTo(BigInteger.ZERO) > 0) {
    +            bytes[bvIndex] = DATA.charAt(tmp.mod(BigInteger.valueOf(BASE)).intValue());
    +            tmp = tmp.divide(BigInteger.valueOf(BASE));
    +            bvIndex--;
    +        }
    +        swap(bytes, 3, 9);
    +        swap(bytes, 4, 7);
    +        return new String(bytes);
    +    }
    +
    +    public static long bv2av(String bvid) {
    +        char[] bvidArr = bvid.toCharArray();
    +        swap(bvidArr, 3, 9);
    +        swap(bvidArr, 4, 7);
    +        String adjustedBvid = new String(bvidArr, 3, bvidArr.length - 3);
    +        BigInteger tmp = BigInteger.ZERO;
    +        for (char c : adjustedBvid.toCharArray()) {
    +            tmp = tmp.multiply(BigInteger.valueOf(BASE)).add(BigInteger.valueOf(DATA.indexOf(c)));
    +        }
    +        BigInteger xor = tmp.and(MASK_CODE).xor(XOR_CODE);
    +        return xor.longValue();
    +    }
    +
    +
    +    private static void swap(char[] array, int i, int j) {
    +        char temp = array[i];
    +        array[i] = array[j];
    +        array[j] = temp;
    +    }
    +
    +    public static void main(String[] args) {
    +
    +        final int aid1 = 643755790;
    +        final String bv1 = "BV1bY4y1j7RA";
    +
    +        final int aid2 = 305988942;
    +        final String bv2 = "BV1aP411K7it";
    +
    +        //av ==> bv
    +        assert av2bv(aid1).equals(bv1);
    +        assert av2bv(aid2).equals(bv2);
    +
    +        //bv ==>av
    +        assert bv2av(bv1) == aid1;
    +        assert bv2av(bv2) == aid2;
    +    }
    +}
    +

    Golang

    package main
    +
    +import (
    +	"fmt"
    +	"strings"
    +)
    +
    +var (
    +	XOR_CODE = int64(23442827791579)
    +	MAX_CODE = int64(2251799813685247)
    +	CHARTS   = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf"
    +	PAUL_NUM = int64(58)
    +)
    +
    +func swapString(s string, x, y int) string {
    +	chars := []rune(s)
    +	chars[x], chars[y] = chars[y], chars[x]
    +	return string(chars)
    +}
    +
    +func Bvid2Avid(bvid string) (avid int64) {
    +	s := swapString(swapString(bvid, 3, 9), 4, 7)
    +	bv1 := string([]rune(s)[3:])
    +	temp := int64(0)
    +	for _, c := range bv1 {
    +		idx := strings.IndexRune(CHARTS, c)
    +		temp = temp*PAUL_NUM + int64(idx)
    +	}
    +	avid = (temp & MAX_CODE) ^ XOR_CODE
    +	return
    +}
    +
    +func Avid2Bvid(avid int64) (bvid string) {
    +	arr := [12]string{"B", "V", "1"}
    +	bvIdx := len(arr) - 1
    +	temp := (avid | (MAX_CODE + 1)) ^ XOR_CODE
    +	for temp > 0 {
    +		idx := temp % PAUL_NUM
    +		arr[bvIdx] = string(CHARTS[idx])
    +		temp /= PAUL_NUM
    +		bvIdx--
    +	}
    +	raw := strings.Join(arr[:], "")
    +	bvid = swapString(swapString(raw, 3, 9), 4, 7)
    +	return
    +}
    +
    +func main() {
    +	avid := int64(1054803170)
    +	bvid := "BV1mH4y1u7UA"
    +	resAvid := Bvid2Avid(bvid)
    +	resBvid := Avid2Bvid(avid)
    +
    +	fmt.Printf("convert bvid to avid: %v\tvalue:%v\n", avid == resAvid, resAvid)
    +	fmt.Printf("convert avid to bvid: %v\tvalue:%v\n", bvid == resBvid, resBvid)
    +
    +}
    +
    +

    C++

    #include <algorithm>
    +#include <cassert>
    +#include <print>
    +#include <string>
    +
    +constexpr int64_t XOR_CODE          = 0x1552356C4CDB;
    +constexpr int64_t MAX_AID           = 0x8000000000000;
    +constexpr int64_t MASK_CODE         = MAX_AID - 1;
    +constexpr int64_t BASE              = 58;
    +constexpr char    Table[BASE + 1]   = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf";
    +constexpr char    ReverseTable[128] = {
    +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x2c, 0x2d, 0x0b, 0x1a, 0x0e, 0x27, 0x11, 0x1d, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x03, 0x25, 0x2a, 0x31, 0x12, 0x00, 0x0c, 0x15, 0x00, 0x13, 0x06, 0x0f, 0x08, 0x05, 0x00,
    +    0x04, 0x32, 0x35, 0x30, 0x07, 0x2f, 0x0d, 0x17, 0x33, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
    +    0x00, 0x1f, 0x1c, 0x01, 0x36, 0x21, 0x39, 0x0a, 0x1e, 0x23, 0x10, 0x29, 0x00, 0x2e, 0x14, 0x37,
    +    0x16, 0x24, 0x28, 0x18, 0x1b, 0x09, 0x22, 0x02, 0x19, 0x2b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00
    +};
    +
    +std::string Av2bv(const int64_t Avid) {
    +    assert(Avid > 0 && "Avid must be greater than 0");
    +    std::string bv = "BV1";
    +    bv.resize(12, '\0');
    +
    +    int64_t tmp = (Avid | MAX_AID) ^ XOR_CODE;
    +    for (size_t i = bv.size() - 1; tmp > 0 && i > 2; --i) {
    +        bv[i] = Table[tmp % BASE];
    +        tmp /= BASE;
    +    }
    +    std::ranges::swap(bv.at(3), bv.at(9));
    +    std::ranges::swap(bv.at(4), bv.at(7));
    +    return bv;
    +}
    +
    +int64_t Bv2av(const std::string &Bvid) {
    +    assert(Bvid.starts_with("BV1") && "Bvid must start with 'BV1'");
    +
    +    auto Bvid_ = Bvid;
    +    std::ranges::swap(Bvid_.at(3), Bvid_.at(9));
    +    std::ranges::swap(Bvid_.at(4), Bvid_.at(7));
    +
    +    int64_t tmp = 0;
    +    for (int i = 3; i < Bvid_.size(); ++i) {
    +        tmp = ReverseTable[Bvid_.at(i)] + BASE * tmp;
    +    }
    +    return (tmp & MASK_CODE) ^ XOR_CODE;
    +}
    +
    +int main() {
    +    assert(Av2bv(1004871019) == "BV16x4y1H7M1");
    +    assert(Bv2av("BV16x4y1H7M1") == 1004871019);
    +}
    +

    老版算法存档

    以下算法已失效,编解码函数值域有限,不推荐使用,在此仅作为存档

    查看折叠内容:

    算法参考自【揭秘】av号转bv号的过程open in new window

    av->bv算法

    注:本算法及示例程序仅能编解码avid < 29460791296,且暂无法验证avid >= 29460791296的正确性 再注:本人不清楚新算法能否编解码avid >= 29460791296

    1. a = (avid ⊕ 177451812) + 100618342136696320
    2. 以 i 为循环变量循环 6 次 b[i] = (a / 58 ^ i) % 58
    3. 将 b[i] 中各个数字转换为以下码表中的字符

    码表:

    fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF

    1. 初始化字符串 b[i]=

    2. 按照以下字符顺序编码表编码并填充至 b[i]

    字符顺序编码表:

    0 -> 9

    1 -> 8

    2 -> 1

    3 -> 6

    4 -> 2

    5 -> 4

    6 -> 0

    7 -> 7

    8 -> 3

    9 -> 5

    bv->av算法

    为以上算法的逆运算

    编程实现

    使用 Python C TypeScript Java Kotlin Golang Rust 等语言作为示例,欢迎社区提交更多例程

    注: 新算法只提供了 PythonRust 版本

    Python

    XOR = 177451812
    +ADD = 100618342136696320
    +TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
    +MAP = 9, 8, 1, 6, 2, 4, 0, 7, 3, 5
    +
    +
    +def av2bv(av: int) -> str:
    +    av = (av ^ XOR) + ADD
    +    bv = [""] * 10
    +    for i in range(10):
    +        bv[MAP[i]] = TABLE[(av // 58**i) % 58]
    +    return "".join(bv)
    +
    +
    +def bv2av(bv: int) -> int:
    +    av = [""] * 10
    +    s = 0
    +    for i in range(10):
    +        s += TABLE.find(bv[MAP[i]]) * 58**i
    +    av = (s - ADD) ^ XOR
    +
    +    return av
    +
    +
    +def main():
    +    while 1:
    +        mode = input("1. AV to BV\n2. BV to AV\n3. Exit\n你的选择:")
    +        if mode == "1":
    +            print(f"BV号是:BV {av2bv(int(input('AV号是:')))}")
    +        elif mode == "2":
    +            print(f"AV号是:AV {bv2av(input('BV号是:'))}")
    +        elif mode == "3":
    +            break
    +        else:
    +            print("输入错误请重新输入")
    +
    +
    +if __name__ == "__main__":
    +    main()
    +

    C

    #include <stdio.h>
    +#include <stdlib.h>
    +#include <math.h>
    +#include <string.h>
    +
    +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

    感谢#417open in new window提供

    export default class BvCode {
    +  private TABEL = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'; // 码表
    +  private TR: Record<string, number> = {}; // 反查码表
    +  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

    /**
    + * 算法来自: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<Character, Integer> 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

    /**
    + * 此程序非完全原创,改编自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<String, Int>()
    +    private val mp2 = HashMap<Int, String>()
    +
    +    //现在,定义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

    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
    +

    Rust

    crate: https://github.com/stackinspector/bvid

    // Copyright (c) 2023 stackinspector. MIT license.
    +
    +const XORN: u64 = 177451812;
    +const ADDN: u64 = 100618342136696320;
    +const TABLE: [u8; 58] = *b"fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
    +const MAP: [usize; 10] = [9, 8, 1, 6, 2, 4, 0, 7, 3, 5];
    +const REV_TABLE: [u8; 74] = [
    +    13, 12, 46, 31, 43, 18, 40, 28,  5,  0,  0,  0,  0,  0,  0,  0, 54, 20, 15, 8,
    +    39, 57, 45, 36,  0, 38, 51, 42, 49, 52,  0, 53,  7,  4,  9, 50, 10, 44, 34, 6,
    +    25,  1,  0,  0,  0,  0,  0,  0, 26, 29, 56,  3, 24,  0, 47, 27, 22, 41, 16, 0,
    +    11, 37,  2, 35, 21, 17, 33, 30, 48, 23, 55, 32, 14, 19,
    +];
    +const POW58: [u64; 10] = [
    +    1, 58, 3364, 195112, 11316496, 656356768, 38068692544,
    +    2207984167552, 128063081718016, 7427658739644928,
    +];
    +
    +fn av2bv(avid: u64) -> [u8; 10] {
    +    let a = (avid ^ XORN) + ADDN;
    +    let mut bvid = [0; 10];
    +    for i in 0..10 {
    +        bvid[MAP[i]] = TABLE[(a / POW58[i]) as usize % 58];
    +    }
    +    bvid
    +}
    +
    +fn bv2av(bvid: [u8; 10]) -> u64 {
    +    let mut a = 0;
    +    for i in 0..10 {
    +        a += REV_TABLE[bvid[MAP[i]] as usize - 49] as u64 * POW58[i];
    +    }
    +    (a - ADDN) ^ XORN
    +}
    +
    +// assert_eq!(*b"17x411w7KC", av2bv(170001));
    +// assert_eq!(170001, bv2av(*b"17x411w7KC"));
    +
    + + + diff --git a/docs/misc/device_identity.html b/docs/misc/device_identity.html new file mode 100644 index 0000000000..c30f25b8a1 --- /dev/null +++ b/docs/misc/device_identity.html @@ -0,0 +1,54 @@ + + + + + + + + + 设备各类标识算法(APP 端) | BAC Document + + + + +

    设备各类标识算法(APP 端)

    设备唯一标识 BUVID

    注意区分于 Web 端的 buvid3, buvid4.

    BUVID 在 APP 首次安装于某设备, 且首次启动时生成.

    APP 首次(即每次安装后)启动, 会向云端发送本机各类设备特征, 含 AndroidId, DrmId 等, 请求是否有匹配的 BUVID, 有就使用云端的, 否则使用本地生成的.

    APP 请求是否有匹配的 BUVID 发送的本机各类设备特征包括(但不限于):

    • AndroidID
    • DrmId
    • IMEI
    • OAID
    • 手机网卡 MAC
    • 设备品牌
    • 设备 Model
    • 本地生成的 BUVID

    生成方法

    1. 选定设备特征码, 可以是 AndroidID, DrmId, 手机网卡 MAC 等. 记为 ID. 特别地, MAC 应当去掉 :, GUID(即 UUID) 应当去掉 -.

    2. 计算 ID 的 MD5. 记为 ID_MD5.

    3. ID_MD5 抽取第 3, 13, 23 位, 失败就默认为 000, 记为 ID_E.

    4. 根据选定的设备特征码类型确定 BUVID Prefix, 见附录. 记为 BUVID_Prefix.

    5. {BUVID_Prefix}{ID_E}{ID_MD5} 的顺序连接起来, 共37位(2+3+32). 结果应当为大写.

    Demo

    Rust

    代码及测试样例见 Rust Playgroundopen in new window.

    设备指纹 fp (fp_local, fp_remote)

    用于请求账户相关 REST API, 及 gRPC Metadata 生成.

    在请求头中, fp_localfp_remote 设置为同一值即可, 暂不清楚区别.

    生成方法

    1. 获取 BUVID. 此处一般使用 XU Prefix 的 BUVID.

    2. 获取设备 Model(Build.MODEL), 如 NOH-AN01.

    3. 获取手机无线电固件版本号(Build.getRadioVersion()), 失败则留空. 如 21C20B686S000C000,21C20B686S000C000.

    4. 按前述顺序拼接字符串, 计算得 MD5.

    5. 获取年月日, 格式 yyyyMMddhhmmss, 拼接到 4 得到的字符串后.

    6. 生成 16 位随机字符串, CharSet 为 0123456789abcdef, 拼接到 5 得到的字符串后, 记为 fp_raw.

    7. 计算得到一个特殊字符串, 拼接到 fp_raw 后, 即得到最终的 fp, 特殊字符串算法见下:

    let mut veri_code = 0;
    +// 有点像 HEX 的操作
    +let fp_raw_sub_str = fp_raw
    +    .as_bytes() // 将字符串 fp_raw 转换为字节数组
    +    .chunks(2)  // 按每两个字节一组进行切分
    +    .map(|s| unsafe { ::std::str::from_utf8_unchecked(s) }) // 对每一组解析作为 UTF-8 字符串
    +    .collect::<Vec<_>>(); // 将结果收集到 Vec 中
    +// 如果 fp_raw 的长度小于 62, 则向下取偶数减半作为循环终止条件, 否则终止条件为31
    +for i in 0..({
    +    if fp_raw.len() < 62 {
    +        fp_raw.len() - fp_raw.len() % 2 // 取偶数
    +    } else {
    +        62
    +    }
    +} / 2)
    +{
    +    // 将每组字符串转换为对应的 16 进制整数, 将转换得到的整数加到 veri_code 上. 
    +    veri_code += i32::from_str_radix(fp_raw_sub_str[i], 16).unwrap_or(0);
    +}
    +// 最后将 veri_code 对 256 取余, 格式化为两位的 16 进制字符串
    +let veri_code = format!("{:0>2x}", veri_code % 256);
    +

    Demo

    Rust

    代码及测试样例见 Rust Playgroundopen in new window.

    附录

    BUVID Prefix

    设备特征码BUVID Prefix备注
    AndroidIDXX
    DrmIdXU
    IMEIXZ已弃用
    GUIDXW已弃用
    MACXY
    GoogleIdXG东南亚版本
    FacebookIdXF东南亚版本
    + + + diff --git a/docs/misc/errcode.html b/docs/misc/errcode.html new file mode 100644 index 0000000000..bcd0beb439 --- /dev/null +++ b/docs/misc/errcode.html @@ -0,0 +1,33 @@ + + + + + + + + + 公共错误码 | BAC Document + + + + +

    公共错误码

    下表为大部分接口返回值中code字段值中公共的错误代码

    权限类

    代码含义
    -1应用程序不存在或已被封禁
    -2Access Key 错误
    -3API 校验密匙错误
    -4调用方对该 Method 没有权限
    -101账号未登录
    -102账号被封停
    -103积分不足
    -104硬币不足
    -105验证码错误
    -106账号非正式会员或在适应期
    -107应用不存在或者被封禁
    -108未绑定手机
    -110未绑定手机
    -111csrf 校验失败
    -112系统升级中
    -113账号尚未实名认证
    -114请先绑定手机
    -115请先完成实名认证

    请求类

    代码含义
    -304木有改动
    -307撞车跳转
    -352风控校验失败 (UA 或 wbi 参数不合法)
    -400请求错误
    -401未认证 (或非法请求)
    -403访问权限不足
    -404啥都木有
    -405不支持该方法
    -409冲突
    -412请求被拦截 (客户端 ip 被服务端风控)
    -500服务器错误
    -503过载保护,服务暂不可用
    -504服务调用超时
    -509超出限制
    -616上传文件不存在
    -617上传文件太大
    -625登录失败次数太多
    -626用户不存在
    -628密码太弱
    -629用户名或密码错误
    -632操作对象数量限制
    -643被锁定
    -650用户等级太低
    -652重复的用户
    -658Token 过期
    -662密码时间戳过期
    -688地理区域限制
    -689版权限制
    -701扣节操失败
    -799请求过于频繁,请稍后再试
    -8888对不起,服务器开小差了~ (ಥ﹏ಥ)
    + + + diff --git a/docs/misc/picture.html b/docs/misc/picture.html new file mode 100644 index 0000000000..4e3308e023 --- /dev/null +++ b/docs/misc/picture.html @@ -0,0 +1,37 @@ + + + + + + + + + 图片格式化 | BAC Document + + + + +

    图片格式化

    已知 *.hdslb.com archive.biliimg.com 等域名作用等效, 对于请求头 Referer 要求留空或在 .bilibili.com 等 B 站域名下

    对于以上域名的 /bfs/ 下的图片文件都可以使用以下可选格式化参数

    使用 @ 开始参数 (无论格式如何, 无论是否有参数, 通过计算 HASH 发现, 使用 @ 均会导致返回图片不同), 多个参数以 _ 分隔, 图片格式无需分隔且必须放在最后

    参见: #191open in new window

    注: jpg 即 jpeg, 二者等效. 网页端常用 AVIF, WebP.

    参数格式含义备注
    w${int}w图片最大限制宽度范围 [1, 9223372036854775807]
    h${int}h图片最大限制高度范围 [1, 9223372036854775807]
    s${int}s作用尚不明确不影响输出结果, 范围 [1, 9223372036854775807]
    e${int}e改变大小0: 保留比例取其小, 1: 保留比例取其大, 2: 不保留原比例
    p${int}p缩放倍数默认100, 范围 [1, 1000]
    o${int}o作用尚不明确不影响输出结果 范围 [0, 1]
    q${int}q图片质量百分比仅限webp/jpeg/avif
    c${int}c裁切图片(如果宽高允许)0: 不裁切但会修改图片, 1: 上传时的预设规则(若无则右下), 2: 左上, 3: 右上
    f${int}f作用尚不明确[0, 1]: 不改变图片, 2: 会改变图片
    progressiveprogressive图片编码方式仅限 jpeg(无: baseline, 有: progressive)/png(无:non-interlaced, 有: interlaced)
    !!${str}加载来源web-home-carousel-cover, header, web-dynamic, web-avatar-space-header, ...
    ..${str}图片格式仅限 png/jpeg/webp/avif/avg_color

    示例:

    查看示例:

    原始图片

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg

    高度限制为100

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100h

    宽度限制为100

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100w

    转换格式为webp

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.webp

    转换为webp图片质量为1%

    https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp

    avg_color格式说明

    当图片格式化输出格式为avg_color

    *.hdslb.com/bfs/*/*.*@*.avg_color

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    RGBstr平均颜色值HEX

    示例:

    获取 https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg 的平均颜色值

    curl 'https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.avg_color'
    +
    查看响应示例:
    {
    +    "RGB": "#7d6f6c"
    +}
    +
    + + + diff --git a/docs/misc/sign/APP.html b/docs/misc/sign/APP.html new file mode 100644 index 0000000000..faecf24093 --- /dev/null +++ b/docs/misc/sign/APP.html @@ -0,0 +1,247 @@ + + + + + + + + + APP API 签名与鉴权 | BAC Document + + + + +

    APP API 签名与鉴权

    APP API 签名特性

    部分客户端专用的 REST API 存在基于参数签名的鉴权,需要使用规定的appkey及其对应的appsec与原始请求参数进行签名计算,部分AppKey及与之对应的AppSec已经被公开:见该文档 APPKey

    • 不同 appkey 对应不同的 app (如客户端、概念版、必剪、漫画、bililink等)

    • 不同平台同 app 也会存在不同的 appkey (如安卓端、ios端、TV端等)

    • 同平台同 app 下不同功能也会存在不同的 appkey(如登录专用、取流专用等)

    • 不同版本的客户端的 appkey 也可能不同

    • appkey与appsec一一对应

    APP API 签名算法

    1. 首先为参数中添加appkey字段
    2. 然后按照参数的 Key 重新排序
    3. 再对这个 Key-Value 进行 url query 序列化,并拼接与之对应的appsec (盐) 进行 md5 Hash 运算(32-bit 字符小写),该 hash 便是 API 签名
    4. 最后在参数尾部增添sign字段,它的 Value 为上一步计算所得的 hash,一并作为表单或 Query 提交

    Demo

    该 Demo 提供 PythonJavaTS/JSSwiftC++ 语言例程

    使用 appkey = 1d8b6e7d45233436, appsec = 560c52ccd288fed045859ed18bffd973 对如下 params 参数进行签名

    上述示例appkeyAppSec均来自文档 APPKey

    Python

    import hashlib
    +import urllib.parse
    +
    +def appsign(params, appkey, appsec):
    +    '为请求参数进行 APP 签名'
    +    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)
    +

    输出内容分别是进行 APP 签名的后参数的 key-Value 以及 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
    +

    Java

    package io.github.cctyl;
    +
    +import java.nio.charset.StandardCharsets;
    +import java.util.HashMap;
    +import java.util.Map;
    +import java.security.MessageDigest;
    +import java.security.NoSuchAlgorithmException;
    +import java.net.URLEncoder;
    +import java.util.TreeMap;
    +
    +/**
    + * @author cctyl
    + */
    +public class AppSigner {
    +
    +    private static final String APP_KEY = "1d8b6e7d45233436";
    +    private static final String APP_SEC = "560c52ccd288fed045859ed18bffd973";
    +
    +    public static String appSign(Map<String, String> params) {
    +        // 为请求参数进行 APP 签名
    +        params.put("appkey", APP_KEY);
    +        // 按照 key 重排参数
    +        Map<String, String> sortedParams = new TreeMap<>(params);
    +        // 序列化参数
    +        StringBuilder queryBuilder = new StringBuilder();
    +        for (Map.Entry<String, String> entry : sortedParams.entrySet()) {
    +            if (queryBuilder.length() > 0) {
    +                queryBuilder.append('&');
    +            }
    +            queryBuilder
    +                    .append(URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8))
    +                    .append('=')
    +                    .append(URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8));
    +        }
    +        return generateMD5(queryBuilder .append(APP_SEC).toString());
    +    }
    +
    +    private static String generateMD5(String input) {
    +        try {
    +            MessageDigest md = MessageDigest.getInstance("MD5");
    +            byte[] digest = md.digest(input.getBytes());
    +            StringBuilder sb = new StringBuilder();
    +            for (byte b : digest) {
    +                sb.append(String.format("%02x", b));
    +            }
    +            return sb.toString();
    +        } catch (NoSuchAlgorithmException e) {
    +            e.printStackTrace();
    +        }
    +        return null;
    +    }
    +
    +    public static void main(String[] args) {
    +        Map<String, String> params = new HashMap<>();
    +        params.put("id", "114514");
    +        params.put("str", "1919810");
    +        params.put("test", "いいよ,こいよ");
    +        System.out.println(appSign(params));
    +    }
    +}
    +

    输出结果为:01479cf20504d865519ac50f33ba3a7d

    TypeScript/JavaScript

    import { createHash } from 'node:crypto'
    +
    +type Params = Record<string, any>
    +
    +const md5 = (str: string) => createHash('md5').update(str).digest('hex')
    +
    +/**
    + * 为请求参数进行 APP 签名
    + */
    +export function appSign(params: Params, appkey: string, appsec: string) {
    +  params.appkey = appkey
    +  const searchParams = new URLSearchParams(params)
    +  searchParams.sort()
    +  return md5(searchParams.toString() + appsec)
    +}
    +
    +console.log(
    +  appSign(
    +    {
    +      id: 114514,
    +      str: '1919810',
    +      test: 'いいよ,こいよ',
    +    },
    +    '1d8b6e7d45233436',
    +    '560c52ccd288fed045859ed18bffd973',
    +  ),
    +  '01479cf20504d865519ac50f33ba3a7d',
    +)
    +

    输出结果为:01479cf20504d865519ac50f33ba3a7d

    Swift

    import Foundation
    +import CommonCrypto
    +
    +//Swift标准库没有MD5函数,所以我们要自己实现一个
    +func MD5(string: String) -> String {
    +    let length = Int(CC_MD5_DIGEST_LENGTH)
    +    var digest = [UInt8](repeating: 0, count: length)
    +
    +    if let d = string.data(using: .utf8) {
    +        _ = d.withUnsafeBytes { body -> String in
    +            CC_MD5(body.baseAddress, CC_LONG(d.count), &digest)
    +            return ""
    +        }
    +    }
    +
    +    return (0..<length).reduce("") {
    +        $0 + String(format: "%02x", digest[$1])
    +    }
    +}
    +
    +func appSign(params: [String:String],appKey:String,appSec:String) -> String {
    +    var signedParams = params
    +    signedParams["appkey"] = appKey
    +    let sortedParams = signedParams.sorted { $0.key < $1.key }
    +    //在制作成query时,需要显式addingPercentEncoding转换
    +    let query = sortedParams.map { "\($0.key)=\($0.value.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)" }.joined(separator: "&")
    +    let sign = MD5(string: query+appSec)
    +    return sign
    +}
    +
    +
    +//testSign
    +let appKey = "1d8b6e7d45233436"
    +let appSec = "560c52ccd288fed045859ed18bffd973"
    +let signResult = appSign(params: [
    +    "id": "114514",
    +    "str": "1919810",
    +    "test": "いいよ,こいよ",
    +],appKey:appKey,appSec:appSec)
    +print(signResult)
    +

    输出结果为:01479cf20504d865519ac50f33ba3a7d

    CplusPlus

    需要 c++ 23 标准库,cpropen in new windowcryptoppopen in new windownlohmann/jsonopen in new window 等依赖

    #include <print>    // std::println
    +
    +/// thrid party libraries
    +#include <cpr/cpr.h>            // cpr::util::urlEncode()
    +#include <cryptopp/md5.h>
    +#include <cryptopp/hex.h>
    +#include <nlohmann/json.hpp>
    +
    +/*
    + * 注意,假定不会发生错误!
    + */
    +
    +/* 获取 md5 hex(lower) */
    +std::string Get_md5_hex(const std::string &Input_str) {
    +    CryptoPP::Weak1::MD5 hash;
    +    std::string          md5_hex;
    +
    +    CryptoPP::StringSource ss(Input_str, true,
    +        new CryptoPP::HashFilter(hash,
    +            new CryptoPP::HexEncoder(
    +                new CryptoPP::StringSink(md5_hex)
    +            )
    +        )
    +    );
    +
    +    std::ranges::for_each(md5_hex, [](char &x) { x = std::tolower(x); });
    +    return md5_hex;
    +}
    +
    +/* 将 json 转换为 url 编码字符串 */
    +std::string Json_to_url_encode_str(const nlohmann::json &Json) {
    +    std::string encode_str;
    +    for (const auto &[key, value]: Json.items()) {
    +        encode_str.append(key).append("=").append(cpr::util::urlEncode(value.is_string() ? value.get<std::string>() : to_string(value))).append("&");
    +    }
    +
    +    // remove the last '&'
    +    encode_str.resize(encode_str.size() - 1, '\0');
    +    return encode_str;
    +}
    +
    +std::string App_sign(nlohmann::json &Params, const std::string &App_key, const std::string &App_sec) {
    +    Params["appkey"] = App_key;
    +    Params["sign"]   = Get_md5_hex(Json_to_url_encode_str(Params) + App_sec);
    +    return Json_to_url_encode_str(Params);
    +}
    +
    +int main() {
    +    nlohmann::json Params;
    +    Params["id"]   = 114514;
    +    Params["str"]  = "1919810";
    +    Params["test"] = "いいよ,こいよ";
    +
    +    constexpr auto App_key = "1d8b6e7d45233436";
    +    constexpr auto App_sec = "560c52ccd288fed045859ed18bffd973";
    +    std::string    sign    = App_sign(Params, App_key, App_sec);
    +    std::println("{}", to_string(Params));
    +    std::println("{}", sign);
    +}
    +
    {"appkey":"1d8b6e7d45233436","id":114514,"sign":"01479cf20504d865519ac50f33ba3a7d","str":"1919810","test":"いいよ,こいよ"}
    +appkey=1d8b6e7d45233436&id=114514&sign=01479cf20504d865519ac50f33ba3a7d&str=1919810&test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88
    +
    + + + diff --git a/docs/misc/sign/APPKey.html b/docs/misc/sign/APPKey.html new file mode 100644 index 0000000000..bd26977aeb --- /dev/null +++ b/docs/misc/sign/APPKey.html @@ -0,0 +1,33 @@ + + + + + + + + + APPKey | BAC Document + + + + +

    APPKey

    以下为已知的 APPkey / APPSec,及部分使用场景参数信息,均来自抓包与逆向工程

    APPKEYAPPSECplatform2APP类型neuronAppId1mobi_app2备注
    9d5889cf67e615cd8fd9bb32efea8cef801fd895bef2713dandroidAi4cCreatorAndroid
    1d8b6e7d45233436560c52ccd288fed045859ed18bffd973android粉版1android获取资源通用
    783bbb7264451d822653583c8873dea268ab9386918b1d65android粉版1android仅获取用户信息时使用(7.X及更新版本)
    57263273bc6b67f6a0488e488d1567960d3a765e8d129f90android粉版1android可能来自旧版
    07da50c9a0bf829f25bdede4e1581c836cab73a48790ca6eandroid概念版3android_b
    191c3b6b975af1841673b15a09ef5e4427627f47b03a0578android概念版3android_b仅获取用户信息时使用(7.X及更新版本)
    178cf125136ca8ea34381a26236dd1171185c0beb042e1c6android概念版3android_b可能来自旧版
    7d336ec01856996ba1ce6983bc89e20a36c37f40c4f1a0ddandroid概念版3android_b可能来自旧版
    dfca71928277209bb5475a8825547a4fc26c7d518eaaa02eandroidHD 版5android_hd
    bb3101000e232e2736efcfed79309338ced0380abd824ac1android白版14android_i
    ae57252b0c09105dc75875c596a69eb55bd119e74b07cfe3android白版14android_i仅获取用户信息时使用(7.X及更新版本)
    8e16697a1b4f8121f5dd03b752426f2e623d7badb28d190aandroid白版14android_i可能来自旧版
    7d089525d3611b1cacd495b248ec528c2eed1e862d393126android蓝版30bstar_a
    iVGUTjsxvpLeuDCfaHRmhWMLkdeMuILqORnYZocwMBpMEOdtandroid---视频取流专用, 仅5.X旧版使用
    YvirImLGlLANCLvMJNlZNgfNGKZEpaDTkCdPQVXntXhuiJEMios---视频取流专用
    27eb53fc9058f8c3c2ed53a74eeefe3cf99fbd01d8c9c375web/ios?---第三方授权使用
    84956560bc028eb794aba54af9065f71de72f5508f1cd42e?UWP 版--部分API不接受此appkey, 返回-663错误
    85eb6835b0a1034e2ad42749773c441109bdc0191257a664?UWP 版?--部分API不接受此appkey, 返回-663错误
    4ebafd7c4951b3668cb98205e9b2ad3669aad0fce12a4c13iosiPhone 客户端?iphone?
    8d23902c1688a798710f0212e62bd499b8d3ac6e1db9302aandroidAndroidBiliThings??
    4c6e1021617d40d9e559a59044eb2701b7a8628c86aa12aeandroidAndroidMallTicket??
    c034e8b74130a886e4e8966b1e71847dc4a3830f2d078523androidAndroidOttSdk7?
    4409e2ce8ffd12b859b43e04ad6965f34319062b478f83ddandroid云视听小电视(TV版)9?android_tv_yst?
    37207f2beaebf8d7e988e794d4d4b6dd43bc0e89d6e90c43androidBiliLink??
    9a75abf7de2d894735ca1c82be6c2c242ecc04d88c735f31androidBiliScan??
    aae92bc66f3edfabaf125a0d5279fd576c1b4418a3e8276d?PC 投稿工具-?
    bca7e84c2d947ac660698ba2f68e01ce44738920a0ffe768?login-?
    h9Ejat5tFh81cq8VBdiI92bjmZ9QRcjJBWv2EEssyjekAGKtbilibili游戏 web端 游戏详情页API

    注释:

    1 neuronAppId,产品编号,由数据平台分配,详情如下:

    • 粉(国内版)=1
    • 白(GooglePlay 版)=2
    • 蓝(东南亚版)=3
    • 直播姬=4
    • HD=5
    • 海外=6
    • OTT=7
    • 漫画=8
    • TV野版=9
    • 小视频=10
    • 网易漫画=11
    • 网易漫画lite=12
    • 网易漫画HD=13,
    • 国际版=14

    2 platform, mobi_app 仅供参考, 具体值需要抓包确定.

    + + + diff --git a/docs/misc/sign/bili_ticket.html b/docs/misc/sign/bili_ticket.html new file mode 100644 index 0000000000..229f747f9b --- /dev/null +++ b/docs/misc/sign/bili_ticket.html @@ -0,0 +1,244 @@ + + + + + + + + + BiliTicket | BAC Document + + + + +

    BiliTicket

    简述

    bili_ticket 位于请求头 Cookie 中, 非必需, 但存在可降低风控概率

    @aynuaranceopen in new window#903open in new window 提供的思路,根据时间戳使用 hmac_sha256 算法计算 hexsign

    JWT 令牌open in new window,有效时长为 259260 秒,即 3 天。 例如 eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDI3NDI3NDYsImlhdCI6MTcwMjQ4MzQ4NiwicGx0IjotMX0.xQgtTAc41NA1gzvd9yKUPgucUy_DKcQj6OG1vj8V7ZA

    {
    +  "alg": "HS256",
    +  "kid": "s03",
    +  "typ": "JWT"
    +}
    +

    算法

    1. 获取 UNIX 秒级时间戳存入变量如 timestamp
    2. 计算变量 hexsign 值,使用 hmac_sha256 算法,密钥为 XgwSnGZ1p,消息为字符串 "ts" 与变量 timestamp 值拼接
    3. 构造请求参数,key_idec02hexsign 为变量 hexsign 值,context[ts] 为变量 timestamp 值,csrf 为 cookie 中的 bili_jct 值也可为空
    4. 发送 POST 请求,获取 data 字段中的 ticket 字段的值即为所求

    接口

    https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket

    请求方式: POST

    URL参数:

    参数名类型内容必要性备注
    key_idstrec02必要
    hexsignstrhmac_sha256 算法计算的 hexsign必要
    context[ts]numUNIX 秒级时间戳必要
    csrfstrcookie 中的 bili_jct非必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    400: 参数错误
    messagestr返回消息OK: 成功
    dataobj数据本体
    ttlnum1

    data 对象:

    字段类型内容备注
    ticketstrbili_ticket
    created_atnum创建时间UNIX 秒级时间戳
    ttlnum有效时长259200 秒 (3 天)
    contextobj
    navobjwbi_img 相关参见 WBI 签名

    nav 对象:

    字段类型内容备注
    imgstrimg_key 值参见 WBI 签名
    substrsub_key 值参见 WBI 签名

    示例:

    查看响应示例:
    {
    +  "code": 0,
    +  "message": "OK",
    +  "data": {
    +    "ticket": "eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjM2OTMwODAsImlhdCI6MTcyMzQzMzgyMCwicGx0IjotMX0.efOwv7i4m0ykABrXEDHGAechU2AByMcP_-3EYpQrNKs",
    +    "created_at": 1723433820,
    +    "ttl": 259200,
    +    "context": {},
    +    "nav": {
    +      "img": "https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png",
    +      "sub": "https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png"
    +    }
    +  },
    +  "ttl": 1
    +}
    +

    Demo

    此处提供 Python, Java, JavaScript (Node.js) 的示例代码

    Python

    需要 requests 依赖

    import hmac
    +import hashlib
    +import requests
    +import time
    +
    +def hmac_sha256(key, message):
    +    """
    +    使用HMAC-SHA256算法对给定的消息进行加密
    +    :param key: 密钥
    +    :param message: 要加密的消息
    +    :return: 加密后的哈希值
    +    """
    +    # 将密钥和消息转换为字节串
    +    key = key.encode('utf-8')
    +    message = message.encode('utf-8')
    +
    +    # 创建HMAC对象,使用SHA256哈希算法
    +    hmac_obj = hmac.new(key, message, hashlib.sha256)
    +
    +    # 计算哈希值
    +    hash_value = hmac_obj.digest()
    +
    +    # 将哈希值转换为十六进制字符串
    +    hash_hex = hash_value.hex()
    +
    +    return hash_hex
    +
    +
    +if __name__ == '__main__':
    +    o = hmac_sha256("XgwSnGZ1p",f"ts{int(time.time())}")
    +    url = "https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket"
    +    params = {
    +        "key_id":"ec02",
    +        "hexsign":o,
    +        "context[ts]":f"{int(time.time())}",
    +        "csrf": ''
    +    }
    +
    +    headers = {
    +            'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"
    +        }
    +    resp = requests.post(url, params=params,headers=headers).json()
    +    print(resp)
    +

    Java

    无需第三方依赖

    import java.io.ByteArrayOutputStream;
    +import java.io.InputStream;
    +import java.net.HttpURLConnection;
    +import java.net.URI;
    +import java.nio.charset.StandardCharsets;
    +
    +import javax.crypto.Mac;
    +import javax.crypto.spec.SecretKeySpec;
    +
    +public class BiliTicketDemo {
    +
    +    /**
    +     * Convert a byte array to a hex string.
    +     * 
    +     * @param bytes The byte array to convert.
    +     * @return The hex string representation of the given byte array.
    +     */
    +    public static String bytesToHex(byte[] bytes) {
    +        StringBuilder sb = new StringBuilder();
    +        for (byte b : bytes) {
    +            String hex = Integer.toHexString(0xff & b);
    +            if (hex.length() == 1) {
    +                sb.append('0');
    +            }
    +            sb.append(hex);
    +        }
    +        return sb.toString();
    +    }
    +
    +    /**
    +     * Generate a HMAC-SHA256 hash of the given message string using the given key
    +     * string.
    +     * 
    +     * @param key     The key string to use for the HMAC-SHA256 hash.
    +     * @param message The message string to hash.
    +     * @throws Exception If an error occurs during the HMAC-SHA256 hash generation.
    +     * @return The HMAC-SHA256 hash of the given message string using the given key
    +     *         string.
    +     */
    +    public static String hmacSha256(String key, String message) throws Exception {
    +        Mac mac = Mac.getInstance("HmacSHA256");
    +        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
    +        mac.init(secretKeySpec);
    +        byte[] hash = mac.doFinal(message.getBytes(StandardCharsets.UTF_8));
    +        return bytesToHex(hash);
    +    }
    +
    +    /**
    +     * Get a Bilibili web ticket for the given CSRF token.
    +     * 
    +     * @param csrf The CSRF token to use for the web ticket, can be {@code null} or
    +     *             empty.
    +     * @return The Bilibili web ticket raw response for the given CSRF token.
    +     * @throws Exception If an error occurs during the web ticket generation.
    +     * @see https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/misc/sign/bili_ticket.md
    +     */
    +    public static String getBiliTicket(String csrf) throws Exception {
    +        // params
    +        long ts = System.currentTimeMillis() / 1000;
    +        String hexSign = hmacSha256("XgwSnGZ1p", "ts" + ts);
    +        StringBuilder url = new StringBuilder(
    +                "https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket");
    +        url.append('?');
    +        url.append("key_id=ec02").append('&');
    +        url.append("hexsign=").append(hexSign).append('&');
    +        url.append("context[ts]=").append(ts).append('&');
    +        url.append("csrf=").append(csrf == null ? "" : csrf);
    +        // request
    +        HttpURLConnection conn = (HttpURLConnection) new URI(url.toString()).toURL().openConnection();
    +        conn.setRequestMethod("POST");
    +        conn.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0");
    +        InputStream in = conn.getInputStream();
    +        ByteArrayOutputStream out = new ByteArrayOutputStream();
    +        int b;
    +        while ((b = in.read()) != -1) {
    +            out.write(b);
    +        }
    +        return new String(out.toByteArray(), StandardCharsets.UTF_8);
    +    }
    +
    +    /**
    +     * Main method to test the BiliTicketDemo class.
    +     * 
    +     * @param args The command line arguments (not used).
    +     */
    +    public static void main(String[] args) {
    +        try {
    +            System.out.println(getBiliTicket("")); // use empty CSRF here
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +
    +}
    +

    JavaScript (Node.js)

    const crypto = require('crypto');
    +
    +/**
    + * Generate HMAC-SHA256 signature
    + * @param {string} key     The key string to use for the HMAC-SHA256 hash
    + * @param {string} message The message string to hash
    + * @returns {string} The HMAC-SHA256 signature as a hex string
    + */
    +function hmacSha256(key, message) {
    +    const hmac = crypto.createHmac('sha256', key);
    +    hmac.update(message);
    +    return hmac.digest('hex');
    +}
    +
    +/**
    + * Get Bilibili web ticket
    + * @param {string} csrf    CSRF token, can be empty or null
    + * @returns {Promise<any>} Promise of the ticket response in JSON format
    + */
    +async function getBiliTicket(csrf) {
    +    const ts = Math.floor(Date.now() / 1000);
    +    const hexSign = hmacSha256('XgwSnGZ1p', `ts${ts}`);
    +    const url = 'https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket';
    +    const params = new URLSearchParams({
    +        key_id: 'ec02',
    +        hexsign: hexSign,
    +        'context[ts]': ts,
    +        csrf: csrf || ''
    +    });
    +    try {
    +        const response = await fetch(`${url}?${params.toString()}`, {
    +            method: 'POST',
    +            headers: {
    +                'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
    +            }
    +        });
    +        if (!response.ok) {
    +            throw new Error(`HTTP error! status: ${response.status}`);
    +        }
    +        const data = await response.json();
    +        return data;
    +    } catch (e) {
    +        throw error;
    +    }
    +}
    +
    +(async () => {
    +    try {
    +        const ticketResponse = await getBiliTicket(''); // use empty CSRF here
    +        console.log(ticketResponse);
    +    } catch (e) {
    +        console.error('Failed to get BiliTicket:', error);
    +    }
    +})();
    +
    + + + diff --git a/docs/misc/sign/v_voucher.html b/docs/misc/sign/v_voucher.html new file mode 100644 index 0000000000..5275cc2ac8 --- /dev/null +++ b/docs/misc/sign/v_voucher.html @@ -0,0 +1,74 @@ + + + + + + + + + v_voucher 验证 | BAC Document + + + + +

    v_voucher 验证

    简述

    当同一接口在短时间内被同一用户/IP/UA多次请求或异常时, 会触发风控, 如接口返回 code-352风控校验失败, 同时 data 中出现 v_voucher 字段

    v_voucher 结构为字符串 voucher_ 尾随一串以 - 为分隔符的小写 UUID

    v_voucher 可用于申请 captcha 验证码, 根据验证结果使用 validate 接口获取 grisk_id 作为被风控接口的 gaia_vtoken 与 Cookie 中的 x-bili-gaia-vtoken 即可恢复正常访问

    若该情况出现在使用 Wbi 签名的接口中, 建议先检查 Wbi 签名是否正确. 若已检查 Wbi 签名或无需签名, 检查请求头中 User-Agent Referer 是否正常, 以及 Cookiebili_ticket b_nut buvid3 buvid4 等是否存在. 使用 captcha 是最后的选择, 因为 captcha 验证需要用户操作

    参见 #1067open in new window

    操作流程

    1. 快速以不正确的姿势请求接口, 直到返回 v_voucher 字段如下

      {
      +  "code": -352,
      +  "message": "风控校验失败",
      +  "ttl": 1,
      +  "data": {
      +    "v_voucher": "voucher_84a8c3ce-33f5-4551-9552-9c6b13aa7938"
      +  }
      +}
      +
    2. 请求 register 接口, 请求体传入 csrfv_voucher, 该接口返回与 申请captcha验证码 部分相同, 记录此处返回的 token challenge

    3. 按照 验证captcha验证码 进行验证, 记下验证结果的 validateseccode

    4. 请求 validate 接口, 请求体传入 challenge token validate seccode csrf, 该接口返回 grisk_idgaia_vtoken

    5. 重新请求原接口, 原 URL 参数加入 gaia_vtoken, 即恢复正常

    接口列表

    从 v_voucher 申请 captcha

    https://api.bilibili.com/x/gaia-vgate/v1/register

    注: 同一有效 v_voucher 只能请求一次, 请求完毕请立即 进行验证 防止过期失效

    请求方式: POST

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于 Cookie 的 bili_jct)非必要
    v_voucherstrv_voucher必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    100000: 验证码获取失败
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    typestr验证码类型目前只有 geetest
    tokenstr验证码 token用于验证
    geetestobj极验信息若为 null 则说明该风控无法通过 captcha 解除
    biliwordnull
    phonenull
    smsnull

    geetest 对象:

    字段类型内容备注
    gtstr极验id一般为固定值
    challengestr极验KEY由B站后端产生用于人机验证

    示例:

    假设此处 v_vouchervoucher_ecca35e6-36da-4f38-bd84-b3f420ea08c1

    curl -X POST "https://api.bilibili.com/x/gaia-vgate/v1/register" \
    +--data-urlencode "v_voucher=voucher_ecca35e6-36da-4f38-bd84-b3f420ea08c1"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "type": "geetest",
    +    "token": "e7abdb050c3d4609979f1685137e3bc0",
    +    "geetest": {
    +      "challenge": "85118f8714875ca4c6d5641bb0ce9ddf",
    +      "gt": "ac597a4506fee079629df5d8b66dd4fe"
    +    },
    +    "biliword": null,
    +    "phone": null,
    +    "sms": null
    +  }
    +}
    +

    从验证结果获取 grisk_id

    https://api.bilibili.com/x/gaia-vgate/v1/validate

    请求方式: POST

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于 Cookie 的 bili_jct)非必要若登陆则必要
    challengestr验证码 challenge必要
    tokenstr验证码 token必要
    validatestr验证结果 validate必要
    seccodestr验证结果 seccode必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111: csrf 校验失败
    100003: 验证码过期
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    is_validnum验证结果1:验证成功
    grisk_idstrgaia_vtoken用于恢复正常访问

    示例:

    curl -X POST "https://api.bilibili.com/x/gaia-vgate/v1/validate" \
    +--data-urlencode "challenge=e4fcb337b8c0427b56320f97e1064210" \
    +--data-urlencode "csrf=xxxxxxxxxxxxxxx" \
    +--data-urlencode "seccode=360f7b9cf75c74c68fbb7475416d0e0d|jordan" \
    +--data-urlencode "token=0e1e58bdff3d4b8aa298e346fed07eeb" \
    +--data-urlencode "validate=360f7b9cf75c74c68fbb7475416d0e0d"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "is_valid": 1,
    +    "grisk_id": "2e91cf2b67172ca8432fe7c9ab66a5c4"
    +  }
    +}
    +
    + + + diff --git a/docs/misc/sign/wbi.html b/docs/misc/sign/wbi.html new file mode 100644 index 0000000000..da18880255 --- /dev/null +++ b/docs/misc/sign/wbi.html @@ -0,0 +1,1160 @@ + + + + + + + + + WBI 签名 | BAC Document + + + + +

    WBI 签名

    自 2023 年 3 月起,Bilibili Web 端部分接口开始采用 WBI 签名鉴权,表现在 REST API 请求时在 Query param 中添加了 w_ridwts 字段。WBI 签名鉴权独立于 APP 鉴权 与其他 Cookie 鉴权,目前被认为是一种 Web 端风控手段。

    经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 w_rid 与时间戳 wts 缺失、错误,会返回 v_voucher,如:

    {"code":0,"message":"0","ttl":1,"data":{"v_voucher":"voucher_******"}}
    +

    感谢 #631open in new window 的研究与逆向工程。

    细节更新:#885open in new window

    WBI 签名算法

    1. 获取实时口令 img_keysub_key

      nav 接口 中获取 img_urlsub_url 两个字段的参数。 或从 bili_ticket 接口 中获取 img sub 两个字段的参数。

      注:img_urlsub_url 两个字段的值看似为存于 BFS 中的 png 图片 url,实则只是经过伪装的实时 Token,故无需且不能试图访问这两个 url

      {"code":-101,"message":"账号未登录","ttl":1,"data":{"isLogin":false,"wbi_img":{"img_url":"https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png","sub_url":"https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png"}}}
      +

      截取其文件名,分别记为 img_keysub_key,如上述例子中的 7cd084941338484aae1ad9425b84077c4932caff0ff746eab6f01bf08b70ac45

      img_keysub_key 全站统一使用,观测知应为每日更替,使用时建议做好缓存和刷新处理。

      特别地,发现部分接口将 img_keysub_key 硬编码进 JavaScript 文件内,如搜索接口 https://s1.hdslb.com/bfs/static/laputa-search/client/assets/index.1ea39bea.js,暂不清楚原因及影响。

    2. 打乱重排实时口令获得 mixin_key

      把上一步获取到的 sub_key 拼接在 img_key 后面(下例记为 raw_wbi_key),遍历重排映射表 MIXIN_KEY_ENC_TAB,取出 raw_wbi_key 中对应位置的字符拼接得到新的字符串,截取前 32 位,即为 mixin_key

      重排映射表 MIXIN_KEY_ENC_TAB 长为 64,内容如下:

      const MIXIN_KEY_ENC_TAB: [u8; 64] = [
      +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
      +    33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
      +    61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
      +    36, 20, 34, 44, 52
      +]
      +

      重排操作如下例:

       fn gen_mixin_key(raw_wbi_key: impl AsRef<[u8]>) -> String {
      +     const MIXIN_KEY_ENC_TAB: [u8; 64] = [
      +         46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42,
      +         19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60,
      +         51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52,
      +     ];
      +     let raw_wbi_key = raw_wbi_key.as_ref();
      +     let mut mixin_key = {
      +         let binding = MIXIN_KEY_ENC_TAB
      +             .iter()
      +             // 此步操作即遍历 MIXIN_KEY_ENC_TAB,取出 raw_wbi_key 中对应位置的字符
      +             .map(|n| raw_wbi_key[*n as usize])
      +             // 并收集进数组内
      +             .collect::<Vec<u8>>();
      +         unsafe { String::from_utf8_unchecked(binding) }
      +     };
      +     let _ = mixin_key.split_off(32); // 截取前 32 位字符
      +     mixin_key
      + }
      +

      img_key -> 7cd084941338484aae1ad9425b84077csub_key -> 4932caff0ff746eab6f01bf08b70ac45 经过上述操作后得到 mixin_key -> ea1db124af3c7062474693fa704f4ff8

    3. 计算签名(即 w_rid

      若下方内容为欲签名的原始请求参数(以 JavaScript Object 为例)

      {
      +     foo: '114',
      +     bar: '514',
      +     zab: 1919810
      +}
      +

      wts 字段的值应为当前以秒为单位的 Unix 时间戳,如 1702204169

      复制一份参数列表,添加 wts 参数,即:

      {
      +     foo: '114',
      +     bar: '514',
      +     zab: 1919810,
      +     wts: 1702204169
      +}
      +

      随后按键名升序排序后编码 URL Query,拼接前面得到的 mixin_key,如 bar=514&foo=114&wts=1702204169&zab=1919810ea1db124af3c7062474693fa704f4ff8,计算其 MD5 即为 w_rid

      需要注意的是:如果参数值含中文或特殊字符等,编码字符字母应当大写 (部分库会编码为小写字母),空格应当编码为 %20(部分库按 application/x-www-form-urlencoded 约定编码为 +)。

      例如:

      {
      +     foo: 'one one four',
      +     bar: '五一四',
      +     baz: 1919810
      +}
      +

      应该被编码为 bar=%E4%BA%94%E4%B8%80%E5%9B%9B&baz=1919810&foo=one%20one%20four

    4. 向原始请求参数中添加 w_ridwts 字段

      将上一步得到的 w_rid 以及前面的 wts 追加到原始请求参数编码得到的 URL Query 后即可,目前看来无需对原始请求参数排序。

      如前例最终得到 bar=514&foo=114&zab=1919810&w_rid=8f6f2b5b3d485fe1886cec6a0be8c5d4&wts=1702204169

    Demo

    PythonJavaScriptGolangC#JavaKotlinSwiftC++Rust 语言编写的 Demo 。

    Python

    需要requests依赖

    from functools import reduce
    +from hashlib import md5
    +import urllib.parse
    +import time
    +import requests
    +
    +mixinKeyEncTab = [
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +    33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +    61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +    36, 20, 34, 44, 52
    +]
    +
    +def getMixinKey(orig: str):
    +    '对 imgKey 和 subKey 进行字符顺序打乱编码'
    +    return reduce(lambda s, i: s + orig[i], mixinKeyEncTab, '')[:32]
    +
    +def encWbi(params: dict, img_key: str, sub_key: str):
    +    '为请求参数进行 wbi 签名'
    +    mixin_key = getMixinKey(img_key + sub_key)
    +    curr_time = round(time.time())
    +    params['wts'] = curr_time                                   # 添加 wts 字段
    +    params = dict(sorted(params.items()))                       # 按照 key 重排参数
    +    # 过滤 value 中的 "!'()*" 字符
    +    params = {
    +        k : ''.join(filter(lambda chr: chr not in "!'()*", str(v)))
    +        for k, v 
    +        in params.items()
    +    }
    +    query = urllib.parse.urlencode(params)                      # 序列化参数
    +    wbi_sign = md5((query + mixin_key).encode()).hexdigest()    # 计算 w_rid
    +    params['w_rid'] = wbi_sign
    +    return params
    +
    +def getWbiKeys() -> tuple[str, str]:
    +    '获取最新的 img_key 和 sub_key'
    +    headers = {
    +        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    +        'Referer': 'https://www.bilibili.com/'
    +    }
    +    resp = requests.get('https://api.bilibili.com/x/web-interface/nav', headers=headers)
    +    resp.raise_for_status()
    +    json_content = resp.json()
    +    img_url: str = json_content['data']['wbi_img']['img_url']
    +    sub_url: str = json_content['data']['wbi_img']['sub_url']
    +    img_key = img_url.rsplit('/', 1)[1].split('.')[0]
    +    sub_key = sub_url.rsplit('/', 1)[1].split('.')[0]
    +    return img_key, sub_key
    +
    +img_key, sub_key = getWbiKeys()
    +
    +signed_params = encWbi(
    +    params={
    +        'foo': '114',
    +        'bar': '514',
    +        'baz': 1919810
    +    },
    +    img_key=img_key,
    +    sub_key=sub_key
    +)
    +query = urllib.parse.urlencode(signed_params)
    +print(signed_params)
    +print(query)
    +

    输出内容分别是进行 Wbi 签名的后参数的 key-Value 以及 url query 形式

    {'bar': '514', 'baz': '1919810', 'foo': '114', 'wts': '1702204169', 'w_rid': 'd3cbd2a2316089117134038bf4caf442'}
    +bar=514&baz=1919810&foo=114&wts=1702204169&w_rid=d3cbd2a2316089117134038bf4caf442
    +

    JavaScript

    需要 fetch(浏览器、NodeJS等环境自带)、md5 依赖

    import md5 from 'md5'
    +
    +const mixinKeyEncTab = [
    +  46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +  33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +  61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +  36, 20, 34, 44, 52
    +]
    +
    +// 对 imgKey 和 subKey 进行字符顺序打乱编码
    +const getMixinKey = (orig) => mixinKeyEncTab.map(n => orig[n]).join('').slice(0, 32)
    +
    +// 为请求参数进行 wbi 签名
    +function encWbi(params, img_key, sub_key) {
    +  const mixin_key = getMixinKey(img_key + sub_key),
    +    curr_time = Math.round(Date.now() / 1000),
    +    chr_filter = /[!'()*]/g
    +
    +  Object.assign(params, { wts: curr_time }) // 添加 wts 字段
    +  // 按照 key 重排参数
    +  const query = Object
    +    .keys(params)
    +    .sort()
    +    .map(key => {
    +      // 过滤 value 中的 "!'()*" 字符
    +      const value = params[key].toString().replace(chr_filter, '')
    +      return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
    +    })
    +    .join('&')
    +
    +  const wbi_sign = md5(query + mixin_key) // 计算 w_rid
    +
    +  return query + '&w_rid=' + wbi_sign
    +}
    +
    +// 获取最新的 img_key 和 sub_key
    +async function getWbiKeys() {
    +  const res = await fetch('https://api.bilibili.com/x/web-interface/nav', {
    +    headers: {
    +      // SESSDATA 字段
    +      Cookie: 'SESSDATA=xxxxxx',
    +      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    +      Referer: 'https://www.bilibili.com/'//对于直接浏览器调用可能不适用
    +    }
    +  })
    +  const { data: { wbi_img: { img_url, sub_url } } } = await res.json()
    +
    +  return {
    +    img_key: img_url.slice(
    +      img_url.lastIndexOf('/') + 1,
    +      img_url.lastIndexOf('.')
    +    ),
    +    sub_key: sub_url.slice(
    +      sub_url.lastIndexOf('/') + 1,
    +      sub_url.lastIndexOf('.')
    +    )
    +  }
    +}
    +
    +async function main() {
    +  const web_keys = await getWbiKeys()
    +  const params = { foo: '114', bar: '514', baz: 1919810 },
    +    img_key = web_keys.img_key,
    +    sub_key = web_keys.sub_key
    +  const query = encWbi(params, img_key, sub_key)
    +  console.log(query)
    +}
    +
    +main()
    +
    import md5 from 'md5'
    +
    +const mixinKeyEncTab = [
    +  46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +  33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +  61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +  36, 20, 34, 44, 52
    +]
    +
    +// 对 imgKey 和 subKey 进行字符顺序打乱编码
    +const getMixinKey = (orig: string) =>
    +  mixinKeyEncTab
    +    .map((n) => orig[n])
    +    .join("")
    +    .slice(0, 32);
    +
    +// 为请求参数进行 wbi 签名
    +function encWbi(
    +  params: { [key: string]: string | number | object },
    +  img_key: string,
    +  sub_key: string
    +) {
    +  const mixin_key = getMixinKey(img_key + sub_key),
    +    curr_time = Math.round(Date.now() / 1000),
    +    chr_filter = /[!'()*]/g;
    +
    +  Object.assign(params, { wts: curr_time }); // 添加 wts 字段
    +  // 按照 key 重排参数
    +  const query = Object.keys(params)
    +    .sort()
    +    .map((key) => {
    +      // 过滤 value 中的 "!'()*" 字符
    +      const value = params[key].toString().replace(chr_filter, "");
    +      return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
    +    })
    +    .join("&");
    +
    +  const wbi_sign = md5(query + mixin_key); // 计算 w_rid
    +
    +  return query + "&w_rid=" + wbi_sign;
    +}
    +// 获取最新的 img_key 和 sub_key
    +async function getWbiKeys(SESSDATA: string) {
    +  const res = await fetch('https://api.bilibili.com/x/web-interface/nav', {
    +    headers: {
    +      // SESSDATA 字段
    +      Cookie: `SESSDATA=${SESSDATA}`,
    +      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    +      Referer: 'https://www.bilibili.com/'//对于直接浏览器调用可能不适用
    +    }
    +  })
    +  const {
    +    data: {
    +      wbi_img: { img_url, sub_url },
    +    },
    +  } = (await res.json()) as {
    +    data: {
    +      wbi_img: { img_url: string; sub_url: string };
    +    };
    +  };
    +
    +  return {
    +    img_key: img_url.slice(
    +      img_url.lastIndexOf('/') + 1,
    +      img_url.lastIndexOf('.')
    +    ),
    +    sub_key: sub_url.slice(
    +      sub_url.lastIndexOf('/') + 1,
    +      sub_url.lastIndexOf('.')
    +    )
    +  }
    +}
    +
    +async function main() {
    +  const web_keys = await getWbiKeys("SESSDATA的值")
    +  const params = { foo: '114', bar: '514', baz: 1919810 },
    +    img_key = web_keys.img_key,
    +    sub_key = web_keys.sub_key
    +  const query = encWbi(params, img_key, sub_key)
    +  console.log(query)
    +}
    +
    +main()
    +

    输出内容为进行 Wbi 签名的后参数的 url query 形式

    bar=514&baz=1919810&foo=114&wts=1684805578&w_rid=bb97e15f28edf445a0e4420d36f0157e
    +

    Golang

    需要 github.com/tidwall/gjson 作为依赖

    package main
    +
    +import (
    +	"crypto/md5"
    +	"encoding/hex"
    +	"fmt"
    +	"io"
    +	"net/http"
    +	"net/url"
    +	"sort"
    +	"strconv"
    +	"strings"
    +	"sync"
    +	"time"
    +
    +	"github.com/tidwall/gjson"
    +)
    +
    +var (
    +	mixinKeyEncTab = []int{
    +		46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +		33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +		61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +		36, 20, 34, 44, 52,
    +	}
    +	cache          sync.Map
    +	lastUpdateTime time.Time
    +)
    +
    +func main() {
    +	urlStr := "https://api.bilibili.com/x/space/wbi/acc/info?mid=1850091"
    +	newUrlStr, err := signAndGenerateURL(urlStr)
    +	if err != nil {
    +		fmt.Printf("Error: %s", err)
    +		return
    +	}
    +	req, err := http.NewRequest("GET", newUrlStr, nil)
    +	if err != nil {
    +		fmt.Printf("Error: %s", err)
    +		return
    +	}
    +	req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
    +	req.Header.Set("Referer", "https://www.bilibili.com/")
    +	response, err := http.DefaultClient.Do(req)
    +	if err != nil {
    +		fmt.Printf("Request failed: %s", err)
    +		return
    +	}
    +	defer response.Body.Close()
    +	body, err := io.ReadAll(response.Body)
    +	if err != nil {
    +		fmt.Printf("Failed to read response: %s", err)
    +		return
    +	}
    +	fmt.Println(string(body))
    +}
    +
    +func signAndGenerateURL(urlStr string) (string, error) {
    +	urlObj, err := url.Parse(urlStr)
    +	if err != nil {
    +		return "", err
    +	}
    +	imgKey, subKey := getWbiKeysCached()
    +	query := urlObj.Query()
    +	params := map[string]string{}
    +	for k, v := range query {
    +		params[k] = v[0]
    +	}
    +	newParams := encWbi(params, imgKey, subKey)
    +	for k, v := range newParams {
    +		query.Set(k, v)
    +	}
    +	urlObj.RawQuery = query.Encode()
    +	newUrlStr := urlObj.String()
    +	return newUrlStr, nil
    +}
    +
    +func encWbi(params map[string]string, imgKey, subKey string) map[string]string {
    +	mixinKey := getMixinKey(imgKey + subKey)
    +	currTime := strconv.FormatInt(time.Now().Unix(), 10)
    +	params["wts"] = currTime
    +
    +	// Sort keys
    +	keys := make([]string, 0, len(params))
    +	for k := range params {
    +		keys = append(keys, k)
    +	}
    +	sort.Strings(keys)
    +
    +	// Remove unwanted characters
    +	for k, v := range params {
    +		v = sanitizeString(v)
    +		params[k] = v
    +	}
    +
    +	// Build URL parameters
    +	query := url.Values{}
    +	for _, k := range keys {
    +		query.Set(k, params[k])
    +	}
    +	queryStr := query.Encode()
    +
    +	// Calculate w_rid
    +	hash := md5.Sum([]byte(queryStr + mixinKey))
    +	params["w_rid"] = hex.EncodeToString(hash[:])
    +	return params
    +}
    +
    +func getMixinKey(orig string) string {
    +	var str strings.Builder
    +	for _, v := range mixinKeyEncTab {
    +		if v < len(orig) {
    +			str.WriteByte(orig[v])
    +		}
    +	}
    +	return str.String()[:32]
    +}
    +
    +func sanitizeString(s string) string {
    +	unwantedChars := []string{"!", "'", "(", ")", "*"}
    +	for _, char := range unwantedChars {
    +		s = strings.ReplaceAll(s, char, "")
    +	}
    +	return s
    +}
    +
    +func updateCache() {
    +	if time.Since(lastUpdateTime).Minutes() < 10 {
    +		return
    +	}
    +	imgKey, subKey := getWbiKeys()
    +	cache.Store("imgKey", imgKey)
    +	cache.Store("subKey", subKey)
    +	lastUpdateTime = time.Now()
    +}
    +
    +func getWbiKeysCached() (string, string) {
    +	updateCache()
    +	imgKeyI, _ := cache.Load("imgKey")
    +	subKeyI, _ := cache.Load("subKey")
    +	return imgKeyI.(string), subKeyI.(string)
    +}
    +
    +func getWbiKeys() (string, string) {
    +	client := &http.Client{}
    +	req, err := http.NewRequest("GET", "https://api.bilibili.com/x/web-interface/nav", nil)
    +	if err != nil {
    +		fmt.Printf("Error creating request: %s", err)
    +		return "", ""
    +	}
    +	req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
    +	req.Header.Set("Referer", "https://www.bilibili.com/")
    +	resp, err := client.Do(req)
    +	if err != nil {
    +		fmt.Printf("Error sending request: %s", err)
    +		return "", ""
    +	}
    +	defer resp.Body.Close()
    +	body, err := io.ReadAll(resp.Body)
    +	if err != nil {
    +		fmt.Printf("Error reading response: %s", err)
    +		return "", ""
    +	}
    +	json := string(body)
    +	imgURL := gjson.Get(json, "data.wbi_img.img_url").String()
    +	subURL := gjson.Get(json, "data.wbi_img.sub_url").String()
    +	imgKey := strings.Split(strings.Split(imgURL, "/")[len(strings.Split(imgURL, "/"))-1], ".")[0]
    +	subKey := strings.Split(strings.Split(subURL, "/")[len(strings.Split(subURL, "/"))-1], ".")[0]
    +	return imgKey, subKey
    +}
    +

    CSharp

    无需依赖外部库

    using System.Security.Cryptography;
    +using System.Text;
    +using System.Text.Json.Nodes;
    +
    +class Program
    +{
    +    private static HttpClient _httpClient = new();
    +
    +    private static readonly int[] MixinKeyEncTab =
    +    {
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39,
    +        12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63,
    +        57, 62, 11, 36, 20, 34, 44, 52
    +    };
    +
    +    //对 imgKey 和 subKey 进行字符顺序打乱编码
    +    private static string GetMixinKey(string orig)
    +    {
    +        return MixinKeyEncTab.Aggregate("", (s, i) => s + orig[i])[..32];
    +    }
    +
    +    private static Dictionary<string, string> EncWbi(Dictionary<string, string> parameters, string imgKey,
    +        string subKey)
    +    {
    +        string mixinKey = GetMixinKey(imgKey + subKey);
    +        string currTime = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
    +        //添加 wts 字段
    +        parameters["wts"] = currTime;
    +        // 按照 key 重排参数
    +        parameters = parameters.OrderBy(p => p.Key).ToDictionary(p => p.Key, p => p.Value);
    +        //过滤 value 中的 "!'()*" 字符
    +        parameters = parameters.ToDictionary(
    +            kvp => kvp.Key,
    +            kvp => new string(kvp.Value.Where(chr => !"!'()*".Contains(chr)).ToArray())
    +        );
    +        // 序列化参数
    +        string query = new FormUrlEncodedContent(parameters).ReadAsStringAsync().Result;
    +        //计算 w_rid
    +        using MD5 md5 = MD5.Create();
    +        byte[] hashBytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query + mixinKey));
    +        string wbiSign = BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
    +        parameters["w_rid"] = wbiSign;
    +
    +        return parameters;
    +    }
    +
    +    // 获取最新的 img_key 和 sub_key
    +      private static async Task<(string, string)> GetWbiKeys()
    +      {
    +          var httpClient = new HttpClient();
    +          httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36");
    +          httpClient.DefaultRequestHeaders.Referrer = new Uri("https://www.bilibili.com/");
    +      
    +          HttpResponseMessage responseMessage = await httpClient.SendAsync(new HttpRequestMessage
    +          {
    +              Method = HttpMethod.Get,
    +              RequestUri = new Uri("https://api.bilibili.com/x/web-interface/nav"),
    +          });
    +      
    +          JsonNode response = JsonNode.Parse(await responseMessage.Content.ReadAsStringAsync())!;
    +      
    +          string imgUrl = (string)response["data"]!["wbi_img"]!["img_url"]!;
    +          imgUrl = imgUrl.Split("/")[^1].Split(".")[0];
    +      
    +          string subUrl = (string)response["data"]!["wbi_img"]!["sub_url"]!;
    +          subUrl = subUrl.Split("/")[^1].Split(".")[0];
    +          return (imgUrl, subUrl);
    +      }
    +
    +
    +    public static async Task Main()
    +    {
    +        var (imgKey, subKey) = await GetWbiKeys();
    +
    +        Dictionary<string, string> signedParams = EncWbi(
    +            parameters: new Dictionary<string, string>
    +            {
    +                { "foo", "114" },
    +                { "bar", "514" },
    +                { "baz", "1919810" }
    +            },
    +            imgKey: imgKey,
    +            subKey: subKey
    +        );
    +
    +        string query = await new FormUrlEncodedContent(signedParams).ReadAsStringAsync();
    +
    +        Console.WriteLine(query);
    +    }
    +}
    +

    输出内容为进行 Wbi 签名的后参数的 url query 形式

    bar=514&baz=1919810&foo=114&wts=1687541921&w_rid=26e82b1b9b3a11dbb1807a9228a40d3b
    +

    Java

    import java.net.URLEncoder;
    +import java.nio.charset.StandardCharsets;
    +import java.security.MessageDigest;
    +import java.security.NoSuchAlgorithmException;
    +import java.util.*;
    +import java.util.stream.Collectors;
    +
    +public class WbiTest {
    +    private static final int[] mixinKeyEncTab = new int[]{
    +            46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +            33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +            61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +            36, 20, 34, 44, 52
    +    };
    +
    +    private static final char[] hexDigits = "0123456789abcdef".toCharArray();
    +
    +    public static String md5(String input) {
    +        try {
    +            MessageDigest md = MessageDigest.getInstance("MD5");
    +            byte[] messageDigest = md.digest(input.getBytes(StandardCharsets.UTF_8));
    +            char[] result = new char[messageDigest.length * 2];
    +            for (int i = 0; i < messageDigest.length; i++) {
    +                result[i * 2] = hexDigits[(messageDigest[i] >> 4) & 0xF];
    +                result[i * 2 + 1] = hexDigits[messageDigest[i] & 0xF];
    +            }
    +            return new String(result);
    +        } catch (NoSuchAlgorithmException e) {
    +            return null;
    +        }
    +    }
    +
    +    public static String getMixinKey(String imgKey, String subKey) {
    +        String s = imgKey + subKey;
    +        StringBuilder key = new StringBuilder();
    +        for (int i = 0; i < 32; i++)
    +            key.append(s.charAt(mixinKeyEncTab[i]));
    +        return key.toString();
    +    }
    +
    +    public static String encodeURIComponent(Object o) {
    +        return URLEncoder.encode(o.toString(), StandardCharsets.UTF_8).replace("+", "%20");
    +    }
    +
    +    public static void main(String[] args) {
    +        String imgKey = "653657f524a547ac981ded72ea172057";
    +        String subKey = "6e4909c702f846728e64f6007736a338";
    +        String mixinKey = getMixinKey(imgKey, subKey);
    +        System.out.println(mixinKey); // 72136226c6a73669787ee4fd02a74c27
    +
    +        // 用TreeMap自动排序
    +        TreeMap<String, Object> map = new TreeMap<>();
    +        map.put("foo", "one one four");
    +        map.put("bar", "五一四");
    +        map.put("baz", 1919810);
    +        map.put("wts", System.currentTimeMillis() / 1000);
    +        String param = map.entrySet().stream()
    +                .map(it -> String.format("%s=%s", it.getKey(), encodeURIComponent(it.getValue())))
    +                .collect(Collectors.joining("&"));
    +        String s = param + mixinKey;
    +
    +        String wbiSign = md5(s);
    +        System.out.println(wbiSign);
    +        String finalParam = param + "&w_rid=" + wbiSign;
    +        System.out.println(finalParam);
    +    }
    +}
    +

    Kotlin

    说明: 为了便于使用和缓存, 重新编写为实体类形式, 并拆分了多个文件. 使用官方的JSON序列化. (可以根据需要换成其他的)

    WbiParams.kt

    import kotlinx.serialization.Serializable
    +import kotlinx.serialization.json.JsonElement
    +import kotlinx.serialization.json.JsonObject
    +import kotlinx.serialization.json.jsonPrimitive
    +
    +private fun JsonElement?.get(): String {
    +    check(this != null) { "No contents found" }
    +    return this.jsonPrimitive.content.split('/').last().removeSuffix(".png")
    +}
    +
    +private val mixinKeyEncTab = intArrayOf(
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +    33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +    61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +    36, 20, 34, 44, 52
    +)
    +
    +@Serializable
    +data class WbiParams(
    +    val imgKey: String,
    +    val subKey: String,
    +) {
    +    // 此处整合了切分参数(直接传入{img_url:string, sub_url:string}即可), 不需要可以删掉
    +    constructor(wbiImg: JsonObject) : this(wbiImg["img_url"].get(), wbiImg["sub_url"].get())
    +
    +    private val mixinKey: String
    +        get() = (imgKey + subKey).let { s ->
    +            buildString {
    +                repeat(32) {
    +                    append(s[mixinKeyEncTab[it]])
    +                }
    +            }
    +        }
    +
    +    // 创建对象(GET获取或者读缓存, 比如Redis)之后, 直接调用此函数处理
    +    fun enc(params: Map<String, Any?>): String {
    +        val sorted = params.filterValues { it != null }.toSortedMap()
    +        return buildString {
    +            append(sorted.toQueryString())
    +            val wts = System.currentTimeMillis() / 1000
    +            sorted["wts"] = wts
    +            append("&wts=")
    +            append(wts)
    +            append("&w_rid=")
    +            append((sorted.toQueryString() + mixinKey).toMD5())
    +        }
    +    }
    +}
    +

    Extensions.kt

    import java.security.MessageDigest
    +
    +private val hexDigits = "0123456789abcdef".toCharArray()
    +
    +fun ByteArray.toHexString() = buildString(this.size shl 1) {
    +    this@toHexString.forEach { byte ->
    +        append(hexDigits[byte.toInt() ushr 4 and 15])
    +        append(hexDigits[byte.toInt() and 15])
    +    }
    +}
    +
    +fun String.toMD5(): String {
    +    val md = MessageDigest.getInstance("MD5")
    +    val digest = md.digest(this.toByteArray())
    +    return digest.toHexString()
    +}
    +
    +fun Map<String, Any?>.toQueryString() = this.filterValues { it != null }.entries.joinToString("&") { (k, v) ->
    +    "${k.encodeURIComponent()}=${v!!.encodeURIComponent()}"
    +}
    +

    获取和使用案例略

    PHP

    来自SocialSisterYi/bilibili-API-collect#813open in new window

    <?php
    +/**
    + * B站 Wbi 测试
    + * @author Prk
    + */
    +
    +
    +class Bilibili {
    +
    +    private $mixinKeyEncTab = [
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +        33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +        61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +        36, 20, 34, 44, 52
    +    ];
    +
    +    function __construct() {
    +    }
    +
    +    public function reQuery(array $query) {
    +        $wbi_keys = $this->getWbiKeys();
    +        return $this->encWbi($query, $wbi_keys['img_key'], $wbi_keys['sub_key']);
    +    }
    +
    +    private function getMixinKey($orig) {
    +        $t = '';
    +        foreach ($this->mixinKeyEncTab as $n) $t .= $orig[$n];
    +        return substr($t, 0, 32);
    +    }
    +
    +    private function encWbi($params, $img_key, $sub_key) {
    +        $mixin_key = $this->getMixinKey($img_key . $sub_key);
    +        $curr_time = time();
    +        $chr_filter = "/[!'()*]/";
    +
    +        $query = [];
    +        $params['wts'] = $curr_time;
    +
    +        ksort($params);
    +
    +        foreach ($params as $key => $value) {
    +            $value = preg_replace($chr_filter, '', $value);
    +            $query[] = urlencode($key) . '=' . urlencode($value);
    +        }
    +
    +        $query = implode('&', $query);
    +        $wbi_sign = md5($query . $mixin_key);
    +
    +        return $query . '&w_rid=' . $wbi_sign;
    +    }
    +
    +    private function getWbiKeys() {
    +        $resp = @json_decode(
    +            $this->curl_get(
    +                'https://api.bilibili.com/x/web-interface/nav',
    +                null,
    +                'https://www.bilibili.com/'
    +            ), true
    +        );
    +
    +        if (!$resp) throw new Exception('请求失败');
    +
    +        $img_url = $resp['data']['wbi_img']['img_url'];
    +        $sub_url = $resp['data']['wbi_img']['sub_url'];
    +
    +        return [
    +            'img_key' => substr(basename($img_url), 0, strpos(basename($img_url), '.')),
    +            'sub_key' => substr(basename($sub_url), 0, strpos(basename($sub_url), '.'))
    +        ];
    +    }
    +
    +    private function curl_get($url, $cookies = null, $referer = 'https://www.bilibili.com/', $ua = null, $proxy = null, $header = []) {
    +        $ch = curl_init();
    +        $header[] = "Accept: */*";
    +        $header[] = "Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7";
    +        $header[] = "Connection: close";
    +        $header[]="Referer:https://www.bilibili.com/";
    +        $header[] = "Cache-Control: max-age=0";
    +        curl_setopt_array($ch, [
    +            CURLOPT_HTTPGET         =>  1,
    +            CURLOPT_CUSTOMREQUEST   =>  'GET',
    +            CURLOPT_RETURNTRANSFER  =>  1,
    +            CURLOPT_HTTPHEADER      =>  $header,
    +            CURLOPT_ENCODING        =>  '',
    +            CURLOPT_URL             =>  $url,
    +            CURLOPT_USERAGENT       =>  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.39',
    +            CURLOPT_TIMEOUT         =>  15
    +        ]);
    +
    +        if ($cookies) curl_setopt(
    +            $ch,
    +            CURLOPT_COOKIE,
    +            $cookies
    +        );
    +
    +        if ($referer) curl_setopt_array($ch, [
    +            CURLOPT_AUTOREFERER =>  $referer,
    +            CURLOPT_REFERER     =>  $referer
    +        ]);
    +
    +        $content = curl_exec($ch);
    +        curl_close($ch);
    +        return $content;
    +    }
    +}
    +
    +$c = new Bilibili();
    +echo $c->reQuery(['foo' => '114', 'bar' => '514', 'baz' => 1919810]);
    +// bar=514&baz=1919810&foo=114&wts=1700384803&w_rid=4614cb98d60a43e50c3a3033fe3d116b
    +

    Rust

    需要 serde、serde_json、reqwest、tokio 以及 md5

    use reqwest::header::USER_AGENT;
    +use serde::Deserialize;
    +use std::time::{SystemTime, UNIX_EPOCH};
    +
    +const MIXIN_KEY_ENC_TAB: [usize; 64] = [
    +    46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29,
    +    28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25,
    +    54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52,
    +];
    +
    +#[derive(Deserialize)]
    +struct WbiImg {
    +    img_url: String,
    +    sub_url: String,
    +}
    +
    +#[derive(Deserialize)]
    +struct Data {
    +    wbi_img: WbiImg,
    +}
    +
    +#[derive(Deserialize)]
    +struct ResWbi {
    +    data: Data,
    +}
    +
    +// 对 imgKey 和 subKey 进行字符顺序打乱编码
    +fn get_mixin_key(orig: &[u8]) -> String {
    +    MIXIN_KEY_ENC_TAB
    +        .iter()
    +        .take(32)
    +        .map(|&i| orig[i] as char)
    +        .collect::<String>()
    +}
    +
    +fn get_url_encoded(s: &str) -> String {
    +    s.chars()
    +        .filter_map(|c| match c.is_ascii_alphanumeric() || "-_.~".contains(c) {
    +            true => Some(c.to_string()),
    +            false => {
    +                // 过滤 value 中的 "!'()*" 字符
    +                if "!'()*".contains(c) {
    +                    return None;
    +                }
    +                let encoded = c
    +                    .encode_utf8(&mut [0; 4])
    +                    .bytes()
    +                    .fold("".to_string(), |acc, b| acc + &format!("%{:02X}", b));
    +                Some(encoded)
    +            }
    +        })
    +        .collect::<String>()
    +}
    +
    +// 为请求参数进行 wbi 签名
    +fn encode_wbi(params: Vec<(&str, String)>, (img_key, sub_key): (String, String)) -> String {
    +    let cur_time = match SystemTime::now().duration_since(UNIX_EPOCH) {
    +        Ok(t) => t.as_secs(),
    +        Err(_) => panic!("SystemTime before UNIX EPOCH!"),
    +    };
    +    _encode_wbi(params, (img_key, sub_key), cur_time)
    +}
    +
    +fn _encode_wbi(
    +    mut params: Vec<(&str, String)>,
    +    (img_key, sub_key): (String, String),
    +    timestamp: u64,
    +) -> String {
    +    let mixin_key = get_mixin_key((img_key + &sub_key).as_bytes());
    +    // 添加当前时间戳
    +    params.push(("wts", timestamp.to_string()));
    +    // 重新排序
    +    params.sort_by(|a, b| a.0.cmp(b.0));
    +    // 拼接参数
    +    let query = params
    +        .iter()
    +        .map(|(k, v)| format!("{}={}", get_url_encoded(k), get_url_encoded(v)))
    +        .collect::<Vec<_>>()
    +        .join("&");
    +    // 计算签名
    +    let web_sign = format!("{:?}", md5::compute(query.clone() + &mixin_key));
    +    // 返回最终的 query
    +    query + &format!("&w_rid={}", web_sign)
    +}
    +
    +async fn get_wbi_keys() -> Result<(String, String), reqwest::Error> {
    +    let client = reqwest::Client::new();
    +    let ResWbi { data:Data{wbi_img} } = client
    +    .get("https://api.bilibili.com/x/web-interface/nav")
    +    .header(USER_AGENT,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
    +    .header("Referer","https://www.bilibili.com/")
    +     // SESSDATA=xxxxx
    +    .header("Cookie", "SESSDATA=xxxxx")
    +    .send()
    +    .await?
    +    .json::<ResWbi>()
    +    .await?;
    +    Ok((
    +        take_filename(wbi_img.img_url).unwrap(),
    +        take_filename(wbi_img.sub_url).unwrap(),
    +    ))
    +}
    +
    +fn take_filename(url: String) -> Option<String> {
    +    url.rsplit_once('/')
    +        .and_then(|(_, s)| s.rsplit_once('.'))
    +        .map(|(s, _)| s.to_string())
    +}
    +
    +#[tokio::main]
    +async fn main() {
    +    let keys = get_wbi_keys().await.unwrap();
    +    let params = vec![
    +        ("foo", String::from("114")),
    +        ("bar", String::from("514")),
    +        ("baz", String::from("1919810")),
    +    ];
    +    let query = encode_wbi(params, keys);
    +    println!("{}", query);
    +}
    +
    +// 取自文档描述的测试用例
    +#[cfg(test)]
    +mod tests {
    +    use super::*;
    +
    +    #[test]
    +    fn test_get_filename() {
    +        assert_eq!(
    +            take_filename(
    +                "https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png".to_string()
    +            ),
    +            Some("7cd084941338484aae1ad9425b84077c".to_string())
    +        );
    +    }
    +
    +    #[test]
    +    fn test_get_mixin_key() {
    +        let concat_key =
    +            "7cd084941338484aae1ad9425b84077c".to_string() + "4932caff0ff746eab6f01bf08b70ac45";
    +        assert_eq!(
    +            get_mixin_key(concat_key.as_bytes()),
    +            "ea1db124af3c7062474693fa704f4ff8"
    +        );
    +    }
    +
    +    #[test]
    +    fn test_encode_wbi() {
    +        let params = vec![
    +            ("foo", String::from("114")),
    +            ("bar", String::from("514")),
    +            ("zab", String::from("1919810")),
    +        ];
    +        assert_eq!(
    +            _encode_wbi(
    +                params,
    +                (
    +                    "7cd084941338484aae1ad9425b84077c".to_string(),
    +                    "4932caff0ff746eab6f01bf08b70ac45".to_string()
    +                ),
    +                1702204169
    +            ),
    +            "bar=514&foo=114&wts=1702204169&zab=1919810&w_rid=8f6f2b5b3d485fe1886cec6a0be8c5d4"
    +                .to_string()
    +        )
    +    }
    +}
    +

    Swift

    需要 Alamofireopen in new windowSwiftyJSONopen in new window

    import Foundation
    +import CommonCrypto
    +import Alamofire
    +import SwiftyJSON
    +
    +func biliWbiSign(param: String, completion: @escaping (String?) -> Void) {
    +    func getMixinKey(orig: String) -> String {
    +        return String(mixinKeyEncTab.map { orig[orig.index(orig.startIndex, offsetBy: $0)] }.prefix(32))
    +    }
    +    
    +    func encWbi(params: [String: Any], imgKey: String, subKey: String) -> [String: Any] {
    +        var params = params
    +        let mixinKey = getMixinKey(orig: imgKey + subKey)
    +        let currTime = round(Date().timeIntervalSince1970)
    +        params["wts"] = currTime
    +        params = params.sorted { $0.key < $1.key }.reduce(into: [:]) { $0[$1.key] = $1.value }
    +        params = params.mapValues { String(describing: $0).filter { !"!'()*".contains($0) } }
    +        let query = params.map { "\($0.key)=\($0.value)" }.joined(separator: "&")
    +        let wbiSign = calculateMD5(string: query + mixinKey)
    +        params["w_rid"] = wbiSign
    +        return params
    +    }
    +    
    +   func getWbiKeys(completion: @escaping (Result<(imgKey: String, subKey: String), Error>) -> Void) {
    +       let headers: HTTPHeaders = [
    +           "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    +           "Referer": "https://www.bilibili.com/"
    +       ]
    +       
    +       AF.request("https://api.bilibili.com/x/web-interface/nav", headers: headers).responseJSON { response in
    +           switch response.result {
    +           case .success(let value):
    +               let json = JSON(value)
    +               let imgURL = json["data"]["wbi_img"]["img_url"].string ?? ""
    +               let subURL = json["data"]["wbi_img"]["sub_url"].string ?? ""
    +               let imgKey = imgURL.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? ""
    +               let subKey = subURL.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? ""
    +               completion(.success((imgKey, subKey)))
    +           case .failure(let error):
    +               completion(.failure(error))
    +           }
    +       }
    +   }
    +
    +    
    +    func calculateMD5(string: String) -> String {
    +        let data = Data(string.utf8)
    +        var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
    +        _ = data.withUnsafeBytes {
    +            CC_MD5($0.baseAddress, CC_LONG(data.count), &digest)
    +        }
    +        return digest.map { String(format: "%02hhx", $0) }.joined()
    +    }
    +    
    +    let mixinKeyEncTab = [
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
    +        33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
    +        61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
    +        36, 20, 34, 44, 52
    +    ]
    +    
    +    getWbiKeys { result in
    +        switch result {
    +        case .success(let keys):
    +            let spdParam = param.components(separatedBy: "&")
    +            var spdDicParam = [String: String]()
    +            spdParam.forEach { pair in
    +                let components = pair.components(separatedBy: "=")
    +                if components.count == 2 {
    +                    spdDicParam[components[0]] = components[1]
    +                }
    +            }
    +            
    +            let signedParams = encWbi(params: spdDicParam, imgKey: keys.imgKey, subKey: keys.subKey)
    +            let query = signedParams.map { "\($0.key)=\($0.value)" }.joined(separator: "&")
    +            completion(query)
    +        case .failure(let error):
    +            print("Error getting keys: \(error)")
    +            completion(nil)
    +        }
    +    }
    +}
    +
    +

    CPlusPlus

    需要 c++ 23 标准库,cpropen in new windowcryptoppopen in new windownlohmann/jsonopen in new window 等依赖

    #include <array>    // std::array
    +#include <locale>   // std::locale
    +#include <print>    // std::println
    +
    +/// thrid party libraries
    +#include <cpr/cpr.h>
    +#include <cryptopp/md5.h>
    +#include <cryptopp/hex.h>
    +#include <nlohmann/json.hpp>
    +
    +/*
    + * 注意,假定不会发生错误!
    + */
    +class Wbi {
    +    constexpr static std::array<uint8_t, 64> MIXIN_KEY_ENC_TAB_ = {
    +        46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35,
    +        27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13,
    +        37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4,
    +        22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52
    +    };
    +
    +    /* 获取 md5 hex(lower) */
    +    static std::string Get_md5_hex(const std::string &Input_str) {
    +        CryptoPP::Weak1::MD5 hash;
    +        std::string          md5_hex;
    +
    +        CryptoPP::StringSource ss(Input_str, true,
    +            new CryptoPP::HashFilter(hash,
    +                new CryptoPP::HexEncoder(
    +                    new CryptoPP::StringSink(md5_hex)
    +                )
    +            )
    +        );
    +
    +        std::ranges::for_each(md5_hex, [](char &x) { x = std::tolower(x); });
    +        return md5_hex;
    +    }
    +
    +public:
    +    /* 将 json 转换为 url 编码字符串 */
    +    static std::string Json_to_url_encode_str(const nlohmann::json &Json) {
    +        std::string encode_str;
    +        for (const auto &[key, value]: Json.items()) {
    +            encode_str.append(key).append("=").append(cpr::util::urlEncode(value.is_string() ? value.get<std::string>() : to_string(value))).append("&");
    +        }
    +
    +        // remove the last '&'
    +        encode_str.resize(encode_str.size() - 1, '\0');
    +        return encode_str;
    +    }
    +
    +    /* 获取 wbi key */
    +    static std::pair<std::string, std::string> Get_wbi_key() {
    +        const auto url    = cpr::Url {"https://api.bilibili.com/x/web-interface/nav"};
    +        const auto cookie = cpr::Cookies {
    +            {"SESSDATA", "xxxxxxxxxxxx"},
    +        };
    +        const auto header = cpr::Header {
    +            {"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"},
    +            {"Referer", "https://www.bilibili.com/"},
    +        };
    +        const auto response = cpr::Get(url, cookie, header);
    +
    +        nlohmann::json json = nlohmann::json::parse(response.text);
    +
    +        const std::string img_url = json["data"]["wbi_img"]["img_url"];
    +        const std::string sub_url = json["data"]["wbi_img"]["sub_url"];
    +
    +        std::string img_key = img_url.substr(img_url.find("wbi/") + 4, img_url.find(".png") - img_url.find("wbi/") - 4);
    +        std::string sub_key = sub_url.substr(sub_url.find("wbi/") + 4, sub_url.find(".png") - sub_url.find("wbi/") - 4);
    +        return {img_key, sub_key};
    +    }
    +
    +    /* 获取 mixin key */
    +    static std::string Get_mixin_key(const std::string &Img_key, const std::string &Sub_key) {
    +        std::string raw_wbi_key_str = Img_key + Sub_key;
    +        std::string result;
    +
    +        std::ranges::for_each(MIXIN_KEY_ENC_TAB_, [&result, &raw_wbi_key_str](const uint8_t x) {
    +            result.push_back(raw_wbi_key_str.at(x));
    +        });
    +
    +        return result.substr(0, 32);
    +    }
    +
    +    /* 计算签名(w_rid) */
    +    static std::string Calc_sign(nlohmann::json &Params, const std::string &Mixin_key) {
    +        Params["wts"] = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
    +
    +        const std::string encode_str = Json_to_url_encode_str(Params).append(Mixin_key);
    +        return Get_md5_hex(encode_str);
    +    }
    +};
    +
    +
    +int main() {
    +    nlohmann::json Params;
    +    // qn=32&fnver=0&fnval=4048&fourk=1&avid=1755630705&cid=1574294582
    +    Params["qn"]    = 32;
    +    Params["fnver"] = 0;
    +    Params["fnval"] = 4048;
    +    Params["fourk"] = 1;
    +    Params["avid"]  = 1755630705;
    +    Params["cid"]   = 1574294582;
    +
    +    auto       [img_key, sub_key] = Wbi::Get_wbi_key();
    +    const auto mixin_key          = Wbi::Get_mixin_key(img_key, sub_key);
    +    const auto w_rid              = Wbi::Calc_sign(Params, mixin_key);
    +    std::println("{}", Wbi::Json_to_url_encode_str(Params) + "&w_rid=" + w_rid);
    +}
    +
    avid=1755630705&cid=1574294582&fnval=4048&fnver=0&fourk=1&qn=32&wts=1717922933&w_rid=43571b838a1611fa121189083cfc1784
    +
    + + + diff --git a/docs/misc/time_stamp.html b/docs/misc/time_stamp.html new file mode 100644 index 0000000000..acfc823a12 --- /dev/null +++ b/docs/misc/time_stamp.html @@ -0,0 +1,59 @@ + + + + + + + + + 获取当前时间戳 | BAC Document + + + + +

    获取当前时间戳

    获取当前时间戳

    https://api.bilibili.com/x/report/click/now
    https://api.bilibili.com/x/click-interface/click/now

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    nownum当前的时间戳

    示例:

    curl 'https://api.bilibili.com/x/report/click/now'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "now": 1592666471
    +    }
    +}
    +

    获取适用于 RTC 的时间戳

    https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp

    请求方法: GET

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    timestampnum服务器端UTC时间戳
    microtimenum服务器端UTC时间戳 (毫秒)

    示例:

    curl 'https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "timestamp": 1723899823,
    +    "microtime": 1723899823683
    +  }
    +}
    +

    获取服务器端UTC时间

    https://interface.bilibili.com/serverdate.js

    请求方式:GET

    js回复:

    window.serverdate = Date.UTC(YYYY, M, D, h, m, s);
    +

    示例:

    curl 'https://interface.bilibili.com/serverdate.js'
    +
    查看响应示例:
    window.serverdate = Date.UTC(2021, 4, 16, 17, 31, 8);
    +
    + + + diff --git a/docs/newbie_exam/action.html b/docs/newbie_exam/action.html new file mode 100644 index 0000000000..c320f2eac9 --- /dev/null +++ b/docs/newbie_exam/action.html @@ -0,0 +1,137 @@ + + + + + + + + + 操作 | BAC Document + + + + +

    操作

    提交答题

    提交基础题

    https://api.bilibili.com/x/answer/v4/base/check

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    question_idnum题目id必要拉取基础题api获得
    ans_hashstr选项hash必要拉取基础题api获得
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41012:用户答题提交题目id不合法
    41020:用户基础题已通过
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    passedbool选项是否正确true:选项正确
    false:选项错误

    示例:

    提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

    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'
    +
    查看响应示例:
    {
    +    "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_idnum题目id必要拉取基础题api获得
    ans_hashstr选项hash必要拉取基础题api获得
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41012:用户答题提交题目id不合法
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    passedbool选项是否正确true:选项正确
    false:选项错误

    示例:

    提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

    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'
    +
    查看响应示例:
    {
    +    "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_idnum题目id必要拉取基础题api获得
    ans_hashstr选项hash必要拉取基础题api获得
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41012:用户答题提交题目id不合法
    41023:用户答题记录不存在
    41026:获取用户DB题目信息异常
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    passedbooltrue恒为true

    示例:

    提交题目id为2935的题,选项hash为ffd55cbe0624f466bee2ea3eb576a4d0

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "passed": true
    +    }
    +}
    +

    获取验证码

    https://api.bilibili.com/x/answer/v4/captcha

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41010:用户答题非法访问
    41014:答题过快或错误太多
    41020:用户基础题已通过
    41021:用户基础题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    typestr验证码类型?geetest:极验
    gtstr极验id
    challengestr极验key
    tokenstr(?)
    urlstr(?)

    示例:

    curl 'https://api.bilibili.com/x/answer/v4/captcha' \
    +-b 'SESSDATA=xxxx'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    typesnums自选题分类(旧版)非必要新版不需要此字段
    typestr验证码类型非必要
    bilibili_tokenstr非必要
    bilibili_codestr非必要
    geetest_challengestr极验key非必要
    geetest_seccodestr极验结果+|jordan非必要
    geetest_validatestr极验结果非必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -105:验证码错误
    -400:请求错误
    41010:用户答题非法访问
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41031:自选题未通过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    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'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    typesnums自选题分类(新版)必要
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41010:用户答题非法访问
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41031:自选题未通过
    41052:用户题目类型不合法
    41055:基础附加题未通过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    选择游戏 影视 科教/知识 动画/动漫分类

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    提前交卷

    https://api.bilibili.com/x/answer/v4/submit

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    当当前得分>=60时,可请求本接口提前完成答题

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    41014:答题过快或错误太多
    41023:用户答题记录不存在
    41031:自选题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hidnum答题会话id
    midnum答题用户mid
    scorenum得分
    statusnum0
    numbernum0
    resultstrsucceed
    stagestrresult
    versionstr版本目前为v4
    start_timenum本次答题开始时间时间戳
    first_answernum0
    progressstr
    textstr
    urlstr
    in_reg_auditbool
    editionnum答题版本0:旧版(40+10+50)
    2:新版(40+30+30)
    rewardsnull
    captchanum1

    示例:

    curl 'https://api.bilibili.com/x/answer/v4/submit' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxxx'
    +
    查看响应示例:
    {
    +    "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.html b/docs/newbie_exam/fetch.html new file mode 100644 index 0000000000..efe4d3038f --- /dev/null +++ b/docs/newbie_exam/fetch.html @@ -0,0 +1,147 @@ + + + + + + + + + 拉取题目 | BAC Document + + + + +

    拉取题目

    拉取基础题

    https://api.bilibili.com/x/answer/v4/base

    请求方式:GET

    认证方式:Cookie或APP

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41020:用户基础题已通过
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    questionobj题目内容

    data中的question对象:

    字段类型内容备注
    idnum问题id问题id不代表题图,因为选项是打乱的
    numbernum当前题号
    q_heightnum问题部分总高度
    q_coord_ynum问题部分Y裁剪起始当然是0
    imagestr题图url题目文字+所有的选项文字排版成一张图,存储在bfs中
    fromstr问题来源页面url如:“xx弹幕是否违规”所在的视频页
    optionsarray选项列表
    type_idnum题目父类型id查询自选题分类
    注:36为基础题
    type_namestr分院小电视提示文案如:xx小电视
    type_imagestr分院小电视图标url

    question中的options数组:

    类型内容备注
    0obj选项A
    1obj选项B选项至少2个
    2obj选项C数组长度取决于选项个数
    3obj选项D

    question中的options数组中的对象:

    字段类型内容备注
    numbernum选项序号如:1为A 2为B
    highnum选项部分总高度
    coord_ynum选项部分Y裁剪起始
    hashstr选项hash作为提交对应选项时应传参

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/base' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41023:用户答题记录不存在
    41054:用户附加题已通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    拉取基础题data对象

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/extra' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41023:用户答题记录不存在
    41051:用户答题验证码未通过
    41055:基础附加题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    拉取基础题data对象

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/pro' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.html b/docs/newbie_exam/info.html new file mode 100644 index 0000000000..4795497cf9 --- /dev/null +++ b/docs/newbie_exam/info.html @@ -0,0 +1,390 @@ + + + + + + + + + 查询信息 | BAC Document + + + + +

    查询信息

    查询答题状态

    https://api.bilibili.com/x/answer/v4/status

    请求方式:GET

    认证方式:Cookie或APP

    json回复:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hidnum答题会话id
    midnum答题用户mid
    scorenum当前得分
    statusnum答题状态0:未答题
    2:答题中
    3:已通过
    numbernum当前题号
    resultstr是否通过答题failed:未通过
    succeed:已通过
    stagestr当前答题阶段base:基础题
    extra:附加题
    pro_type:等待选择自选题类型
    pro:自选题
    complete:已完成
    versionstr答题版本当前为v4
    start_timenum本次答题开始时间时间戳
    first_answernum(?)
    progressstr当前答题进度百分比
    60分为100%
    textstr提示文案
    urlstr答题页面url
    in_reg_auditbool是否为第一次答题
    editionnum答题版本0:旧版(40+10+50)
    2:新版(40+30+30)
    rewardsnull(?)
    captchanum是否已经提交验证码1:已提交
    仅新版提交验证码后存在

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/status' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    41014:答题过快或错误太多
    41021:用户基础题未通过
    41031:自选题未通过
    41055:基础附加题未通过
    messagestr错误信息默认为0
    ttlnum1
    dataarray父分类列表

    data数组:

    类型内容备注
    0obj父分类1
    nobj父分类(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    idnum父分类id
    namestr父分类名
    fieldsarray子分类列表

    data数组中的对象中的fields数组:

    类型内容备注
    0obj子分类1
    nobj子分类(n+1)
    ……obj…………

    fields数组中的对象:

    字段类型内容备注
    idnum子分类id
    namestr子分类名

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/pro/type' \
    +-b 'SESSDATA=xxx'
    +

    旧版edition=0返回:

    查看响应示例:
    {
    +    "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返回:

    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    hidnum答题会话id必要

    json回复:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    41023:用户答题记录不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    hidnum答题会话id
    midnum答题用户mid
    membernum
    scorenum得分
    levelnum用户等级
    first_passnum
    unamestr用户昵称
    facestr用户头像url
    statusstr答题结果failed:未通过
    succeed:已通过
    question_typesarray已选择的自选题列表
    powerarray自选题分类得分情况
    start_timenum开始答题时间时间戳
    shareobj
    can_show_rank_btnbool
    is_same_userbool
    view_morestr
    video_infoobj
    main_tidsarray
    sub_tidsarray
    power_resultnull
    score_ratenum分数超过平均用户的百分比
    permissionobj
    rewardsnull

    示例:

    curl -G 'https://api.bilibili.com/x/answer/v4/result' \
    +--data-urlencode 'hid=1615088061307609' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +
    + + + diff --git a/docs/note/action.html b/docs/note/action.html new file mode 100644 index 0000000000..bf4beeb40f --- /dev/null +++ b/docs/note/action.html @@ -0,0 +1,63 @@ + + + + + + + + + 笔记操作 | BAC Document + + + + +

    笔记操作

    保存视频笔记

    https://api.bilibili.com/x/note/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    note_idnum笔记id非必要创建时无需此项
    titlestr笔记标题必要
    summarystr笔记预览文本必要
    contentstr笔记正文json序列必要格式见附表
    tagsstr笔记跳转标签列表非必要
    clsnum1非必要作用尚不明确
    fromstr提交类型非必要auto自动提交
    save手动提交
    close关闭时自动提交
    cont_lennum正文字数非必要
    platformstr平台非必要可为web
    publishnum是否公开笔记非必要0不公开
    1公开
    auto_commentnum是否添加到评论区非必要0不添加
    1添加
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -101账号未登录
    -111csrf校验失败
    -400请求错误
    79508该稿件已存在笔记,无法新增
    79513笔记所属视频不合法
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    note_idnum笔记id

    示例:

    保存内容为加粗的STRONG的笔记3809605586518023av970322090

    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'
    +
    查看响应示例:
    {
    +  "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 ):

    参数名类型内容必要性备注
    oidnum目标稿件avid必要
    note_idnum笔记id非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除稿件av457253380下的笔记4075968478576647

    curl 'https://api.bilibili.com/x/note/del' \
    +--data-urlencode 'oid=457253380' \
    +--data-urlencode 'note_id=4075968478576647' \
    +--data-urlencode 'csrf=xxx'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +
    + + + diff --git a/docs/note/index.html b/docs/note/index.html new file mode 100644 index 0000000000..5c629837a4 --- /dev/null +++ b/docs/note/index.html @@ -0,0 +1,110 @@ + + + + + + + + + 视频笔记 | BAC Document + + + + +

    视频笔记

    2020-11-16 B站推出了测试版的功能——"视频笔记",与视频稿件关联,为富文本模式,可供记录观看视频时的感悟以及视频中的重要内容,目前只可在web端操作

    笔记分为私有笔记和公开笔记,一个稿件只能添加一篇私有笔记,但可以公开多篇笔记

    公开笔记与【专栏】性质相同,使用cvid寻址相应的公开笔记


    继续查看:


    附表-笔记正文序列格式

    根数组:

    类型内容备注
    0obj第1个元素
    nobj第(n+1)个元素
    ……obj…………

    根数组中的对象:

    字段类型内容备注
    attributesobj元素属性无属性无此项
    insertstr元素内容为跳转/图片时无此项
    insertobj元素跳转信息非跳转/图片时无此项

    对象中的attributes对象:

    字段类型内容备注
    boldbool是否加粗
    strikebool是否删除线
    underlinebool是否下划线
    backgroundstr背景颜色
    colorstr文字颜色
    liststr列表属性ordered有序列表/bullet无序列表
    sizestr文字字号

    对象中的insert对象:

    字段类型内容备注
    tagobj跳转标签二选一
    imageUploadobj笔记图片二选一

    insert中的tag对象:

    字段类型内容备注
    cidnum视频cid
    statusnum0作用尚不明确
    indexnum在稿件中的分P索引
    secondsnum视频进度
    cidCountnum稿件总分P数
    keystr标签创建时间戳
    titlestroutput作用尚不明确

    insert中的imageUpload对象:

    字段类型内容备注
    urlstr图片链接
    statusstrdone作用尚不明确
    widthnum图片宽度-2

    示例:

    以下笔记正文序列包含字号加粗高亮普通文本格式

    [
    +    {
    +        "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/note/info.html b/docs/note/info.html new file mode 100644 index 0000000000..6985dda4c2 --- /dev/null +++ b/docs/note/info.html @@ -0,0 +1,133 @@ + + + + + + + + + 笔记详细信息 | BAC Document + + + + +

    笔记详细信息

    查询该稿件是否禁止笔记

    https://api.bilibili.com/x/note/is_forbid

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -400请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    forbid_note_entrancebool是否禁止笔记true禁止笔记
    false允许笔记

    示例:

    查询视频稿件av338677252是否禁止笔记

    curl 'https://api.bilibili.com/x/note/info' \
    +--data-urlencode 'aid=338677252'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "forbid_note_entrance": false
    +    }
    +}
    +

    查询私有笔记内容

    https://api.bilibili.com/x/note/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    note_idnum笔记id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -400请求错误
    -101账号未登录
    79502笔记详情未找到
    79503笔记正文未找到
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    arcobj对应视频稿件信息
    audit_statusnum0作用暂不明确
    cid_countnum视频分P数
    contentstr笔记正文json序列格式见附表
    forbid_note_entrancebool
    pub_reasonstr公开笔记相关原因
    pub_statusnum公开笔记状态1未公开
    2已公开
    4退回
    pub_versionnum
    summarystr笔记预览文本
    tagsarray笔记跳转标签列表
    titlestr笔记标题

    data中的arc对象:

    字段类型内容备注
    oidnum目标id
    oid_typenum目标id类型0视频(oid=avid)
    titlestr视频标题
    picstr视频封面
    statusnum
    descstr视频简介

    data中的tags数组:

    类型内容备注
    0obj标签1
    nobj标签(n+1)按照笔记中位置排列
    ……obj…………

    tags中的对象:

    字段类型内容备注
    cidnum视频cid
    statusnum0作用尚不明确
    indexnum在稿件中的分P索引
    secondsnum视频进度
    posnum笔记中位置

    示例:

    查询视频av338677252中笔记24508729145690112的内容

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    cvidnum笔记对应的专栏cvid必要非笔记id

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0成功
    -400请求错误
    79514公开笔记详情未找到
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    cvidnum公开笔记对应的专栏cvid
    note_idnum笔记id
    titlestr笔记标题
    summarystr笔记预览
    contentstr笔记正文json序列格式见附表
    cid_countnum(?)
    pub_statusnum公开状态
    tagsarray
    arcobj稿件信息
    authorobj作者信息
    forbid_note_entrancebool

    data中的arc对象:

    字段类型内容备注
    oidnum目标id
    oid_typenum目标id类型0视频(oid=avid)
    titlestr标题
    statusnum(?)
    picstr封面url
    descstr简介

    data中的author对象:

    字段类型内容备注
    midnum用户mid
    namestr昵称
    facestr头像url
    levelnum用户等级
    vip_infoobj会员信息
    pendantobj头像框信息

    示例:

    查看公开笔记cv15160286的信息

    curl 'https://api.bilibili.com/x/note/publish/info' \
    +--data-urlencode 'cvid=15160286'
    +
    查看响应示例:
    {
    +    "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.html b/docs/note/list.html new file mode 100644 index 0000000000..2c37804802 --- /dev/null +++ b/docs/note/list.html @@ -0,0 +1,389 @@ + + + + + + + + + 笔记列表 | BAC Document + + + + +

    笔记列表

    查询稿件私有笔记

    https://api.bilibili.com/x/note/list/archive

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    该接口只能查询私有笔记,无法查询公开笔记

    url参数:

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    noteIdsarray笔记列表无笔记则无此项
    可能后续会允许视频添加多个笔记

    data中的noteIds数组:

    类型内容备注
    0str笔记id

    示例:

    查询视频av970322090的笔记id

    curl 'https://api.bilibili.com/x/note/list/archive' \
    +--data-urlencode 'oid=970322090' \
    +--data-urlencode 'oid_type=0' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1,
    +    "data":{
    +        "noteIds":[
    +            "3809605586518023"
    +        ]
    +    }
    +}
    +

    查询用户私有笔记

    https://api.bilibili.com/x/note/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    psnum每页项数必要
    pnnum页码必要
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    pageobj页面信息

    data中的list数组:

    类型内容备注
    0obj笔记1
    nobj笔记(n+1)按照创建顺序排列
    ……obj…………

    list中的对象:

    字段类型内容备注
    titlestr笔记标题
    summarystr笔记预览文本
    mtimestr提交时间YYYY-MM-DD hh:mm
    arcobj视频信息
    note_idnum笔记id
    audit_statusnum0作用尚不明确
    web_urlstr笔记h5页url
    note_id_strstr笔记id str
    messagestr更新信息"更新于 YYYY-MM-DD hh:mm"
    forbid_note_entrancebool(?)
    likesnum点赞数
    has_likebool是否点赞

    list中的arc中的对象:

    字段类型内容备注
    oidnum目标id
    bvidstr稿件bvid
    picstr稿件封面图片url
    descstr视频简介
    statusnum0
    oid_typenum目标id类型0视频(oid=avid)
    aidnum稿件avid

    data中的page对象:

    字段类型内容备注
    totalnum笔记总数
    sizenum每页项数
    numnum页码

    示例:

    curl 'https://api.bilibili.com/x/note/list' \
    +--data-urlencode 'ps=10' \
    +--data-urlencode 'pn=1'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    oidnum目标id必要
    oid_typenum目标id类型必要0视频(oid=avid)
    psnum每页项数必要
    pnnum页码必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray公开笔记列表
    pageobj页面信息
    show_public_notebool
    messagestr

    data中的list数组:

    类型内容备注
    0obj笔记1
    nobj笔记(n+1)按照创建顺序排列
    ……obj…………

    list中的对象:

    字段类型内容备注
    cvidnum公开笔记对应的专栏cvid
    titlestr笔记标题
    summarystr笔记预览
    pubtimestr发布时间YYYY-MM-DD hh:mm
    web_urlstr笔记h5页url
    messagestr更新信息"更新于 YYYY-MM-DD hh:mm"
    authorobj作者信息
    likesnum点赞数
    has_likebool是否点赞需要登录(Cookie)

    list中的对象中的author对象:

    字段类型内容备注
    midnum用户mid
    namestr昵称
    facestr头像url
    levelnum用户等级
    vip_infoobj会员信息
    pendantobj头像框信息

    示例:

    查询视频av338677252的公开笔记列表

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    psnum每页项数必要
    pnnum页码必要
    csrfstrCSRF Token(位于cookie)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    pageobj页面信息

    data中的list数组:

    类型内容备注
    0obj笔记1
    nobj笔记(n+1)按照创建顺序排列
    ……obj…………

    data中的page对象:

    字段类型内容备注
    totalnum笔记总数
    sizenum每页项数
    numnum页码

    示例:

    curl 'https://api.bilibili.com/x/note/publish/list/user' \
    +--data-urlencode 'ps=10' \
    +--data-urlencode 'pn=1'
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "page": {
    +            "total": 0,
    +            "size": 10,
    +            "num": 1
    +        }
    +    }
    +}
    +
    + + + diff --git a/docs/search/hot.html b/docs/search/hot.html new file mode 100644 index 0000000000..baf2560a20 --- /dev/null +++ b/docs/search/hot.html @@ -0,0 +1,473 @@ + + + + + + + + + 默认搜索&热搜 | BAC Document + + + + +

    默认搜索&热搜

    获取默认搜索内容(web端)

    https://api.bilibili.com/x/web-interface/wbi/search/default

    https://api.bilibili.com/x/web-interface/search/default (旧链接)

    请求方式:GET

    鉴权方式:Wbi 签名

    默认搜索为搜索框中默认填充内容,用于官方推荐内容,若不输入点击搜索按钮跳转为url中的链接

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seidstr搜索seid
    idnum默认搜索id
    typenum0
    show_namestr显示文字
    namestr
    goto_typenum跳转类型1:视频
    goto_valuestr搜索目标id视频:稿件avid
    urlstr搜索目标跳转url

    示例:

    curl 'https://api.bilibili.com/x/web-interface/search/default'
    +
    查看响应示例:
    {
    +    "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"
    +    }
    +}
    +

    获取热搜列表

    https://api.bilibili.com/x/web-interface/search/square

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    limitnum结果限制必要范围 [1, 50]
    platformstr平台标识不必要web: web 端

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为空
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    trendingobj热搜榜单套了个娃

    data中的trending对象:

    字段类型内容备注
    titlestr标题
    trackidstr跟踪 ID?
    listarray热搜列表
    top_listarray

    trending中的list数组:

    类型内容备注
    0obj热搜 1
    1obj热搜 2
    ……obj……
    nobj热搜 (n+1)

    list数组中的对象:

    字段类型内容备注
    keywordstr关键词
    show_namestr显示文字
    iconstr图标 URL
    uristr
    gotostr

    示例:

    获取热搜列表, 数量限制 4

    curl -G --url 'https://api.bilibili.com/x/web-interface/search/square' \
    +--url-query 'limit=4'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "trending": {
    +      "title": "bilibili热搜",
    +      "trackid": "8079760748892487175",
    +      "list": [
    +        {
    +          "keyword": "马克龙祝贺中国世界前两名",
    +          "show_name": "马克龙祝贺中国世界前两名",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +          "uri": "",
    +          "goto": ""
    +        },
    +        {
    +          "keyword": "小孩电竞世界杯夺冠",
    +          "show_name": "小孩电竞世界杯夺冠",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +          "uri": "",
    +          "goto": ""
    +        },
    +        {
    +          "keyword": "孙颖莎说我全勤下班了",
    +          "show_name": "孙颖莎说我全勤下班了",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +          "uri": "",
    +          "goto": ""
    +        },
    +        {
    +          "keyword": "7月广东新冠新增一万余例",
    +          "show_name": "7月广东新冠新增一万余例",
    +          "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +          "uri": "",
    +          "goto": ""
    +        }
    +      ],
    +      "top_list": []
    +    }
    +  }
    +}
    +

    获取热搜列表(web端)

    https://s.search.bilibili.com/main/hotword

    请求方式:GET

    榜单每隔固定时间统计一次,请求后返回搜索前10的关键词

    带有转义

    json回复:

    根对象:

    字段类型内容备注
    exp_strstr???
    codenum返回值0:成功
    costobj详细搜索用时大概是吧?
    seidstr搜索seid
    timestampnum榜单统计时间时间戳
    messagestr错误信息默认为success
    listarray热搜列表

    list数组:

    类型内容备注
    0obj榜单第1名
    nobj榜单第(n+1)名按照名次顺序
    10obj榜单第10名最后一项

    list数组中的对象:

    字段类型内容备注
    statusstr
    hot_idnum热词id大概是吧?
    keywordstr关键词
    resource_idnum资源id
    goto_typenum0
    resarraynull
    show_namestr完整关键词
    posnum名次1-10
    word_typenum条目属性4: 新
    5: 热
    6: [雾,咒,小丑(愚人节)] 具体看icon7: 直播中
    8: 默认(无标签)
    9: 梗
    11: 话题
    12: 独家
    idnum名次1-10
    goto_valuestr
    live_idarraynull
    name_typestr
    iconstr图标url

    示例:

    curl 'https://s.search.bilibili.com/main/hotword'
    +
    查看响应示例:
    {
    +	"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

    榜单每隔固定时间统计一次

    带有转义

    url参数:

    参数名类型内容必要性备注
    limitnum热搜数量非必要留空为20, 最大为100

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum返回值默认为1

    data对象:

    字段类型内容备注
    trackidnum不知用途
    listarray热搜列表

    list数组:

    类型内容备注
    0obj榜单第1名
    nobj榜单第(n+1)名按照名次顺序
    20/limitobj榜单第20名最后一项

    list数组中的对象:

    字段类型内容备注
    positionnum名次1-20/limit
    keywordstr关键词
    show_namestr完整关键词
    word_typenum条目属性同 web 端
    iconstr图标url
    hot_idnum热词id大概是吧?

    示例:

    curl 'https://app.bilibili.com/x/v2/search/trending/ranking'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"trackid": "2578006123492681222",
    +		"list": [{
    +			"position": 1,
    +			"keyword": "列车延误乘务员哽咽安抚乘客",
    +			"show_name": "列车延误乘务员哽咽安抚乘客",
    +			"word_type": 5,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +			"hot_id": 107814,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 2,
    +			"keyword": "黑神话悟空首次线下试玩",
    +			"show_name": "黑神话悟空首次线下试玩",
    +			"word_type": 5,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +			"hot_id": 107781,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 3,
    +			"keyword": "22万人打出9.9分的动画",
    +			"show_name": "22万人打出9.9分的动画",
    +			"word_type": 6,
    +			"icon": "https://i0.hdslb.com/bfs/legacy/463fa23613670218608e68247a137dd071c0e9c8.png",
    +			"hot_id": 107818,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 4,
    +			"keyword": "冰冻近五万年线虫被复活",
    +			"show_name": "冰冻近五万年线虫被复活",
    +			"word_type": 5,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
    +			"hot_id": 107774,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 5,
    +			"keyword": "LNG前任和现任的较量",
    +			"show_name": "LNG前任和现任的较量",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107853,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 6,
    +			"keyword": "LOL手游剑姬女警新皮",
    +			"show_name": "LOL手游剑姬女警新皮",
    +			"word_type": 8,
    +			"hot_id": 107841,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 7,
    +			"keyword": "抽奖中金条却因过号被取消",
    +			"show_name": "抽奖中金条却因过号被取消",
    +			"word_type": 8,
    +			"hot_id": 107817,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 8,
    +			"keyword": "雪王到长城开蜜雪冰城",
    +			"show_name": "雪王到长城开蜜雪冰城",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107849,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 9,
    +			"keyword": "堡垒之夜联动终结者",
    +			"show_name": "堡垒之夜联动终结者",
    +			"word_type": 8,
    +			"hot_id": 107846,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 10,
    +			"keyword": "王者新英雄海诺动画",
    +			"show_name": "王者新英雄海诺动画",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107870,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 11,
    +			"keyword": "周星驰功夫10万字拆解",
    +			"show_name": "周星驰功夫10万字拆解",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107848,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 12,
    +			"keyword": "张杰铁粉彭奶奶去世",
    +			"show_name": "张杰铁粉彭奶奶去世",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107840,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 13,
    +			"keyword": "李玟二姐回应礼服争议",
    +			"show_name": "李玟二姐回应礼服争议",
    +			"word_type": 8,
    +			"hot_id": 107833,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 14,
    +			"keyword": "洪水中飘来冰箱市民取走饮料",
    +			"show_name": "洪水中飘来冰箱市民取走饮料",
    +			"word_type": 8,
    +			"hot_id": 107802,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 15,
    +			"keyword": "LOL斗魂觉醒佛耶戈语音",
    +			"show_name": "LOL斗魂觉醒佛耶戈语音",
    +			"word_type": 8,
    +			"hot_id": 107790,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 16,
    +			"keyword": "全面落实带薪休假制度",
    +			"show_name": "全面落实带薪休假制度",
    +			"word_type": 4,
    +			"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
    +			"hot_id": 107839,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 17,
    +			"keyword": "花少北 把病娇治好了",
    +			"show_name": "花少北 把病娇治好了",
    +			"word_type": 8,
    +			"hot_id": 107782,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 18,
    +			"keyword": "2.28米高的村超娃",
    +			"show_name": "2.28米高的村超娃",
    +			"word_type": 8,
    +			"hot_id": 107805,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 19,
    +			"keyword": "当在动漫中不小心撞到",
    +			"show_name": "当在动漫中不小心撞到",
    +			"word_type": 8,
    +			"hot_id": 107832,
    +			"is_commercial": "0"
    +		}, {
    +			"position": 20,
    +			"keyword": "台风卡努路径趋向日本",
    +			"show_name": "台风卡努路径趋向日本",
    +			"word_type": 8,
    +			"hot_id": 107800,
    +			"is_commercial": "0"
    +		}],
    +		"exp_str": "8000#5508#6604#7703",
    +		"hotword_egg_info": "0"
    +	}
    +}
    +
    + + + diff --git a/docs/search/search_request.html b/docs/search/search_request.html new file mode 100644 index 0000000000..797d22c54e --- /dev/null +++ b/docs/search/search_request.html @@ -0,0 +1,1151 @@ + + + + + + + + + 搜索 | BAC Document + + + + +

    搜索

    B站于2022年8月24日更新了搜索api,增加了一大堆Cookies的校验,如果Cookies不足会返回-412搜索被拦截。如果没有cookies的话,请在搜索之前先GET一遍 https://bilibili.com 以获取cookies

    综合搜索(web端)

    https://api.bilibili.com/x/web-interface/wbi/search/all/v2

    https://api.bilibili.com/x/web-interface/search/all/v2 (旧链接)

    方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Wbi 签名

    返回和关键字相关的20条信息

    综合搜索为默认搜索方式,主要用于优先搜索用户、影视、番剧、游戏、话题等,并加载第一页的20项相关视频,还用于展示各个类型的结果数目,便于进一步分类搜索

    url参数:

    参数名类型内容必要性备注
    keywordstr需要搜索的关键词必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seidstr搜索id
    pagenum页数固定为1
    page_sizenum每页条数固定为20
    numResultsnum总条数最大值为1000
    numPagesnum分页数最大值为50
    suggest_keywordstr作用尚不明确
    rqt_typestrsearch作用尚不明确
    cost_timeobj详细搜索用时大概是吧?
    exp_listobj???作用尚不明确
    egg_hitnum0作用尚不明确
    pageinfoobj分类页数信息
    top_tlistobj分类结果数目信息
    show_columnnum0作用尚不明确
    show_module_listarray返回结果类型列表
    resultarray结果列表

    data中的cost_time对象:

    字段类型内容备注
    params_checkstr
    illegal_handlerstr
    as_response_formatstr
    as_requeststr
    save_cachestr
    deserialize_responsestr
    as_request_formatstr
    totalstr
    main_handlerstr

    data中的pageinfo对象:

    字段类型内容备注
    pgcobj-
    live_roomobj直播数
    photoobj相簿数
    topicobj话题数
    videoobj视频数
    userobj-
    bili_userobj用户数
    media_ftobj电影数
    articleobj专栏数
    media_bangumiobj番剧数
    specialobj-
    operation_cardobj-
    upuserobj-
    movieobj-
    live_allobj-
    tvobj-
    liveobj直播间数
    bangumiobj-
    activityobj活动数
    live_masterobj-
    live_userobj主播数

    pageinfo中的所有对象:

    字段类型内容备注
    numResultsnum总计数量
    totalnum总计数量
    pagesnum分页数量

    data中的top_tlist对象:

    字段类型内容备注
    pgcnum-
    live_roomnum直播数
    photonum相簿数
    topicnum话题数
    videonum视频数
    usernum-
    bili_usernum用户数
    media_ftnum电影数
    articlenum专栏数
    media_banguminum番剧数
    cardnum-
    operation_cardnum-
    upusernum-
    movienum-
    live_allnum-
    tvnum-
    livenum直播间数
    specialnum-
    banguminum-
    activitynum活动数
    live_masternum-
    live_usernum主播数

    data中的show_module_list数组:

    类型内容备注
    0stractivity
    1strweb_game游戏
    2strcard
    3strmedia_bangumi番剧
    4strmedia_ft电影
    5strbili_user用户
    6struser
    7strstar
    8strvideo视频

    data中的result数组:

    类型内容备注
    0obj-
    1obj游戏结果
    2obj-
    3obj番剧结果
    4obj电影结果
    5obj用户结果
    6obj-
    7obj-
    8obj视频结果

    result数组中的对象:

    字段类型内容备注
    result_typestr结果类型result数组对应的项相同
    dataarray搜索结果结果为该项所对应的对象条目格式

    result数组中的对象中的data数组:

    类型内容备注
    0obj搜索结果1对象详情见搜索结果
    nobj搜索结果(n+1)按照参数指定的顺序排列
    ……obj…………

    示例:

    使用综合搜索进行搜索关键字洛天依

    curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \
    +--data-urlencode 'keyword=洛天依' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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": "【<em class=\"keyword\">洛天依</em>】2020.7.12<em class=\"keyword\">洛天依</em>生日会",
    +                        "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/布料/水手服】<em class=\"keyword\">洛天依</em> - 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": "【<em class=\"keyword\">洛天依</em>原创】自言自语",
    +                        "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/wbi/search/type

    https://api.bilibili.com/x/web-interface/search/type (旧链接)

    请求方式:GET

    鉴权方式:Wbi 签名, Cookie 中含有 buvid3 字段, Referer 在 .bilibili.com 下, User-Agent 不含敏感子串

    根据关键词进行搜索,返回结果每页20项

    url参数:

    参数名类型内容必要性备注
    search_typestr搜索目标类型必要视频:video
    番剧:media_bangumi
    影视:media_ft
    直播间及主播:live
    直播间:live_room
    主播:live_user
    专栏:article
    话题:topic
    用户:bili_user
    相簿:photo
    keywordstr需要搜索的关键词必要
    orderstr结果排序方式非必要搜索类型为视频、专栏及相簿时:
    默认为totalrank
    综合排序:totalrank
    最多点击:click
    最新发布:pubdate
    最多弹幕:dm
    最多收藏:stow
    最多评论:scores
    最多喜欢:attention(仅用于专栏)
    ----------------------------
    搜索结果为直播间时:
    默认为online
    人气直播:online
    最新开播:live_time
    ----------------------------
    搜索结果为用户时:
    默认为0
    默认排序:0
    粉丝数:fans
    用户等级:level
    order_sortnum用户粉丝数及等级排序顺序非必要仅用于搜索用户
    默认为0
    由高到低:0
    由低到高:1
    user_typenum用户分类筛选非必要仅用于搜索用户
    默认为0
    全部用户:0
    up主:1
    普通用户:2
    认证用户:3
    durationnum视频时长筛选非必要仅用于搜索视频
    默认为0
    全部时长:0
    10分钟以下:1
    10-30分钟:2
    30-60分钟:3
    60分钟以上:4
    tidsnum视频分区筛选非必要仅用于搜索视频
    默认为0
    全部分区:0
    筛选分区:目标分区tid
    category_idnum专栏及相簿分区筛选非必要搜索结果为专栏时:
    默认为0
    全部分区:0
    动画:2
    游戏:1
    影视:28
    生活:3
    兴趣:29
    轻小说:16
    科技:17
    --------
    搜索结果为相簿时:
    默认为0
    全部分区:0
    画友:1
    摄影:2
    pagenum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    seidnum搜索seid
    pagenum当前页码
    pagesizenum每页条数固定20
    numResultsnum总条数最大值为1000
    numPagesnum总计分页数最大值为50
    suggest_keywordstr作用尚不明确
    rqt_typestrsearch作用尚不明确
    cost_timeobj详细搜索用时大概
    exp_listobj???作用尚不明确
    egg_hitnum0作用尚不明确
    pageinfoobj副分页信息只在搜索类型为直播间及主播有效
    result搜索类型为直播间及主播时:obj
    搜索类型为其他时:array
    结果列表
    show_columnnum0作用尚不明确

    data中的cost_time对象:

    字段类型内容备注
    params_checkstr
    illegal_handlerstr
    as_response_formatstr
    as_requeststr
    save_cachestr
    deserialize_responsestr
    as_request_formatstr
    totalstr
    main_handlerstr

    data中的pageinfo对象:

    字段类型内容备注
    live_roomobj直播间信息
    live_userobj主播信息

    pageinfo中的live_roomlive_user对象:

    字段类型内容备注
    numPagesnum总计页数
    numResultsnum总计项数
    totalnum总计项数
    pagesnum总计页数

    搜索类型为直播间及主播时:

    data中的result对象:

    字段类型内容备注
    live_roomarray直播间信息
    live_userarray主播信息

    result中的live_room数组:

    类型内容备注
    0obj直播间搜索结果1对象详情见搜索结果
    nobj直播间搜索结果(n+1)按照参数指定的顺序排列
    ……obj…………

    result中的live_user数组:

    类型内容备注
    0obj主播搜索结果1对象详情见搜索结果
    nobj主播搜索结果(n+1)按照参数指定的顺序排列
    ……obj…………

    搜索类型为其他时:

    data中的result数组:

    类型内容备注
    0obj搜索结果1对象详情见搜索结果
    nobj搜索结果(n+1)按照参数指定的顺序排列
    ……obj…………

    示例:

    按照关键词少年搜索视频,默认排序,全部时长,全部分区,第1页

    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'
    +
    查看响应示例:
    {
    +    "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": "梦然-《<em class=\"keyword\">少年</em>》官方版",
    +                "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": "你还是从前的那个<em class=\"keyword\">少年</em>吗?来自元气少女超甜的《<em class=\"keyword\">少年</em>》",
    +                "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": "【马化腾】我还是充钱那个<em class=\"keyword\">少年</em>,没有一丝丝改变~",
    +                "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": "最近突然火的《<em class=\"keyword\">少年</em>》太好听了,单曲循环了很多遍!",
    +                "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": "最近火爆全网的《<em class=\"keyword\">少年</em>》,你喜欢吗?",
    +                "description": "BGM:少年——梦然\n花了好多心思的作品,求个三连呀φ(&gt;ω&lt;*)",
    +                "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": "终于找到日语版《<em class=\"keyword\">少年</em>》了!开口就是恋爱的味道,岛国也要被洗脑",
    +                "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": "【全明星】<em class=\"keyword\">少年</em>",
    +                "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": "【日本<em class=\"keyword\">少年</em>混剪】氧气/心动瞬间/薄荷味的夏天要来了",
    +                "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": "真的不是原唱?!《<em class=\"keyword\">少年</em>》超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": "【川普】我还是曾经那个<em class=\"keyword\">少年</em>",
    +                "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": "【完整版日语版《<em class=\"keyword\">少年</em>》本尊来了】竟是国人元老唱见~",
    +                "description": "词:lolo2513&amp;梦然\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": "用三十部动漫唱一首《<em class=\"keyword\">少年</em>》——你长大了,你还在追番吗?",
    +                "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": "大爷:我还是从前那个<em class=\"keyword\">少年</em>,没有一丝丝改变!",
    +                "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": "<em class=\"keyword\">少年</em>黑帮“新龙会”覆灭记!史上最“中二”的黑社会,作案后竟留下错别字?",
    +                "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": "梦开始的地方,一年前那个不会剪辑的<em class=\"keyword\">少年</em>阿强。",
    +                "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": "<em class=\"keyword\">少年</em>人,这是修行。",
    +                "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岁中国<em class=\"keyword\">少年</em>韩国综艺上怒怼:老子来自中国!现场一片哗然",
    +                "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": "我已不再是<em class=\"keyword\">少年</em>,但你们终究活在我心里",
    +                "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": "《<em class=\"keyword\">少年</em>》霸占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才叫日系美<em class=\"keyword\">少年</em>!",
    +                "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.html b/docs/search/search_response.html new file mode 100644 index 0000000000..d9fb0045fa --- /dev/null +++ b/docs/search/search_response.html @@ -0,0 +1,345 @@ + + + + + + + + + 搜索响应条目 | BAC Document + + + + +

    搜索响应条目

    本页为搜索结果数组result中的对象的说明

    对象类型1-结果为视频

    字段类型内容备注
    typestr结果类型固定为video
    idnum结果为稿件avid
    authorstrUP主昵称
    midnumUP主mid
    typeidstr视频分区tid
    typenamestr视频子分区名
    arcurlstr视频重定向url
    aidnum稿件avid
    bvidstr稿件bvid
    titlestr视频标题关键字用xml标签<em class="keyword">标注
    descriptionstr视频简介
    arcrankstr0作用尚不明确
    picstr视频封面url
    playnum视频播放量
    video_reviewnum视频弹幕量
    favoritesnum视频收藏数
    tagstr视频TAG每项TAG用,分隔
    reviewnum视频评论数
    pubdatenum视频投稿时间时间戳
    senddatenum视频发布时间时间戳
    durationstr视频时长HH:MM
    badgepayboolfalse作用尚不明确
    hit_columnsarray关键字匹配类型
    view_typestr作用尚不明确
    is_paynum0作用尚不明确
    is_union_videonum是否为合作视频0:否
    1:是
    rec_tagsnull-作用尚不明确
    new_rec_tagsarray作用尚不明确
    rank_scorenum结果排序量化值

    视频条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:标题匹配
    description:简介匹配
    author:UP主昵称匹配
    tag:视频TAG匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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】初音未来《<em class=\"keyword\">买买买</em>》【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-结果为番剧&影视

    字段类型内容备注
    typestr结果类型media_bangumi:番剧
    media_ft:影视
    media_idnum剧集mdid
    season_idnum剧集ssid
    titlestr剧集标题关键字用xml标签<em class="keyword">标注
    org_titlestr剧集原名关键字用xml标签<em class="keyword">标注
    可为空
    coverstr剧集封面url
    media_typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    areasstr地区
    stylesstr风格
    cvstr声优
    staffstr制作组
    play_statenum0作用尚不明确
    goto_urlstr剧集重定向url
    descstr简介
    cornernum角标有无2:无
    13:有
    pubtimenum开播时间时间戳
    media_modenum2作用尚不明确
    is_avidboolfalse作用尚不明确
    fix_pubtime_strstr开播时间重写信息优先级高于pubtime
    可为空
    media_score有效时:obj
    无效时:null
    评分信息
    hit_columns有效时:array
    无效时:null
    关键字匹配类型
    all_net_namestr作用尚不明确
    all_net_iconstr作用尚不明确
    all_net_urlstr作用尚不明确
    angle_titlestr角标内容
    angle_colornum角标颜色0:红色
    2:橙色
    display_infoarray剧集标志信息
    hit_epidsstr关键字匹配分集标题的分集epid多个用,分隔
    pgc_season_idnum剧集ssid
    season_typenum剧集类型1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    season_type_namestr剧集类型文字
    selection_stylestr分集选择按钮风格horizontal:横排式
    grid:按钮式
    ep_sizenum结果匹配的分集数
    urlstr剧集重定向url
    button_textstr观看按钮文字
    is_follownum是否追番需要登录(SESSDATA)
    未登录则恒为0
    0:否
    1:是
    is_selectionnum1作用尚不明确
    epsarray结果匹配的分集信息
    badgesarray剧集标志信息

    番剧条目中的media_score对象:

    字段类型内容备注
    user_countnum总计评分人数
    scorenum评分

    番剧条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:标题匹配
    org_title:原标题
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    番剧条目中的display_info数组:

    类型内容备注
    0obj剧集标志信息

    display_info数组中的对象:

    字段类型内容备注
    bg_color_nightstr夜间背景颜色颜色码
    textstr剧集标志颜色码
    border_colorstr背景颜色颜色码
    bg_stylenum1
    text_colorstr文字颜色颜色码
    bg_colorstr背景颜色颜色码
    text_color_nightstr夜间文字颜色颜色码
    border_color_nightstr夜间背景颜色颜色码

    番剧条目中的eps数组:

    类型内容备注
    0obj分集信息1
    nobj分集信息(n+1)项数为同时匹配到的分集数
    ……obj…………

    eps数组中的对象:

    字段类型内容备注
    idnum分集epid
    coverstr分集封面url
    titlestr完整标题
    urlstr分集重定向url
    release_datestr
    badgesarray分集标志
    index_titlestr短标题
    long_titlestr单集标题

    番剧条目中的badges数组(同eps数组中的对象中的badges数组):

    类型内容备注
    0obj剧集标志信息

    badges数组中的对象:

    字段类型内容备注
    textstr剧集标志颜色码
    text_colorstr文字颜色颜色码
    text_color_nightstr夜间文字颜色颜色码
    bg_colorstr背景颜色颜色码
    bg_color_nightstr夜间背景颜色颜色码
    border_colorstr
    border_color_nightstr
    bg_stylenum1

    示例:

    查看响应示例:
    {
    +    "media_id": 28224080,
    +    "season_id": 29310,
    +    "type": "media_bangumi",
    +    "title": "<em class=\"keyword\">异度侵入</em> 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-结果为直播间

    字段类型内容备注
    typestr结果类型固定为live_room
    rank_offsetnum搜索结果排名值
    uidnum主播mid
    tasstr直播间TAG多个用,分隔
    hit_columnsarray关键字匹配类型
    live_timestr开播时间YYYY-MM-DD HH:MM:SS
    cate_namestr子分区名
    live_statusnum1
    unamestr主播昵称
    ufacestr主播头像url
    user_coverstr直播间封面url
    short_idnum0作用尚不明确
    areanum1作用尚不明确
    titlestr直播间标题关键字用xml标签<em class="keyword">标注
    coverstr关键帧截图url
    onlinenum在线人数
    rank_indexnum0作用尚不明确
    rank_scorenum结果排序量化值
    roomidnum直播间id
    attentionsnum主播粉丝数

    直播间条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:直播间标题匹配
    cate_name:子分区名匹配
    uname:主播昵称匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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": "<em class=\"keyword\">MC</em> 1.16 极限服",
    +    "cover": "//i0.hdslb.com/bfs/live/keyframe07031915000000010313u3z18a.jpg",
    +    "online": 34702,
    +    "rank_index": 0,
    +    "rank_score": 34702,
    +    "roomid": 10313,
    +    "attentions": 317864
    +}
    +

    对象类型4-结果为主播

    字段类型内容备注
    typestr结果类型固定为live_user
    rank_offsetnum搜索结果排名值
    uidnum主播mid
    tasstr直播间TAG多个用,分隔
    live_timestr开播时间YYYY-MM-DD HH:MM:SS
    如未开播为0000-00-00 00:00:00
    hit_columnsarray关键字匹配类型
    live_statusnum是否开播0:未开播
    1:已开播
    areanum1作用尚不明确
    is_livebool是否开播false:未开播
    true:已开播
    unamestr主播昵称关键字用xml标签<em class="keyword">标注
    ufacestr主播头像url
    rank_indexnum0作用尚不明确
    rank_scorenum结果排序量化值
    attentionsnum主播粉丝数

    主播条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1uname:主播昵称匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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": "<em class=\"keyword\">痒局长</em>",
    +    "uface": "//i2.hdslb.com/bfs/face/bcdf640faa16ebaacea1d4c930baabaec9087a80.jpg",
    +    "rank_index": 0,
    +    "rank_score": 2620790,
    +    "roomid": 5441,
    +    "attentions": 2570790
    +}
    +

    对象类型5-结果为专栏

    字段类型内容备注
    typestr结果类型固定为article
    rank_offsetnum搜索结果排名值
    pub_timenum投稿时间时间戳
    likenum获赞数
    titlestr标题
    midnumUP主mid
    image_urlsarray封面图组
    template_idnum???作用尚不明确
    category_idnum专栏分区
    viewnum阅读数
    replynum评论数
    rank_indexnum0作用尚不明确
    descstr文章预览
    rank_scorenum结果排序量化值
    idnum专栏cvid
    category_namestr子分区名

    专栏条目中的covers数组:

    类型内容备注
    0str封面图片1
    nstr封面图片(n+1)
    ……str……

    示例:

    查看响应示例:
    {
    +    "pub_time": 1582123245,
    +    "like": 113,
    +    "title": "【洛水闲谈】《<em class=\"keyword\">普通DISCO</em>》神话达成后的个人感想",
    +    "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-结果为话题

    字段类型内容备注
    typestr结果类型固定为topic
    descriptionstr简介
    pubdatenm发布时间时间戳
    titlestr标题
    favouritenum0作用尚不明确
    hit_columnsarray关键字匹配类型
    reviewnum0作用尚不明确
    rank_offsetnum搜索结果排名值
    coverstr话题封面url
    updatenum上传时间时间戳
    midnm0作用尚不明确
    clicknum???作用尚不明确
    tp_typenum???作用尚不明确
    keywordstr作用尚不明确
    tp_idnum话题tp
    rank_indexnum0作用尚不明确
    authorstrUP主昵称
    arcurlstr话题页面重定向url
    rank_scorenum结果排序量化值

    话题条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:话题标题匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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-结果为用户

    字段类型内容备注
    typestr结果类型固定为bili_user
    midnum用户mid
    unamestr用户昵称
    usignstr用户签名
    fansnum用户粉丝数
    videosnum用户稿件数
    upicstr用户头像url
    verify_infostr作用尚不明确
    levelnum用户等级
    gendernum用户性别1:男
    2:女
    3:私密
    is_upusernum是否为UP主0:否
    1:是
    is_livenum是否正在直播0:否
    1:是
    room_idnum用户直播间id
    resarray用户投稿内容
    official_verifyobj用户认证信息
    hit_columnsarray关键字匹配类型

    用户条目中的res数组:

    类型内容备注
    0obj用户投稿视频1
    nobj用户投稿视频(n+1)项数为用户投稿的3个视频数
    ……obj…………

    res数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    bvidstr稿件bvid
    titlestr视频标题
    pubdatenum视频投稿时间时间戳
    arcurlstr视频页面重定向url
    picstr视频封面图片url
    playstr播放量
    dmstr弹幕量
    coinnum投币数
    favnum收藏数
    descstr视频简介
    durationstr视频时长MM:SS
    is_paynum0作用尚不明确
    is_union_videonum是否为合作视频0:否
    1:是

    用户条目中的official_verify对象:

    字段类型内容备注
    typenum是否认证127:无
    0:个人认证
    1:组织认证
    descstr认证名称

    用户条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1uname:用户昵称匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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-结果为相簿

    字段类型内容备注
    typestr结果类型固定为photo
    countnum图片数
    likenum收藏数
    titlestr相簿标题
    hit_columnsarray关键字匹配类型
    rank_offsetnum搜索结果排名值
    coverstr相簿封面url
    midnumUP主mid
    unamestrUP主昵称
    rank_indexnum0作用尚不明确
    viewnum观看次数
    idnum相簿id
    rank_scorenum结果排序量化值

    相簿条目中的hit_columns数组:

    类型内容备注
    0str匹配类型1title:相簿标贴匹配
    description:相簿简介匹配
    source_tag:相簿TAG匹配
    nstr匹配类型(n+1)项数为同时匹配到的类型数
    ……str…………

    示例:

    查看响应示例:
    {
    +    "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
    +}
    +
    + + + diff --git a/docs/search/suggest.html b/docs/search/suggest.html new file mode 100644 index 0000000000..08808feed5 --- /dev/null +++ b/docs/search/suggest.html @@ -0,0 +1,124 @@ + + + + + + + + + 搜索建议 | BAC Document + + + + +

    搜索建议

    获取搜索建议关键词(web端)

    https://s.search.bilibili.com/main/suggest

    请求方式:GET

    搜索建议最多提供10个候选关键词

    搜索建议内容可为任意语言(中 英 日等....),中文拼音支持全拼联想词

    url参数:

    参数名类型内容必要性备注
    termstr需要获得建议的输入内容必要
    main_verstrv1非必要默认为 v1
    highlightstr任意, 无明显作用非必要默认为空
    funcstr函数?非必要默认为 suggest
    suggest_typestr建议类型?非必要默认为 accurate
    sub_typestr子类型?非必要默认为 tag
    useridnum本用户 mid非必要可能用于个性化推荐
    bangumi_acc_numnum番剧累积数?非必要默认为 1
    special_acc_numnum特殊累积数?非必要默认为 1
    topic_acc_numnum话题累积数?非必要默认为 1
    upuser_acc_numnumUP主累积数?非必要默认为 1
    tag_numnumTag 数?非必要默认为 10
    special_numnum特殊推荐数?非必要默认为 10
    bangumi_numnum番剧推荐数?非必要默认为 10
    upuser_numnumUP主推荐数?非必要默认为 3
    rndnum一个随机浮点数非必要Math.random() 生成?
    buvidstr同 Cookie 中 buvid3非必要
    spmidstr333.1007非必要

    json回复:

    根对象:

    字段类型内容备注
    exp_strstr实验字符串?作用尚不明确
    codenum返回值0:成功
    resultobj搜索建议结果
    stokenstr???作用尚不明确

    result对象:

    字段类型内容备注
    tagarray套了个娃

    result中的tag数组:

    类型内容备注
    0obj第1建议关键词
    nobj第(n+1)建议关键词按照相关程度与热度顺序
    9obj第10建议关键词最后一项

    tag数组中的对象:

    字段类型内容备注
    valuestr关键词内容
    refnum0作用尚不明确
    namestr显示内容带有 <em class="suggest_high_light"> 的 XML 标签
    spidnum5作用尚不明确
    typestr

    示例:

    获取关于 洛天依 的搜索建议

    curl -G 'https://s.search.bilibili.com/main/suggest' \
    +--data-urlencode 'term=洛天依'
    +
    查看响应示例:
    {
    +  "exp_str": "106301_106700",
    +  "code": 0,
    +  "result": {
    +    "tag": [
    +      {
    +        "value": "洛天依",
    +        "term": "洛天依",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依十二周年",
    +        "term": "洛天依十二周年",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>十二周年",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依演唱会",
    +        "term": "洛天依演唱会",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>演唱会",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依手办",
    +        "term": "洛天依手办",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>手办",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依歌曲",
    +        "term": "洛天依歌曲",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>歌曲",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依童话镇",
    +        "term": "洛天依童话镇",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>童话镇",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依东京不太热",
    +        "term": "洛天依东京不太热",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>东京不太热",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依霜雪千年",
    +        "term": "洛天依霜雪千年",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>霜雪千年",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依生日会",
    +        "term": "洛天依生日会",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>生日会",
    +        "spid": 5,
    +        "type": ""
    +      },
    +      {
    +        "value": "洛天依生日",
    +        "term": "洛天依生日",
    +        "ref": 0,
    +        "name": "<em class=\"suggest_high_light\">洛天依</em>生日",
    +        "spid": 5,
    +        "type": ""
    +      }
    +    ]
    +  },
    +  "stoken": "4020133863501304726"
    +}
    +
    + + + diff --git a/docs/teenager/teenager_mode.html b/docs/teenager/teenager_mode.html new file mode 100644 index 0000000000..991ed0739c --- /dev/null +++ b/docs/teenager/teenager_mode.html @@ -0,0 +1,65 @@ + + + + + + + + + 青少年模式 | BAC Document + + + + +

    青少年模式

    开启/关闭

    https://app.bilibili.com/x/v2/account/teenagers/update

    请求方式:POST

    认证方式:APP(详见设备各类标识算法

    POST参数:

    参数名类型内容必要性备注
    appkeystrAPP密钥APP必要
    tsnum当前时间戳APP必要
    signstrAPP签名APP必要
    access_keystrAPP登录TokenAPP必要
    device_modelstr设备 ModelAPP必要
    channelstrAPP下载渠道APP必要比如yingyongbao
    mobi_appstrAPP 包类型APP必要
    platformstr平台类型APP必要android
    c_localestr语言非必要zh_CN
    s_localestr语言非必要zh_CN
    statisticsstr?必要一般固定为{"appId":1,"platform":3,"version":"7.27.0","abtest":""},非key-value入参需要转URL编码
    pwdnum密码必要开启时为4位,关闭时必须为空
    teenagers_modenum开启/关闭模式必要0为开启,1为关闭
    teenagers_statusnum当前模式状态必要0为已经开启,1为目前关闭

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例: 关闭本账号的青少年模式(pwd=&teenagers_mode=1&teenagers_status=0)

    curl --location 'https://app.bilibili.com/x/v2/account/teenagers/update' \
    +--header 'Device-Id: 你的设备id' \
    +--header 'Fp_local: 你的本地设备指纹' \
    +--header 'Fp_remote: 你的远程设备指纹' \
    +--header 'Session_id: 会话id' \
    +--header 'App-Key: android' \
    +--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
    +--data-urlencode 'access_key=你的access_key' \
    +--data-urlencode 'appkey=1d8b6e7d45233436' \
    +--data-urlencode 'build=6270200' \
    +--data-urlencode 'c_locale=zh_CN' \
    +--data-urlencode 'channel=yingyongbao' \
    +--data-urlencode 'device_model=samsung%257CSM-G955N' \
    +--data-urlencode 'mobi_app=android' \
    +--data-urlencode 'platform=android' \
    +--data-urlencode 's_locale=zh_CN' \
    +--data-urlencode 'statistics=%257B%2522appId%2522%253A1%252C%2522platform%2522%253A3%252C%2522version%2522%253A%25226.27.0%2522%252C%2522abtest%2522%253A%2522%2522%257D' \
    +--data-urlencode 'pwd=' \
    +--data-urlencode 'teenagers_mode=1' \
    +--data-urlencode 'teenagers_status=0' \
    +--data-urlencode 'ts=1699301298' \
    +--data-urlencode 'sign=0666c38cb79691c4a0d9570a0669ec96' \
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    pwd有数值时

    {
    +    "code": -400,
    +    "message": "关闭时密码必须为空",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/user/check_nickname.html b/docs/user/check_nickname.html new file mode 100644 index 0000000000..a2dff58309 --- /dev/null +++ b/docs/user/check_nickname.html @@ -0,0 +1,63 @@ + + + + + + + + + 检查昵称是否可注册 | BAC Document + + + + +

    检查昵称是否可注册

    检查昵称

    https://passport.bilibili.com/web/generic/check/nickname

    请求方式:GET

    也可用于判断指定昵称的用户是否存在

    url参数:

    参数名类型内容必要性备注
    nickNamestr目标昵称必要最长为16字符

    json回复:

    根对象:

    字段类型内容备注
    codenum状态码-400:请求错误
    -500:服务器端异常
    详细说明见下一表格
    messagestr错误详情若昵称可用,则不返回message

    code状态码:

    含义
    0昵称未被注册
    2001该昵称已被他人使用
    40002昵称包含敏感信息
    40004昵称不可包含除-和_以外的特殊字符
    40005昵称过长(超过16字符)
    40006昵称过短(少于2字符)
    40014昵称已存在

    示例:

    查询昵称 xijinping 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \
    +--data-urlencode 'nickName=xijinping'
    +
    查看响应示例:
    {
    +    "code":40002,
    +    "message":"昵称包含敏感信息"
    +}
    +

    查询昵称 // 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \
    +--data-urlencode 'nickName=//'
    +
    查看响应示例:
    {
    +    "code": 40004,
    +    "message": "昵称不可包含除-和_以外的特殊字符"
    +}
    +

    查询昵称 test0000000000000 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \
    +--data-urlencode 'nickName=test0000000000000 '
    +
    查看响应示例:
    {
    +    "code": 40005,
    +    "message": "昵称过长"
    +}
    +

    查询昵称 0 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \
    +--data-urlencode 'nickName=0'
    +
    查看响应示例:
    {
    +    "code": 40006,
    +    "message": "昵称过短"
    +}
    +

    查询昵称 test 是否被使用:

    curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \
    +--data-urlencode 'nickName=test'
    +
    查看响应示例:
    {
    +	"code":40014,
    +	"message":"昵称已存在"
    +}
    +
    + + + diff --git a/docs/user/contract.html b/docs/user/contract.html new file mode 100644 index 0000000000..fab67d07d8 --- /dev/null +++ b/docs/user/contract.html @@ -0,0 +1,62 @@ + + + + + + + + + 加入老粉计划 | BAC Document + + + + +

    加入老粉计划

    https://api.bilibili.com/x/v1/contract/add_contract

    请求方式:POST

    是否需要登录:

    认证方式:Cookie(SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    aidstr空串
    up_midstrUP主UID必要
    sourcestr4
    scenestr105
    platformstrweb
    mobi_appstrpc
    csrfstr用户csrf必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    158001:不满足条件
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    allow_messagebooltrue
    input_textstrUP主加油!看好你噢
    input_titlestr感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧

    示例:

    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'
    +
    点击查看
    {
    +  "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):

    参数名类型内容必要性备注
    aidstr空串
    up_midstrUP主UID必要
    sourcestr4
    scenestr105
    contentstr留言内容必要
    csrfstr用户csrf必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    158005:您跟up主还不是契约关系
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象

    字段名类型内容备注
    success_toaststr提交成功,UP主已收到留言~

    示例:

    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'
    +
    点击查看
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "success_toast": "提交成功,UP主已收到留言~"
    +  }
    +}
    +
    + + + diff --git a/docs/user/info.html b/docs/user/info.html new file mode 100644 index 0000000000..bae16d4594 --- /dev/null +++ b/docs/user/info.html @@ -0,0 +1,575 @@ + + + + + + + + + 用户基本信息 | BAC Document + + + + +

    用户基本信息

    用户空间详细信息

    https://api.bilibili.com/x/space/wbi/acc/info

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Wbi 签名, Cookie (对于某些 IP 地址,需要在 Cookie 中提供任意非空的 buvid3 字段)

    该接口的旧版 API :https://api.bilibili.com/x/space/acc/infoopen in new window(已废弃,不建议使用)

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    w_ridstrWbi 签名必要详见 Wbi 签名
    wtsnum当前时间戳必要详见 Wbi 签名

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:访问权限不足
    -404:用户不存在(如注销账号)
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnummid
    namestr昵称
    sexstr性别男/女/保密
    facestr头像链接
    face_nftnum是否为 NFT 头像0:不是 NFT 头像
    1:是 NFT 头像
    face_nft_typenumNFT 头像类型?
    signstr签名
    ranknum用户权限等级目前应该无任何作用
    5000:0级未答题
    10000:普通会员
    20000:字幕君
    25000:VIP
    30000:真·职人
    32000:管理员
    levelnum当前等级0-6 级
    jointimenum注册时间此接口返回恒为0
    moralnum节操值此接口返回恒为0
    silencenum封禁状态0:正常
    1:被封
    coinsnum硬币数需要登录(Cookie)
    只能查看自己的
    默认为0
    fans_badgebool是否具有粉丝勋章false:无
    true:有
    fans_medalobj粉丝勋章信息
    officialobj认证信息
    vipobj会员信息
    pendantobj头像框信息
    nameplateobj勋章信息
    user_honour_infoobj(?)
    is_followedbool是否关注此用户true:已关注
    false:未关注
    需要登录(Cookie)
    未登录恒为false
    top_photostr主页头图链接
    themeobj(?)
    sys_noticeobj系统通知无内容则为空对象
    主要用于展示如用户争议、纪念账号等等的小黄条
    live_roomobj直播间信息
    birthdaystr生日MM-DD
    如设置隐私为空
    schoolobj学校
    professionobj专业资质信息
    tagsnull个人标签
    seriesobj
    is_senior_membernum是否为硬核会员0:否
    1:是
    mcn_infonull(?)
    gaia_res_typenum(?)
    gaia_datanull(?)
    is_riskbool(?)
    elecobj充电信息
    contractobj是否显示老粉计划

    rank示例

    UIDrank
    220000
    1676520000
    1577338420000
    12441620000
    42973636225000
    42426176825000
    4127372625000
    1508010725000
    984749725000
    485600725000
    92812325000
    13270425000
    7009325000
    4729125000
    2738025000
    2244525000
    335125000
    110125000
    9306630000
    244306830000
    4636830000
    1116730000

    profession示例

    UID
    654391
    1440295
    1785155
    2990100
    3875803

    data中的official对象:

    字段类型内容备注
    rolenum认证类型用户认证类型一览
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum是否认证-1:无
    0:个人认证
    1:机构认证

    data中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间毫秒时间戳
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    rolenum大角色类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    avatar_subscript_urlstr大会员角标地址
    tv_vip_statusnum电视大会员状态0:未开通
    tv_vip_pay_typenum电视大会员支付类型

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr空串
    img_label_uri_hantstr空串
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    data中的pendant对象:

    普通头像框的imageimage_enhance内容相同

    动态头像框的image为png静态图片,image_enhance为webp动态图片,image_enhance_frame为png逐帧序列

    字段类型内容备注
    pidnum头像框id
    namestr头像框名称
    imagestr头像框图片url
    expirenum过期时间此接口返回恒为0
    image_enhancestr头像框图片url
    image_enhance_framestr头像框图片逐帧序列url

    data中的nameplate对象:

    字段类型内容备注
    nidnum勋章id
    namestr勋章名称
    imagestr勋章图标
    image_smallstr勋章图标(小)
    levelstr勋章等级
    conditionstr获取条件

    data中的fans_medal对象:

    字段类型内容备注
    showbool
    wearbool是否佩戴了粉丝勋章
    medalobj粉丝勋章信息

    fans_medal中的medal对象:

    字段类型内容备注
    uidnum此用户mid
    target_idnum粉丝勋章所属UP的mid
    medal_idnum粉丝勋章id
    levelnum粉丝勋章等级
    medal_namestr粉丝勋章名称
    medal_colornum颜色
    intimacynum当前亲密度
    next_intimacynum下一等级所需亲密度
    day_limitnum每日亲密度获取上限
    today_feednum今日已获得亲密度
    medal_color_startnum粉丝勋章颜色十进制数,可转为十六进制颜色代码
    medal_color_endnum粉丝勋章颜色十进制数,可转为十六进制颜色代码
    medal_color_bordernum粉丝勋章边框颜色十进制数,可转为十六进制颜色代码
    is_lightednum
    light_statusnum
    wearing_statusnum当前是否佩戴0:未佩戴
    1:已佩戴
    scorenum

    data中的sys_notice对象:

    字段类型内容备注
    idnumid
    contentstr显示文案
    urlstr跳转地址
    notice_typenum提示类型1,2
    iconstr前缀图标
    text_colorstr文字颜色
    bg_colorstr背景颜色

    sys_notice示例

    idcontentnotice_type示例用户
    5该用户存在争议行为,已冻结其帐号功能的使用1
    8该用户存在较大争议,请谨慎甄别其内容128062215open in new window
    11该账号涉及合约争议,暂冻结其账号功能使用。详见公告->1
    16该UP主内容存在争议,请注意甄别视频内信息1382534165open in new window
    20请允许我们在此献上最后的告别,以此纪念其在哔哩哔哩留下的回忆与足迹。请点此查看纪念账号相关说明2212535360open in new window
    22该账号涉及合约诉讼,封禁其账号使用
    24该账号涉及合约争议,暂冻结其账号功能使用1291229008open in new window
    25该用户涉及严重指控,暂冻结其账号功能使用181447581open in new window
    31该用户涉及严重指控,暂冻结其账号功能使用122439273open in new window
    34该用户涉及严重指控,暂冻结其账号功能使用11640486775open in new window
    36该账户存在争议,请谨慎甄别1

    data中的live_room对象:

    字段类型内容备注
    roomStatusnum直播间状态0:无房间
    1:有房间
    liveStatusnum直播状态0:未开播
    1:直播中
    urlstr直播间网页 url
    titlestr直播间标题
    coverstr直播间封面 url
    watched_showobj
    roomidnum直播间 id
    roundStatusnum轮播状态0:未轮播
    1:轮播
    broadcast_typenum0

    live_room中的watched_show对象:

    字段类型内容备注
    switchbool?
    numnumtotal watched users
    text_smallstr
    text_largestr
    iconstrwatched icon url
    icon_locationstr?
    icon_webstrwatched icon url

    data中的school对象:

    字段类型内容备注
    namestr就读大学名称没有则为空

    data中的profession对象:

    字段类型内容备注
    namestr资质名称
    departmentstr职位
    titlestr所属机构
    is_shownum是否显示0:不显示
    1:显示

    data中的user_honour_info对象:

    字段类型内容备注
    midnum0
    colourstrnull
    tagsarraynull

    data中的series对象:

    字段类型内容备注
    user_upgrade_statusnum(?)
    show_upgrade_windowbool(?)

    data中的elec对象:

    字段类型内容备注
    show_infoobj

    elec中的show_info对象:

    字段类型内容备注
    showbool是否开通了充电
    statenum状态-1:未开通
    1:已开通
    titlestr空串
    iconstr空串
    jump_urlstr空串

    data中的contract对象:

    字段名类型内容备注
    is_displaybooltrue/false
    在页面中未使用此字段
    is_follow_displaybool是否在显示老粉计划true:显示
    false:不显示

    示例:

    查询用户mid=2的详细信息,Wbi 签名的 wtsw_rid生成方式详见 Wbi 签名 文档

    curl -G 'https://api.bilibili.com/x/space/wbi/acc/info' \
    +	--data-urlencode 'mid=2' \
    +	--data-urlencode 'wts=1685070149' \
    +	--data-urlencode 'w_rid=f7b376124782ae8cb42c56fdd69144ed' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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": 3931344000000,
    +            "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": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
    +                "img_label_uri_hant": "",
    +                "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.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,
    +            "tv_due_date": 2000822400
    +        },
    +        "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://i2.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png",
    +            "image_small": "https://i2.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png",
    +            "level": "普通勋章",
    +            "condition": "所有自制视频总播放数>=10万"
    +        },
    +        "user_honour_info": {
    +            "mid": 0,
    +            "colour": null,
    +            "tags": []
    +        },
    +        "is_followed": true,
    +        "top_photo": "http://i2.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": 19,
    +                "text_small": "19",
    +                "text_large": "19人看过",
    +                "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": 0,
    +        "mcn_info": null,
    +        "gaia_res_type": 0,
    +        "gaia_data": null,
    +        "is_risk": false,
    +        "elec": {
    +            "show_info": {
    +                "show": true,
    +                "state": 1,
    +                "title": "",
    +                "icon": "",
    +                "jump_url": "?oid=2"
    +            }
    +        },
    +        "contract": {
    +            "is_display": false,
    +            "is_follow_display": false
    +        }
    +    }
    +}
    +

    用户名片信息

    https://api.bilibili.com/x/web-interface/card

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    photobool是否请求用户主页头图非必要true:是
    false:否

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    cardobj卡片信息
    followingbool是否关注此用户true:已关注
    false:未关注
    需要登录(Cookie)
    未登录为false
    archive_countnum用户稿件数
    article_countnum0作用尚不明确
    followernum粉丝数
    like_numnum点赞数

    data中的card对象:

    字段类型内容备注
    midstr用户mid
    approveboolfalse作用尚不明确
    namestr用户昵称
    sexstr用户性别男 女 保密
    facestr用户头像链接
    DisplayRankstr0作用尚不明确
    regtimenum0作用尚不明确
    spacestanum用户状态0:正常
    -2:被封禁
    birthdaystr作用尚不明确
    placestr作用尚不明确
    descriptionstr作用尚不明确
    articlenum0作用尚不明确
    attentionsarray作用尚不明确
    fansnum粉丝数
    friendnum关注数
    attentionnum关注数
    signstr签名
    level_infoobj等级
    pendantobj挂件
    nameplateobj勋章
    Officialobj认证信息
    official_verifyobj认证信息2
    vipobj大会员状态
    spaceobj主页头图

    card中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0作用尚不明确
    current_expnum0作用尚不明确
    next_expnum0作用尚不明确

    card中的pendant对象:

    字段类型内容备注
    pidnum挂件id
    namestr挂件名称
    imagestr挂件图片url
    expirenum0作用尚不明确

    card中的nameplate对象:

    字段类型内容备注
    nidnum勋章id详细说明有待补充
    namestr勋章名称
    imagestr挂件图片url 正常
    image_smallstr勋章图片url 小
    levelstr勋章等级
    conditionstr勋章条件

    card中的Official对象:

    字段类型内容备注
    rolenum认证类型用户认证类型一览
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum是否认证-1:无
    0:UP主认证
    1:机构认证

    card中的official_verify对象:

    字段类型内容备注
    typenum是否认证-1:无
    0:UP主认证
    1:机构认证
    descstr认证信息无为空

    card中的vip对象:

    字段类型内容备注
    vipTypenum大会员类型0:无
    1:月度大会员
    2:年度及以上大会员
    dueRemarkstr作用尚不明确
    accessStatusnum0作用尚不明确
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr作用尚不明确
    theme_typenum0作用尚不明确

    card中的space对象:

    字段类型内容备注
    s_imgstr主页头图url 小图
    l_imgstr主页头图url 正常

    示例:

    curl -G 'https://api.bilibili.com/x/web-interface/card' \
    +--data-urlencode 'mid=2' \
    +--data-urlencode 'photo=true' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnummid
    namestr昵称
    sexstr性别男 女 保密
    facestr头像图片url
    signstr签名
    ranknum10000作用尚不明确
    levelnum当前等级0-6级
    jointimenum0作用尚不明确
    moralnum节操默认70
    silencenum封禁状态0:正常
    1:被封
    email_statusnum已验证邮箱0:未验证
    1:已验证
    tel_statusnum已验证手机号0:未验证
    1:已验证
    identificationnum1作用尚不明确
    vipobj大会员状态
    birthdaynum生日时间戳
    is_touristnum0作用尚不明确
    is_fake_accountnum0作用尚不明确
    pin_promptingnum0作用尚不明确
    is_deletednum0作用尚不明确
    coinsnum硬币数
    followingnum粉丝数
    followernum粉丝数

    data中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间Unix时间戳(毫秒)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员名称
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员

    data中的pendant对象:

    字段类型内容备注
    pidnum挂件id详细说明有待补充
    namestr挂件名称
    imagestr挂件图片url
    expirenum0作用尚不明确

    data中的nameplate对象:

    字段类型内容备注
    nidnum勋章id详细说明有待补充
    namestr勋章名称
    imagestr挂件图片url 正常
    image_smallstr勋章图片url 小
    levelstr勋章等级
    conditionstr勋章条件

    data中的Official对象:

    字段类型内容备注
    rolenum认证类型用户认证类型一览
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum是否认证-1:无
    0:认证

    data中的level_exp对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0指当前等级从多少经验值开始
    current_expnum0当前账户的经验值
    next_expnum0下一个等级所需的经验值**(不是还需要多少)**

    示例:

    curl -G 'https://api.bilibili.com/x/space/myinfo' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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.bilibili.com/x/polymer/pc-electron/v1/user/cards

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    uidsnums目标用户的mid列表必要每个成员间用,分隔,最多200个成员

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    40143:批量大小超过限制
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体用户信息随机排序

    data对象:

    字段类型内容备注
    {用户mid}obj该mid对应的用户信息
    ……obj…………

    data中的{用户mid}对象:

    字段类型内容备注
    facestr头像链接
    face_nftnum是否为 NFT 头像0:不是 NFT 头像
    1:是 NFT 头像
    face_nft_newnum是否为新版 NFT 头像
    midstrmid
    namestr昵称
    name_render有效时:obj
    无效时:null
    昵称渲染信息
    nameplate有效时:obj
    无效时:null
    勋章信息基本同「用户空间详细信息」中的 data.nameplate 对象
    officialobj认证信息基本同「用户空间详细信息」中的 data.official 对象
    pendant有效时:obj
    无效时:null
    头像框信息基本同「用户空间详细信息」中的 data.pendant 对象,其中有些类型为 num 的字段在本接口中类型为 str
    vipobj会员信息基本同「用户空间详细信息」中的 data.vip 对象,其中有些类型为 num 的字段在本接口中类型为 str

    {用户mid}中的name_render对象:

    字段类型内容备注
    colors_infoobj昵称颜色信息(?)作用尚不明确
    render_schemestr"Default""Colorful"作用尚不明确

    name_render中的colors_info对象:

    字段类型内容备注
    colorarray昵称颜色(?)作用尚不明确
    color_idsarray["6"]作用尚不明确

    color数组:

    类型内容备注
    0obj颜色1
    nobj颜色(n+1)
    ……obj…………

    color数组中的对象:

    字段类型内容备注
    color_daystr浅色模式昵称颜色HEX颜色代码
    color_nightstr深色模式昵称颜色HEX颜色代码

    示例:

    查询用户uids=1,2,3的详细信息

    curl -G 'https://api.bilibili.com/x/polymer/pc-electron/v1/user/cards' \
    +--data-urlencode 'uids=1,2,3'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "1": {
    +      "face": "http://i1.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +      "face_nft": 0,
    +      "face_nft_new": 0,
    +      "mid": "1",
    +      "name": "bishi",
    +      "name_render": {
    +        "colors_info": { "color": [], "color_ids": [ "6" ] },
    +        "render_scheme": "Default"
    +      },
    +      "nameplate": null,
    +      "official": { "desc": "", "role": 0, "title": "", "type": -1 },
    +      "pendant": null,
    +      "vip": {
    +        "avatar_icon": {
    +          "icon_resource": {
    +            "type": "ICON_RES_TYPE_IMAGE",
    +            "url": "https://i0.hdslb.com/bfs/bangumi/kt/aba51485c0d02940c89aeefcf6680510d9858472.png"
    +          },
    +          "icon_type": "ICON_TYPE_VIP_ACTIVITY"
    +        },
    +        "avatar_subscript": 1,
    +        "avatar_subscript_url": "",
    +        "due_date": "1883059200000",
    +        "label": {
    +          "bg_color": "#FB7299",
    +          "bg_style": 1,
    +          "border_color": "",
    +          "img_label_uri_hans": "",
    +          "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/bangumi/kt/fb0a74b14d6a4e119ae301ba2693febeda051030.png",
    +          "img_label_uri_hant": "",
    +          "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png",
    +          "label_theme": "ten_annual_vip",
    +          "path": "",
    +          "text": "十年大会员",
    +          "text_color": "#FFFFFF",
    +          "use_img_label": true
    +        },
    +        "nickname_color": "#FB7299",
    +        "role": "7",
    +        "status": 1,
    +        "theme_type": 0,
    +        "tv_due_date": "1633622400",
    +        "tv_vip_pay_type": 0,
    +        "tv_vip_status": 0,
    +        "type": 2,
    +        "vip_pay_type": 1
    +      }
    +    },
    +    "2": {
    +      "face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
    +      "face_nft": 0,
    +      "face_nft_new": 0,
    +      "mid": "2",
    +      "name": "碧诗",
    +      "name_render": {
    +        "colors_info": { "color": [], "color_ids": [ "6" ] },
    +        "render_scheme": "Default"
    +      },
    +      "nameplate": {
    +        "condition": "所有自制视频总播放数>=10万",
    +        "image": "https://i1.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png",
    +        "image_small": "https://i2.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png",
    +        "level": "普通勋章",
    +        "name": "见习偶像",
    +        "nid": 10
    +      },
    +      "official": { "desc": "", "role": 2, "title": "bilibili创始人(站长)", "type": 0 },
    +      "pendant": {
    +        "expire": "0",
    +        "image": "https://i2.hdslb.com/bfs/garb/item/488870931b1bba66da36d22848f0720480d3d79a.png",
    +        "image_enhance": "https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp",
    +        "image_enhance_frame": "https://i2.hdslb.com/bfs/garb/item/4316a3910bb0bd6f2f1c267a3e9187f0b9fe5bd0.png",
    +        "n_pid": "32257",
    +        "name": "EveOneCat2",
    +        "pid": 32257
    +      },
    +      "vip": {
    +        "avatar_icon": {
    +          "icon_resource": {
    +            "type": "ICON_RES_TYPE_IMAGE",
    +            "url": "https://i0.hdslb.com/bfs/bangumi/kt/aba51485c0d02940c89aeefcf6680510d9858472.png"
    +          },
    +          "icon_type": "ICON_TYPE_VIP_ACTIVITY"
    +        },
    +        "avatar_subscript": 1,
    +        "avatar_subscript_url": "",
    +        "due_date": "3968841600000",
    +        "label": {
    +          "bg_color": "#FB7299",
    +          "bg_style": 1,
    +          "border_color": "",
    +          "img_label_uri_hans": "",
    +          "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/bangumi/kt/53845a8ab8b226131c5d89b198d4b61de91d0aa2.png",
    +          "img_label_uri_hant": "",
    +          "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png",
    +          "label_theme": "ten_annual_vip",
    +          "path": "",
    +          "text": "十年大会员",
    +          "text_color": "#FFFFFF",
    +          "use_img_label": true
    +        },
    +        "nickname_color": "#FB7299",
    +        "role": "7",
    +        "status": 1,
    +        "theme_type": 0,
    +        "tv_due_date": "2003500800",
    +        "tv_vip_pay_type": 1,
    +        "tv_vip_status": 1,
    +        "type": 2,
    +        "vip_pay_type": 0
    +      }
    +    },
    +    "3": {
    +      "face": "http://i0.hdslb.com/bfs/face/d4de6a84557eea8f18510a3f61115d96832aa071.jpg",
    +      "face_nft": 0,
    +      "face_nft_new": 0,
    +      "mid": "3",
    +      "name": "囧囧倉",
    +      "name_render": {
    +        "colors_info": {
    +          "color": [
    +            { "color_day": "#CB7919", "color_night": "#E2963C" },
    +            { "color_day": "#E6A75B", "color_night": "#E6A75B" },
    +            { "color_day": "#E9BD67", "color_night": "#F8CE7E" }
    +          ],
    +          "color_ids": [ "6" ]
    +        },
    +        "render_scheme": "Colorful"
    +      },
    +      "nameplate": null,
    +      "official": { "desc": "", "role": 0, "title": "", "type": -1 },
    +      "pendant": null,
    +      "vip": {
    +        "avatar_icon": null,
    +        "avatar_subscript": 0,
    +        "avatar_subscript_url": "",
    +        "due_date": "0",
    +        "label": {
    +          "bg_color": "",
    +          "bg_style": 0,
    +          "border_color": "",
    +          "img_label_uri_hans": "",
    +          "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
    +          "img_label_uri_hant": "",
    +          "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
    +          "label_theme": "",
    +          "path": "",
    +          "text": "",
    +          "text_color": "",
    +          "use_img_label": true
    +        },
    +        "nickname_color": "",
    +        "role": "0",
    +        "status": 0,
    +        "theme_type": 0,
    +        "tv_due_date": "0",
    +        "tv_vip_pay_type": 0,
    +        "tv_vip_status": 0,
    +        "type": 0,
    +        "vip_pay_type": 0
    +      }
    +    }
    +  }
    +}
    +

    多用户详细信息2

    https://api.vc.bilibili.com/account/v1/user/cards

    请求方式:GET

    本接口较其他接口相比,只会返回非常有限的信息

    url参数:

    参数名类型内容必要性备注
    uidsnums目标用户的mid列表必要每个成员间用,分隔,最多50个成员,若超过此限制则返回的data数组为空

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray信息本体用户信息随机排序

    data数组:

    类型内容备注
    0obj用户1
    nobj用户(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    midnummid
    namestr昵称
    facestr头像链接
    signstr签名
    ranknum用户权限等级
    levelnum当前等级0-6 级
    silencenum封禁状态0:正常
    1:被封

    示例:

    查询用户uids=1,2,3的详细信息

    curl -G 'https://api.vc.bilibili.com/account/v1/user/cards' \
    +--data-urlencode 'uids=1,2,3'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "",
    +    "ttl": 1,
    +    "data": [{
    +        "mid": 1,
    +        "name": "bishi",
    +        "face": "http://i1.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
    +        "sign": "",
    +        "rank": 10000,
    +        "level": 6,
    +        "silence": 0
    +    }, {
    +        "mid": 2,
    +        "name": "碧诗",
    +        "face": "http://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
    +        "sign": "https://kami.im 直男过气网红 #  We Are Star Dust",
    +        "rank": 20000,
    +        "level": 6,
    +        "silence": 0
    +    }, {
    +        "mid": 3,
    +        "name": "囧囧倉",
    +        "face": "http://i0.hdslb.com/bfs/face/d4de6a84557eea8f18510a3f61115d96832aa071.jpg",
    +        "sign": "富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善。",
    +        "rank": 10000,
    +        "level": 6,
    +        "silence": 0
    +    }]
    +}
    +
    + + + diff --git a/docs/user/medals.html b/docs/user/medals.html new file mode 100644 index 0000000000..070db632a7 --- /dev/null +++ b/docs/user/medals.html @@ -0,0 +1,744 @@ + + + + + + + + + 所有粉丝勋章 | BAC Document + + + + +

    所有粉丝勋章

    指定用户的所有粉丝勋章信息

    https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall

    请求方法: GET

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    target_idnum目标 mid必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体失败时不存在

    data 对象:

    字段类型内容备注
    listarray勋章列表
    countnum勋章数
    close_space_medalnum关闭空间粉丝勋章显示?0: 否
    only_show_wearingnum只显示当前佩戴的?0: 否
    namestr目标用户名
    iconstr目标用户头像 URL
    uidnum目标用户 mid
    levelnum目标用户等级

    data 对象中 list 数组中的对象:

    字段类型内容备注
    medal_infoobj勋章信息
    target_namestr主播名称
    target_iconstr主播头像 URL
    linkstr主播主页 URL
    live_statusnum直播状态0: 未直播
    1: 正在直播
    2: 轮播中
    officalnum主播认证类型参见 用户认证类型一览
    uinfo_medalstr用户勋章信息

    list 数组中的对象中的 medal_info 对象:

    字段类型内容备注
    target_idnum主播 mid
    levelnum勋章等级
    medal_namestr勋章名称
    medal_color_startnum勋章开始颜色十进制(自行转换为16进制)
    medal_color_endnum勋章结束颜色同上
    medal_color_bordernum勋章边框颜色同上
    guard_levelnum守护等级?
    wearing_statusnum佩戴状态0: 未佩戴
    1: 佩戴中
    medal_idnum勋章 ID
    intimacynum当前亲密度
    next_intimacynum下一等级所需亲密度
    today_feednum今日已获得亲密度
    day_limitnum亲密度每日上限?
    guard_iconstr守护徽章图标 URL?
    honor_iconstr荣誉徽章图标 URL?

    list 数组中的对象中的 uinfo_medal 对象:

    字段类型内容备注
    namestr勋章名称
    levelnum勋章等级
    color_startnum勋章开始颜色十进制(自行转换为16进制)
    color_endnum勋章结束颜色同上
    color_bordernum勋章边框颜色同上
    colornum勋章文本色?同上
    idnum勋章 ID
    typnum勋章类型?
    is_lightnum勋章亮色?
    ruidnum主播 mid
    guard_levelnum守护等级?
    scorenum勋章分数?
    guard_iconstr守护徽章图标 URL?
    honor_iconstr荣誉徽章图标 URL?
    v2_medal_color_startstr勋章开始颜色16进制
    v2_medal_color_endstr勋章结束颜色同上
    v2_medal_color_borderstr勋章边框颜色同上
    v2_medal_color_textstr勋章文本色同上
    v2_medal_color_levelstr勋章等级颜色同上
    user_receive_countnum勋章已获得数量?

    示例:

    curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall' \
    +--url-query 'target_id=293793435' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "medal_info": {
    +          "target_id": 178429408,
    +          "level": 3,
    +          "medal_name": "滑稽果",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 1,
    +          "medal_id": 113190,
    +          "intimacy": 248,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "老弟一号",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg",
    +        "link": "https://space.bilibili.com/178429408",
    +        "live_status": 2,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "滑稽果",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 113190,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 178429408,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 15858903,
    +          "level": 9,
    +          "medal_name": "二技猿",
    +          "medal_color_start": 9272486,
    +          "medal_color_end": 9272486,
    +          "medal_color_border": 9272486,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 159670,
    +          "intimacy": 168,
    +          "next_intimacy": 1900,
    +          "today_feed": 0,
    +          "day_limit": 3000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "暮光小猿wzt",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/4113913241f83b03301c316fec6e4c3923bef64e.jpg",
    +        "link": "https://space.bilibili.com/15858903",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "二技猿",
    +          "level": 9,
    +          "color_start": 9272486,
    +          "color_end": 9272486,
    +          "color_border": 9272486,
    +          "color": 0,
    +          "id": 159670,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 15858903,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#596FE099",
    +          "v2_medal_color_end": "#596FE099",
    +          "v2_medal_color_border": "#596FE099",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 24022863,
    +          "level": 7,
    +          "medal_name": "粉丝团",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 233401,
    +          "intimacy": 1499,
    +          "next_intimacy": 1600,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "黄禄轩电脑专用账号",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/a70ec7d2a3822980a915ef4b30371af0cbc79132.jpg",
    +        "link": "https://space.bilibili.com/24022863",
    +        "live_status": 2,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "粉丝团",
    +          "level": 7,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 233401,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 24022863,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 1347373376,
    +          "level": 6,
    +          "medal_name": "Geek范",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 658512,
    +          "intimacy": 999,
    +          "next_intimacy": 1500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "GeekLogic",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/fc4ba4087efa80dce11dfdd1c2bc07d84fb603b9.jpg",
    +        "link": "https://space.bilibili.com/1347373376",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "Geek范",
    +          "level": 6,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 658512,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 1347373376,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 451664,
    +          "level": 5,
    +          "medal_name": "粉丝团",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 408689,
    +          "intimacy": 799,
    +          "next_intimacy": 1000,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "刘师兄_liujun",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/90665d1613cc5501a3f7bbc79b5dc83bcc30667d.jpg",
    +        "link": "https://space.bilibili.com/451664",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "粉丝团",
    +          "level": 5,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 408689,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 451664,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 89240844,
    +          "level": 5,
    +          "medal_name": "六零",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 306526,
    +          "intimacy": 799,
    +          "next_intimacy": 1000,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "A60_OnE",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/483513f7b0533d666fdf7eff96a70b69992056fd.jpg",
    +        "link": "https://space.bilibili.com/89240844",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "六零",
    +          "level": 5,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 306526,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 89240844,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 1850091,
    +          "level": 5,
    +          "medal_name": "観測者",
    +          "medal_color_start": 6126494,
    +          "medal_color_end": 6126494,
    +          "medal_color_border": 6126494,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 118910,
    +          "intimacy": 98,
    +          "next_intimacy": 1000,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "Jannchie见齐",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/983034448f81f45f05956d0455a86fe0639d6a36.jpg",
    +        "link": "https://space.bilibili.com/1850091",
    +        "live_status": 2,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "観測者",
    +          "level": 5,
    +          "color_start": 6126494,
    +          "color_end": 6126494,
    +          "color_border": 6126494,
    +          "color": 0,
    +          "id": 118910,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 1850091,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5866C799",
    +          "v2_medal_color_end": "#5866C799",
    +          "v2_medal_color_border": "#5866C799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 4911405,
    +          "level": 4,
    +          "medal_name": "毛狐狸",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 18887,
    +          "intimacy": 658,
    +          "next_intimacy": 700,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "粉毛变态老狐狸",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/5924e9201ac87066e76534472303b636a9961647.jpg",
    +        "link": "https://space.bilibili.com/4911405",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "毛狐狸",
    +          "level": 4,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 18887,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 4911405,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 130914376,
    +          "level": 3,
    +          "medal_name": "江草",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 166326,
    +          "intimacy": 463,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "江灵夏草",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/63eb615514fddbc6024a34ddcacfb0bc6103d019.jpg",
    +        "link": "https://space.bilibili.com/130914376",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "江草",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 166326,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 130914376,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 316568752,
    +          "level": 3,
    +          "medal_name": "SEAL",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 312420,
    +          "intimacy": 428,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "马督工",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/1c56737dfc0deffffc31c78e0cefb0c3ecf7e000.jpg",
    +        "link": "https://space.bilibili.com/316568752",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "SEAL",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 312420,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 316568752,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 633003,
    +          "level": 3,
    +          "medal_name": "器材党",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 57027,
    +          "intimacy": 198,
    +          "next_intimacy": 500,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "和光Channel",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/c34413202f3f4ab6c7955a2c9ca5a9ac8e86d8c2.jpg",
    +        "link": "https://space.bilibili.com/633003",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "器材党",
    +          "level": 3,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 57027,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 633003,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 5760446,
    +          "level": 2,
    +          "medal_name": "花泪",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 32283,
    +          "intimacy": 298,
    +          "next_intimacy": 300,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "花儿不哭",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/4f220d57ca877167f3efdc60e40d0cb53ca58b72.jpg",
    +        "link": "https://space.bilibili.com/5760446",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "花泪",
    +          "level": 2,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 32283,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 5760446,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 3644545,
    +          "level": 2,
    +          "medal_name": "东方狗",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 249059,
    +          "intimacy": 98,
    +          "next_intimacy": 300,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "白倉カナ",
    +        "target_icon": "https://i1.hdslb.com/bfs/face/ae839f221a5812683fe0a3967f4a612dd65a05d2.jpg",
    +        "link": "https://space.bilibili.com/3644545",
    +        "live_status": 0,
    +        "official": 0,
    +        "uinfo_medal": {
    +          "name": "东方狗",
    +          "level": 2,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 249059,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 3644545,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 614801,
    +          "level": 1,
    +          "medal_name": "神油",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 627,
    +          "intimacy": 119,
    +          "next_intimacy": 201,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "神游八方",
    +        "target_icon": "https://i2.hdslb.com/bfs/face/98f8e0f609ff2403cc086f7254f388336b6f5366.jpg",
    +        "link": "https://space.bilibili.com/614801",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "神油",
    +          "level": 1,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 627,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 614801,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      },
    +      {
    +        "medal_info": {
    +          "target_id": 12246,
    +          "level": 1,
    +          "medal_name": "纯色派",
    +          "medal_color_start": 6067854,
    +          "medal_color_end": 6067854,
    +          "medal_color_border": 6067854,
    +          "guard_level": 0,
    +          "wearing_status": 0,
    +          "medal_id": 5171,
    +          "intimacy": 99,
    +          "next_intimacy": 201,
    +          "today_feed": 0,
    +          "day_limit": 2000,
    +          "guard_icon": "",
    +          "honor_icon": ""
    +        },
    +        "target_name": "囧仙",
    +        "target_icon": "https://i0.hdslb.com/bfs/face/b7ee967282a33a59908218df5b240b45f51afda8.jpg",
    +        "link": "https://space.bilibili.com/12246",
    +        "live_status": 0,
    +        "official": 1,
    +        "uinfo_medal": {
    +          "name": "纯色派",
    +          "level": 1,
    +          "color_start": 6067854,
    +          "color_end": 6067854,
    +          "color_border": 6067854,
    +          "color": 0,
    +          "id": 5171,
    +          "typ": 0,
    +          "is_light": 1,
    +          "ruid": 12246,
    +          "guard_level": 0,
    +          "score": 0,
    +          "guard_icon": "",
    +          "honor_icon": "",
    +          "v2_medal_color_start": "#5762A799",
    +          "v2_medal_color_end": "#5762A799",
    +          "v2_medal_color_border": "#5762A799",
    +          "v2_medal_color_text": "#FFFFFFFF",
    +          "v2_medal_color_level": "#000B7099",
    +          "user_receive_count": 0
    +        }
    +      }
    +    ],
    +    "count": 15,
    +    "close_space_medal": 0,
    +    "only_show_wearing": 0,
    +    "name": "社会易姐QwQ",
    +    "icon": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +    "uid": 645769214,
    +    "level": 6
    +  }
    +}
    +
    + + + diff --git a/docs/user/official_role.html b/docs/user/official_role.html new file mode 100644 index 0000000000..985cdfeb7e --- /dev/null +++ b/docs/user/official_role.html @@ -0,0 +1,33 @@ + + + + + + + + + 用户认证类型一览 | BAC Document + + + + +

    用户认证类型一览

    ID认证类型详细类型
    0
    1个人认证知名UP主
    2个人认证大V达人
    3机构认证企业
    4机构认证组织
    5机构认证媒体
    6机构认证政府
    7个人认证高能主播
    9个人认证社会知名人士
    + + + diff --git a/docs/user/register.html b/docs/user/register.html new file mode 100644 index 0000000000..42bfd63214 --- /dev/null +++ b/docs/user/register.html @@ -0,0 +1,62 @@ + + + + + + + + + 用户注册 | BAC Document + + + + +

    用户注册

    人机验证

    完成人机验证(参考验证登录)

    完成后得到key, challenge, validate, seccode四个参数

    发送短信验证码

    发送短信验证码(参考短信登录)

    注意不同的是这里type=1而非21,推测此参数决定短信内容

    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'
    +
    查看示例
    {
    +    "code": 0,
    +    "message": "验证码短信已下发"
    +}
    +

    提交注册请求

    https://passport.bilibili.com/web/reg/tel

    请求方式:POST

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum国际冠字码必要可以从 获取国际冠字码 接口中获取
    telnum手机号码必要
    codenum短信验证码必要
    nickNamestr昵称必要
    pwdstr密码必要密码为明文
    platnum0必要平台?
    gourlstr注册成功跳转地址非必要默认为主页https://www.bilibili.com/

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    1005:验证码错误
    1007:验证码过期
    messagestr错误信息成功时无此字段
    dataobj信息本体只在成功时存在

    data对象:

    字段类型内容备注
    redirectUrlstr跳转链接
    hintstr"注册成功"成功后不提示成功还能提示什么?
    in_reg_auditnum(?)
    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'
    +
    查看示例
    {
    +    "code": 0,
    +    "data": {
    +        "redirectUrl": "https://www.bilibili.com",
    +        "hint": "注册成功",
    +        "in_reg_audit": 0
    +    }
    +}
    +
    + + + diff --git a/docs/user/relation.html b/docs/user/relation.html new file mode 100644 index 0000000000..8c31332ca4 --- /dev/null +++ b/docs/user/relation.html @@ -0,0 +1,928 @@ + + + + + + + + + 用户关系相关 | BAC Document + + + + +

    用户关系相关

    查询关系列表

    关系列表对象

    以下说明中的 “目标用户” 指被查询的用户,“对方” 指返回的关系列表中的用户。

    字段类型内容备注
    midnum用户 mid
    attributenum对方对于自己的关系属性0:未关注
    1:悄悄关注(现已下线)
    2:已关注
    6:已互粉
    128:已拉黑
    mtimenum对方关注目标用户时间秒级时间戳
    互关后刷新
    tag默认分组:null
    存在至少一个分组:array
    目标用户将对方分组到的 id
    specialnum目标用户特别关注对方标识0:否
    1:是
    contract_infoobj契约计划相关信息
    unamestr用户昵称
    facestr用户头像url
    face_nftnum是否为 NFT 头像0:非 NFT 头像
    1:NFT 头像
    signstr用户签名
    official_verifyobj认证信息
    vipobj会员信息
    nft_iconstr(?)
    rec_reasonstr(?)
    track_idstr(?)

    list中的对象中的tag数组:

    类型内容备注
    0num位于分组 1 的分组 id
    nnum位于分组(n+1)的分组 id
    ……num…………

    list中的对象中的contract_info对象:

    字段类型内容备注
    is_contractbool目标用户是否为对方的契约者仅当为 true 时才有此项
    is_contractorbool对方是否为目标用户的契约者仅当为 true 时才有此项
    tsnum对方成为目标用户的契约者的时间秒级时间戳,仅当 is_contractor 项的值为 true 时才有此项
    user_attrnum对方作为目标用户的契约者的属性1:老粉
    否则为原始粉丝
    仅当有特殊属性时才有此项

    list中的对象中的official_verify对象:

    字段类型内容备注
    typenum用户认证类型-1:无
    0:UP 主认证
    1:机构认证
    descstr用户认证信息无为空

    list中的对象中的vip对象:

    字段类型内容备注
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度以上大会员
    vipDueDatenum会员到期时间时间戳 毫秒
    dueRemarkstr(?)
    accessStatusnum(?)
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr(?)
    themeTypenum(?)
    labelobj(?)

    vip中的label对象:

    字段类型内容备注
    pathstr(?)

    查询用户粉丝明细

    https://api.bilibili.com/x/relation/followers

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    本接口只有登录、标头 refererbilibili.com 下的子域名、UA 不含 python 时才会返回列表

    本接口仅可返回前 1000 名粉丝,若继续往后查询则返回空列表

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    vmidnum目标用户 mid必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1
    仅可查看前 1000 名粉丝

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -352:请求被拦截
    -400:请求错误
    22118:由于该用户隐私设置,粉丝列表不可见
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum粉丝总数

    data中的list数组:

    类型内容备注
    0obj粉丝 1详见 关系列表对象
    nobj粉丝 (n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取用户mid=293793435的粉丝明细

    curl -G 'https://api.bilibili.com/x/relation/followers' \
    +    --data-urlencode 'vmid=293793435' \
    +    --data-urlencode 'ps=2' \
    +    --data-urlencode 'pn=1' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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

    本接口只有登录、标头 refererbilibili.com 下的子域名、UA 不含 python 时才会返回列表

    登录可看当前用户全部,其他用户仅可查看前 100 个,访问超过 100 个时返回空列表(但 code 值为 0

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    vmidnum目标用户 mid必要
    order_typestr排序方式非必要当目标用户为自己时有效
    按照关注顺序排列:留空
    按照最常访问排列:attention
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1
    其他用户仅可查看前 100 个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -352:请求被拦截
    -400:请求错误
    22115:用户已设置隐私,无法查看
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj关注1关系列表对象
    nobj关注(n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取用户mid=293793435的关注明细,按照关注顺序

    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'
    +
    查看响应示例:
    {
    +	"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

    仅可查看前 5 页,对于已设置可见性隐私关注列表的用户,$.data.list 为 null,且 $.data.total 为0

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户 mid必要
    orderstr排序方式非必要按照降序排列:desc
    按照升序排列:asc
    默认降序排列
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1
    仅可查看前 5 页

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    22007:访问超过 5 页
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj关注 1关系列表对象 数据结构不同
    nobj关注(n+1)按照添加顺序排列
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    midnum用户 mid
    attributenum关注属性0:未关注
    2:已关注
    6:已互粉
    mtimenum关注对方时间时间戳
    互关后刷新
    tag默认分组:null
    存在至少一个分组:array
    分组 id
    specialnum特别关注标志0:否
    1:是
    unamestr用户昵称
    facestr用户头像 url
    signstr用户签名
    official_verifyobj认证信息
    vipobj会员信息
    livenum是否直播0:未直播
    1:直播中

    数组list中的对象中的tag数组:

    类型内容备注
    0num位于分组 1 的分组 id
    nnum位于分组(n+1)的分组 id
    ……num…………

    list中的对象中的official_verify对象:

    字段类型内容备注
    typenum用户认证类型-1:无
    0:UP主认证
    1:机构认证
    descstr用户认证信息无为空

    list中的对象中的vip对象:

    字段类型内容备注
    vipTypenum会员类型0:无
    1:月度大会员
    2:年度以上大会员
    vipDueDatenum会员到期时间时间戳 毫秒
    dueRemarkstr(?)
    accessStatusnum(?)
    vipStatusnum大会员状态0:无
    1:有
    vipStatusWarnstr(?)
    themeTypenum(?)
    labelobj(?)

    vip中的label对象:

    字段类型内容备注
    pathstr(?)

    示例:

    获取用户mid=293793435的关注明细,按照关注顺序

    curl -G 'https://app.biliapi.net/x/v2/relation/followings' \
    +    --data-urlencode 'vmid=293793435' \
    +    --data-urlencode 'ps=2' \
    +    --data-urlencode 'pn=1' \
    +
    查看响应示例:
    {
    +	"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
    +	}
    +}
    +

    查询用户关注明细3

    https://line3-h5-mobile-api.biligame.com/game/center/h5/user/relationship/following_list

    请求方式:GET

    对于设置了可见性隐私关注列表的用户会返回空列表

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要
    psnum每页项数非必要默认为20
    pnnum页码非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息成功时无此项
    dataobj信息本体失败时无此项
    tsnum当前时间戳单位为毫秒
    request_idstr请求id

    data对象:

    字段类型内容备注
    listarray明细列表

    data中的list数组:

    类型内容备注
    0obj关注1
    nobj关注(n+1)按照关注顺序排列
    ……obj…………

    数组list中的对象:

    字段类型内容备注
    midstr用户mid
    attributenum关注属性0:未关注
    2:已关注
    6:已互粉
    unamestr用户昵称
    facestr用户头像url

    示例:

    获取用户mid=293793435的关注明细

    curl -G 'https://line3-h5-mobile-api.biligame.com/game/center/h5/user/relationship/following_list' \
    +--data-urlencode 'vmid=293793435' \
    +--data-urlencode 'ps=2' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"data": {
    +		"list": [{
    +			"mid": "14082",
    +			"attribute": 2,
    +			"uname": "山新",
    +			"face": "https://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg"
    +		}, {
    +			"mid": "420831218",
    +			"attribute": 2,
    +			"uname": "支付宝Alipay",
    +			"face": "https://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg"
    +		}]
    +	},
    +	"ts": 1677410818395,
    +	"request_id": "d9d541b9f2d24e21821e2d6d2d16c17d"
    +}
    +

    搜索关注明细

    https://api.bilibili.com/x/relation/followings/search

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    vmidstr目标用户 mid必要
    namestr搜索关键词非必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    22007:访问超过 5 页
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj匹配项目 1关系列表对象
    nobj匹配项目(n+1)按照添加顺序排列
    ……obj…………

    示例:

    搜索我的关注列表中关键词warma

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要
    vmidnum目标用户 mid必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum关注总数

    data中的list数组:

    类型内容备注
    0obj共同关注 1关系列表对象
    nobj共同关注(n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取自己与用户mid=2的共同关注明细

    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'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)

    data中的list数组:

    类型内容备注
    0obj悄悄关注 1关系列表对象
    nobj悄悄关注(n+1)按照操作顺序排列
    ……obj…………

    示例:

    curl -G 'https://api.bilibili.com/x/relation/whispers' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)

    data中的list数组:

    类型内容备注
    0obj互关 1关系列表对象
    nobj互关(n+1)按照添加顺序排列
    ……obj…………

    示例:

    curl -G 'https://api.bilibili.com/x/relation/friends' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "mid": 596000,
    +                "attribute": 6,
    +                "mtime": 1685110154,
    +                "tag": null,
    +                "special": 0,
    +                "uname": "椛椛在睡觉",
    +                "face": "https://i2.hdslb.com/bfs/face/365c1ef3b2a3afe21d6832796338fad5119b2592.jpg",
    +                "sign": "欢迎来找椛椛玩~ https://blogs.momiji-jin.com/",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 2,
    +                    "vipDueDate": 1702742400000,
    +                    "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": ""
    +            },
    +            {
    +                "mid": 24022863,
    +                "attribute": 6,
    +                "mtime": 1685026230,
    +                "tag": [
    +                    -10
    +                ],
    +                "special": 1,
    +                "uname": "黄禄轩电脑专用账号",
    +                "face": "https://i0.hdslb.com/bfs/face/a70ec7d2a3822980a915ef4b30371af0cbc79132.jpg",
    +                "sign": "若要私信,请私信「黄禄轩手机专用账号」http://space.bilibili.com/17640193/,群:410311648",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 2,
    +                    "vipDueDate": 1686412800000,
    +                    "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": ""
    +            },
    +            {
    +                "mid": 85438718,
    +                "attribute": 6,
    +                "mtime": 1684759843,
    +                "tag": [
    +                    194110
    +                ],
    +                "special": 0,
    +                "uname": "忘忧北萱草Official",
    +                "face": "https://i2.hdslb.com/bfs/face/68d8cba01aab907dbb2cf2e17074f20947156237.jpg",
    +                "sign": "现已加入 OrangeFire 豪华套餐!",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 2,
    +                    "vipDueDate": 1691683200000,
    +                    "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": ""
    +            },
    +            {
    +                "mid": 41620134,
    +                "attribute": 6,
    +                "mtime": 1684759649,
    +                "tag": null,
    +                "special": 0,
    +                "uname": "Tiggy_Chan",
    +                "face": "https://i0.hdslb.com/bfs/face/8c8d9f43eda207f8cb8503bfdf6cc3802a1cd6c1.jpg",
    +                "sign": "此号只发科技类视频,娱乐类转至:虎子酱233",
    +                "face_nft": 0,
    +                "official_verify": {
    +                    "type": -1,
    +                    "desc": ""
    +                },
    +                "vip": {
    +                    "vipType": 1,
    +                    "vipDueDate": 1669219200000,
    +                    "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": "",
    +                    "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_keystrAPP 登录 TokenAPP 方式必要
    psnum每页项数非必要默认为 50
    pnnum页码非必要默认为 1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    listarray明细列表
    re_versionnum(?)
    totalnum黑名单总计数

    data中的list数组:

    类型内容备注
    0obj黑名单 1关系列表对象
    nobj黑名单 (n+1)按照添加顺序排列
    ……obj…………

    示例:

    获取黑名单明细

    curl -G 'https://api.bilibili.com/x/relation/blacks' \
    +    --data-urlencode 'ps=2' \
    +    --data-urlencode 'pn=1' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要
    fidnum目标用户mid必要
    actnum操作代码必要操作代码见下表
    re_srcnum关注来源代码必要空间:11
    视频:14
    文章:115
    活动页面:222
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    操作代码act

    代码含义备注
    1关注无法对已注销或不存在的用户进行此操作
    2取关
    3悄悄关注现已下线,使用本操作代码请求接口会提示“请求错误”
    4取消悄悄关注
    5拉黑无法对已注销或不存在的用户进行此操作
    6取消拉黑
    7踢出粉丝

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    22001:不能对自己进行此操作
    22002:因对方隐私设置,你还不能关注
    22003:关注失败,请将该用户移除黑名单之后再试
    22013:账号已注销,无法完成操作
    22014:已经关注用户,无法重复关注
    22120:重复加入黑名单
    40061:用户不存在
    messagestr错误信息默认为0
    ttlnum1

    示例:

    关注mid=14082的用户

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    批量操作用户关系

    https://api.bilibili.com/x/relation/batch/modify

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    此接口只支持关注和拉黑操作

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidsnums目标用户 mid 列表必要每个之间用,间隔
    actnum操作代码必要同上
    仅可为 1 或 5,故只能进行批量关注和拉黑
    re_srcnum关注来源代码必要同上
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -111:csrf校验失败
    -400:请求错误
    22003:用户位于黑名单
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    failed_fidsarray操作失败的 mid 列表

    data中的failed_fids数组:

    类型内容备注
    0num操作失败的 mid 1
    nnum操作失败的 mid(n+1)
    ……num…………

    示例:

    批量关注mid=1,2,3,4,5的用户

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "failed_fids": []
    +    }
    +}
    +

    查询关系属性

    关系属性对象

    字段类型内容备注
    midnum目标用户 mid
    attributenum关系属性0:未关注
    2:已关注
    6:已互粉
    128:已拉黑
    mtimenum关注对方时间时间戳
    未关注为 0
    tagnull默认分组
    array存在至少一个分组
    分组 id
    specialnum特别关注标志0:否
    1:是

    tag数组:

    类型内容备注
    0num位于分组 1 的分组
    nnum位于分组(n+1)的分组
    ……num…………

    查询用户与自己关系(仅关注)

    https://api.bilibili.com/x/relation

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidnum目标用户 mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体详见 关系属性对象

    data对象:示例:

    可得对于mid=258150656的用户,在2018/10/28 0:51:41时关注,且设为特别关注,并位于为-10分组中

    curl -G 'https://api.bilibili.com/x/relation' \
    +    --data-urlencode 'fid=258150656' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"mid": 258150656,
    +		"attribute": 2,
    +		"mtime": 1540659101,
    +		"tag": [-10],
    +		"special": 1
    +	}
    +}
    +

    查询用户与自己关系(互相关系)

    https://api.bilibili.com/x/space/wbi/acc/relation

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    鉴权方式:Wbi 签名

    该接口的旧版 API :https://api.bilibili.com/x/space/acc/relation(已废弃,不建议使用)

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    midnum目标用户mid必要
    w_ridstrWbi 签名必要详见 Wbi 签名
    wtsnum当前时间戳必要详见 Wbi 签名

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    relationobj目标用户对于当前用户的关系详见 关系属性对象
    be_relationobj当前用户对于目标用户的关系详见 关系属性对象

    示例:

    可得对于mid=15858903的用户,在2019/1/24 14:24:19时关注了对方,且互相关注,自己将对方特别关注,并同时位于为-10194110的分组中,对方也将自己设为特别关注,并同时位于为-1056502的分组中(虽然我看不到)

    Wbi 签名的 wtsw_rid生成方式详见 Wbi 签名 文档

    curl -G 'https://api.bilibili.com/x/space/acc/relation' \
    +    --data-urlencode 'mid=15858903' \
    +    --data-urlencode 'wts=1686015899' \
    +    --data-urlencode 'w_rid=e10a3c566c9be80a7cebe7bcdf262588' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "relation": {
    +            "mid": 15858903,
    +            "attribute": 6,
    +            "mtime": 1548311059,
    +            "tag": [
    +                -10,
    +                194110,
    +                248468
    +            ],
    +            "special": 1
    +        },
    +        "be_relation": {
    +            "mid": 293793435,
    +            "attribute": 6,
    +            "mtime": 1548311059,
    +            "tag": [
    +                56502,
    +                -10
    +            ],
    +            "special": 1
    +        }
    +    }
    +}
    +

    批量查询用户与自己关系

    https://api.bilibili.com/x/relation/relations

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidsnums目标用户 mid必要每个之间用,间隔

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    {用户mid}obj关注的用户详见 关系属性对象
    ……obj……下同

    示例:

    批量查询mid=1,2,3,4,5的关系

    curl -G 'https://api.bilibili.com/x/relation/relations' \
    +--data-urlencode 'fid=258150656' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +

    关注分组相关

    分组 id 特殊值:

    id含义
    0默认分组
    -10特别关心

    查询关注分组列表

    https://api.bilibili.com/x/relation/tags

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataarray分组列表

    data数组:

    类型内容备注
    0obj分组 1
    nobj分组(n+1)
    ……num…………

    数组data中的对象:

    字段类型内容备注
    tagidnum分组 id-10:特别关注
    0:默认分组
    namestr分组名称
    countnum分组成员数
    tipstr提示信息

    示例:

    查询所有的分组的名字以及id

    curl 'https://api.bilibili.com/x/relation/tags' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": [
    +         {
    +            "tagid": -10,
    +            "name": "特别关注",
    +            "count": 19,
    +            "tip": "第一时间收到该分组下用户更新稿件的通知"
    +        },
    +        {
    +            "tagid": 0,
    +            "name": "默认分组",
    +            "count": 340,
    +            "tip": ""
    +        },
    +        {
    +            "tagid": 194110,
    +            "name": "基友们",
    +            "count": 127,
    +            "tip": ""
    +        },
    +        {
    +            "tagid": 194111,
    +            "name": "我的同学",
    +            "count": 22,
    +            "tip": ""
    +        },
    +	…………
    +	]
    +}
    +

    查询关注分组明细

    https://api.bilibili.com/x/relation/tag

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    只可查询属于自己的分组

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    tagidnum分组 id必要
    order_typestr排序方式非必要按照关注顺序排列:留空
    按照最常访问排列:attention
    psnum每页项数非必要默认为 20
    pnnum页数非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    22104:该分组不存在
    messagestr错误信息默认为 0
    ttlnum1
    dataarray成员列表

    data数组:

    类型内容备注
    0obj成员信息 1关系列表对象
    nobj成员信息(n+1)按照添加顺序排序
    ……obj…………

    data 中的对象:

    字段类型内容备注
    midnum用户id
    attributenum0
    tagnullnull
    specialnum0
    contract_infojson空的
    unamestr用户名
    facestr头像地址
    signstr个人简介
    face_nftintntf头像
    official_verifyjson官方认证具体见下
    vipjson大会员参考大会员文档
    livejson直播状态具体见下
    nft_iconstr显示nft角标
    rec_reasonstr
    track_idstr

    data对象中的official_verify

    字段类型内容备注
    typenum0
    descstr官方认证内容

    data对象中的live

    字段类型内容备注
    live_statusnum0或10:未开播,1:已直播
    jump_urlstr直播链接

    示例:

    以每页2项的方式获取了id为207542分组的第1页的粉丝明细,按照关注顺序

    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'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    fidnum目标用户 mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    {加入的分组 id}str分组名称若目标用户存在默认分组中,则不显示
    ……str……下同

    示例:

    查询用户mid=319214221存在的所有分组和名称

    curl -G 'https://api.bilibili.com/x/relation/tag/user' \
    +    --data-urlencode 'fid=319214221' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"-10": "特别关注",
    +		"194111": "我的同学"
    +	}
    +}
    +

    查询所有特别关注 mid

    https://api.bilibili.com/x/relation/tag/special

    请求方式:GET

    认证方式:Cookie(SESSDATA)或 APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    messagestr错误信息默认为 0
    ttlnum1
    dataarray成员列表

    data数组:

    类型内容备注
    0num成员 1 mid
    nnum成员(n+1)mid
    ……num…………

    示例:

    curl 'https://api.bilibili.com/x/relation/tag/special' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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_keystrAPP 登录 TokenAPP 方式必要
    tagstr分组名必要最长 16 字符
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22106:该分组已经存在
    22103:分组名过长
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    tagidnum创建的分组的 id

    示例:

    创建了名为测试的分组,得到id为216677

    curl 'https://api.bilibili.com/x/relation/tag/create' \
    +    --data-urlencode 'tag=测试' \
    +    --data-urlencode 'csrf=xxx' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    tagidnum分组 id必要
    namestr新名称必要最长 16 字符
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22103:分组名过长
    22104:该分组不存在
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把id为194112的分组更名为膜法师

    curl 'https://api.bilibili.com/x/relation/tag/update' \
    +    --data-urlencode 'tagid=194112' \
    +    --data-urlencode 'name=膜法师' \
    +    --data-urlencode 'csrf=xxx' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    删除分组

    https://api.bilibili.com/x/relation/tag/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    tagidnum分组 id必要
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    删除分组id为216699的分组

    curl 'https://api.bilibili.com/x/relation/tag/del' \
    +    --data-urlencode 'tagid=216699' \
    +    --data-urlencode 'csrf=xxx' \
    +    -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    fidsnums目标用户 mid 列表必要每个之间用,间隔
    tagidsnums分组 id 列表必要每个之间用,间隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22104:无权限
    22105:未关注
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把关注用户mid=205631797同时添加分组关系到id为-10207542的分组中

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    复制关注到分组

    https://api.bilibili.com/x/relation/tags/copyUsers

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    fidsnums待复制的用户 mid 列表必要每个之间用,间隔
    tagidsnums目标分组 id 列表必要每个之间用,间隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22104:无权限
    22105:未关注
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把关注用户mid=4856007mid=326499679同时复制到为231305的分组id中

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +

    移动关注到分组

    https://api.bilibili.com/x/relation/tags/moveUsers

    请求方式:POST

    认证方式:Cookie(SESSDATA)或 APP

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    beforeTagidsnums原分组 id 列表必要每个之间用,间隔
    afterTagidsnums新分组 id 列表必要每个之间用,间隔
    fidsnums待移动的用户 mid 列表必要每个之间用,间隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -111:csrf校验失败
    -101:账号未登录
    -400:请求错误
    22104:无权限
    22105:未关注
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    把关注用户mid=321173469mid=327086920同时从id为207542的分组移动到为231305的分组中

    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'
    +
    查看响应示例:
    {
    +    "code":0,
    +    "message":"0",
    +    "ttl":1
    +}
    +
    + + + diff --git a/docs/user/space.html b/docs/user/space.html new file mode 100644 index 0000000000..e257a614cb --- /dev/null +++ b/docs/user/space.html @@ -0,0 +1,2150 @@ + + + + + + + + + 用户空间相关 | BAC Document + + + + +

    用户空间相关

    主页

    置顶视频

    查询用户置顶视频

    https://api.bilibili.com/x/space/top/arc

    请求方式:GET

    粉丝在其主页上可见

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53016:没有置顶视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum稿件avid
    videosnum视频分P总数默认为1
    tidnum分区tid
    tnamestr子分区名称
    copyrightnum是否转载1:原创
    2:转载
    picstr视频封面图片url
    titlestr稿件标题
    pubdatenum稿件发布时间时间戳
    ctimenum用户提交稿件的时间时间戳
    descstr视频简介
    statenum视频状态略,见获取视频详细信息(web端)中的state备注
    attributenum稿件属性位配置略,见获取视频详细信息(web端)中的attribute备注
    durationnum视频总计持续时长(所有分P)单位为秒
    rightsobj视频属性标志略,见获取视频详细信息(web端)中的rights对象
    ownerobj视频UP主信息略,见获取视频详细信息(web端)中的owner对象
    statobj视频状态数略,见获取视频详细信息(web端)中的stat对象
    dynamicstr视频同步发布的的动态的文字内容无为空
    cidnum视频1P cid
    dimensionobj视频1P分辨率略,见获取视频详细信息(web端)中的dimension对象
    bvidstr稿件bvid
    reasonstr置顶视频备注
    inter_videobool是否为合作视频false:否
    true:是

    示例:

    查询用户mid=23215368的置顶视频

    curl -G 'https://api.bilibili.com/x/space/top/arc' \
    +--data-urlencode 'vmid=23215368'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    aidnum置顶目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr置顶目标稿件bvid必要(可选)avid与bvid任选一个
    reasonstr置顶视频备注非必要置顶备注最大40字符
    默认为空
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -304:未修改
    -400:请求错误
    53014:稿件已失效
    53015:备注过长
    53017:置顶非自己的稿件
    messagestr错误信息默认为0
    ttlnum1

    示例:

    置顶视频av98948772/BV1n741127LD

    avid方式:

    curl 'https://api.bilibili.com/x/space/top/arc/set' \
    +--data-urlencode 'aid=98948772' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/space/top/arc/set' \
    +--data-urlencode 'bvid=BV1n741127LD' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    取消置顶视频

    https://api.bilibili.com/x/space/top/arc/cancel

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误(重复取消)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/space/top/arc/cancel' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    代表作视频

    查询用户代表作视频列表

    https://api.bilibili.com/x/space/masterpiece

    请求方式:GET

    新访客在其主页上可见

    最多可以设置3个

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray代表作列表

    data数组:

    类型内容备注
    0obj代表作1无则为空
    1obj代表作2无则为空
    2obj代表作3无则为空
    最多设置3个

    data数组中的对象:

    查询用户置顶视频中的data对象

    示例:

    查询用户mid=23215368的代表作视频列表

    curl -G 'https://api.bilibili.com/x/space/masterpiece' \
    +--data-urlencode 'vmid=23215368'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    aidnum置顶目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr置顶目标稿件bvid必要(可选)avid与bvid任选一个
    reasonstr代表作备注非必要置顶备注最大40字符
    默认为空
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53014:稿件已失效
    53015:备注过长
    53017:置顶非自己的稿件
    53019:达到上限
    53020:已经存在该稿件
    messagestr错误信息默认为0
    ttlnum1

    示例:

    添加视频av94916552/BV1ZE411K7ux到代表作列表

    avid方式:

    curl 'https://api.bilibili.com/x/space/masterpiece/add' \
    +--data-urlencode 'aid=94916552' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/space/masterpiece/add' \
    +--data-urlencode 'bvid=BV1ZE411K7ux' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除代表作视频

    https://api.bilibili.com/x/space/masterpiece/cancel

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum要删除的目标稿件avid必要(可选)avid与bvid任选一个
    bvidstr要删除的目标稿件bvid必要(可选)avid与bvid任选一个
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53021:置顶列表中没有该视频
    messagestr错误信息默认为0
    ttlnum1作用尚不明确

    示例:

    删除置顶视频av59765630/BV1Yt41137T6

    avid方式:

    curl 'https://api.bilibili.com/x/space/masterpiece/cancel' \
    +--data-urlencode 'aid=59765630' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray信息本体

    data数组:

    类型内容备注
    0obj套了个娃只有1项???

    data数组中的对象:

    字段类型内容备注
    midnum目标用户mid
    tagsarrayTAG名称

    data数组中的对象中的tags数组:

    类型内容备注
    0strTAG1
    nstrTAG(n+1)
    ……str……
    4strTAG5上限5条

    示例:

    查看用户mid=53456的个人TAG

    curl -G 'https://api.bilibili.com/x/space/acc/tags' \
    +--data-urlencode 'mid=53456'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    tagsstrs要设置的TAG内容非必要删除公告留空或省去即可
    各TAG长度小于10字符
    最多5个TAG
    各TAG之间用","(%2C)分隔
    重复TAG无效
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误(超出长度限制)
    messagestr错误信息默认为0
    ttlnum1

    示例:

    修改个人TAG为minecraft,技术宅,大佬,小哥哥,可爱

    curl 'https://api.bilibili.com/x/space/acc/tags/set' \
    +--data-urlencode 'tags=minecraft,技术宅,大佬,小哥哥,可爱' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx;DedeUserID=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    空间公告

    查看用户空间公告

    https://api.bilibili.com/x/space/notice

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    datastr公告信息无则为空

    示例:

    查看用户mid=53456的空间公告

    curl -G 'https://api.bilibili.com/x/space/notice' \
    +--data-urlencode 'mid=53456'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    noticestr要设置的公告内容非必要删除公告留空或省去即可
    少于150字符
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -304:未修改
    -400:请求错误(超出长度限制)
    messagestr错误信息默认为0
    ttlnum1作用尚不明确

    示例:

    修改个人空间公告为鸽子

    curl 'https://api.bilibili.com/x/space/notice/set' \
    +--data-urlencode 'notice=鸽子' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    主页板块布局与权限

    查询空间设置

    http://space.bilibili.com/ajax/settings/getSettings

    请求方式:GET

    注:带有转义

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool用户是否存在true:存在
    false:不存在
    data用户存在时:obj
    用户不存在时:str
    用户存在时:信息本体
    用户不存在时:错误信息

    data对象:

    字段类型内容备注
    privacyobj空间隐私权限
    index_orderarray空间板块布局
    themestrdefault主题?作用尚不明确
    theme_preview_img_pathstr主题预览图路径?作用尚不明确
    toutuobj空间头图

    privacy对象:

    字段类型内容备注
    banguminum追番及追剧0:隐藏
    1:公开
    下同
    bbqnum轻视频
    channelnum频道
    coins_videonum最近投币的视频
    comicnum追漫
    dress_upnum装扮
    fav_videonum收藏夹
    groupsnum圈子?作用尚不明确
    likes_videonum最近点赞的视频
    played_gamenum最近玩过的游戏
    tagsnum订阅标签
    user_infonum个人资料

    index_order数组:

    类型内容备注
    0obj板块1根据板块布局顺序排序
    先左侧布局后右侧布局
    nobj板块(n+1)
    ……obj…………

    index_order数组内对象:

    字段类型内容备注
    idnum板块编号
    namestr板块名称

    toutu对象:

    字段类型内容备注
    sidnum空间头图ID
    expirenum到期时间?时间戳?
    作用尚不明确
    s_imgstr空间头图小图相对路径完整url为http://i0.hdslb.com/+相对路径
    l_imgstr空间头图相对路径同上
    android_imgstr注:手机端头图与web端不同,需要用另一个api获取
    iphone_imgstr
    ipad_imgstr
    thumbnail_imgstr缩略图
    platformnum0作用尚不明确

    示例:

    查看mid=2的空间设置

    curl -G 'http://space.bilibili.com/ajax/settings/getSettings' \
    +--data-urlencode 'mid=2'
    +
    查看响应示例:
    {
    +    "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
    +        }
    +    }
    +}
    +

    查询可用头图列表 (Web端)

    https://space.bilibili.com/ajax/topphoto/getlist

    请求方式: GET

    注: 带有转义

    URL参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要非负数, 即使该用户并不存在

    JSON回复:

    根对象:

    字段类型内容备注
    statusbool成功: true
    失败: false
    data成功: array
    失败: str
    成功: 信息本体
    失败: "用户id错误"

    data数组中的对象:

    字段类型内容备注
    idnum空间头图 ID
    product_namestr显示名称
    pricenum价格
    coin_typenum支付类型?
    vip_freenum大会员免费
    s_imgstr小图 URI需要自行与 i0.hdslb.com 拼接成 URL
    l_imgstr大图 URI同 s_img
    thumbnail_imgstr并不存在的缩略图?
    sort_numnum排序编号
    is_disablenum已禁用0: 未禁用
    expirenum过期时间?UNIX 时间戳, 或 0 为永不过期
    hadnum是否拥有?当 expire 不为 0 时 为 1, 否则为 0

    示例:

    查询mid=1145141919810000000的可用空间头图

    curl -G "https://space.bilibili.com/ajax/topphoto/getlist" \
    +--data-urlencode "mid=1145141919810000000"
    +
    查看响应示例:
    {
    +  "status": true,
    +  "data": [
    +    {
    +      "id": 1,
    +      "product_name": "bilibili春",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png",
    +      "l_img": "bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png",
    +      "thumbnail_img": "",
    +      "sort_num": 19,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 2,
    +      "product_name": "两人单车",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/d60a4be11f1bca6168a60a53c64bca18eddd6443.jpg",
    +      "l_img": "bfs/space/44873d3568bdcb3d850d234e02a19602972450f1.png",
    +      "thumbnail_img": "",
    +      "sort_num": 16,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 5,
    +      "product_name": "成为偶像",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/5fe2632486a5a91a234f0e7cb368ab6397477da4.jpg",
    +      "l_img": "bfs/space/87277d30cd19edcec9db466a9a3e556aeb0bc0ed.png",
    +      "thumbnail_img": "",
    +      "sort_num": 15,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 11,
    +      "product_name": "星际勘探",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/6849abc6e67000ad807b35a970aba31dd1e400dd.jpg",
    +      "l_img": "bfs/space/c919a9818172a8297f8b0597722f96504a1e1d88.png",
    +      "thumbnail_img": "",
    +      "sort_num": 14,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 10,
    +      "product_name": "星O大战",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/ff3b0882e55c1099738e59616e5956ad357d9948.jpg",
    +      "l_img": "bfs/space/e22f5b8e06ea3ee4de9e4da702ce8ef9a2958f5a.png",
    +      "thumbnail_img": "",
    +      "sort_num": 13,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 12,
    +      "product_name": "王牌特工",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/f5d38e2af44fd12fa65423aff55933fcf9071419.jpg",
    +      "l_img": "bfs/space/8cd85a382756ab938df23a856017abccd187188e.png",
    +      "thumbnail_img": "",
    +      "sort_num": 12,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 3,
    +      "product_name": "仰望星空",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/c9dae917e24b4fc17c4d544caf6b6c0b17f8692b.jpg",
    +      "l_img": "bfs/space/9ccc0447aebf0656809b339b41aa5b3705f27c47.png",
    +      "thumbnail_img": "",
    +      "sort_num": 11,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 14,
    +      "product_name": "雨过天晴",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/1115b2fdabd128337f892feada4ce32e51f3a5ad.jpg",
    +      "l_img": "bfs/space/6a1198e25f8764bd30d53411dac9fdf840bc3265.png",
    +      "thumbnail_img": "",
    +      "sort_num": 10,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 6,
    +      "product_name": "绿荫秘境",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/dc02d22a718c1c436f1a355b3cd726b04098ef7d.jpg",
    +      "l_img": "bfs/space/265ecddc52d74e624dc38cf0cff13317085aedf7.png",
    +      "thumbnail_img": "",
    +      "sort_num": 9,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 13,
    +      "product_name": "漫游仙境",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/184abe52a5ea9390b506c064cfba4f8f20ae9cca.jpg",
    +      "l_img": "bfs/space/24d0815514951bb108fbb360b04a969441079315.png",
    +      "thumbnail_img": "",
    +      "sort_num": 7,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 15,
    +      "product_name": "放课后time",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/aea2dd7b8894ce31d578d4fad6a7188c7b49cb2f.jpg",
    +      "l_img": "bfs/space/6e799ff2de2de55d27796707a283068d66cdf3f4.png",
    +      "thumbnail_img": "",
    +      "sort_num": 6,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 4,
    +      "product_name": "昴宿星团",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/1f4eaf70d1bb981f6057b3e440249d7a1f65774f.jpg",
    +      "l_img": "bfs/space/3ab888c1d149e864ab44802dea8c1443e940fa0d.png",
    +      "thumbnail_img": "",
    +      "sort_num": 5,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 7,
    +      "product_name": "蔷薇洛丽塔",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/718eac8c71e29b8a80431c46110805c3a40e30a6.jpg",
    +      "l_img": "bfs/space/70ce28bcbcb4b7d0b4f644b6f082d63a702653c1.png",
    +      "thumbnail_img": "",
    +      "sort_num": 4,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 9,
    +      "product_name": "黑暗之门",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/ef1b08e62fdc35b06e39795bc6de8e510935bf97.jpg",
    +      "l_img": "bfs/space/cd52d4ac1d336c940cc4958120170f7928d9e606.png",
    +      "thumbnail_img": "",
    +      "sort_num": 3,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    },
    +    {
    +      "id": 19,
    +      "product_name": "你的名字",
    +      "price": 0,
    +      "coin_type": 0,
    +      "vip_free": 0,
    +      "s_img": "bfs/space/373e127e8784d3e4c1b5e6db0c27702ba077643f.jpg",
    +      "l_img": "bfs/space/f49642b3683a08e3190f29d5a095386451f8952c.jpg",
    +      "thumbnail_img": "",
    +      "sort_num": 2,
    +      "is_disable": 0,
    +      "expire": 0,
    +      "had": 0
    +    }
    +  ]
    +}
    +

    设置空间头图 (Web端)

    https://space.bilibili.com/ajax/settings/setToutu

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    鉴权方式: referer为 .bilibili.com 域名下

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    idnum头图 ID必要
    csrfstrCSRF Token (即 Cookie bili_jct 值)不必要

    JSON回复:

    字段类型内容备注
    statusbool状态true: 成功
    false: 失败
    datastr错误信息正确时无此项 (带有转义)

    示例:

    设置空间头图为为王牌特工(id=12)

    curl -X POST "https://space.bilibili.com/ajax/settings/setToutu" \
    +--referer "https://space.bilibili.com/" \
    +--data-urlencode "id=12" \
    +--data-urlencode "csrf=xxx" \
    +-b "SESSDATA=xxx; bili_jct=xxx"
    +
    查看响应示例:
    {
    +  "status": true
    +}
    +

    调整空间板块布局

    http://space.bilibili.com/ajax/settings/setIndexOrder

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserIDDedeUserID__ckMd5存在且不为0,referer为 .bilibili.com域名下

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    index_ordernums布局列表必要每个值之间用","(%2C)分隔
    先左侧布局再右侧布局
    值的意义见下表
    csrfstrCSRF Token(位于cookie)必要

    布局参数index_order

    含义
    1(左侧)我的稿件
    2(左侧)我的收藏夹
    3(左侧)订阅番剧
    4(左侧)订阅标签
    5(左侧)最近投币的视频
    6(左侧)我的圈子 (此板块被隐藏)
    7(左侧)我的频道
    8(左侧)我的专栏
    9(左侧)我的相簿
    21(右侧)公告
    22(右侧)直播间
    23(右侧)个人资料
    24(右侧)官方活动
    25(右侧)最近玩的游戏

    json回复:

    根对象:

    字段类型内容备注
    statusbool操作结果true:操作成功
    false:操作失败
    datastr错误信息正确时无此项

    示例:

    调整空间布局为:

    我的稿件            直播间
    +我的专栏            个人资料
    +订阅番剧            公告
    +我的收藏夹          官方活动
    +我的相簿            最近玩的游戏
    +最近投币的视频  
    +订阅标签  
    +我的频道
    +
    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'
    +
    查看响应示例:
    {
    +    "status": true
    +}
    +

    修改空间隐私权限

    http://space.bilibili.com/ajax/settings/setPrivacy

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Cookie中DedeUserIDDedeUserID__ckMd5存在且不为0,referer为 .bilibili.com域名下

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    fav_videonum收藏视频非必要0:隐藏
    1:公开
    下同
    banguminum追番及追剧非必要
    tagsnum关注的TAG非必要
    coins_videonum投币的视频非必要
    user_infonum个人信息非必要
    played_gamenum玩过的游戏非必要
    csrfnstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool操作结果true:操作成功
    false:操作失败
    datastr错误信息正确时无此项

    示例:

    设置关注的TAG为隐藏

    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'
    +
    查看响应示例:
    {
    +    "status": true
    +}
    +

    查询用户最近访问内容

    查询用户最近玩过的游戏

    https://api.bilibili.com/x/space/lastplaygame

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:array
    信息本体

    data数组:

    类型内容备注
    0obj游戏1
    nobj游戏(n+1)项数为总计游戏数
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    websitestr游戏主页 url
    imagestr游戏图标 url
    namestr游戏名

    示例:

    查询mid=2的最近玩过的游戏

    curl -G 'https://api.bilibili.com/x/space/lastplaygame' \
    +	--data-urlencode 'mid=2'
    +
    查看响应示例:
    {
    +    "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": "明日方舟"
    +        }
    +    ]
    +}
    +

    查询用户最近玩过的游戏V2

    https://api.bilibili.com/x/space/lastplaygame/v2

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:obj
    信息本体

    data对象:

    字段类型内容备注
    page_numnum当前页码
    page_sizenum每页项数
    total_countnum游戏总数
    listarray游戏列表

    list数组:

    类型内容备注
    0obj游戏1
    nobj游戏(n+1)项数为总计游戏数
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    game_base_idnum游戏 idbiligame 的游戏 id
    game_namestr游戏名
    game_iconstr游戏图标 url
    gradenum游戏评分8.26.8
    detail_urlstr游戏主页 url
    game_tagsarray游戏标签
    noticestr游戏简介文案
    gift_titlestr游戏礼物文案
    game_status_v2num(?)

    game_tags数组:

    类型内容备注
    0obj游戏标签1角色扮演音乐节奏休闲
    nobj游戏标签(n+1)
    ……obj…………

    示例:

    查询mid=2的最近玩过的游戏

    curl -G 'https://api.bilibili.com/x/space/lastplaygame/v2' \
    +	--data-urlencode 'mid=2'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "page_num": 0,
    +    "page_size": 15,
    +    "total_count": 8,
    +    "list": [
    +      {
    +        "game_base_id": 102567,
    +        "game_name": "坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/fc2f4fd3a347eeb9b8b6ab59d961269bdd05d4e0.png",
    +        "grade": 8.2,
    +        "detail_url": "https://www.biligame.com/detail/?id=102567",
    +        "game_tags": [
    +          "角色扮演",
    +          "像素风"
    +        ],
    +        "notice": "像素风欢脱冒险RPG",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 101661,
    +        "game_name": "光·遇",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/9a1be39915f057597f9328afe503a2bbd0de7754.png",
    +        "grade": 6.8,
    +        "detail_url": "https://www.biligame.com/detail/?id=101661",
    +        "game_tags": [
    +          "休闲",
    +          "治愈",
    +          "唯美"
    +        ],
    +        "notice": "九色鹿季开启,探索本真之旅",
    +        "gift_title": "光·遇九色鹿季回归礼包",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 103496,
    +        "game_name": "原神",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/2b29383536b3d1a2517bfcb73767f78c242f0458.png",
    +        "grade": 6.5,
    +        "detail_url": "https://www.biligame.com/detail/?id=103496",
    +        "game_tags": [
    +          "角色扮演",
    +          "二次元",
    +          "冒险"
    +        ],
    +        "notice": "跨越尘世的探索之旅",
    +        "gift_title": "bilibili-原神4.4版本独家礼包",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 49,
    +        "game_name": "命运-冠位指定(Fate/GO)",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/ca5d8d4b3a042beddf7cabca20ae0c946527d1bf.png",
    +        "grade": 6,
    +        "detail_url": "https://www.biligame.com/detail/?id=49",
    +        "game_tags": [
    +          "卡牌",
    +          "fate",
    +          "厨向"
    +        ],
    +        "notice": "第2部现已开启!",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 102216,
    +        "game_name": "公主连结Re:Dive",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/3bb819e010fe6d594d8f4d417ee380f40e8b5b06.png",
    +        "grade": 8.4,
    +        "detail_url": "https://www.biligame.com/detail/?id=102216",
    +        "game_tags": [
    +          "角色扮演"
    +        ],
    +        "notice": "新角色「璃乃(圣诞节)」登场!",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 168,
    +        "game_name": "BanG Dream!",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/d196365d9f112a5adede7eedea1e4154e98c5e53.png",
    +        "grade": 9.2,
    +        "detail_url": "https://www.biligame.com/detail/?id=168",
    +        "game_tags": [
    +          "音乐节奏",
    +          "BanG Dream"
    +        ],
    +        "notice": "「迎风展翅的我们」活动开启!",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 101772,
    +        "game_name": "明日方舟",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/faa556b00d29fffc88281c1ee038b1b7f23aa5c2.jpg",
    +        "grade": 7.4,
    +        "detail_url": "https://www.biligame.com/detail/?id=101772",
    +        "game_tags": [
    +          "策略",
    +          "架空文明",
    +          "末世"
    +        ],
    +        "notice": "2023感谢庆典正式开启",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      },
    +      {
    +        "game_base_id": 97,
    +        "game_name": "碧蓝航线",
    +        "game_icon": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
    +        "grade": 8.7,
    +        "detail_url": "https://www.biligame.com/detail/?id=97",
    +        "game_tags": [
    +          "养成"
    +        ],
    +        "notice": "指挥官,欢迎回港",
    +        "gift_title": "",
    +        "game_status_v2": 0
    +      }
    +    ]
    +  }
    +}
    +

    查询用户最近投币视频(Web)

    https://api.bilibili.com/x/space/coin/video

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:array
    信息本体

    data数组:

    类型内容备注
    0obj投币视频1
    nobj投币视频(n+1)
    ……obj……

    data数组中的对象:

    基本与获取视频详细信息(web端)data对象字段一致

    示例:

    查看用户mid=15858903的最近投币视频

    curl -G 'http://space.bilibili.com/x/space/coin/video' \
    +	--data-urlencode 'vmid=15858903' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": [
    +        {
    +            "aid": 669644066,
    +            "videos": 1,
    +            "tid": 75,
    +            "tname": "动物圈",
    +            "copyright": 2,
    +            "pic": "http://i1.hdslb.com/bfs/archive/0f73a68b8f449cc72e9ef109685bd295dc0c0c9d.jpg",
    +            "title": "在人类幼崽身上用尽了温柔",
    +            "pubdate": 1600608261,
    +            "ctime": 1600608261,
    +            "desc": "https://weibo.com/tv/show/1034:4551253766897703?from=old_pc_videoshow",
    +            "state": 0,
    +            "attribute": 16384,
    +            "duration": 29,
    +            "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": 258457966,
    +                "name": "卧龙寺",
    +                "face": "http://i2.hdslb.com/bfs/face/f868d1f522733fdcf72a6267e0237157dd0e9948.jpg"
    +            },
    +            "stat": {
    +                "aid": 669644066,
    +                "view": 3412898,
    +                "danmaku": 719,
    +                "reply": 1481,
    +                "favorite": 21909,
    +                "coin": 2864,
    +                "share": 13702,
    +                "now_rank": 0,
    +                "his_rank": 0,
    +                "like": 86970,
    +                "dislike": 0
    +            },
    +            "dynamic": "",
    +            "cid": 237319289,
    +            "dimension": {
    +                "width": 576,
    +                "height": 1024,
    +                "rotate": 0
    +            },
    +            "bvid": "BV1sa4y1j7jk",
    +            "coins": 1,
    +            "time": 1601802763,
    +            "ip": "",
    +            "inter_video": false
    +        },
    +        {
    +            "aid": 202267998,
    +            "videos": 1,
    +            "tid": 138,
    +            "tname": "搞笑",
    +            "copyright": 1,
    +            "pic": "http://i0.hdslb.com/bfs/archive/ca7746f2207114513f1a421d7f744523275ee679.jpg",
    +            "title": "充  电  器  の  痛",
    +            "pubdate": 1601750952,
    +            "ctime": 1601750952,
    +            "desc": "这个简介吓到我了!",
    +            "state": 0,
    +            "attribute": 16512,
    +            "duration": 50,
    +            "mission_id": 14725,
    +            "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": 129922746,
    +                "name": "-白糖洒一地-",
    +                "face": "http://i0.hdslb.com/bfs/face/1f581f3b20a380c2fd13ecb8bbe409f8b49c6418.jpg"
    +            },
    +            "stat": {
    +                "aid": 202267998,
    +                "view": 109,
    +                "danmaku": 2,
    +                "reply": 11,
    +                "favorite": 5,
    +                "coin": 9,
    +                "share": 0,
    +                "now_rank": 0,
    +                "his_rank": 0,
    +                "like": 20,
    +                "dislike": 0
    +            },
    +            "dynamic": "",
    +            "cid": 241861687,
    +            "dimension": {
    +                "width": 1920,
    +                "height": 1080,
    +                "rotate": 0
    +            },
    +            "bvid": "BV1oh411X7iA",
    +            "coins": 2,
    +            "time": 1601773750,
    +            "ip": "",
    +            "inter_video": false
    +        },
    +        {
    +            "aid": 839722373,
    +            "videos": 1,
    +            "tid": 208,
    +            "tname": "校园学习",
    +            "copyright": 1,
    +            "pic": "http://i2.hdslb.com/bfs/archive/11ed53241ceab314c919adba9f85582d24d9313c.jpg",
    +            "title": "“白piáo”用日语到底怎么说?油管人气日语老师来教你!",
    +            "pubdate": 1601026026,
    +            "ctime": 1601026026,
    +            "desc": "志方老师的B站用语日语课又来了~\n欢迎大家来看哦,\n如果喜欢我们的作品的话,欢迎大家用2~3连+转发来支持我们~\n如果拒绝的话,也可以用日语在评论和弹幕里刷上一波~即可以锻炼日语又可以拒绝我们,岂不美哉~~",
    +            "state": 0,
    +            "attribute": 16768,
    +            "duration": 310,
    +            "mission_id": 14655,
    +            "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": 677926489,
    +                "name": "日语志方老师",
    +                "face": "http://i2.hdslb.com/bfs/face/d465e5cd42e3523a52b3bef38dce7b23627b7723.jpg"
    +            },
    +            "stat": {
    +                "aid": 839722373,
    +                "view": 130688,
    +                "danmaku": 1320,
    +                "reply": 799,
    +                "favorite": 3722,
    +                "coin": 5883,
    +                "share": 339,
    +                "now_rank": 0,
    +                "his_rank": 0,
    +                "like": 17585,
    +                "dislike": 0
    +            },
    +            "dynamic": "志方老师的B站用语日语课又来了~\n欢迎大家来看哦,\n如果喜欢我们的作品的话,欢迎大家用2~3连+转发来支持我们~\n如果拒绝的话,也可以用日语在评论和弹幕里刷上一波~即可以锻炼日语又可以拒绝我们,岂不美哉~~",
    +            "cid": 238876133,
    +            "dimension": {
    +                "width": 1920,
    +                "height": 1080,
    +                "rotate": 0
    +            },
    +            "bvid": "BV1n54y117kq",
    +            "coins": 2,
    +            "time": 1601036198,
    +            "ip": "",
    +            "inter_video": false
    +        }
    +    ]
    +}
    +

    查询用户最近投币视频(APP)

    https://app.bilibili.com/x/v2/space/coinarc

    请求方式:GET

    认证方式:APP

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    vmidnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum投币的视频数
    itemarray投币视频列表

    item数组:

    类型内容备注
    0obj投币的视频信息1
    nobj投币的视频信息(n+1)
    ……obj……

    item数组中的对象:

    字段类型内容备注
    titlestr稿件标题
    subtitlestr
    tnamestr
    coverstr封面图片 url
    cover_iconstr
    uristrAPP 跳转 uribilibili://video/2
    paramstr稿件 avid
    gotostrav
    lengthnum
    durationnum稿件视频长度单位为秒
    is_popularbool(?)
    is_steinsbool(?)
    is_ugcpaybool(?)
    is_cooperationstr(?)
    is_pgcstr(?)
    is_live_playbackstr(?)
    is_pugvstr(?)
    is_foldnum(?)
    playnum播放量
    danmakunum弹幕量
    ctimenum发布时间时间戳
    ugc_paynum0
    authorstrUP主昵称
    statebooltrue
    videosnum0
    view_contentstr稿件播放量文案
    icon_typenum0
    publish_time_textstr

    示例:

    用户mid=2的投币列表

    curl -G 'https://app.bilibili.com/x/v2/space/coinarc' \
    +	--data-urlencode 'appkey=1d8b6e7d45233436' \
    +	--data-urlencode 'access_key=xxx' \
    +	--data-urlencode 'vmid=2' \
    +	--data-urlencode 'ps=2' \
    +	--data-urlencode 'pn=1' \
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "count": 2,
    +        "item": [
    +            {
    +                "title": "请打开麦克风交流",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i1.hdslb.com/bfs/archive/cf9aea43b72354ee8c9486e4bf8e07cb38920a65.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/496832459?player_width=1080\u0026player_height=1920\u0026player_rotate=0",
    +                "param": "496832459",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 134,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 706480,
    +                "danmaku": 167,
    +                "ctime": 1706431476,
    +                "ugc_pay": 0,
    +                "author": "三个猪鼓励",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "70.6万",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            },
    +            {
    +                "title": "【裏命】地球的内部【いよわ】【中文CC字幕】",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i0.hdslb.com/bfs/archive/e087224ae4a5ff9ef3f2f6b7644d635276b8f5c6.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/860645391?player_width=1920\u0026player_height=1080\u0026player_rotate=0",
    +                "param": "860645391",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 264,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 194375,
    +                "danmaku": 173,
    +                "ctime": 1669713070,
    +                "ugc_pay": 0,
    +                "author": "精神安定剤",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "19.4万",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            }
    +        ]
    +    }
    +}
    +

    查询用户最近点赞视频(Web)

    https://api.bilibili.com/x/space/like/video

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    data隐藏时:null
    公开时:array
    信息本体

    data数组:

    类型内容备注
    0obj点赞视频1
    nobj点赞视频(n+1)
    ……obj……

    data数组中的对象:

    基本与获取视频详细信息(web端)data对象字段一致

    示例:

    查看用户mid=15858903的最近点赞视频

    curl -G 'http://space.bilibili.com/x/space/like/video' \
    +	--data-urlencode 'vmid=15858903' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": [
    +            {
    +                "aid": 1700085880,
    +                "videos": 1,
    +                "tid": 21,
    +                "tname": "日常",
    +                "copyright": 1,
    +                "pic": "http://i0.hdslb.com/bfs/archive/7fad4ca408c66eb7ea72188f56bcf952306d5807.jpg",
    +                "title": "你是从什么时候,意识到自己缺爱的呢?",
    +                "pubdate": 1706706000,
    +                "ctime": 1706602115,
    +                "desc": "关于个人情感问题,私信发“2024”我来帮你~",
    +                "state": 0,
    +                "duration": 91,
    +                "mission_id": 4009559,
    +                "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": 2104592226,
    +                    "name": "鲸落艳红尘",
    +                    "face": "https://i0.hdslb.com/bfs/face/80160fbcf71958e6f5ad3a4fdfa39a55cc0699a5.jpg"
    +                },
    +                "stat": {
    +                    "aid": 1700085880,
    +                    "view": 930,
    +                    "danmaku": 1,
    +                    "reply": 5,
    +                    "favorite": 18,
    +                    "coin": 0,
    +                    "share": 4,
    +                    "now_rank": 0,
    +                    "his_rank": 0,
    +                    "like": 27,
    +                    "dislike": 0,
    +                    "vt": 0,
    +                    "vv": 930
    +                },
    +                "dynamic": "",
    +                "cid": 1424231007,
    +                "dimension": {
    +                    "width": 1920,
    +                    "height": 1080,
    +                    "rotate": 0
    +                },
    +                "short_link_v2": "https://b23.tv/BV1XK421y7ZL",
    +                "first_frame": "http://i2.hdslb.com/bfs/storyff/n240130sa1k9birz4lwlsm21ya1w3p2c_firsti.jpg",
    +                "pub_location": "湖北",
    +                "bvid": "BV1XK421y7ZL",
    +                "inter_video": false,
    +                "resource_type": "ugc",
    +                "subtitle": "",
    +                "enable_vt": 0
    +            },
    +            {
    +                "aid": 836926413,
    +                "videos": 1,
    +                "tid": 21,
    +                "tname": "日常",
    +                "copyright": 1,
    +                "pic": "http://i2.hdslb.com/bfs/archive/dceaf79d1cc4f74ab8cd862f454a8ec4b4a44343.jpg",
    +                "title": "内心的创伤,是建立深度亲密关系的桥梁!",
    +                "pubdate": 1706594400,
    +                "ctime": 1706515438,
    +                "desc": "关于个人情感问题,私信发“2024”我来帮你~",
    +                "state": 0,
    +                "duration": 297,
    +                "mission_id": 4009559,
    +                "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": 2104592226,
    +                    "name": "鲸落艳红尘",
    +                    "face": "https://i0.hdslb.com/bfs/face/80160fbcf71958e6f5ad3a4fdfa39a55cc0699a5.jpg"
    +                },
    +                "stat": {
    +                    "aid": 836926413,
    +                    "view": 1903,
    +                    "danmaku": 0,
    +                    "reply": 7,
    +                    "favorite": 142,
    +                    "coin": 34,
    +                    "share": 30,
    +                    "now_rank": 0,
    +                    "his_rank": 0,
    +                    "like": 118,
    +                    "dislike": 0,
    +                    "vt": 0,
    +                    "vv": 1903
    +                },
    +                "dynamic": "",
    +                "cid": 1423127570,
    +                "dimension": {
    +                    "width": 1920,
    +                    "height": 1080,
    +                    "rotate": 0
    +                },
    +                "short_link_v2": "https://b23.tv/BV1xg4y1e7kY",
    +                "first_frame": "http://i0.hdslb.com/bfs/storyff/n240129qn55at7dr1775k12hp34tw284_firsti.jpg",
    +                "pub_location": "湖北",
    +                "bvid": "BV1xg4y1e7kY",
    +                "inter_video": false,
    +                "resource_type": "ugc",
    +                "subtitle": "",
    +                "enable_vt": 0
    +            },
    +            ……
    +        ]
    +    }
    +}
    +

    查询用户最近点赞视频(APP)

    https://app.bilibili.com/x/v2/space/likearc

    请求方式:GET

    认证方式:APP

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    appkeystrAPP密钥APP方式必要
    vmidnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    countnum点赞的视频数
    itemarray点赞视频列表

    item数组:

    类型内容备注
    0obj点赞的视频信息1
    nobj点赞的视频信息(n+1)
    ……obj……

    item数组中的对象:

    字段类型内容备注
    titlestr稿件标题
    subtitlestr
    tnamestr
    coverstr封面图片 url
    cover_iconstr
    uristrAPP 跳转 uribilibili://video/2
    paramstr稿件 avid
    gotostrav
    lengthnum
    durationnum稿件视频长度单位为秒
    is_popularbool(?)
    is_steinsbool(?)
    is_ugcpaybool(?)
    is_cooperationstr(?)
    is_pgcstr(?)
    is_live_playbackstr(?)
    is_pugvstr(?)
    is_foldnum(?)
    playnum播放量
    danmakunum弹幕量
    ctimenum发布时间时间戳
    ugc_paynum0
    authorstrUP主昵称
    statebooltrue
    videosnum0
    view_contentstr稿件播放量文案
    icon_typenum0
    publish_time_textstr

    示例:

    用户mid=2的点赞列表

    curl -G 'https://app.bilibili.com/x/v2/space/likearc' \
    +	--data-urlencode 'appkey=1d8b6e7d45233436' \
    +	--data-urlencode 'access_key=xxx' \
    +	--data-urlencode 'vmid=2' \
    +	--data-urlencode 'ps=2' \
    +	--data-urlencode 'pn=1' \
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "count": 2,
    +        "item": [
    +            {
    +                "title": "兄弟难舍也难分",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i1.hdslb.com/bfs/archive/58f031a52eab6d5faec5a39dfaab5728f65672d5.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/624351941?player_width=1080\u0026player_height=1920\u0026player_rotate=0",
    +                "param": "624351941",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 216,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 423652,
    +                "danmaku": 362,
    +                "ctime": 1706320200,
    +                "ugc_pay": 0,
    +                "author": "甜蜜老张",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "42.4万",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            },
    +            {
    +                "title": "技能搭配不累,共赴热血团战!",
    +                "subtitle": "",
    +                "tname": "",
    +                "cover": "http://i2.hdslb.com/bfs/archive/2094b8e0be819222d320e2841ee1c39f5f2e4357.jpg",
    +                "cover_icon": "",
    +                "uri": "bilibili://video/793597196?player_width=1280\u0026player_height=720\u0026player_rotate=0",
    +                "param": "793597196",
    +                "goto": "av",
    +                "length": "",
    +                "duration": 41,
    +                "is_popular": false,
    +                "is_steins": false,
    +                "is_ugcpay": false,
    +                "is_cooperation": false,
    +                "is_pgc": false,
    +                "is_live_playback": false,
    +                "is_pugv": false,
    +                "is_fold": false,
    +                "play": 1237,
    +                "danmaku": 2,
    +                "ctime": 1704855559,
    +                "ugc_pay": 0,
    +                "author": "38047aa1-cb8a-4",
    +                "state": true,
    +                "videos": 0,
    +                "view_content": "1237",
    +                "icon_type": 0,
    +                "publish_time_text": ""
    +            }
    +        ]
    +    }
    +}
    +

    投稿

    查询用户投稿视频明细

    https://api.bilibili.com/x/space/wbi/arc/search

    https://api.bilibili.com/x/space/arc/search (已废弃,保留是方便遇到问题的人搜索到此处)

    请求方式:GET

    鉴权方式:Wbi 签名

    另见 根据关键词查找视频, 功能基本相同, 暂未发现风控校验

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    orderstr排序方式非必要默认为pubdate
    最新发布:pubdate
    最多播放:click
    最多收藏:stow
    tidnum筛选目标分区非必要默认为0
    0:不进行分区筛选
    分区tid为所筛选的分区
    keywordstr关键词筛选非必要用于使用关键词搜索该UP主视频稿件
    pnnum页码非必要默认为 1
    psnum每页项数非必要默认为 30

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj列表信息
    pageobj页面信息
    episodic_buttonobj“播放全部“按钮
    is_riskbool
    gaia_res_typenum
    gaia_dataobj

    data中的list对象:

    字段类型内容备注
    tlistobj投稿视频分区索引
    vlistarray投稿视频列表

    list中的tlist对象:

    字段类型内容备注
    {tid}obj该分区的详情字段名为存在的分区tid
    ……obj……向下扩展

    tlist中的{tid}对象:

    字段类型内容备注
    countnum投稿至该分区的视频数
    namestr该分区名称
    tidnum该分区tid

    list中的vlist数组:

    类型内容备注
    0obj投稿视频1
    nobj投稿视频(n+1)
    ……obj…………

    list中的vlist数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    attributenum
    authorstr视频UP主不一定为目标用户(合作视频)
    bvidstr稿件bvid
    commentnum视频评论数
    copyrightstr视频版权类型
    creatednum投稿时间时间戳
    descriptionstr视频简介
    enable_vtnum
    hide_clickboolfalse作用尚不明确
    is_paynum0作用尚不明确
    is_union_videonum是否为合作视频0:否
    1:是
    lengthstr视频长度MM:SS
    midnum视频UP主mid不一定为目标用户(合作视频)
    metaobj无数据时为 null
    picstr视频封面
    playnum视频播放次数
    reviewnum0作用尚不明确
    subtitlestr作用尚不明确
    titlestr视频标题
    typeidnum视频分区tid
    video_reviewnum视频弹幕数

    data中的page对象:

    字段类型内容备注
    countnum总计稿件数
    pnnum当前页码
    psnum每页项数

    data中的episodic_button对象:

    字段类型内容备注
    textstr按钮文字
    uristr全部播放页url

    示例:

    pn(页码)和ps(每页项数)只改变vlist中成员的多少与内容

    以每页2项查询用户mid=53456的第1页投稿视频明细

    curl -G 'https://api.bilibili.com/x/space/arc/search' \
    +--data-urlencode 'mid=53456' \
    +--data-urlencode 'ps=2' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "list": {
    +            "tlist": {
    +                "1": {
    +                    "tid": 1,
    +                    "count": 26,
    +                    "name": "动画"
    +                },
    +                "160": {
    +                    "tid": 160,
    +                    "count": 42,
    +                    "name": "生活"
    +                },
    +                "211": {
    +                    "tid": 211,
    +                    "count": 3,
    +                    "name": "美食"
    +                },
    +                "3": {
    +                    "tid": 3,
    +                    "count": 33,
    +                    "name": "音乐"
    +                },
    +                "4": {
    +                    "tid": 4,
    +                    "count": 72,
    +                    "name": "游戏"
    +                }
    +            },
    +            "vlist": [
    +                {
    +                    "comment": 3558,
    +                    "typeid": 47,
    +                    "play": 1275661,
    +                    "pic": "//i2.hdslb.com/bfs/archive/90157806a34646ac2d4c6af3e8b6156cb3460d14.jpg",
    +                    "subtitle": "",
    +                    "description": "第一期:BV1ak4y1B7aG\n第二期:BV1eA411Y7FN\n脚本/绘画/配音/动画/片尾曲:warma\n第三期终于做完啦!这是一个以我平时发呆的时候想到的一些灵感组成的冷笑话合集,名字叫《沃玛的生活》,可以当作日常搞笑单元小动画来看。\n如果你喜欢这个系列的话请点赞投币收藏一键三连给我一些继续制作的动力吧,我真的非常非常需要更多的动力!\n祝看得开心~\n我的微博:@_warma_",
    +                    "copyright": "",
    +                    "title": "【warma】沃玛的新番更新!从现在开始放飞自我【沃玛的生活/第三期】",
    +                    "review": 0,
    +                    "author": "Warma",
    +                    "mid": 53456,
    +                    "created": 1605844817,
    +                    "length": "05:16",
    +                    "video_review": 7470,
    +                    "aid": 585275804,
    +                    "bvid": "BV1sz4y1y7KJ",
    +                    "hide_click": false,
    +                    "is_pay": 0,
    +                    "is_union_video": 0,
    +                    "is_steins_gate": 0
    +                },
    +                {
    +                    "comment": 2979,
    +                    "typeid": 21,
    +                    "play": 840676,
    +                    "pic": "//i2.hdslb.com/bfs/archive/b43f88c6ebae8fdc7dfb663f6f6f2931b924c763.jpg",
    +                    "subtitle": "",
    +                    "description": "前一阵子过生日,大家的礼物经过几番转寄终于收到了~于是录了这期礼物开箱视频。\n现在也在感慨,大家的礼物真的都太强了,居然这些全都是手工做的,真的好厉害!\n这些手工礼物背后得花多少时间和心力啊……这些对我来说都是无价的礼物,制作礼物的大家真的有心了,谢谢!!\n收到这些礼物真的很开心,视频的封面也是在这样激动的情况下画出来的,祝你看得开心~\n我的微博:@_warma_",
    +                    "copyright": "",
    +                    "title": "【warma】来开箱!大家寄来的生日礼物",
    +                    "review": 0,
    +                    "author": "Warma",
    +                    "mid": 53456,
    +                    "created": 1604635221,
    +                    "length": "24:28",
    +                    "video_review": 10476,
    +                    "aid": 287744380,
    +                    "bvid": "BV1xf4y1q7XN",
    +                    "hide_click": false,
    +                    "is_pay": 0,
    +                    "is_union_video": 0,
    +                    "is_steins_gate": 0
    +                }
    +            ]
    +        },
    +        "page": {
    +            "pn": 1,
    +            "ps": 2,
    +            "count": 176
    +        },
    +        "episodic_button": {
    +            "text": "播放全部",
    +            "uri": "//www.bilibili.com/medialist/play/53456?from=space"
    +        }
    +    }
    +}
    +

    查询用户投稿相簿预览

    相簿功能已下线, 以下接口失效, 参见 #801

    https://api.bilibili.com/x/space/album/index

    请求方式:GET

    所有类型的相簿

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    psnum获取的相簿量非必要默认为8 定义域 1-大于1700 (注意滥用风险)

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray相簿列表

    data数组:

    类型内容备注
    0obj相簿内容1
    nobj相簿内容(n+1)
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    countnum总计图片数
    ctimenum发布时间时间戳
    descriptionstr简介
    doc_idnum相簿id非动态!!!
    likenum点赞数
    picturesarray图片内容
    poster_uidnum上传用户mid
    titlestr标题动态内容无
    viewnum浏览数

    data数组中的对象中的pictures数组:

    类型内容备注
    0obj内容图片1
    nobj内容图片(n+1)项数取决于count的值
    ……obj…………

    pictures数组中的对象:

    字段类型内容备注
    img_heightnum图片高度
    img_sizenum图片大小单位为KByte
    img_srcstr图片url
    img_widthnum图片宽度

    示例:

    查询用户mid=53456的投稿相簿预览

    curl -G 'https://api.bilibili.com/x/space/album/index' \
    +--data-urlencode 'mid=53456' \
    +--data-urlencode 'ps=2'
    +
    查看响应示例:
    {
    +	"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 https://api.bilibili.com/x/dynamic/feed/draw/doc_list

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    uidnum目标用户mid必要
    page_numnum页码必要默认为0
    page_sizenum每页项数必要默认为30
    bizstr查询类型非必要全部:all
    绘画:draw
    摄影:photo
    日常:daily
    默认为all

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    itemsarray相簿列表

    items数组:

    类型内容备注
    0obj相簿内容1
    nobj相簿内容(n+1)
    ……obj…………

    items数组中的对象:

    字段类型内容备注
    countnum总计图片数
    ctimenum发布时间时间戳
    descriptionstr简介
    doc_idnum相簿id非动态!!!
    likenum点赞数
    picturesarray图片内容
    poster_uidnum上传用户mid
    titlestr标题动态内容无
    viewnum浏览数

    items数组中的对象中的pictures数组:

    类型内容备注
    0obj内容图片1
    nobj内容图片(n+1)项数取决于count的值
    ……obj…………

    pictures数组中的对象:

    字段类型内容备注
    img_heightnum图片高度
    img_sizenum图片大小单位为KByte
    img_srcstr图片url
    img_widthnum图片宽度

    示例:

    查询用户mid=53456的投稿明细中的全部类型

    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'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体无则为空 所有频道内均无视频则为空,此时code为0

    data对象:

    字段类型内容备注
    countnum总计频道数
    listarray频道列表

    data中的list数组:

    类型内容备注
    0obj频道1
    nobj频道(n+1)项数取决于count的值
    ……obj…………

    data中的list数组中的对象:

    字段类型内容备注
    cidnum频道id
    countnum频道内含视频数
    coverstr封面图片url
    introstr简介无则为空
    midnum创建用户mid
    mtimenum创建时间时间戳
    namestr标题

    示例:

    查询用户mid=53456的频道列表

    curl -G 'https://api.bilibili.com/x/space/channel/list' \
    +--data-urlencode 'mid=53456'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    cidnum目标频道id必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为100

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无用户对应的频道
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listobj频道信息
    pageobj页面信息

    data中的list对象:

    字段类型内容备注
    archivesarray包含的视频列表
    cidnum频道id
    countnum频道内含视频数
    coverstr封面图片url
    introstr简介无则为空
    midnum创建用户mid
    mtimenum创建时间时间戳
    namestr标题

    list中的archives数组:

    类型内容备注
    0obj视频1
    nobj视频(n+1)项数取决于count的值
    ……obj…………

    list中的archives数组中的对象:

    基本同「视频详细信息open in new window」中的data对象

    data中的page对象:

    字段类型内容备注
    countnum总计视频数
    numnum当前页码
    sizenum每页项数

    示例:

    查询用户mid=53456的频道170中的视频

    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'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    namestr频道名必要
    introstr频道简介非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53001:频道名字数超过限制
    53002:频道简介字数超过限制
    53004:创建的频道已经满额
    53007:频道名称已经存在
    53024:编辑内容命中敏感信息
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体成功有此项

    data对象:

    字段类型内容备注
    cidnum频道id

    示例:

    创建名为test1的频道,简介为空

    curl 'https://api.bilibili.com/x/space/channel/add' \
    +--data-urlencode 'name=test1' \
    +--data-urlencode 'intro=' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "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 ):

    参数名类型内容必要性备注
    cidnum频道id必要
    namestr频道名必要
    introstr频道简介非必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    53001:频道名字数超过限制
    53002:频道简介字数超过限制
    53007:频道名称已经存在
    53024:编辑内容命中敏感信息
    messagestr错误信息默认为0
    ttlnum1

    示例:

    修改频道138996名称为测试,简介为123456

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    删除频道

    https://api.bilibili.com/x/space/channel/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum需要删除的频道id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除频道138996

    curl 'https://api.bilibili.com/x/space/channel/del' \
    +--data-urlencode 'cid=138996' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    频道添加视频

    https://api.bilibili.com/x/space/channel/video/add

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    仅能添加自己是UP主的视频

    如添加多个视频,仅会添加正确的

    注:完成后需要使用接口「查询用户频道中的视频」刷新

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum频道id必要
    aidsnums要添加的目标稿件avid必要多个使用","(%2C)分隔
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    53003:本频道里的视频已满
    53006:提交视频已失效或频道里有(非该视频UP主)
    messagestr错误信息默认为0
    ttlnum1
    dataarray出错稿件avid列表

    data数组:

    类型内容备注
    0num出错稿件avid1
    nnum出错稿件avid(n+1)
    ……num…………

    示例:

    向频道138995中添加视频av583785685av243322853

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": []
    +}
    +

    频道删除视频

    https://api.bilibili.com/x/space/channel/video/del

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    注:完成后需要使用接口「查询用户频道中的视频」刷新

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum频道id必要
    aidnum要删除的目标稿件avid必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -404:无此项
    53008:频道内没有视频
    53009:频道内没有该视频
    messagestr错误信息默认为0
    ttlnum1

    示例:

    删除频道138995中的视频av583785685

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    调整频道视频排序

    https://api.bilibili.com/x/space/channel/video/sort

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    cidnum频道id必要
    aidnum要移动的目标稿件avid必要
    tonum视频排序倒数位置非必要默认为1
    1为列表底部,视频总数为首端
    与显示顺序恰好相反
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    调整138995中的视频av583785685位置为倒数第2

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    检查频道中有无失效视频

    https://api.bilibili.com/x/space/channel/video/check

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    cidnum目标频道id必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    -404:无此项
    53005:频道内有失效视频
    messagestr错误信息默认为0
    ttlnum1

    示例:

    检查频道138995

    curl -G 'https://api.bilibili.com/x/space/channel/video/check
    +--data-urlencode 'cid=138995' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    课程

    查询用户发布的课程列表

    https://api.bilibili.com/pugv/app/web/season/page

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为20

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray课程列表
    pageobj页面信息

    data中的page对象:

    字段类型内容备注
    nextbool是否存在下一页false:最后一页
    true:存在下一页
    numnum当前页码
    sizenum每页项数
    totalnum总计项数

    data中的list数组:

    类型内容备注
    0obj课程1
    nobj课程(n+1)按照目标用户的发布顺序排列
    ……obj……

    data中的list数组中的对象:

    字段类型内容备注
    coverstr课程封面url
    ep_countnum课程集数
    linkstr课程页面url手机版页面url
    pagenum1作用尚不明确
    playnum课程播放数
    season_idnum课程ssid
    statusstr更新状态说明
    subtitlestr课程副标题
    titlestr课程标题

    示例:

    查询用户mid=33683045的课程发布列表

    curl -G 'https://api.bilibili.com/pugv/app/web/season/page' \
    +--data-urlencode 'mid=33683045' \
    +--data-urlencode 'ps=5' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +    "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"
    +}
    +

    订阅

    查询用户追番预览列表

    http://space.bilibili.com/ajax/Bangumi/getList

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    带有转义,且只能获取最多15条

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool状态false:失败
    true:成功
    data失败:str
    成功:obj
    失败:错误信息
    成功:信息本体

    data对象:

    字段类型内容备注
    countnum总计追番数
    pagesnum0作用尚不明确
    resultarray追番预览列表

    data中的result数组:

    类型内容备注
    0obj追番1
    nobj追番(n+1)按照目标用户的关注顺序排列
    ……obj……
    14obj追番15最后一项

    data中的result数组中的对象:

    字段类型内容备注
    briefstr简介
    coverstr封面图片url
    evaluatestr
    favoritesnum追番数
    is_finishnum是否已完结0:未完结
    1:已完结
    last_ep_indexnum0作用尚不明确
    newest_ep_indexnum最新一话可能为0
    season_idstr番剧ssid
    share_urlstr播放页面链接url
    titlestr标题
    total_countnum总计集数未完结:-1
    已完结:非0正整数

    示例:

    查看用户mid=14082的追番预览列表

    curl -G 'http://space.bilibili.com/ajax/Bangumi/getList' \
    +--data-urlencode 'mid=14082' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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": "http:\/\/i0.hdslb.com\/bfs\/bangumi\/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png",
    +			"evaluate": "",
    +			"brief": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不..."
    +		}, 
    +		…………
    +		]
    +	}
    +}
    +

    查询用户追番(追剧)明细

    https://api.bilibili.com/x/space/bangumi/follow/list

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    url参数:

    参数名类型内容必要性备注
    vmidnum目标用户mid必要
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为15 定义域1-30
    typenum查询类型必要1:追番
    2:追剧

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    53013:用户隐私设置未公开
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray追番列表
    pnnum当前页码
    psnum每页项数
    totalnum总计追番数

    data中的list数组:

    类型内容备注
    0obj追番1
    nobj追番(n+1)按照目标用户的关注顺序排列
    ……obj……

    data中的list数组中的对象:

    基本同「番剧详细信息」中的result对象(未完工)

    示例:

    查看用户mid=14082的追番明细

    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'
    +
    查看响应示例:
    {
    +	"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(话题)

    http://space.bilibili.com/ajax/tags/getSubList

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    如设置隐私查看自己的需要认证

    带有转义

    只显示前100个

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    statusbool返回值false:错误
    true:正确
    data错误时:str
    正确时:obj
    错误时:错误信息
    正确时:数据本体
    正确时不返回错误信息

    data对象:

    字段类型内容备注
    tagsarray关注TAG列表
    countnum关注TAG的数

    data中的tags数组:

    类型内容备注
    0obj关注TAG1
    nobj关注TAG(n+1)
    ……obj…………
    99obj关注TAG100最后一项

    data中的tags数组中的对象:

    字段类型内容备注
    archive_countnum0作用尚不明确
    coverstrTAG图片url无则为空
    namestrTAG名
    notifynum1作用尚不明确
    tag_idnumtag_id
    updated_tsstr1970-01-01 08:00:00作用尚不明确

    示例:

    查询用户mid=2的关注TAG

    curl -G 'http://space.bilibili.com/ajax/tags/getSubList' \
    +--data-urlencode 'mid=2' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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.html b/docs/user/status_number.html new file mode 100644 index 0000000000..ffb669fcf5 --- /dev/null +++ b/docs/user/status_number.html @@ -0,0 +1,106 @@ + + + + + + + + + 用户状态数 | BAC Document + + + + +

    用户状态数

    关系状态数

    https://api.bilibili.com/x/relation/stat

    请求方式:GET

    认证方式:Cookie(SESSDATA)或APP

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    vmidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    midnum目标用户mid
    followingnum关注数
    whispernum悄悄关注数需要登录(Cookie或APP)
    未登录或非自己恒为0
    blacknum黑名单数需要登录(Cookie或APP)
    未登录或非自己恒为0
    followernum粉丝数

    示例:

    查询用户mid=332704117的关系状态数

    curl -G 'https://api.bilibili.com/x/relation/stat' \
    +--data-urlencode 'vmid=332704117' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP登录TokenAPP方式必要
    midnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    archiveobj视频播放量
    articleobj专栏阅读量
    likesnum获赞次数

    data中的archive对象:

    字段类型内容备注
    viewnum视频播放量

    data中的article对象:

    字段类型内容备注
    viewnum专栏阅读量

    示例:

    查询用户mid=456664753的UP主状态数

    curl -G 'https://api.bilibili.com/x/space/upstat' \
    +--data-urlencode 'mid=456664753' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"archive": {
    +			"view": 213567370
    +		},
    +		"article": {
    +			"view": 3230808
    +		},
    +		"likes": 20295095
    +	}
    +}
    +

    用户导航栏状态数

    https://api.bilibili.com/x/space/navnum

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum目标用户mid必要
    web_locationstr333.999不必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    videonum投稿视频数
    banguminum追番数无视隐私设置
    cinemanum追剧数无视隐私设置
    channelobj视频列表数
    favouriteobj收藏夹数
    tagnum关注TAG数无视隐私设置
    articlenum投稿专栏数
    playlistnum0作用尚不明确
    albumnum投稿图文数
    audionum投稿音频数
    pugvnum投稿课程数
    uposnum动态数
    season_numnum视频合集数

    data中的channel对象:

    字段类型内容备注
    masternum视频列表数
    guestnum视频列表数

    data中的favourite对象:

    字段类型内容备注
    masternum全部收藏夹数需要登录(SESSDATA)
    只能查看自己的
    guestnum公开收藏夹数

    示例:

    查询用户mid=645769214的订阅&投稿状态数

    curl -G 'https://api.bilibili.com/x/space/navnum' \
    +--data-urlencode 'mid=645769214'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "video": 34,
    +    "bangumi": 1,
    +    "cinema": 0,
    +    "channel": {
    +      "master": 5,
    +      "guest": 5
    +    },
    +    "favourite": {
    +      "master": 0,
    +      "guest": 0
    +    },
    +    "tag": 0,
    +    "article": 1,
    +    "playlist": 0,
    +    "album": 59,
    +    "audio": 0,
    +    "pugv": 0,
    +    "season_num": 1,
    +    "opus": 59
    +  }
    +}
    +

    相簿投稿数

    https://api.vc.bilibili.com/link_draw/v1/doc/upload_count

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    uidnum目标用户mid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    msgstr错误信息默认为success
    messagestr错误信息默认为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    all_countnum相簿总数总数为以下三者之和
    draw_countnum发布绘画数
    photo_countnum发布摄影数
    daily_countnum发布日常(图片动态)数

    示例:

    查询用户mid=53456的投稿相簿数

    curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/upload_count' \
    +--data-urlencode 'uid=53456'
    +
    查看响应示例:
    {
    +    "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.html b/docs/video/action.html new file mode 100644 index 0000000000..c8d37c10d4 --- /dev/null +++ b/docs/video/action.html @@ -0,0 +1,224 @@ + + + + + + + + + 稿件观众操作 | BAC Document + + + + +

    稿件观众操作

    点赞

    点赞视频(web端)

    https://api.bilibili.com/x/web-interface/archive/like

    请求方式:POST

    认证方式:仅可Cookie(SESSDATA)

    需验证 Cookie 中buvid3字段存在且正常, 否则将导致触发风控

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    likenum操作方式必要1:点赞
    2:取消赞
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403: 账号异常
    10003:不存在该稿件
    65004:取消点赞失败
    65006:重复点赞
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点赞视频av79677524/BV1uJ411r7hL

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1
    +}
    +

    点赞视频(APP端)

    https://app.bilibili.com/x/v2/view/like

    请求方式:POST

    认证方式:仅可APP

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要
    likenum操作方式必要0:点赞
    1:取消赞

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    -403: 账号异常
    10003:不存在该稿件
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    toaststr提示信息内容

    示例:

    点赞视频av79677524

    curl 'https://app.bilibili.com/x/v2/view/like' \
    +--data-urlencode 'access_key=xxx' \
    +--data-urlencode 'aid=79677524' \
    +--data-urlencode 'like=0'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "toast": "点赞收到!视频可能推荐哦"
    +    }
    +}
    +

    判断视频近期是否被点赞(双端)

    https://api.bilibili.com/x/web-interface/archive/has/like

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    注: 这一 API 实际上只能判断出视频在近期内是否被点赞, 并不能判断出视频是否被点赞. 「近期」的定义不明, 但至少半年前点赞过的视频, 用这一接口获取到的结果就已经是 0 了. 参见 #380open in new window.

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    datanum被点赞标志0:未点赞
    1:已点赞

    示例:

    视频av39330059/BV1Bt411z799的状态为已点赞

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \
    +--data-urlencode 'aid=39330059' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \
    +--data-urlencode 'bvid=BV1Bt411z799' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 Token必要
    aidnum视频 aid必要
    dislikenum操作类型必要0:点踩
    1:取消点踩

    json回复:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    -404:啥都木有
    65005:取消踩失败 未点踩过
    65007:已踩过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    点踩视频

    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'
    +

    取消点踩

    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)

    需验证 Cookie 中buvid3字段存在且正常, 否则将导致触发风控

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    multiplynum投币数量必要上限为2
    select_likenum是否附加点赞非必要0:不点赞
    1:同时点赞
    默认为0
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -104:硬币不足
    -111:csrf校验失败
    -400:请求错误
    -403: 账号异常
    10003:不存在该稿件
    34002:不能给自己投币
    34003:非法的投币数量
    34004:投币间隔太短
    34005:超过投币上限
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    已赞过则附加点赞失败

    示例:

    为视频av90671873/BV1N7411A7wC投币2枚

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要
    multiplynum投币数量必要上限为2
    select_likenum附加点赞非必要0:不点赞
    1:同时点赞
    默认为0

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -102:账号被封停
    -104:硬币不足
    -400:请求错误
    10003:不存在该稿件
    34002:不能给自己投币
    34003:非法的投币数量
    34004:投币间隔太短
    34005:超过投币上限
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    已赞过则附加点赞失败

    为视频av90671873投币2枚

    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'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"like": true
    +	}
    +}
    +

    判断视频是否被投币(双端)

    https://api.bilibili.com/x/web-interface/archive/coins

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP方式必要
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    multiplynum投币枚数未投币为0

    示例:

    视频av37896701/BV18t411q7zz的投币数为2枚

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/coins' \
    +--data-urlencode 'aid=37896701' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/coins' \
    +--data-urlencode 'bvid=BV18t411q7zz' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"message": "0",
    +	"ttl": 1,
    +	"data": {
    +		"multiply": 2
    +	}
    +}
    +

    收藏

    收藏视频(双端)

    https://api.bilibili.com/medialist/gateway/coll/resource/deal

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    鉴权方式:Cookie方式时需要验证referer为 .bilibili.com域名下

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    ridnum稿件 avid必要
    typenum必须为2必要
    add_media_idsnums需要加入的收藏夹 mlid非必要(可选)同时添加多个,用,(%2C)分隔
    del_media_idsnums需要取消的收藏夹 mlid非必要(可选)同时取消多个,用,(%2C)分隔
    csrfstrCSRF Token(位于 Cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    -403:访问权限不足
    10003:不存在该稿件
    11010: 您访问的内容不存在
    11201:已经收藏过了
    11202:已经取消收藏了
    11203:达到收藏上限
    72010017:参数错误
    messagestr错误信息正确为success
    dataobj信息本体

    data对象:

    字段类型内容备注
    promptbool是否为未关注用户收藏false:否
    true:是

    示例:

    将视频av49166435添加到收藏夹49166435

    Cookie方式:

    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方式:

    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='
    +
    查看响应示例:
    {
    +	"code": 0,
    +	"data": {
    +		"prompt": false
    +	},
    +	"message": "success"
    +}
    +

    收藏视频(Web端)

    https://api.bilibili.com/x/v3/fav/resource/deal

    请求方式: POST

    认证方式: Cookie(SESSDATA)

    正文参数(application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    ridnum稿件 avid必要
    typenum必须为2必要
    add_media_idsnums需要加入的收藏夹 mlid非必要(可选)同时添加多个,用,(%2C)分隔
    del_media_idsnums需要取消的收藏夹 mlid非必要(可选)同时取消多个,用,(%2C)分隔
    csrfstrCSRF Token (即 Cookie 中 bili_jct)必要
    platformstr平台标识?非必要web端: web
    eab_xnum1非必要作用尚不明确
    ramvalnum正整数非必要可能与在该页面的停留时间相关?
    ganum1非必要作用尚不明确
    gaia_sourcestr???非必要web端: web_normal

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -101: 账号未登录
    -111: csrf 校验失败
    2001000: 参数错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体错误时为 null 或不存在

    data对象:

    字段类型内容备注
    promptbool是否为未关注用户收藏?false:否
    true:是
    ga_datanull作用尚不明确
    toast_msgstr作用尚不明确
    success_numnum0作用尚不明确

    示例:

    将视频 av1906473802 添加到收藏夹 1164192068

    curl -sX POST "https://api.bilibili.com/x/v3/fav/resource/deal" \
    +--data-urlencode "rid=1906473802" \
    +--data-urlencode  "type=2" \
    +--data-urlencode "csrf=xxx" \
    +--data-urlencode "add_media_ids=1164192068" \
    +-b "SESSDATA=xxx; bili_jct=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "prompt": false,
    +    "ga_data": null,
    +    "toast_msg": "",
    +    "success_num": 0
    +  }
    +}
    +

    判断视频是否被收藏(双端)

    https://api.bilibili.com/x/v2/fav/video/favoured

    请求方式:GET

    认证方式:APP或Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    aidnum 或 str稿件 avid 或稿件 bvid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -101:账号未登录
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    countnum1作用尚不明确
    favouredbool是否收藏true:已收藏
    false:未收藏

    示例:

    视频av46281123/BV1Bb411H7Dv的状态为已收藏

    avid方式:

    curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \
    +--data-urlencode 'aid=46281123' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \
    +--data-urlencode 'aid=BV1Bb411H7Dv' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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)

    同时点赞投币收藏视频,收藏于默认收藏夹中

    需验证 Cookie 中buvid3字段存在且正常, 否则将导致触发风控

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    10003:不存在该稿件
    -403: 账号异常
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    coinbool是否投币成功true:成功
    false:失败
    favbool是否收藏成功true:成功
    false:失败
    multiplynum投币枚数默认为2

    示例:

    将视频av91003840/BV1Wj411f79U一键三连

    avid方式:

    curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \
    +--data-urlencode 'aid=91003840' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \
    +--data-urlencode 'bvid=BV1Wj411f79U' \
    +--data-urlencode 'csrf=xxx' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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_keystrAPP 登录 TokenAPP 方式必要
    aidnum稿件 avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -400:请求错误
    10003:不存在该稿件
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    likebool是否点赞成功true:成功
    false:失败
    coinbool是否投币成功true:成功
    false:失败
    favbool是否收藏成功true:成功
    false:失败
    multiplynum投币枚数默认为2

    示例:

    将视频av91003840一键三连

    curl 'https://app.bilibili.com/x/v2/view/like/triple' \
    +--data-urlencode 'access_key=xxx' \
    +--data-urlencode 'aid=91003840'
    +
    查看响应示例:
    {
    +	"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

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid任 选一个
    csrfstrCSRF Token(位于 Cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    datanum当前分享数

    示例:

    分享视频BV1oA411776z

    curl 'https://api.bilibili.com/x/web-interface/share/add' \
    +--data-urlencode 'csrf=xxx' \
    +--data-urlencode 'bvid=BV1oA411776z'
    +
    查看响应示例:
    {
    +	"code":0,
    +	"message":"0",
    +	"ttl":1,
    +	"data":19
    +}
    +
    + + + diff --git a/docs/video/appeal.html b/docs/video/appeal.html new file mode 100644 index 0000000000..5f9aa2247d --- /dev/null +++ b/docs/video/appeal.html @@ -0,0 +1,348 @@ + + + + + + + + + 稿件投诉 | BAC Document + + + + +

    稿件投诉

    附件上传

    附件上传与视频封面上传共用一个api。

    获取投诉类型

    https://api.bilibili.com/x/web-interface/archive/appeal/tags

    请求类型:GET

    json回复:

    参数名类型内容备注
    codenum成功为0
    messagestr成功为0
    ttlnum1
    dataarray

    data数组:

    类型内容备注
    0obj类型条目 1
    nobj类型条目 (n+1)按照指定的顺序排列
    ……obj…………

    data数组中的对象

    类型内容备注
    tidnum类型tid
    businessnum意义不明
    weightnum权重
    roundnum意义不明
    statenum意义不明
    namestr类型名称
    remarkstr类型备注
    ctimestr意义不明
    mtimestr意义不明
    controls拥有时:array
    没有时:null
    详细信息填写提示

    controls数组中的对象:

    类型内容备注
    tidnum同上
    bidnum意义不明
    namestr提示名称
    titlestr提示标题
    componentstr需要填入的类型
    placeholderstr文本框占位符
    requirednum是否为必填

    示例:

    curl --location --request GET 'https://api.bilibili.com/x/web-interface/archive/appeal/tags'
    +
    查看响应示例
    {
    +    "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": "2023-09-21T18:40:20+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 8,
    +            "business": 1,
    +            "weight": 40,
    +            "round": 2,
    +            "state": 1,
    +            "name": "与站内其他视频撞车",
    +            "remark": "为帮助审核人员更快处理, 请描述撞车信息",
    +            "ctime": "2018-08-13T15:41:20+08:00",
    +            "mtime": "2023-03-06T16:36:02+08:00",
    +            "controls": [
    +                {
    +                    "tid": 8,
    +                    "bid": 1,
    +                    "name": "撞车对象",
    +                    "title": "撞车对象",
    +                    "component": "input",
    +                    "placeholder": "BVID",
    +                    "required": 1
    +                }
    +            ]
    +        },
    +        {
    +            "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": "2023-09-20T16:23:39+08:00",
    +            "controls": [
    +                {
    +                    "tid": 52,
    +                    "bid": 1,
    +                    "name": "出处",
    +                    "title": "原创视频出处",
    +                    "component": "link",
    +                    "placeholder": "请填写链接",
    +                    "required": 1
    +                }
    +            ]
    +        },
    +        {
    +            "tid": 10018,
    +            "business": 1,
    +            "weight": 36,
    +            "round": 2,
    +            "state": 1,
    +            "name": "违规推广",
    +            "remark": "",
    +            "ctime": "2023-09-21T17:56:21+08:00",
    +            "mtime": "2023-09-22T14:36:41+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10019,
    +            "business": 1,
    +            "weight": 34,
    +            "round": 2,
    +            "state": 1,
    +            "name": "其他不规范行为",
    +            "remark": "",
    +            "ctime": "2023-09-21T18:05:33+08:00",
    +            "mtime": "2023-09-22T14:37:03+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10020,
    +            "business": 1,
    +            "weight": 89,
    +            "round": 2,
    +            "state": 1,
    +            "name": "危险行为",
    +            "remark": "",
    +            "ctime": "2023-09-21T18:05:51+08:00",
    +            "mtime": "2023-09-22T14:38:08+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10022,
    +            "business": 1,
    +            "weight": 1,
    +            "round": 2,
    +            "state": 1,
    +            "name": "其他",
    +            "remark": "",
    +            "ctime": "2023-09-21T19:07:01+08:00",
    +            "mtime": "2023-09-22T14:38:59+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10023,
    +            "business": 1,
    +            "weight": 59,
    +            "round": 2,
    +            "state": 1,
    +            "name": "企业商誉侵权",
    +            "remark": "",
    +            "ctime": "2023-12-01T14:06:58+08:00",
    +            "mtime": "2023-12-01T15:33:26+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10024,
    +            "business": 1,
    +            "weight": 58,
    +            "round": 2,
    +            "state": 1,
    +            "name": "侵权申诉",
    +            "remark": "",
    +            "ctime": "2023-12-01T14:07:18+08:00",
    +            "mtime": "2023-12-01T15:33:37+08:00",
    +            "controls": null
    +        },
    +        {
    +            "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": "2023-09-21T19:07:10+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": 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
    +        },
    +        {
    +            "tid": 10014,
    +            "business": 1,
    +            "weight": 8,
    +            "round": 1,
    +            "state": 1,
    +            "name": "涉政谣言",
    +            "remark": "为帮助审核人员更快处理,请补充谣言内容出现位置",
    +            "ctime": "2022-09-15T17:23:44+08:00",
    +            "mtime": "2022-09-16T09:56:07+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10015,
    +            "business": 1,
    +            "weight": 7,
    +            "round": 1,
    +            "state": 1,
    +            "name": "涉社会事件谣言",
    +            "remark": "为帮助审核人员更快处理,请补充谣言内容出现位置",
    +            "ctime": "2022-09-15T17:25:56+08:00",
    +            "mtime": "2022-09-16T09:56:07+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10017,
    +            "business": 1,
    +            "weight": 5,
    +            "round": 1,
    +            "state": 1,
    +            "name": "虚假不实信息",
    +            "remark": "为帮助审核人员更快处理,请补充不实内容出现位置",
    +            "ctime": "2022-09-15T17:28:16+08:00",
    +            "mtime": "2022-09-16T09:56:08+08:00",
    +            "controls": null
    +        },
    +        {
    +            "tid": 10021,
    +            "business": 1,
    +            "weight": 88,
    +            "round": 1,
    +            "state": 1,
    +            "name": "观感不适",
    +            "remark": "",
    +            "ctime": "2023-09-21T18:06:15+08:00",
    +            "mtime": "2023-09-21T18:06:15+08:00",
    +            "controls": null
    +        }
    +    ]
    +}
    +

    投诉稿件

    https://api.bilibili.com/x/web-interface/appeal/v2/submit 请求方式:POST

    认证方式:Cookie(SESSDATA)

    正文参数:

    参数名类型内容必要性备注
    csrfstrcsrf token(位于cookie bili_jct)必要位于request body
    aidnum稿件aid必要位于request body
    tidnum投诉理由tid必要位于request body
    descstr投诉理由详细描述必要位于request body
    attachstr附件(多个附件用逗号隔开非必要位于request body
    buidstr风控代码必要位于request header
    Buidstr风控代码必要位于request cookies

    上下两个buid值必须相同,可随机

    json回复:

    参数名类型内容备注
    codenum返回码成功为0
    messagestr成功为0
    ttl1

    **示例:举报av号为61080066的视频,理由为人身攻击,描述为“xxxxx”,并附带了一个图片附件

    curl --location --request POST 'https://api.bilibili.com/x/web-interface/appeal/v2/submit' \
    +--form 'csrf="xxxx"'\
    +--form 'aid="61080066"' \
    +--form 'tid="7"' \
    +--form 'desc="xxxxx"' \
    +--form 'attach="https://archive.biliimg.com/bfs/archive/xxxxx.png"'
    +
    查看响应示例
    {
    +	"code":0,
    +	"message":"0",
    +	"ttl":1
    +}
    +
    + + + diff --git a/docs/video/attribute_data.html b/docs/video/attribute_data.html new file mode 100644 index 0000000000..a339e90e65 --- /dev/null +++ b/docs/video/attribute_data.html @@ -0,0 +1,33 @@ + + + + + + + + + 视频属性数据说明 | BAC Document + + + + +

    视频属性数据说明

    PS:以下部分内容来源不明,且部分值前端不可见,有待验证

    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站访问https://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定时发布
    -50仅UP主可见
    -100用户删除
    + + + diff --git a/docs/video/collection.html b/docs/video/collection.html new file mode 100644 index 0000000000..d77abc729b --- /dev/null +++ b/docs/video/collection.html @@ -0,0 +1,1358 @@ + + + + + + + + + 合集和视频列表信息 | BAC Document + + + + +

    合集和视频列表信息

    请注意区分 合集(seasons_archives)视频列表(seasons_series)

    合集是后加入的功能, 图标为立体叠放的正方形(.icon-heji), 可以在创作中心管理, 参见 合集管理

    列表即系列(series)或频道(channel), 图标为平面叠放的矩形且中央有播放按钮标识(.icon-ic_channel1), 在个人空间直接操作

    此处保留原 Issue 的表述, 参见 #945open in new window

    获取视频合集信息

    https://api.bilibili.com/x/polymer/web-space/seasons_archives_list (需验证referer)

    https://api.bilibili.com/x/polymer/space/seasons_archives_list (旧接口, 不推荐使用, 无鉴权验证)

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    midnum用户 mid必要创建者的 mid,但也可以是任意的非负整数
    season_idnum视频合集 ID必要
    sort_reversebool排序方式可选true: 升序排序
    false: 默认排序
    page_numnum页码索引可选默认为 1
    page_sizenum单页内容数量可选默认为 30
    gaia_vtokenstr风控验证?可选若被风控则必要(如User-Agent不正常)
    web_locationstr页面位置?可选333.999
    w_ridstrWBI 签名可选参见 WBI 签名
    wtsnumUNIX 秒级时间戳可选参见 WBI 签名

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidsarray稿件 avid 列表对应下方数组中内容 aid
    archivesarray合集中的视频
    metaobj合集元数据
    pageobj分页信息

    data中的archives数组:

    类型内容备注
    0obj合集内容
    nobj(n+1)P内容
    ……obj…………

    archives数组中的对象:

    字段类型内容备注
    aidnum稿件 avid
    bvidstr稿件 bvid
    ctimenum创建时间Unix 时间戳
    durationnum视频时长单位为秒
    enable_vtboolfalse旧接口无
    interactive_videobool是否是互动视频
    picstr封面 URL
    playback_positionnum会随着播放时间增长,播放完成后为 -1 。单位为 %
    pubdatenum发布日期Unix 时间戳
    statobj稿件信息
    statenum0
    titlestr稿件标题
    ugc_paynumUGC 付费?0: 否
    vt_displaystr旧接口无

    archives中的stat对象:

    字段类型内容备注
    viewnum稿件播放量
    vtnum0

    data中的meta对象:

    字段类型内容备注
    categorynum0
    coverstr合集封面 URL
    descriptionstr合集描述
    midnumUP 主 ID
    namestr合集标题
    ptimenum发布时间Unix 时间戳
    season_idnum合集 ID
    totalnum合集内视频数量

    data中的page对象:

    字段类型内容备注
    page_numnum分页页码
    page_sizenum单页个数
    totalnum合集内视频数量

    示例:

    获取 mid=37737161season_id=1227671 视频合集信息,默认排序,第 1 页,每页 30 个视频

    curl -G "https://api.bilibili.com/x/polymer/space/seasons_archives_list" \
    +--data-urlencode "mid=37737161" \
    +--data-urlencode "sort_reverse=false" \
    +--data-urlencode "season_id=1227671" \
    +--data-urlencode "page_num=1" \
    +--data-urlencode "page_size=30"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "aids": [
    +      311606079,
    +      400546145
    +    ],
    +    "archives": [
    +      {
    +        "aid": 311606079,
    +        "bvid": "BV1XN411K7g9",
    +        "ctime": 1679651747,
    +        "duration": 261,
    +        "interactive_video": false,
    +        "pic": "http://i2.hdslb.com/bfs/archive/234e6bd061176dba9e148f4373c52fa7cd2d801f.jpg",
    +        "pubdate": 1679651747,
    +        "stat": {
    +          "view": 12145
    +        },
    +        "state": 0,
    +        "title": "某些IT社区平台乱象,文章千篇一律,毫不注重版权,文章互相抄袭成潮流,希望能够好好管管!",
    +        "ugc_pay": 0
    +      },
    +      {
    +        "aid": 400546145,
    +        "bvid": "BV1qo4y1L73P",
    +        "ctime": 1682777426,
    +        "duration": 335,
    +        "interactive_video": false,
    +        "pic": "http://i2.hdslb.com/bfs/archive/a6b6fb0330bbf6c500720a024e5a9ade24d888c3.jpg",
    +        "pubdate": 1682777425,
    +        "stat": {
    +          "view": 52743
    +        },
    +        "state": 0,
    +        "title": "某些搜索引擎得到的结果,官方网站反而排在一些诈骗广告后面,诱导用户下载大量捆绑垃圾软件",
    +        "ugc_pay": 0
    +      }
    +    ],
    +    "meta": {
    +      "category": 0,
    +      "cover": "https://archive.biliimg.com/bfs/archive/5e1c1f77c3065ec31eec43d7e35f7a061602e4d6.jpg",
    +      "description": "白马首席讲师吐槽系列视频",
    +      "mid": 37737161,
    +      "name": "水浅王八多,真假白马说",
    +      "ptime": 1682777425,
    +      "season_id": 1227671,
    +      "total": 2
    +    },
    +    "page": {
    +      "page_num": 1,
    +      "page_size": 30,
    +      "total": 2
    +    }
    +  }
    +}
    +

    只获取系列视频

    https://api.bilibili.com/x/polymer/web-space/home/seasons_series

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    midnum用户 mid必要
    page_numnum页码索引必要
    page_sizenum单页内容数量必要
    gaia_vtokenstr风控验证?可选若被风控则必要(如User-Agent不正常)
    w_ridstrWBI 签名不必要参见 WBI 签名
    wtsnumUNIX 秒级时间戳不必要参见 WBI 签名

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -352: 请求被风控
    -400: 请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    items_listsobj内容列表套了个娃

    data中的items_lists对象:

    字段类型内容备注
    pageobj分页信息
    seasons_listarray
    series_listarray系列列表

    items_lists中的page对象:

    字段类型内容备注
    page_numnum分页页码
    page_sizenum单页个数
    totalnum总页数

    items_lists中的series_list数组:

    类型内容备注
    0obj第1个系列内容
    1obj第2个系列内容
    ……obj…………
    nobj第(n+1)个系列内容

    series_list数组中的对象:

    字段类型内容备注
    archivesarray系列视频列表
    metaobj系列元数据
    recent_aidsarray系列视频 aid 列表内容类型为num

    series_list中的archives数组:

    获取视频合集信息中的archives数组

    series_list中的meta对象:

    字段类型内容备注
    categorynum1
    coverstr系列封面 URL
    creatorstrauto
    ctimenum创建时间Unix 时间戳
    descriptionstr系列描述
    keywordsarray系列关键词列表内容类型为str
    last_update_tsnum最近更新时间Unix 时间戳
    midnumUP 主 ID
    mtimenum修改时间Unix 时间戳
    namestr系列标题
    raw_keywordsstr原始系列关键词
    series_idnum系列 ID
    statenum2
    totalnum系列视频数量

    示例:

    curl -G "https://api.bilibili.com/x/polymer/web-space/home/seasons_series" \
    +--data-urlencode "mid=37737161" \
    +--data-urlencode "page_num=1" \
    +--data-urlencode "page_size=10"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "items_lists": {
    +      "page": {
    +        "page_num": 1,
    +        "page_size": 10,
    +        "total": 1
    +      },
    +      "seasons_list": [],
    +      "series_list": [
    +        {
    +          "archives": [
    +            {
    +              "aid": 284063097,
    +              "bvid": "BV1Fc411x7xF",
    +              "ctime": 1705925782,
    +              "duration": 8885,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/5aa1bb0a121d89969e9bd2634bc7ae23272bf850.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1705925781,
    +              "stat": {
    +                "view": 14683,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Gradle 教程 已完结 (基于Kotlin DSL讲解) 4K蓝光画质 超强的脚本式项目依赖和构建工具",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 367948632,
    +              "bvid": "BV1P94y1c7tV",
    +              "ctime": 1703844221,
    +              "duration": 52036,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/499aeb41a0428e05523b766e367540b04f7c3ae2.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1703844220,
    +              "stat": {
    +                "view": 82997,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Kotlin 教程 已完结 (IDEA 2024 最新版) 4K蓝光画质+杜比音效 零基础入门一套搞定 入门到入土经典版",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 836303388,
    +              "bvid": "BV1Hg4y1m7Ca",
    +              "ctime": 1705401362,
    +              "duration": 5873,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/a20b09d1cc1a81f6a9c5ed8ea322656e406be725.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1705401362,
    +              "stat": {
    +                "view": 8417,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Kotlin 扩展篇 已完结 (IDEA 2024 最新版) 4K蓝光画质 与Java语言混合编程",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/5aa1bb0a121d89969e9bd2634bc7ae23272bf850.jpg",
    +            "creator": "auto",
    +            "ctime": 1705401630,
    +            "description": "包含Kotlin语言学习的完整流程,正在不断完善中哦~",
    +            "keywords": [
    +              "Kotlin"
    +            ],
    +            "last_update_ts": 1705925782,
    +            "mid": 37737161,
    +            "mtime": 1705925782,
    +            "name": "Kotlin开心路线",
    +            "raw_keywords": "Kotlin",
    +            "series_id": 3908327,
    +            "state": 2,
    +            "total": 3
    +          },
    +          "recent_aids": [
    +            284063097,
    +            367948632,
    +            836303388
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 848832470,
    +              "bvid": "BV1CL4y1i7qR",
    +              "ctime": 1635258883,
    +              "duration": 106474,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/45dddea811257f78ddd6f1e70197d95d7d6b5187.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1635258883,
    +              "stat": {
    +                "view": 438645,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaWeb 教程 已完结(IDEA 2021版本)4K蓝光画质 入土到起立",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 566880413,
    +              "bvid": "BV1Kv4y1x7is",
    +              "ctime": 1676544280,
    +              "duration": 25149,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/cc59de5afebc66447ba93ad9ea0ba73a9b09c117.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1676544280,
    +              "stat": {
    +                "view": 87171,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring 核心教程 已完结(IDEA 2023最新版)4K蓝光画质 基于Spring6的全新重制版本 起立到起飞",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 615286308,
    +              "bvid": "BV1Lh4y1M7kx",
    +              "ctime": 1688117457,
    +              "duration": 10373,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/5f860de4bc0fab30651ae93396f9c572be8380b2.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1688117457,
    +              "stat": {
    +                "view": 41428,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring MVC 教程 已完结(IDEA 2023最新版)4K蓝光画质 基于Spring6的全新重制版本 起立到起飞",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 403104913,
    +              "bvid": "BV1fV411M7aS",
    +              "ctime": 1688560394,
    +              "duration": 17611,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/c4557a16aa3519183d6ae0114e1c64107bb23703.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1688560394,
    +              "stat": {
    +                "view": 59298,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring Security 教程 已完结(IDEA 2023最新版)4K蓝光画质 基于Spring6的全新重制版本 起立到起飞",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 828666773,
    +              "bvid": "BV1xu4y1m7UP",
    +              "ctime": 1689767299,
    +              "duration": 29696,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/06cf686d4d3f7ce6731975ef59938d759283318e.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1689767299,
    +              "stat": {
    +                "view": 108078,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Spring Boot 教程 已完结(IDEA 2023最新版)4K蓝光画质 基于SpringBoot 3 的全新重制版本 起飞到删库跑路",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 852857221,
    +              "bvid": "BV1AL4y1j7RY",
    +              "ctime": 1648811079,
    +              "duration": 55544,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/629755f79c13c96c9b6d91da80257a352b29dd86.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1648811079,
    +              "stat": {
    +                "view": 168251,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "SpringCloud 教程 已完结(IDEA 2022.1最新版)4K蓝光画质 微服务开发",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/45dddea811257f78ddd6f1e70197d95d7d6b5187.jpg",
    +            "creator": "auto",
    +            "ctime": 1669273103,
    +            "description": "已排序完成,共4个系列,请至少完成Java SE篇视频之后再开始JavaEE路线哦~ 整个路线大致为:JavaWeb基础篇、SSM成长篇、SpringBoot成熟篇、SpringCloud进阶篇",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1696249622,
    +            "mid": 37737161,
    +            "mtime": 1696249622,
    +            "name": "JavaEE通关路线",
    +            "raw_keywords": "",
    +            "series_id": 2800548,
    +            "state": 2,
    +            "total": 9
    +          },
    +          "recent_aids": [
    +            848832470,
    +            566880413,
    +            615286308,
    +            403104913,
    +            828666773,
    +            852857221
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 445283537,
    +              "bvid": "BV14j411S76G",
    +              "ctime": 1687946670,
    +              "duration": 7008,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/208bb09ecf97fbbd73e45b3839715276ffbbe8f4.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1687946670,
    +              "stat": {
    +                "view": 9483,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Apache Maven 依赖管理 极速上手 已完结(2021 版本)4K蓝光画质+杜比音效 从导入到冲突",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 813084463,
    +              "bvid": "BV1r34y1p7j9",
    +              "ctime": 1656909478,
    +              "duration": 17457,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/798135f31dc9e03121458f32825dc81d8e403887.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1656909478,
    +              "stat": {
    +                "view": 46179,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Docker 容器技术 已完结(2022 最新版)4K蓝光画质+杜比音效 从内卷到开摆",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 432905025,
    +              "bvid": "BV1a3411f7nh",
    +              "ctime": 1669296029,
    +              "duration": 10393,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/d14c0fad064a224de7afb7edd147f8b335324c53.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669296029,
    +              "stat": {
    +                "view": 37040,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Linux 操作系统 光速入门 已完结(2021 版本)4K蓝光画质+杜比音效 从讨厌到喜欢",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 390385576,
    +              "bvid": "BV19d4y147Df",
    +              "ctime": 1669272992,
    +              "duration": 23389,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/8ba763e1a1e14c47c1c178ecf21240896d3fbb5e.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669272992,
    +              "stat": {
    +                "view": 32189,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "MySQL 数据库技术 已完结(2021版本)4K蓝光画质+杜比音效 从内卷到开摆",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 647924810,
    +              "bvid": "BV1ce4y1W7YB",
    +              "ctime": 1669275447,
    +              "duration": 8492,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/f5bcc92a4e181cb12a8b80499cea255f43f2d97b.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669275447,
    +              "stat": {
    +                "view": 20004,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Git 版本控制 快速上手 已完结(2021版本)4K蓝光画质+杜比音效 从开摆到放弃",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 347934006,
    +              "bvid": "BV1vR4y1o7Z2",
    +              "ctime": 1669295228,
    +              "duration": 10631,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/f95d39b0bc1a2bdad07461a8f4b1ea48c174902c.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1669295228,
    +              "stat": {
    +                "view": 25860,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Redis 缓存技术 已完结(2021版本)4K蓝光画质+杜比音效 从内卷到开摆",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i1.hdslb.com/bfs/archive/208bb09ecf97fbbd73e45b3839715276ffbbe8f4.jpg",
    +            "creator": "auto",
    +            "ctime": 1669273164,
    +            "description": "包含主线中讲解的中间件归档视频与当下必学的火热技术。",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1688123428,
    +            "mid": 37737161,
    +            "mtime": 1688123428,
    +            "name": "必学技术与中间件",
    +            "raw_keywords": "",
    +            "series_id": 2800550,
    +            "state": 2,
    +            "total": 7
    +          },
    +          "recent_aids": [
    +            445283537,
    +            813084463,
    +            432905025,
    +            390385576,
    +            647924810,
    +            347934006
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 900707014,
    +              "bvid": "BV1YP4y1o75f",
    +              "ctime": 1663494406,
    +              "duration": 103542,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/291dd3b60b67a8f74567a81999612bd50b4e8017.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1663494406,
    +              "stat": {
    +                "view": 312144,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaSE 教程 已完结 (IDEA 2022 最新版) 4K蓝光画质+杜比音效 零基础入门一套搞定 入门到入土",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 604837097,
    +              "bvid": "BV1G84y1v7Vj",
    +              "ctime": 1667815711,
    +              "duration": 19395,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/4a4522194a1d0c8ae684976b26fb2fe43ce28f39.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1667815711,
    +              "stat": {
    +                "view": 74496,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaSE AWT/Swing 图形化编程 (IDEA 2022 最新版) 4K蓝光画质+杜比音效 快速上手桌面程序 用IDEA写IDEA",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 766688029,
    +              "bvid": "BV1Er4y1r7as",
    +              "ctime": 1645157763,
    +              "duration": 21585,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/ced6a8c8548f0f921f306ea3589f9d470adc0446.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1645157763,
    +              "stat": {
    +                "view": 133409,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java JVM 虚拟机 已完结(IDEA 2021版本)4K蓝光画质 全程劝退",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 936955310,
    +              "bvid": "BV1JT4y1S7K8",
    +              "ctime": 1646391131,
    +              "duration": 31736,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/9347ef3cdb6cf0e5bca29ce32e211b488e90ab7b.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1646391131,
    +              "stat": {
    +                "view": 74731,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java JUC 并发编程 已完结(IDEA 2021版本)4K蓝光画质 玩转多线程",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 768437265,
    +              "bvid": "BV1ar4y1J7mC",
    +              "ctime": 1650881312,
    +              "duration": 26314,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/7f97549147c09a386d9402b121cc6206c36e4079.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1650881312,
    +              "stat": {
    +                "view": 67900,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java NIO Netty网络编程 已完结(IDEA 2022.1最新版)4K蓝光画质 网络I/O进阶编程",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 684547077,
    +              "bvid": "BV1tU4y1y7Fg",
    +              "ctime": 1653900327,
    +              "duration": 10243,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/dc0cc9464c6fc274c1f23f682a01dab5a358217b.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1653900327,
    +              "stat": {
    +                "view": 47693,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "JavaSE 9-17 新特性 已完结(IDEA 2022.1最新版)4K蓝光画质 Java9/10/11/12/13/14/15/16/17讲解",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/291dd3b60b67a8f74567a81999612bd50b4e8017.jpg",
    +            "creator": "auto",
    +            "ctime": 1648810702,
    +            "description": "已排序完成,共3个系列,完成JavaSE篇之后,就可以开启JavaEE路线了",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1667816253,
    +            "mid": 37737161,
    +            "mtime": 1667816253,
    +            "name": "JavaSE基础路线",
    +            "raw_keywords": "",
    +            "series_id": 2158988,
    +            "state": 2,
    +            "total": 6
    +          },
    +          "recent_aids": [
    +            900707014,
    +            604837097,
    +            766688029,
    +            936955310,
    +            768437265,
    +            684547077
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 770027221,
    +              "bvid": "BV1Cr4y137os",
    +              "ctime": 1655371329,
    +              "duration": 48185,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/5d9bd135f068e623e50c7341244635f6cc96c3ea.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1655371329,
    +              "stat": {
    +                "view": 275378,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "C语言程序设计 已完结(CLion 2022 最新版)4K蓝光画质+杜比音效 梦开始的地方",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 941207928,
    +              "bvid": "BV13W4y127Ey",
    +              "ctime": 1658474799,
    +              "duration": 69081,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/0bf055a0961c0f9bbb7f869b47c3e3d7df21f55c.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1658474798,
    +              "stat": {
    +                "view": 220072,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "数据结构与算法 已完结(CLion 2022 最新版)4K蓝光画质+杜比音效 全程高能",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 426681358,
    +              "bvid": "BV1u3411P7Na",
    +              "ctime": 1653033628,
    +              "duration": 12346,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i0.hdslb.com/bfs/archive/4174e2976f750d5410d6cef374c3035190717cac.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1653033628,
    +              "stat": {
    +                "view": 71911,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java 设计模式 已完结(IDEA 2022.1最新版)4K蓝光画质+杜比音效",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 1,
    +            "cover": "http://i0.hdslb.com/bfs/archive/5d9bd135f068e623e50c7341244635f6cc96c3ea.jpg",
    +            "creator": "auto",
    +            "ctime": 1653296733,
    +            "description": "Java设计模式系列视频,提升你的代码编写规范。",
    +            "keywords": [
    +              ""
    +            ],
    +            "last_update_ts": 1658735292,
    +            "mid": 37737161,
    +            "mtime": 1658735292,
    +            "name": "高等院校计算机必修课",
    +            "raw_keywords": "",
    +            "series_id": 2318088,
    +            "state": 2,
    +            "total": 3
    +          },
    +          "recent_aids": [
    +            770027221,
    +            941207928,
    +            426681358
    +          ]
    +        }
    +      ]
    +    }
    +  }
    +}
    +

    获取系列和合集视频

    https://api.bilibili.com/x/polymer/web-space/seasons_series_list

    请求方式: GET

    鉴权方式: 请求头 User-Agent 为正常浏览器, 若仍被风控则请求头再带上 Referer 为 .bilibili.com 下任意页

    URL参数:

    参数名类型内容必要性备注
    midnum用户 mid必要
    page_numnum页码必要默认为 1
    page_sizenum每页数量必要默认为 20
    w_ridstrWBI 签名可选参见 WBI 签名
    wtsnumUNIX 秒级时间戳可选参见 WBI 签名
    web_locationstr页面位置?可选333.999

    JSON回复:

    只获取系列视频 基本一致, 但 .data.items_lists.seasons_list 数组不为空, 且该数组中的元素结构与 .data.items_lists.series_list 相同, 略

    示例:

    获取 mid=37737161 的系列视频列表,每页 5 条,页码为 1

    curl -G "https://api.bilibili.com/x/polymer/web-space/seasons_series_list" \
    +--data-urlencode "mid=37737161" \
    +--data-urlencode "page_num=1" \
    +--data-urlencode "page_size=5" \
    +--data-urlencode "w_rid=xxx" \
    +--data-urlencode "wts=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "items_lists": {
    +      "page": {
    +        "page_num": 1,
    +        "page_size": 5,
    +        "total": 9
    +      },
    +      "seasons_list": [
    +        {
    +          "archives": [
    +            {
    +              "aid": 343807541,
    +              "bvid": "BV1t94y1D79E",
    +              "ctime": 1658907465,
    +              "duration": 2164,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i1.hdslb.com/bfs/archive/0af0faa77a1921db4cf86c115db70aa2594983f0.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1658907465,
    +              "stat": {
    +                "view": 43096,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "Java学习路线两条龙版,让你不再迷茫!包含各个知识点梳理,常用技术栈介绍等。",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 429032764,
    +              "bvid": "BV11G411h7NB",
    +              "ctime": 1659499261,
    +              "duration": 197,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/5235a0ab2738e288b08654aa8e0cd3a509a7ef96.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1659499200,
    +              "stat": {
    +                "view": 22700,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "好书推荐《On Java》都什么年代了,还在看传统Java书籍?",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            // ...
    +          ],
    +          "meta": {
    +            "category": 0,
    +            "cover": "https://archive.biliimg.com/bfs/archive/27733cf13514d990c880154b937cd8633f583aa4.jpg",
    +            "description": "除教程视频外其他的视频,均在此。",
    +            "mid": 37737161,
    +            "name": "合集·拾枝杂谈",
    +            "ptime": 1694682652,
    +            "season_id": 587216,
    +            "total": 10
    +          },
    +          "recent_aids": [
    +            343807541,
    +            429032764,
    +            857089796,
    +            560181990,
    +            774119786,
    +            859397126
    +          ]
    +        },
    +        {
    +          "archives": [
    +            {
    +              "aid": 311606079,
    +              "bvid": "BV1XN411K7g9",
    +              "ctime": 1679651747,
    +              "duration": 261,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/234e6bd061176dba9e148f4373c52fa7cd2d801f.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1679651747,
    +              "stat": {
    +                "view": 12150,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "某些IT社区平台乱象,文章千篇一律,毫不注重版权,文章互相抄袭成潮流,希望能够好好管管!",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            },
    +            {
    +              "aid": 400546145,
    +              "bvid": "BV1qo4y1L73P",
    +              "ctime": 1682777426,
    +              "duration": 335,
    +              "enable_vt": false,
    +              "interactive_video": false,
    +              "pic": "http://i2.hdslb.com/bfs/archive/a6b6fb0330bbf6c500720a024e5a9ade24d888c3.jpg",
    +              "playback_position": 0,
    +              "pubdate": 1682777425,
    +              "stat": {
    +                "view": 52744,
    +                "vt": 0
    +              },
    +              "state": 0,
    +              "title": "某些搜索引擎得到的结果,官方网站反而排在一些诈骗广告后面,诱导用户下载大量捆绑垃圾软件",
    +              "ugc_pay": 0,
    +              "vt_display": ""
    +            }
    +          ],
    +          "meta": {
    +            "category": 0,
    +            "cover": "https://archive.biliimg.com/bfs/archive/5e1c1f77c3065ec31eec43d7e35f7a061602e4d6.jpg",
    +            "description": "白马首席讲师吐槽系列视频",
    +            "mid": 37737161,
    +            "name": "合集·水浅王八多,真假白马说",
    +            "ptime": 1682777425,
    +            "season_id": 1227671,
    +            "total": 2
    +          },
    +          "recent_aids": [
    +            311606079,
    +            400546145
    +          ]
    +        },
    +        // ...
    +      ],
    +      "series_list": [
    +        // 与前接口基本相同
    +      ]
    +    }
    +  }
    +}
    +

    查询指定系列

    https://api.bilibili.com/x/series/series

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    series_idnum系列ID必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    metaobj系列信息
    recent_aidsarray系列 aid 列表内容类型为 num

    data中的meta对象:

    只获取系列视频中的meta对象

    示例:

    curl -G 'https://api.bilibili.com/x/series/series' \
    +--data-urlencode 'series_id=2158988'
    +
    查看响应示例
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "meta": {
    +      "series_id": 2158988,
    +      "mid": 37737161,
    +      "name": "JavaSE基础路线",
    +      "description": "已排序完成,共3个系列,完成JavaSE篇之后,就可以开启JavaEE路线了",
    +      "keywords": [
    +        ""
    +      ],
    +      "creator": "auto",
    +      "state": 2,
    +      "last_update_ts": 1667816253,
    +      "total": 6,
    +      "ctime": 1648810702,
    +      "mtime": 1667816253,
    +      "raw_keywords": "",
    +      "category": 1
    +    },
    +    "recent_aids": [
    +      900707014,
    +      604837097,
    +      766688029,
    +      936955310,
    +      768437265,
    +      684547077
    +    ]
    +  }
    +}
    +

    获取指定系列视频

    https://api.bilibili.com/x/series/archives

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    midnum用户 mid必要
    series_idnum系列ID必要
    only_normalbool作用尚不明确可选默认为 true
    sortstr排序方式可选desc: 默认排序
    asc: 升序排序
    pnnum页码可选默认为 1
    psnum每页数量可选默认为 20
    current_midnum当前用户 mid可选用于 playback_position 播放进度

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidsarray视频 aid 列表内容类型为 num
    pageobj页码信息
    archivesarray视频信息列表

    data中的page对象:

    字段类型内容备注
    numnum当前页码
    sizenum每页数量
    totalnum视频总数

    data中的archives数组:

    基本同获取视频合集信息中的archives数组

    示例:

    获取 mid=39665558series_id=534501 系列视频列表,每页 16 条,页码为 1,默认排序, 当前用户 mid 为 1070915568

    curl -G "https://api.bilibili.com/x/series/archives" \
    +--data-urlencode "mid=39665558" \
    +--data-urlencode "series_id=534501" \
    +--data-urlencode "only_normal=true" \
    +--data-urlencode "sort=desc" \
    +--data-urlencode "pn=1" \
    +--data-urlencode "ps=16" \
    +--data-urlencode "current_mid=1070915568"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "aids": [
    +      695029098,
    +      724599872,
    +      594794875,
    +      41565264,
    +      541053051,
    +      499696652,
    +      673071936,
    +      462891077,
    +      973903762,
    +      61692380,
    +      336713491,
    +      372661682,
    +      550840795,
    +      51839931,
    +      718592873,
    +      87838863
    +    ],
    +    "page": {
    +      "num": 1,
    +      "size": 16,
    +      "total": 25
    +    },
    +    "archives": [
    +      {
    +        "aid": 695029098,
    +        "title": "Python控制Minecraft教程(下):自动建造",
    +        "pubdate": 1677321251,
    +        "ctime": 1677321251,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/187c0ba21b9ceba908a8760e83d49f466316824b.jpg",
    +        "duration": 275,
    +        "stat": {
    +          "view": 26555
    +        },
    +        "bvid": "BV1k24y1J78X",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 724599872,
    +        "title": "『教程』一看就懂!Github基础教程",
    +        "pubdate": 1646740815,
    +        "ctime": 1646740824,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/1401ebe64e88deddf2b44ad6a740ff8872c2fda6.jpg",
    +        "duration": 296,
    +        "stat": {
    +          "view": 2412054
    +        },
    +        "bvid": "BV1hS4y1S7wL",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 594794875,
    +        "title": "『教程』手把手教你流畅访问Github",
    +        "pubdate": 1647345613,
    +        "ctime": 1647336725,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/71cc640a84087cc99399449c00b93212fe78ee6f.jpg",
    +        "duration": 236,
    +        "stat": {
    +          "view": 910491
    +        },
    +        "bvid": "BV1Aq4y1q7hr",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 41565264,
    +        "title": "《Python负基础到入门教程》专为\"非计算机专业和编程困难户\"制作(全13集 配音字幕重制版)",
    +        "pubdate": 1548316071,
    +        "ctime": 1548316072,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/5f4f6acfc00723c84f726d35add94b1d4b4ee482.jpg",
    +        "duration": 6395,
    +        "stat": {
    +          "view": 261286
    +        },
    +        "bvid": "BV1et411b76c",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 541053051,
    +        "title": "『教程』文字频频乱码 这背后是显卡的扭曲还是规则的沦丧?",
    +        "pubdate": 1592996906,
    +        "ctime": 1592996907,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/8a3c3e3d01a91776763d34bba79add698869c82d.jpg",
    +        "duration": 381,
    +        "stat": {
    +          "view": 1184937
    +        },
    +        "bvid": "BV1ai4y1x7Uz",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 499696652,
    +        "title": "『教程』VsCode五分钟上手教程 无一句废话",
    +        "pubdate": 1601207369,
    +        "ctime": 1601207369,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/cb78c07a090ed456bdcc217b0417670867772a29.jpg",
    +        "duration": 329,
    +        "stat": {
    +          "view": 417610
    +        },
    +        "bvid": "BV1bK411P767",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 673071936,
    +        "title": "『教程』补码怎么来的?",
    +        "pubdate": 1620994814,
    +        "ctime": 1620986531,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/12c02599321a0b1386b29ddc4653ff7df9bd54b4.jpg",
    +        "duration": 445,
    +        "stat": {
    +          "view": 247578
    +        },
    +        "bvid": "BV16U4y1t7LD",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 462891077,
    +        "title": "『教程』回调函数是个啥?",
    +        "pubdate": 1631274885,
    +        "ctime": 1631274885,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/df294350462558601f65b743ca25e2fdc01de628.jpg",
    +        "duration": 452,
    +        "stat": {
    +          "view": 213895
    +        },
    +        "bvid": "BV1vL411t78b",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 98
    +      },
    +      {
    +        "aid": 973903762,
    +        "title": "『教程』堆栈是个啥?",
    +        "pubdate": 1625227205,
    +        "ctime": 1625227209,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/bf7956b6311ec0787fd52d1293bb4287d16b7e65.jpg",
    +        "duration": 370,
    +        "stat": {
    +          "view": 535174
    +        },
    +        "bvid": "BV1P44y1q7uL",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 99
    +      },
    +      {
    +        "aid": 61692380,
    +        "title": "『教程』什么是递归?",
    +        "pubdate": 1564660818,
    +        "ctime": 1564637347,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/4af853671204b9bc631fada1934a3e86145a7d19.jpg",
    +        "duration": 658,
    +        "stat": {
    +          "view": 487397
    +        },
    +        "bvid": "BV194411f71o",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 79
    +      },
    +      {
    +        "aid": 336713491,
    +        "title": "『教程』几分钟听懂迭代器",
    +        "pubdate": 1636713476,
    +        "ctime": 1636713476,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/6e255cce7c0303ab0211acd0f9d1ec5980ff03f7.jpg",
    +        "duration": 453,
    +        "stat": {
    +          "view": 110688
    +        },
    +        "bvid": "BV18R4y1t7Hg",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 97
    +      },
    +      {
    +        "aid": 372661682,
    +        "title": "『教程』桌面精灵是怎样实现的?",
    +        "pubdate": 1604916264,
    +        "ctime": 1604916264,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/aaa8bb7b6fced63dd4792e28c1f78ba903fcc4cc.jpg",
    +        "duration": 326,
    +        "stat": {
    +          "view": 168775
    +        },
    +        "bvid": "BV1aZ4y1V7aa",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 550840795,
    +        "title": "『教程』什么是钩子技术?",
    +        "pubdate": 1642744335,
    +        "ctime": 1642744335,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/380b1ff9726c673411cf916b03268c7fb16aff68.jpg",
    +        "duration": 240,
    +        "stat": {
    +          "view": 237568
    +        },
    +        "bvid": "BV1Cq4y1c7kK",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 51839931,
    +        "title": "『教程』学编程前必知的8个电脑操作",
    +        "pubdate": 1557313623,
    +        "ctime": 1557313623,
    +        "state": 0,
    +        "pic": "http://i2.hdslb.com/bfs/archive/b54535ee3ff27006912d8013f2ea1667b2a50f80.jpg",
    +        "duration": 641,
    +        "stat": {
    +          "view": 139385
    +        },
    +        "bvid": "BV1t4411v78E",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 718592873,
    +        "title": "『教程』这些常见编程单词到底该怎么读?看你能否读对?对✔❌✅☑",
    +        "pubdate": 1634300675,
    +        "ctime": 1634265090,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/de43275f44aea9f6d79c13ee68c6dcdfc9e5fc5e.jpg",
    +        "duration": 783,
    +        "stat": {
    +          "view": 81193
    +        },
    +        "bvid": "BV1JQ4y1D79p",
    +        "ugc_pay": 0,
    +        "interactive_video": true,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 100
    +      },
    +      {
    +        "aid": 87838863,
    +        "title": "『教程』什么是环境变量",
    +        "pubdate": 1581258353,
    +        "ctime": 1581258353,
    +        "state": 0,
    +        "pic": "http://i0.hdslb.com/bfs/archive/331b2304d8262c4252f338599846761d6a5a8e0c.jpg",
    +        "duration": 353,
    +        "stat": {
    +          "view": 99797
    +        },
    +        "bvid": "BV1w741147G9",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      }
    +    ]
    +  }
    +}
    +

    根据关键词查找视频

    https://api.bilibili.com/x/series/recArchivesByKeywords

    请求方式:GET

    URL参数:

    参数名类型内容必要性备注
    midnum用户 mid必要
    keywordsstr关键词必要可为空, 即获取所有视频
    psnum每页视频数非必要默认为 0, 留空为 20
    pnnum页码非必要留空为 1
    orderbystr排序方式非必要最新发布: pubdate(默认)
    最多播放: views
    senddate: 最新发布
    series_idnum系列 ID非必要用于过滤结果, 即若某一视频包含在系列内则不返回该视频

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    archivesarr视频列表
    pageobj页码信息

    archives 数组:

    获取视频合集信息中的archives数组

    page 对象:

    获取视频合集信息中的page对象

    示例:

    查询用户 mid=2 关键词为 的视频, 不限制每页视频数

    curl -G "https://api.bilibili.com/x/series/recArchivesByKeywords" \
    +--data-urlencode "mid=2" \
    +--data-urlencode "keywords=幕" \
    +--data-urlencode "ps=0"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "archives": [
    +      {
    +        "aid": 120040,
    +        "title": "高级语言弹幕测试",
    +        "pubdate": 1311616515,
    +        "ctime": 1497344798,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/55a553659799d8a6fcb645d8f1f9df418ad6fe4e.jpg",
    +        "duration": 911,
    +        "stat": {
    +          "view": 3584767
    +        },
    +        "bvid": "BV1Xx411c7cH",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 2,
    +        "title": "字幕君交流场所",
    +        "pubdate": 1252458549,
    +        "ctime": 1497344798,
    +        "state": 0,
    +        "pic": "http://static.hdslb.com/images/transparent.gif",
    +        "duration": 2055,
    +        "stat": {
    +          "view": 4609291
    +        },
    +        "bvid": "BV1xx411c7mD",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      },
    +      {
    +        "aid": 271,
    +        "title": "弹幕测试专用",
    +        "pubdate": 1249886475,
    +        "ctime": 1497344798,
    +        "state": 0,
    +        "pic": "http://i1.hdslb.com/bfs/archive/a5980672f3d03e8292148748a63de99cd45679d3.jpg",
    +        "duration": 1213,
    +        "stat": {
    +          "view": 4857422
    +        },
    +        "bvid": "BV1xx411c7Xg",
    +        "ugc_pay": 0,
    +        "interactive_video": false,
    +        "enable_vt": 0,
    +        "vt_display": "",
    +        "playback_position": 0
    +      }
    +    ],
    +    "page": {
    +      "num": 1,
    +      "size": 0,
    +      "total": 3
    +    }
    +  }
    +}
    +

    创建视频列表

    https://api.bilibili.com/x/series/series/createAndAddArchives

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (multipart/form-data):

    参数名类型内容必要性备注
    midnum用户 mid必要
    namestr标题必要
    keywordsstr关键词不必要
    descriptionstr简介不必要
    aidsstr视频 aid 列表不必要, 分隔, 如 2,112861,112861976201494,976201494

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    series_idnum视频列表 ID

    示例:

    mid=616368979 创建视频列表, 标题为 NAME, 视频为 112861976201494

    curl -X POST --url "https://api.bilibili.com/x/series/series/createAndAddArchives" \
    +--url-query "csrf=xxxxxxxxxx" \
    +--data-urlencode "mid=616368979" \
    +--data-urlencode "name=NAME" \
    +--data-urlencode "aids=112861976201494" \
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "series_id": 4269765
    +  }
    +}
    +

    删除视频列表

    https://api.bilibili.com/x/series/series/delete

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要
    midnum用户 mid必要
    series_idnum视频列表 ID必要
    aidsstr不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj

    示例:

    mid=616368979 删除视频列表 series_id=4269765

    curl -X POST --url "https://api.bilibili.com/x/series/series/delete" \
    +--url-query "csrf=xxxxxxxxxx" \
    +--url-query "series_id=4269765" \
    +--url-query "mid=616368979" \
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    删除视频列表中的稿件

    https://api.bilibili.com/x/series/series/delArchives

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    midnum用户 mid必要
    series_idnum视频列表 ID必要
    aidsstr视频 aid 列表必要, 分隔, 如 2,112861,112861976201494,976201494

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlnum1
    dataobj

    示例:

    mid=616368979 删除视频列表 series_id=4269782 中的 112861976201494

    curl -X POST --url "https://api.bilibili.com/x/series/series/delArchives" \
    +--url-query "csrf=xxxxxxxxxx" \
    +--data-urlencode "mid=616368979" \
    +--data-urlencode "series_id=4269782" \
    +--data-urlencode "aids=112861976201494" \
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    添加稿件至视频列表

    https://api.bilibili.com/x/series/series/addArchives

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    删除视频列表中的稿件

    正文参数 (application/x-www-form-urlencoded):

    删除视频列表中的稿件

    JSON回复:

    删除视频列表中的稿件

    示例:

    mid=616368979 添加视频 112861976201494 至视频列表 series_id=4269782

    curl -X POST --url "https://api.bilibili.com/x/series/series/addArchives" \
    +--url-query "csrf=xxxxxxxxxx" \
    +--data-urlencode "mid=616368979" \
    +--data-urlencode "series_id=4269782" \
    +--data-urlencode "aids=112861976201494" \
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +

    编辑视频列表信息

    https://api.bilibili.com/x/series/series/update

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    URL参数:

    参数名类型内容必要性备注
    csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    midnum用户 mid必要
    series_idnum视频列表 ID必要
    namestr标题必要
    keywordsstr关键词不必要
    descriptionstr简介不必要
    add_aidsstr视频 aid 列表不必要, 分隔
    del_aidsstr视频 aid 列表不必要
    aidsstr不必要

    JSON回复:

    删除视频列表中的稿件

    示例:

    mid=616368979 编辑视频列表 series_id=4269782, 设置标题为 NAME, 设置简介为空, 设置关键词 Telnet, 添加视频 112861976201494

    curl -X POST --url "https://api.bilibili.com/x/series/series/update" \
    +--url-query "csrf=xxxxxxxxxx" \
    +--data-urlencode "name=NAME" \
    +--data-urlencode "mid=616368979" \
    +--data-urlencode "series_id=4269782" \
    +--data-urlencode "keywords=Telnet" \
    +--data-urlencode "add_aids=112861976201494" \
    +-b "SESSDATA=xxx" 
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {}
    +}
    +
    + + + diff --git a/docs/video/info.html b/docs/video/info.html new file mode 100644 index 0000000000..e703b3b5fe --- /dev/null +++ b/docs/video/info.html @@ -0,0 +1,3835 @@ + + + + + + + + + 视频基本信息 | BAC Document + + + + +

    视频基本信息

    获取视频详细信息(web端)

    https://api.bilibili.com/x/web-interface/wbi/view
    https://api.bilibili.com/x/web-interface/view

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    限制游客访问的视频需要登录

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:权限不足
    -404:无视频
    62002:稿件不可见
    62004:稿件审核中
    62012:仅UP主自己可见
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    bvidstr稿件bvid
    aidnum稿件avid
    videosnum稿件分P总数默认为1
    tidnum分区tid
    tnamestr子分区名称
    copyrightnum视频类型1:原创
    2:转载
    picstr稿件封面图片url
    titlestr稿件标题
    pubdatenum稿件发布时间秒级时间戳
    ctimenum用户投稿时间秒级时间戳
    descstr视频简介
    desc_v2array新版视频简介
    statenum视频状态详情见属性数据文档
    attribute(已经弃用)num稿件属性位配置详情见属性数据文档
    durationnum稿件总时长(所有分P)单位为秒
    forwardnum撞车视频跳转avid仅撞车视频存在此字段
    mission_idnum稿件参与的活动id
    redirect_urlstr重定向url仅番剧或影视视频存在此字段
    用于番剧&影视的av/bv->ep
    rightsobj视频属性标志
    ownerobj视频UP主信息
    statobj视频状态数
    dynamicstr视频同步发布的的动态的文字内容
    cidnum视频1P cid
    dimensionobj视频1P分辨率
    premierenull
    teenage_modenum
    is_chargeable_seasonbool
    is_storybool
    no_cachebool作用尚不明确
    pagesarray视频分P列表
    subtitleobj视频CC字幕信息
    staffarray合作成员列表非合作视频无此项
    is_season_displaybool
    user_garbobj用户装扮信息
    honor_replyobj
    like_iconstr
    argue_infoobj争议/警告信息

    data中的desc_v2数组:

    类型内容备注
    0obj新版简介内容

    desc_v2数组中的对象:

    字段类型内容备注
    raw_textstr简介内容type=1时显示原文
    type=2时显示'@'+raw_text+' '并链接至biz_id的主页
    typenum类型1:普通,2:@他人
    biz_idnum被@用户的mid=0,当type=1

    data中的rights对象:

    字段类型内容备注
    bpnum是否允许承包
    elecnum是否支持充电
    downloadnum是否允许下载
    movienum是否电影
    paynum是否PGC付费
    hd5num是否有高码率
    no_reprintnum是否显示“禁止转载”标志
    autoplaynum是否自动播放
    ugc_paynum是否UGC付费
    is_cooperationnum是否为联合投稿
    ugc_pay_previewnum0作用尚不明确
    no_backgroundnum0作用尚不明确
    clean_modenum0作用尚不明确
    is_stein_gatenum是否为互动视频
    is_360num是否为全景视频
    no_sharenum0作用尚不明确
    arc_paynum0作用尚不明确
    free_watchnum0作用尚不明确

    data中的owner对象:

    字段类型内容备注
    midnumUP主mid
    namestrUP主昵称
    facestrUP主头像

    data中的stat对象:

    字段类型内容备注
    aidnum稿件avid
    viewnum播放数
    danmakunum弹幕数
    replynum评论数
    favoritenum收藏数
    coinnum投币数
    sharenum分享数
    now_ranknum当前排名
    his_ranknum历史最高排行
    likenum获赞数
    dislikenum点踩数恒为0
    evaluationstr视频评分
    vtint作用尚不明确恒为0

    data中的pages数组:

    类型内容备注
    0obj1P内容无分P仅有此项
    nobj(n+1)P内容
    ……obj…………

    pages数组中的对象:

    字段类型内容备注
    cidnum分P cid
    pagenum分P序号从1开始
    fromstr视频来源vupload:普通上传(B站)
    hunan:芒果TV
    qq:腾讯
    partstr分P标题
    durationnum分P持续时间单位为秒
    vidstr站外视频vid仅站外视频有效
    weblinkstr站外视频跳转url仅站外视频有效
    dimensionobj当前分P分辨率部分较老视频无分辨率值

    pages数组中的对象中的dimension对象(同data中的dimension对象):

    字段类型内容备注
    widthnum当前分P 宽度
    heightnum当前分P 高度
    rotatenum是否将宽高对换0:正常
    1:对换

    subtitle对象:

    字段类型内容备注
    allow_submitbool是否允许提交字幕
    listarray字幕列表

    subtitle对象中的list数组:

    类型内容备注
    0obj字幕1
    nobj字幕(n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum字幕id
    lanstr字幕语言
    lan_docstr字幕语言名称
    is_lockbool是否锁定
    author_midnum字幕上传者mid
    subtitle_urlstrjson格式字幕文件url
    authorobj字幕上传者信息

    list数组中的对象中的author对象:

    字段类型内容备注
    midnum字幕上传者mid
    namestr字幕上传者昵称
    sexstr字幕上传者性别男 女 保密
    facestr字幕上传者头像url
    signstr字幕上传者签名
    ranknum10000作用尚不明确
    birthdaynum0作用尚不明确
    is_fake_accountnum0作用尚不明确
    is_deletednum0作用尚不明确

    staff数组:

    类型内容备注
    0obj合作成员1
    nobj合作成员(n+1)
    ……obj…………

    staff数组中的对象:

    字段类型内容备注
    midnum成员mid
    titlestr成员名称
    namestr成员昵称
    facestr成员头像url
    vipobj成员大会员状态
    officialobj成员认证信息
    followernum成员粉丝数
    label_stylenum

    staff数组中的对象中的vip对象:

    字段类型内容备注
    typenum成员会员类型0:无
    1:月会员
    2:年会员
    statusnum会员状态0:无
    1:有
    theme_typenum0

    staff数组中的对象中的official对象:

    字段类型内容备注
    rolenum成员认证级别用户认证类型一览
    titlestr成员认证名无为空
    descstr成员认证备注无为空
    typenum成员认证类型-1:无
    0:有

    data中的user_garb对象:

    字段类型内容备注
    url_image_ani_cutstr某url?

    data中的honor_reply对象:

    字段类型内容备注
    honorarray

    honor数组中的对象:

    字段类型内容备注
    aidnum当前稿件aid
    typenum1:入站必刷收录
    2:第?期每周必看
    3:全站排行榜最高第?名
    4:热门
    descnum描述
    weekly_recommend_numnum

    data中的argue_info对象:

    字段类型内容备注
    argue_linkstr作用尚不明确
    argue_msgstr警告/争议提示信息
    argue_typeint作用尚不明确

    示例:

    获取视频av85440373/BV117411r7R1的基本信息

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view' \
    +--data-urlencode 'aid=85440373'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view' \
    +--data-urlencode 'bvid=BV117411r7R1'
    +
    查看响应示例:
    {
    +  "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": "https://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg"
    +    },
    +    "stat": {
    +      "aid": 85440373,
    +      "view": 2353489,
    +      "danmaku": 12026,
    +      "reply": 2648,
    +      "favorite": 58761,
    +      "coin": 72088,
    +      "share": 9539,
    +      "now_rank": 0,
    +      "his_rank": 55,
    +      "like": 159350,
    +      "dislike": 0,
    +      "evaluation": "",
    +      "vt": 0
    +    },
    +    "argue_info": {
    +      "argue_msg": "",
    +      "argue_type": 0,
    +      "argue_link": ""
    +    },
    +    "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,
    +    "is_upower_exclusive": false,
    +    "is_upower_play": false,
    +    "enable_vt": 0,
    +    "vt_display": "",
    +    "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": [
    +        {
    +          "id": 1061981378473780000,
    +          "lan": "ai-zh",
    +          "lan_doc": "中文(自动生成)",
    +          "is_lock": false,
    +          "subtitle_url": "",
    +          "type": 1,
    +          "id_str": "1061981378473779968",
    +          "ai_type": 0,
    +          "ai_status": 2,
    +          "author": {
    +            "mid": 0,
    +            "name": "",
    +            "sex": "",
    +            "face": "",
    +            "sign": "",
    +            "rank": 0,
    +            "birthday": 0,
    +            "is_fake_account": 0,
    +            "is_deleted": 0,
    +            "in_reg_audit": 0,
    +            "is_senior_member": 0
    +          }
    +        }
    +      ]
    +    },
    +    "staff": [
    +      {
    +        "mid": 66606350,
    +        "title": "UP主",
    +        "name": "Crazy_Bucket_陈楒潼",
    +        "face": "https://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg",
    +        "vip": {
    +          "type": 2,
    +          "status": 1,
    +          "due_date": 1706112000000,
    +          "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,
    +          "tv_due_date": 0
    +        },
    +        "official": {
    +          "role": 1,
    +          "title": "bilibili 知名音乐UP主",
    +          "desc": "",
    +          "type": 0
    +        },
    +        "follower": 650859,
    +        "label_style": 0
    +      },
    +      {
    +        "mid": 53456,
    +        "title": "曲绘",
    +        "name": "Warma",
    +        "face": "https://i2.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg",
    +        "vip": {
    +          "type": 2,
    +          "status": 1,
    +          "due_date": 1738339200000,
    +          "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": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
    +            "img_label_uri_hant": "",
    +            "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
    +            "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png"
    +          },
    +          "avatar_subscript": 1,
    +          "nickname_color": "#FB7299",
    +          "role": 3,
    +          "avatar_subscript_url": "",
    +          "tv_vip_status": 1,
    +          "tv_vip_pay_type": 1,
    +          "tv_due_date": 1721145600
    +        },
    +        "official": {
    +          "role": 1,
    +          "title": "bilibili 知名UP主",
    +          "desc": "",
    +          "type": 0
    +        },
    +        "follower": 4223581,
    +        "label_style": 0
    +      }
    +    ],
    +    "is_season_display": false,
    +    "user_garb": {
    +      "url_image_ani_cut": "https://i0.hdslb.com/bfs/garb/item/311b29b795eb3f09ed0401a56eddf5c90b8fbfd6.bin"
    +    },
    +    "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": "",
    +    "need_jump_bv": false,
    +    "disable_show_up_info": false
    +  }
    +}
    +

    视频标题为:当我给拜年祭的快板加了电音配乐…

    视频分区为: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

    获取视频超详细信息(web端)

    https://api.bilibili.com/x/web-interface/view/detail

    https://api.bilibili.com/x/web-interface/wbi/view/detail

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Wbi 签名

    限制游客访问的视频需要登录

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -403:权限不足
    -404:无视频
    62002:稿件不可见
    62004:稿件审核中
    62012:仅UP主自己可见
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    Viewobj视频基本信息
    Cardobj视频UP主信息
    Tagsarray视频TAG信息
    Replyobj视频热评信息
    Relatedarray推荐视频信息
    Specnull作用尚不明确
    hot_shareobj作用尚不明确
    elecnull作用尚不明确
    recommendnull作用尚不明确
    view_additobj作用尚不明确

    data中的View对象:

    基本同「获取视频详细信息(web端)」中的data对象

    data中的Card对象:

    字段类型内容备注
    cardobjUP主名片信息
    spaceobj主页头图
    followingbool是否关注此用户true:已关注
    false:未关注
    需要登录(Cookie)
    未登录为false
    archive_countnum用户稿件数
    article_countnum用户专栏数
    followernum粉丝数
    like_numnumUP主获赞次数

    Card中的card对象:

    字段类型内容备注
    midstr用户mid
    namestr用户昵称
    approveboolfalse作用尚不明确
    sexstr用户性别男 女 保密
    rankstr10000作用尚不明确
    facestr用户头像链接
    face_nftnum是否为 nft 头像0不是nft头像
    1是 nft 头像
    DisplayRankstr0作用尚不明确
    regtimenum0作用尚不明确
    spacestanum0作用尚不明确
    birthdaystr作用尚不明确
    placestr作用尚不明确
    descriptionstr作用尚不明确
    articlenum0作用尚不明确
    attentionsarray作用尚不明确
    fansnum粉丝数
    friendnum关注数
    attentionnum关注数
    signstr签名
    level_infoobj等级
    pendantobj挂件
    nameplateobj勋章
    Officialobj认证信息
    official_verifyobj认证信息2
    vipobj大会员状态
    is_senior_membernum是否为硬核会员0:否
    1:是

    card中的level_info对象:

    字段类型内容备注
    current_levelnum当前等级0-6级
    current_minnum0作用尚不明确
    current_expnum0作用尚不明确
    next_expnum0作用尚不明确

    card中的pendant对象:

    字段类型内容备注
    pidnum挂件id
    namestr挂件名称
    imagestr挂件图片url
    expirenum0作用尚不明确

    card中的nameplate对象:

    字段类型内容备注
    nidnum勋章id详细说明有待补充
    namestr勋章名称
    imagestr挂件图片url 正常
    image_smallstr勋章图片url 小
    levelstr勋章等级
    conditionstr勋章条件

    card中的Official对象:

    字段类型内容备注
    rolenum认证类型用户认证类型一览
    titlestr认证信息无为空
    descstr认证备注无为空
    typenum是否认证-1:无
    0:认证

    card中的official_verify对象:

    字段类型内容备注
    typenum是否认证-1:无
    0:认证
    descstr认证信息无为空

    card中的vip对象:

    字段类型内容备注
    typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum会员状态0:无
    1:有
    due_datenum会员过期时间Unix时间戳(毫秒)
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum0作用尚不明确
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    rolenum大角色类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    avatar_subscript_urlstr大会员角标地址
    tv_vip_statusnum电视大会员状态0:未开通
    tv_vip_pay_typenum电视大会员支付类型

    vip中的label对象:

    字段类型内容备注
    pathstr作用尚不明确
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr空串
    img_label_uri_hantstr空串
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    Card中的space对象:

    字段类型内容备注
    s_imgstr主页头图url 小图
    l_imgstr主页头图url 正常

    data中的Tags数组:

    基本同「获取视频TAG信息」中的data数组

    data中的Reply对象:

    基本同「获取评论区热评」中的data对象

    data中的Related数组:

    类型内容备注
    0obj推荐视频1
    nobj推荐视频(n+1)
    ……obj…………

    Related数组中的对象:

    基本同「获取视频详细信息(web端)」中的data对象,已知没有分P信息

    data中的hot_share对象:

    字段类型内容备注
    showboolfalse作用尚不明确
    listarray作用尚不明确

    data中的view_addit对象:

    字段类型内容备注
    63boolfalse作用尚不明确
    64boolfalse作用尚不明确
    69boolfalse作用尚不明确
    71boolfalse作用尚不明确
    72boolfalse作用尚不明确

    示例:

    获取视频av170001/BV17x411w7KC的详细信息

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view/detail' \
    +--data-urlencode 'aid=170001'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/view/detail' \
    +--data-urlencode 'bvid=BV17x411w7KC'
    +
    查看响应示例:
    {
    +  "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": 44433679,
    +        "danmaku": 912351,
    +        "reply": 180971,
    +        "favorite": 889815,
    +        "coin": 285498,
    +        "share": 637667,
    +        "now_rank": 0,
    +        "his_rank": 13,
    +        "like": 904145,
    +        "dislike": 0,
    +        "evaluation": "",
    +        "vt": 0
    +      },
    +      "argue_info": {
    +        "argue_msg": "",
    +        "argue_type": 0,
    +        "argue_link": ""
    +      },
    +      "dynamic": "",
    +      "cid": 279786,
    +      "dimension": {
    +        "width": 512,
    +        "height": 288,
    +        "rotate": 0
    +      },
    +      "premiere": null,
    +      "teenage_mode": 0,
    +      "is_chargeable_season": false,
    +      "is_story": false,
    +      "is_upower_exclusive": false,
    +      "is_upower_play": false,
    +      "enable_vt": 0,
    +      "vt_display": "",
    +      "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": "https://i0.hdslb.com/bfs/garb/item/311b29b795eb3f09ed0401a56eddf5c90b8fbfd6.bin"
    +      },
    +      "honor_reply": {
    +        "honor": [
    +          {
    +            "aid": 170001,
    +            "type": 3,
    +            "desc": "全站排行榜最高第13名",
    +            "weekly_recommend_num": 0
    +          }
    +        ]
    +      },
    +      "like_icon": "",
    +      "need_jump_bv": false,
    +      "disable_show_up_info": false
    +    },
    +    "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": 65409,
    +        "friend": 44,
    +        "attention": 44,
    +        "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": "",
    +          "n_pid": 0
    +        },
    +        "nameplate": {
    +          "nid": 9,
    +          "name": "出道偶像",
    +          "image": "https://i2.hdslb.com/bfs/face/3f2d64f048b39fb6c26f3db39df47e6080ec0f9c.png",
    +          "image_small": "https://i1.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,
    +          "tv_due_date": 0,
    +          "vipType": 1,
    +          "vipStatus": 0
    +        },
    +        "is_senior_member": 0
    +      },
    +      "space": {
    +        "s_img": "http://i2.hdslb.com/bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png",
    +        "l_img": "http://i2.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png"
    +      },
    +      "following": false,
    +      "archive_count": 390,
    +      "article_count": 0,
    +      "follower": 65409,
    +      "like_num": 1020481
    +    },
    +    "Tags": [
    +      {
    +        "tag_id": 0,
    +        "tag_name": "Hop",
    +        "cover": "",
    +        "head_cover": "",
    +        "content": "",
    +        "short_content": "",
    +        "type": 0,
    +        "state": 0,
    +        "ctime": 0,
    +        "count": {
    +          "view": 0,
    +          "use": 0,
    +          "atten": 0
    +        },
    +        "is_atten": 0,
    +        "likes": 0,
    +        "hates": 0,
    +        "attribute": 0,
    +        "liked": 0,
    +        "hated": 0,
    +        "extra_attr": 0,
    +        "music_id": "MA407124762800730394",
    +        "tag_type": "bgm",
    +        "is_activity": false,
    +        "color": "",
    +        "alpha": 0,
    +        "is_season": false,
    +        "subscribed_count": 0,
    +        "archive_count": "",
    +        "featured_count": 0,
    +        "jump_url": "https://music.bilibili.com/h5/music-detail?music_id=MA407124762800730394&cid=279786&aid=170001"
    +      },
    +      {
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "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": 0,
    +          "atten": 0
    +        },
    +        "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": 0,
    +        "archive_count": "-",
    +        "featured_count": 0,
    +        "jump_url": ""
    +      }
    +    ],
    +    "Reply": {
    +      "page": null,
    +      "replies": [
    +        {
    +          "rpid": 1,
    +          "oid": 0,
    +          "type": 0,
    +          "mid": 0,
    +          "root": 0,
    +          "parent": 0,
    +          "dialog": 0,
    +          "count": 0,
    +          "rcount": 0,
    +          "state": 0,
    +          "fansgrade": 0,
    +          "attr": 0,
    +          "ctime": 0,
    +          "like": 0,
    +          "action": 0,
    +          "content": null,
    +          "replies": null,
    +          "assist": 0,
    +          "show_follow": false
    +        }
    +      ]
    +    },
    +    "Related": [
    +      {
    +        "aid": 429064052,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/d894070d2dad98a17f6f9d6c20885ac00ccc372f.jpg",
    +        "title": "【高清版本修复】van样暗黑配音",
    +        "pubdate": 1659252811,
    +        "ctime": 1659251713,
    +        "desc": "BV1rU4y1Q7Fh的高清修复版本\n高清版本",
    +        "state": 0,
    +        "duration": 92,
    +        "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": 2138730253,
    +          "name": "Kochiya-Sanae",
    +          "face": "https://i1.hdslb.com/bfs/face/32c7158bb57634488fc7624c8f64e9a7b2cc66c3.jpg"
    +        },
    +        "stat": {
    +          "aid": 429064052,
    +          "view": 871978,
    +          "danmaku": 951,
    +          "reply": 794,
    +          "favorite": 28667,
    +          "coin": 7401,
    +          "share": 18597,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 39961,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 871978
    +        },
    +        "dynamic": "",
    +        "cid": 1249117530,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1CG411h7We",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n230828qn1qsxsilxzs5ee3ngc96ejhn_firsti.jpg",
    +        "pub_location": "江苏",
    +        "bvid": "BV1CG411h7We",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 429064052,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 331415167,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/709a2da2014aba9b11cbb3bdbb229e82860f5c40.jpg",
    +        "title": "𓀬古埃及𓀯宽带广告𓀿𓀶𓈷𓉅 𓁞 𓁟𓂮 𓂯𓃠𓃄𓀰 𓀱𓀐𓀡 𓀼 𓀽𓁀𓉆𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓀷𓀾",
    +        "pubdate": 1612174676,
    +        "ctime": 1612174676,
    +        "desc": "??? ?最新?发掘出的 ?古埃及?宽带? 广告? ?? ???? ??? ? ???\n??汉谟拉比?宽带??? BV1rv411s7b6\n印尼宽带西藏特供版ཧིན་ཉི་ཐགས་ཡངས་དམིགས་བསལ་མཁོ་འདོན་པར་གཞི་BV1ao4y1d7VH\n印औ度ष宽फ 带(梵ह文)औगळऴॊवशछजॊझञस BV1bA411u7Fy\n【乱 码】此 宽 带 无 法 显 示     迠鐩\u0007\u0010内 暫?\u0015\fV/豬嶬 源=塇  BV1P54y1W75k",
    +        "state": 0,
    +        "duration": 37,
    +        "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": 294594289,
    +          "name": "不咕的鱼鸽子",
    +          "face": "https://i1.hdslb.com/bfs/face/10eb0658f6ff99e8f042168b15f7c684533f359e.webp"
    +        },
    +        "stat": {
    +          "aid": 331415167,
    +          "view": 2756922,
    +          "danmaku": 12348,
    +          "reply": 3179,
    +          "favorite": 37005,
    +          "coin": 7427,
    +          "share": 8592,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 134223,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2756922
    +        },
    +        "dynamic": "#IndiHomePaket##印度尼西亚##印尼##印尼宽带##鬼畜##古埃及#\n𓀬𓀷𓀾 𓀿最新𓀯发掘出的 𓀶古埃及𓈷宽带𓉅 广告𓁞 𓁟𓂮 𓂯𓃠𓃄𓀰 𓀱𓀐𓀡 𓀼 𓀽𓁀𓉆\n𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓁇𓁈𓁉𓁊𓁋𓁌𓁍𓁎𓁏𓁐𓁑𓁒𓁓𓁔𓁕𓁖𓁗𓁘𓁙𓁚𓁛𓁜𓁝𓁞𓁟𓁠𓁡𓁢𓁣𓁤𓁥",
    +        "cid": 291047427,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1LA411u7MY",
    +        "bvid": "BV1LA411u7MY",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 331415167,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 586401881,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/06c2aa7637c8bc97addb2e4d51c5eb5f9c64b7a5.jpg",
    +        "title": "【凭良心广告补档】天灾!天灾!天灾!(绝望)(av114514)",
    +        "pubdate": 1612109179,
    +        "ctime": 1612109179,
    +        "desc": "原b站视频补档\n飞机君将该广告视频删除后的普通补档。\n弹幕付与无弹幕录屏版本已有T-N-O-K兄贵搬过,如需生草可移步那里。\n本视频是非录屏的无弹幕版本,就是当初的原视频。适合想要极致观看体验的人与想要使用本素材进行二次创作者。",
    +        "state": 0,
    +        "duration": 71,
    +        "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": 1731873,
    +          "name": "Codex_Septimia",
    +          "face": "https://i0.hdslb.com/bfs/face/ad55ee98ae7992f5e7631bc8340ee1ac91eeccee.jpg"
    +        },
    +        "stat": {
    +          "aid": 586401881,
    +          "view": 791249,
    +          "danmaku": 1667,
    +          "reply": 691,
    +          "favorite": 8050,
    +          "coin": 453,
    +          "share": 2117,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 19435,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 791249
    +        },
    +        "dynamic": "KNN有知名的美声,银环妈作为戏曲工作者一定也有美声。\n银环妈为凭良心做形象代言人,KNNUnofficial发布凭良心视频。\nKNN是木毛的母亲,银环妈的艺名中有“妈”字。\nKNN银环妈说成立。",
    +        "cid": 290699578,
    +        "dimension": {
    +          "width": 368,
    +          "height": 276,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1cz4y1D7Mz",
    +        "up_from_v2": 8,
    +        "pub_location": "山西",
    +        "bvid": "BV1cz4y1D7Mz",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 586401881,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 320315699,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/b146c7765d450bd1dee28bd86ed7102f769df827.jpg",
    +        "title": "HARDCORE大爷",
    +        "pubdate": 1693051288,
    +        "ctime": 1693051288,
    +        "desc": "群友发的",
    +        "state": 0,
    +        "duration": 31,
    +        "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": 99802647,
    +          "name": "丿情缘灬风",
    +          "face": "https://i0.hdslb.com/bfs/face/7329960b16484d612fc714063dba592b1e09f936.jpg"
    +        },
    +        "stat": {
    +          "aid": 320315699,
    +          "view": 694032,
    +          "danmaku": 493,
    +          "reply": 1332,
    +          "favorite": 16817,
    +          "coin": 1356,
    +          "share": 16275,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 32469,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 694032
    +        },
    +        "dynamic": "",
    +        "cid": 1247688806,
    +        "dimension": {
    +          "width": 544,
    +          "height": 960,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Xw411Q7Ah",
    +        "up_from_v2": 28,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n230826qn3j53pg60bkvzg3cghpme06f_firsti.jpg",
    +        "pub_location": "浙江",
    +        "bvid": "BV1Xw411Q7Ah",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 320315699,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 472001919,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/80d4ec02cbb98db2c828f0707c01d6c096a3a9d8.jpg",
    +        "title": "【年龄和声音终于一致了】rick应邀重新演绎经典MV",
    +        "pubdate": 1660644003,
    +        "ctime": 1660644003,
    +        "desc": "www.sina.com\n【高清重制版“你被骗了”】",
    +        "state": 0,
    +        "duration": 58,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 313884779,
    +          "name": "submarineboy",
    +          "face": "https://i2.hdslb.com/bfs/face/f8d8aca5418f41dead66db2940aca4fab6bf578c.jpg"
    +        },
    +        "stat": {
    +          "aid": 472001919,
    +          "view": 1507776,
    +          "danmaku": 499,
    +          "reply": 361,
    +          "favorite": 11986,
    +          "coin": 1258,
    +          "share": 1893,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 53487,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1507776
    +        },
    +        "dynamic": "",
    +        "cid": 805405430,
    +        "dimension": {
    +          "width": 864,
    +          "height": 480,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1aT411A7YY",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220816qno8liw07p36rv296yk523ze3_firsti.jpg",
    +        "pub_location": "安徽",
    +        "bvid": "BV1aT411A7YY",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 472001919,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 978001831,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/d4f59d4d0767f7d2b0fb27e99a60825459b77db2.jpg",
    +        "title": "德国某游乐场",
    +        "pubdate": 1641964720,
    +        "ctime": 1641964720,
    +        "desc": "https://www.reddit.com/r/AccidentalRacism/comments/ruy8i7/this_funfair_ride_that_is_in_germany/?utm_source=share&utm_medium=ios_app&utm_name=iossmf",
    +        "state": 0,
    +        "duration": 23,
    +        "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": 393830038,
    +          "name": "Jed_Toastie",
    +          "face": "https://i1.hdslb.com/bfs/face/6bb2426ddcecca66b12f2cf3899bfca0b02e966d.jpg"
    +        },
    +        "stat": {
    +          "aid": 978001831,
    +          "view": 1007311,
    +          "danmaku": 341,
    +          "reply": 441,
    +          "favorite": 10873,
    +          "coin": 542,
    +          "share": 5990,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 24825,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1007311
    +        },
    +        "dynamic": "",
    +        "cid": 482608581,
    +        "dimension": {
    +          "width": 426,
    +          "height": 240,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1y44y1j7Hm",
    +        "up_from_v2": 11,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220112ad1wiskq1jv187v18sk8ybhpx_firsti.jpg",
    +        "pub_location": "中国香港",
    +        "bvid": "BV1y44y1j7Hm",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 978001831,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "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": 1476915,
    +          "danmaku": 644,
    +          "reply": 650,
    +          "favorite": 6183,
    +          "coin": 368,
    +          "share": 1100,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 30637,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1476915
    +        },
    +        "dynamic": "#音乐选集##保加利亚#",
    +        "cid": 60984624,
    +        "dimension": {
    +          "width": 640,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Qb411N7Ez",
    +        "up_from_v2": 8,
    +        "bvid": "BV1Qb411N7Ez",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 34812433,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 30406016,
    +        "videos": 1,
    +        "tid": 124,
    +        "tname": "社科·法律·心理",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/655cecf4c63455a5eedf650425b5b72d043746c8.jpg",
    +        "title": "youtube(油管)的镇管之宝 (播放量破30亿的视频)",
    +        "pubdate": 1535318818,
    +        "ctime": 1535318815,
    +        "desc": "不知道为什么大晚上的想做这个\n(可能是我早上作死看了什么镇店之宝,然后就去查了一下B站有没有youtube的镇店之宝排行,发现没有,然后想做,然后。。这个就出来了,不过。。。50亿播放有点吓人)\n简介字数不够撑,相关链接会在明晚发(晚修)\nhttps://www.youtube.com/watch?v=OPf0YbXqDm0\nwatch?v=9bZkp7q19f0、RgKAFK5djSk、kJQP7kiw5Fk、JGwWNGJdvx8、KYniUCGPGLs",
    +        "state": 0,
    +        "duration": 262,
    +        "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": 24532501,
    +          "name": "orange橙汁juice",
    +          "face": "https://i1.hdslb.com/bfs/face/0b8852420761029a8d121d22a8311bc19e0a5905.jpg"
    +        },
    +        "stat": {
    +          "aid": 30406016,
    +          "view": 13872585,
    +          "danmaku": 34046,
    +          "reply": 6961,
    +          "favorite": 116501,
    +          "coin": 26718,
    +          "share": 3391,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 277220,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 13872585
    +        },
    +        "dynamic": "#油管的镇店之宝##Youtube##MV和点击量#\n不知道为什么想做这个,但已经做了,那就凑合吧,这也不是水视频,我查了十多个视频才找到这些数据",
    +        "cid": 53051723,
    +        "dimension": {
    +          "width": 784,
    +          "height": 596,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1PW411Q7LB",
    +        "bvid": "BV1PW411Q7LB",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 30406016,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 265120317,
    +        "videos": 1,
    +        "tid": 184,
    +        "tname": "预告·资讯",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/225cd9efeb8bf7899faac9c0eb52189a9d2721e5.jpg",
    +        "title": "\"人类能活下来吗?\"吴京刘德华灵魂发问 电影《流浪地球 2 》 发布\"MOSS \" 预告",
    +        "pubdate": 1673251590,
    +        "ctime": 1673251590,
    +        "desc": "",
    +        "state": 0,
    +        "duration": 112,
    +        "redirect_url": "https://www.bilibili.com/bangumi/play/ep741418?theme=movie",
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 1,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 207539637,
    +          "name": "哔哩哔哩放映员",
    +          "face": "https://i0.hdslb.com/bfs/face/370e15e2cb6caf92a86d210b393617a9bbf6e884.jpg"
    +        },
    +        "stat": {
    +          "aid": 265120317,
    +          "view": 1592156,
    +          "danmaku": 1080,
    +          "reply": 4147,
    +          "favorite": 2938,
    +          "coin": 8553,
    +          "share": 1209,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 23059,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1592156
    +        },
    +        "dynamic": "#B刷电影资讯#电影《流浪地球2》的故事围绕《流浪地球》前作展开,讲述了危机刚刚降临,地球开始\"流浪\"之前,世界陷入一片恐慌之中,万座行星发动机正在建造,人类面临末日灾难的严峻挑战。影片由郭帆导演,刘慈欣监制,吴京、李雪健、沙溢、宁理、王智、朱颜曼滋领衔主演,刘德华先生特别演出。即将于2023年大年初一全国上映。",
    +        "cid": 958149402,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1TY411y7Ds",
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n230109qn1wytmh3zto827u2z3wfe251_firsti.jpg",
    +        "pub_location": "上海",
    +        "bvid": "BV1TY411y7Ds",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 265120317,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 851303752,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/1642e1c237b72955ba5aee24629469725d332a94.jpg",
    +        "title": "这可能是b站最牛的用户了,居然有人敢在b站创始人之一的评论区写日记???还更新了十多年!?",
    +        "pubdate": 1644248539,
    +        "ctime": 1644248539,
    +        "desc": "av349",
    +        "state": 0,
    +        "duration": 157,
    +        "mission_id": 342009,
    +        "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": 18061914,
    +          "name": "练实",
    +          "face": "https://i0.hdslb.com/bfs/face/3eb152e249e72170553c88d1702ba99b317e4399.jpg"
    +        },
    +        "stat": {
    +          "aid": 851303752,
    +          "view": 2700655,
    +          "danmaku": 205,
    +          "reply": 2653,
    +          "favorite": 10211,
    +          "coin": 759,
    +          "share": 1693,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 86268,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2700655
    +        },
    +        "dynamic": "",
    +        "cid": 503631036,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1cL4y1s7kH",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220207a22mkkm3hl8kqyc10hhl7xxan_firsti.jpg",
    +        "bvid": "BV1cL4y1s7kH",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 851303752,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 1018701,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c392b46c9da4c53f6d9ec9b2e317ed636f96d6bf.jpg",
    +        "title": "【克里米亚 女检察官】我有特别的卖萌技巧",
    +        "pubdate": 1395305501,
    +        "ctime": 1497423668,
    +        "desc": "自制 萌就是正义!",
    +        "state": 0,
    +        "duration": 68,
    +        "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": 330676,
    +          "name": "庄生晓梦Void",
    +          "face": "https://i1.hdslb.com/bfs/face/c513e74972761bd3aaf9da5beb1a5dad00dcefb4.gif"
    +        },
    +        "stat": {
    +          "aid": 1018701,
    +          "view": 6959542,
    +          "danmaku": 25812,
    +          "reply": 5682,
    +          "favorite": 62703,
    +          "coin": 12863,
    +          "share": 3544,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 89183,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 6959542
    +        },
    +        "dynamic": "",
    +        "cid": 1473824,
    +        "dimension": {
    +          "width": 480,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1es411Z7UG",
    +        "bvid": "BV1es411Z7UG",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 1018701,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 424669369,
    +        "videos": 1,
    +        "tid": 27,
    +        "tname": "综合",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/6b9e84717a9586cd6f46ee896dc730c23310e875.jpg",
    +        "title": "被观众推荐看《HOP》的日本vtuber 你们都喜欢这种的吗",
    +        "pubdate": 1647085427,
    +        "ctime": 1647085427,
    +        "desc": "太厉害了",
    +        "state": 0,
    +        "duration": 270,
    +        "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": 1861416807,
    +          "name": "羽澄照乌愈Official",
    +          "face": "https://i0.hdslb.com/bfs/face/589d1c9bc57916158a166af5399c1a5234858924.jpg"
    +        },
    +        "stat": {
    +          "aid": 424669369,
    +          "view": 948657,
    +          "danmaku": 1381,
    +          "reply": 946,
    +          "favorite": 5509,
    +          "coin": 2278,
    +          "share": 508,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 36605,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 948657
    +        },
    +        "dynamic": "",
    +        "cid": 547889792,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1g3411L7iP",
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n220312qn1fhcj5tl3giyi3m43p8scsu_firsti.jpg",
    +        "bvid": "BV1g3411L7iP",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 424669369,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 243915800,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/4d7ee00b0124c65d0fa89ae99709a0e4f19ba4d7.jpg",
    +        "title": "建议改成:美国国歌",
    +        "pubdate": 1595583733,
    +        "ctime": 1595583734,
    +        "desc": "BGM: What Did You learn in School Today? - Pete Seeger",
    +        "state": 0,
    +        "duration": 100,
    +        "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": 36022720,
    +          "name": "勺子与保鲜膜",
    +          "face": "https://i1.hdslb.com/bfs/face/bb2037d6db4075c06da5fc798b0fe3fcf11a64fe.jpg"
    +        },
    +        "stat": {
    +          "aid": 243915800,
    +          "view": 11676714,
    +          "danmaku": 7781,
    +          "reply": 5271,
    +          "favorite": 261968,
    +          "coin": 158421,
    +          "share": 33328,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 640175,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 11676714
    +        },
    +        "dynamic": "#特朗普##美国##美利坚#",
    +        "cid": 216095542,
    +        "dimension": {
    +          "width": 1024,
    +          "height": 576,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Nv411q7dJ",
    +        "bvid": "BV1Nv411q7dJ",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 243915800,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 843702081,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/ba6bef51ed095c85250af0427da105eec2b20727.jpg",
    +        "title": "油管官方惨遭Rickroll",
    +        "pubdate": 1610655191,
    +        "ctime": 1610655191,
    +        "desc": "twitter.com/edma06RBLX/status/1336063965701545988\n真实事件",
    +        "state": 0,
    +        "duration": 24,
    +        "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": 477500,
    +          "name": "tobラハイサ",
    +          "face": "https://i2.hdslb.com/bfs/face/74909beeba74b6ecb53e8d93f36d14e3371170a6.jpg"
    +        },
    +        "stat": {
    +          "aid": 843702081,
    +          "view": 2473244,
    +          "danmaku": 789,
    +          "reply": 882,
    +          "favorite": 14983,
    +          "coin": 678,
    +          "share": 3097,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 79300,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2473244
    +        },
    +        "dynamic": "",
    +        "cid": 282521485,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1L54y1s7wg",
    +        "bvid": "BV1L54y1s7wg",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 843702081,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 805480295,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/1801214eb4b7add422f2e08406204978b2b9b481.jpg",
    +        "title": "Ngana Rindu高级版",
    +        "pubdate": 1631568595,
    +        "ctime": 1631568595,
    +        "desc": "https://www.youtube.com/watch?v=DkrAxPsKJv8\n鉴于很多人想要视频,我就打包了视频和bgm。需要的话请自行下载[\n链接: https://pan.baidu.com/s/1sDIdjy-FHrpcb9PDsi6XEg 提取码: u83n",
    +        "state": 0,
    +        "duration": 83,
    +        "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": 1603908990,
    +          "name": "schei8e",
    +          "face": "https://i0.hdslb.com/bfs/face/4d3127af1eb8ff4784f29f7a909ff1b152df8e11.jpg"
    +        },
    +        "stat": {
    +          "aid": 805480295,
    +          "view": 28247298,
    +          "danmaku": 20112,
    +          "reply": 7761,
    +          "favorite": 513278,
    +          "coin": 170786,
    +          "share": 207987,
    +          "now_rank": 0,
    +          "his_rank": 31,
    +          "like": 943402,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 28247298
    +        },
    +        "dynamic": "",
    +        "cid": 407888077,
    +        "dimension": {
    +          "width": 608,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1R34y1Q7J4",
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n210914a233a5cb5ku791zvxkpays3r6_firsti.jpg",
    +        "bvid": "BV1R34y1Q7J4",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 805480295,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 600031475,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/7b9bd555ed88c9ff6ff746551ab49219ce2bf344.jpg",
    +        "title": "【8K】MV 宮本浩次 《冬之花》「冬の花」—— 收藏级画质",
    +        "pubdate": 1655283491,
    +        "ctime": 1655283492,
    +        "desc": "关注后自动回复获取群号\n往期视频下载链接在群文件\n群文件没有上传的请私信UP\n感谢各位看官老爷的一键三连和充电\n你的支持是我更新的动力!",
    +        "state": 0,
    +        "duration": 267,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 34870081,
    +          "name": "Sallos",
    +          "face": "https://i1.hdslb.com/bfs/face/ac268f534cb26fe6bfb8fbfd229e4b323456b4d8.jpg"
    +        },
    +        "stat": {
    +          "aid": 600031475,
    +          "view": 10158426,
    +          "danmaku": 23883,
    +          "reply": 8656,
    +          "favorite": 280801,
    +          "coin": 80915,
    +          "share": 65081,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 321518,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 10158426
    +        },
    +        "dynamic": "",
    +        "cid": 747397025,
    +        "dimension": {
    +          "width": 7680,
    +          "height": 4320,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1sB4y147MZ",
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220615a221rk8h1nhwgqs20l5vtj9xt_firsti.jpg",
    +        "pub_location": "北京",
    +        "bvid": "BV1sB4y147MZ",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 600031475,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 51473940,
    +        "videos": 1,
    +        "tid": 130,
    +        "tname": "音乐综合",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/e017186678d864cee15c7bbf6a7053a1cff5ecea.jpg",
    +        "title": "抑郁听两遍-《孤儿乐园》",
    +        "pubdate": 1556983085,
    +        "ctime": 1556983085,
    +        "desc": "《孤儿乐园》是台湾女歌手卓依婷演唱的一首歌曲,收录于1996年发行的专辑《校园青春乐》中。",
    +        "state": 0,
    +        "duration": 165,
    +        "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": 84121473,
    +          "name": "Ottimisti",
    +          "face": "https://i0.hdslb.com/bfs/face/62340162f04ae2607c48608fa44513dcd091d4de.webp"
    +        },
    +        "stat": {
    +          "aid": 51473940,
    +          "view": 11158972,
    +          "danmaku": 153407,
    +          "reply": 14915,
    +          "favorite": 150203,
    +          "coin": 23518,
    +          "share": 109196,
    +          "now_rank": 0,
    +          "his_rank": 34,
    +          "like": 246194,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 11158972
    +        },
    +        "dynamic": "#音乐##治愈向##致郁#",
    +        "cid": 90097246,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1N4411i7Pt",
    +        "bvid": "BV1N4411i7Pt",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 51473940,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 80433022,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/5242750857121e05146d5d5b13a47a2a6dd36e98.jpg",
    +        "title": "【官方 MV】Never Gonna Give You Up - Rick Astley",
    +        "pubdate": 1577835803,
    +        "ctime": 1577835803,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 213,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 1,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 486906719,
    +          "name": "索尼音乐中国",
    +          "face": "https://i2.hdslb.com/bfs/face/6bc95d0670863d36bf9167a37b825c39ce258506.jpg"
    +        },
    +        "stat": {
    +          "aid": 80433022,
    +          "view": 82923631,
    +          "danmaku": 116923,
    +          "reply": 145821,
    +          "favorite": 1138175,
    +          "coin": 917605,
    +          "share": 337308,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 2161145,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 82923631
    +        },
    +        "dynamic": "",
    +        "cid": 137649199,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1GJ411x7h7",
    +        "up_from_v2": 15,
    +        "pub_location": "未知",
    +        "bvid": "BV1GJ411x7h7",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 80433022,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 598292501,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/c9dcb4b6d27c587c2d703efc29d31bffd6266ec0.jpg",
    +        "title": "我爸的收藏,来自三十年前的骗局",
    +        "pubdate": 1657626186,
    +        "ctime": 1657626186,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 244,
    +        "mission_id": 755832,
    +        "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": 3173690,
    +          "name": "面霜_facecream",
    +          "face": "https://i2.hdslb.com/bfs/face/c765c540e50f38522cb7421fe48eb26168c2251c.jpg"
    +        },
    +        "stat": {
    +          "aid": 598292501,
    +          "view": 5253173,
    +          "danmaku": 4018,
    +          "reply": 4056,
    +          "favorite": 62433,
    +          "coin": 19041,
    +          "share": 10281,
    +          "now_rank": 0,
    +          "his_rank": 40,
    +          "like": 434897,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 5253173
    +        },
    +        "dynamic": "",
    +        "cid": 771205689,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV11B4y1e7Zp",
    +        "up_from_v2": 20,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220712qn1v1aiz14ttdc3sp5cjbv7m1_firsti.jpg",
    +        "pub_location": "北京",
    +        "bvid": "BV11B4y1e7Zp",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 598292501,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 752817708,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/064da6608c12892d673c4fbf6849736a8d370970.jpg",
    +        "title": "接 单 成 功",
    +        "pubdate": 1587060098,
    +        "ctime": 1587060098,
    +        "desc": "切勿疲劳驾驶",
    +        "state": 0,
    +        "duration": 23,
    +        "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": 834635,
    +          "name": "黑玛瑙",
    +          "face": "http://i2.hdslb.com/bfs/face/d9253039e6da0c266104f8ff225b8a83ecf289b9.jpg"
    +        },
    +        "stat": {
    +          "aid": 752817708,
    +          "view": 9211533,
    +          "danmaku": 3650,
    +          "reply": 2338,
    +          "favorite": 50476,
    +          "coin": 24078,
    +          "share": 33582,
    +          "now_rank": 0,
    +          "his_rank": 19,
    +          "like": 257783,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 9211533
    +        },
    +        "dynamic": "#黑人抬棺#",
    +        "cid": 179358597,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1zk4y1R7gi",
    +        "pub_location": "广东",
    +        "bvid": "BV1zk4y1R7gi",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 752817708,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 628641603,
    +        "videos": 4,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/1e1f0d1b3457bc17c7d0ad59bf15f68c69214404.jpg",
    +        "title": "骗 过 上 帝",
    +        "pubdate": 1610796481,
    +        "ctime": 1610796481,
    +        "desc": "P2音量注意!!\nP2音量注意!!",
    +        "state": 0,
    +        "duration": 55,
    +        "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": 31933468,
    +          "name": "天そら",
    +          "face": "https://i1.hdslb.com/bfs/face/ca130aa54daa846ee8d39c0bf8db7e19afc4af89.jpg"
    +        },
    +        "stat": {
    +          "aid": 628641603,
    +          "view": 10114976,
    +          "danmaku": 2384,
    +          "reply": 2770,
    +          "favorite": 199680,
    +          "coin": 63408,
    +          "share": 37938,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 236177,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 10114976
    +        },
    +        "dynamic": "",
    +        "cid": 283868302,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV15t4y1z7sS",
    +        "bvid": "BV15t4y1z7sS",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 628641603,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 508705976,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/d53d2b502305a9e6cf942ffdeb50e1e223e1581e.jpg",
    +        "title": "我一直在等他说德语",
    +        "pubdate": 1643556577,
    +        "ctime": 1643556577,
    +        "desc": "tik tok\nQQ空间转载视频\n侵删",
    +        "state": 0,
    +        "duration": 95,
    +        "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": 12922294,
    +          "name": "屠龙的番茄炒蛋",
    +          "face": "https://i1.hdslb.com/bfs/face/d890299b31edeb9959cc1a76ace2fe68f5af3bea.jpg"
    +        },
    +        "stat": {
    +          "aid": 508705976,
    +          "view": 12094647,
    +          "danmaku": 9717,
    +          "reply": 4528,
    +          "favorite": 179645,
    +          "coin": 48401,
    +          "share": 101874,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 403291,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 12094647
    +        },
    +        "dynamic": "",
    +        "cid": 498009758,
    +        "dimension": {
    +          "width": 856,
    +          "height": 480,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1uu411d7ax",
    +        "up_from_v2": 35,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220130a225h5i4fqeu9zuqns20wgj97_firsti.jpg",
    +        "bvid": "BV1uu411d7ax",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 508705976,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 469143727,
    +        "videos": 1,
    +        "tid": 201,
    +        "tname": "科学科普",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/33e2ce4fd06847ce703b6bb0151cc37a3bb40550.jpg",
    +        "title": "不可思议!蚂蚁沿着这个方向一直走,神奇的一幕来了!@油兔不二字幕组",
    +        "pubdate": 1652782288,
    +        "ctime": 1652782288,
    +        "desc": "https://www.youtube.com/watch?v=_PCoPzf8i9o",
    +        "state": 0,
    +        "duration": 25,
    +        "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": 15967711,
    +          "name": "油兔不二字幕组",
    +          "face": "https://i1.hdslb.com/bfs/face/23e00144a96d7110db302f50d52e340f98af377d.jpg"
    +        },
    +        "stat": {
    +          "aid": 469143727,
    +          "view": 507538,
    +          "danmaku": 63,
    +          "reply": 328,
    +          "favorite": 1779,
    +          "coin": 37,
    +          "share": 84,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 8366,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 507538
    +        },
    +        "dynamic": "睁大眼认真看!千万不要眨眼!一直走,一直走,居然走到了……这真的是个神奇的空间,数学是如此美妙!",
    +        "cid": 722525913,
    +        "dimension": {
    +          "width": 450,
    +          "height": 560,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1u5411R7RK",
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220517qnmvx8etq4vyx2t3sgafi1zc3_firsti.jpg",
    +        "pub_location": "福建",
    +        "bvid": "BV1u5411R7RK",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 469143727,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 605316920,
    +        "videos": 1,
    +        "tid": 29,
    +        "tname": "音乐现场",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/7782e2eeab413bec5c46edfd15bffb5e7b3892da.jpg",
    +        "title": "泽连斯基在俄国跨年节目上歌舞2013(完整版)",
    +        "pubdate": 1669000560,
    +        "ctime": 1669000560,
    +        "desc": "youtube\n原曲\nДискотека Авария — Новогодняя",
    +        "state": 0,
    +        "duration": 199,
    +        "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": 306423517,
    +          "name": "Nayrok",
    +          "face": "https://i1.hdslb.com/bfs/face/29523c7f3ee91f55676fd681c03168a7e2018d3e.jpg"
    +        },
    +        "stat": {
    +          "aid": 605316920,
    +          "view": 3683544,
    +          "danmaku": 3941,
    +          "reply": 7528,
    +          "favorite": 26701,
    +          "coin": 2891,
    +          "share": 27710,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 55089,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3683544
    +        },
    +        "dynamic": "",
    +        "cid": 898106941,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Q84y1k7dT",
    +        "up_from_v2": 35,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n221121adatz2r5mjg8cd1688brlzti7_firsti.jpg",
    +        "pub_location": "中国台湾",
    +        "bvid": "BV1Q84y1k7dT",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 605316920,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 669307520,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/e91f2d6c4b8aefe862c75bca6f997bac13e1a689.jpg",
    +        "title": "【官方MV】ナナヲアカリ「完全放棄宣言」",
    +        "pubdate": 1599408049,
    +        "ctime": 1598266568,
    +        "desc": "",
    +        "state": 0,
    +        "duration": 266,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 1,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 486906719,
    +          "name": "索尼音乐中国",
    +          "face": "https://i2.hdslb.com/bfs/face/6bc95d0670863d36bf9167a37b825c39ce258506.jpg"
    +        },
    +        "stat": {
    +          "aid": 669307520,
    +          "view": 1866712,
    +          "danmaku": 983,
    +          "reply": 1635,
    +          "favorite": 70439,
    +          "coin": 31735,
    +          "share": 9715,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 81500,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1866712
    +        },
    +        "dynamic": "",
    +        "cid": 228238849,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "season_id": 1307508,
    +        "short_link_v2": "https://b23.tv/BV1pa4y177qi",
    +        "up_from_v2": 15,
    +        "pub_location": "未知",
    +        "bvid": "BV1pa4y177qi",
    +        "season_type": 1,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 669307520,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 675490509,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/58f8f3c8dfcf3b1ac6cf7a7b0eda660aa2e1e1fc.jpg",
    +        "title": "奥地利美术生就业经历",
    +        "pubdate": 1631273645,
    +        "ctime": 1631272999,
    +        "desc": "https://m.youtube.com/watch?v=h7s410TPnWg",
    +        "state": 0,
    +        "duration": 128,
    +        "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": 489656132,
    +          "name": "古米廖夫",
    +          "face": "https://i2.hdslb.com/bfs/face/633ed3ba1ec5bcde5db105849c2498b03f6b7eee.jpg"
    +        },
    +        "stat": {
    +          "aid": 675490509,
    +          "view": 34555566,
    +          "danmaku": 43970,
    +          "reply": 9671,
    +          "favorite": 851993,
    +          "coin": 497044,
    +          "share": 233825,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 1310434,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 34555566
    +        },
    +        "dynamic": "",
    +        "cid": 405970117,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1jU4y1N7vg",
    +        "up_from_v2": 35,
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n210910a2u7yjx97xzec435kyzziyn8s_firsti.jpg",
    +        "pub_location": "黑龙江",
    +        "bvid": "BV1jU4y1N7vg",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 675490509,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 424255760,
    +        "videos": 1,
    +        "tid": 27,
    +        "tname": "综合",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/00d44d28329c6b42fa2b701ab16ae9011d955374.jpg",
    +        "title": "【绊爱】万恶之源 花Q",
    +        "pubdate": 1645927038,
    +        "ctime": 1645927038,
    +        "desc": "https://www.youtube.com/watch?v=FyFYH-7Ody0\n@AIChannel官方  \n爱的b站主页:https://space.bilibili.com/1473830\n祝ai酱一帆风顺",
    +        "state": 0,
    +        "duration": 17,
    +        "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": 418077794,
    +          "name": "沐秋的伞",
    +          "face": "https://i2.hdslb.com/bfs/face/aa133427eff9b3a21aad471691e27b4fd54439a5.jpg"
    +        },
    +        "stat": {
    +          "aid": 424255760,
    +          "view": 813059,
    +          "danmaku": 40,
    +          "reply": 492,
    +          "favorite": 10383,
    +          "coin": 725,
    +          "share": 1497,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 28100,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 813059
    +        },
    +        "dynamic": "",
    +        "cid": 517786072,
    +        "dimension": {
    +          "width": 2160,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1R3411L7Jc",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n220227qn1euzixuzs9w981rpjcapccw_firsti.jpg",
    +        "bvid": "BV1R3411L7Jc",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 424255760,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 843793876,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/74234c81ff5a00cc8a1db6c37b955cadee2e0737.jpg",
    +        "title": "【8K超高清重制版】印尼魔性电信广告原版完整版IndiHome Paket Phoenix",
    +        "pubdate": 1611702584,
    +        "ctime": 1611702584,
    +        "desc": "前面那个被锁了,现在重投了\n原版看累了来康康up的其他印尼宽带视频吧\n哔哩哔哩大会员广告印尼特供版 8K超高清重制版BV14T4y1K7gY\n印尼宽带西藏特供版ཧིན་ཉི་ཐགས་ཡངས་དམིགས་བསལ་མཁོ་འདོན་པར་གཞི་BV1ao4y1d7VH\n【4K⁶⁰ᶠᵖˢ】这里有一个初音给你的视频唷 BV19T4y1A7fJ\n古埃及宽带广告最新出土av331415167\n汉谟拉比宽带 BV1rv411s7b6\n【乱 码】此 宽 带 无 法 显 示    迠鐩 BV1P54y1W75k",
    +        "state": 0,
    +        "duration": 262,
    +        "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": 294594289,
    +          "name": "不咕的鱼鸽子",
    +          "face": "https://i1.hdslb.com/bfs/face/10eb0658f6ff99e8f042168b15f7c684533f359e.webp"
    +        },
    +        "stat": {
    +          "aid": 843793876,
    +          "view": 3971358,
    +          "danmaku": 29319,
    +          "reply": 2663,
    +          "favorite": 102296,
    +          "coin": 24942,
    +          "share": 27730,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 165773,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3971358
    +        },
    +        "dynamic": "https://www.youtube.com/watch?v=5WVTFZAiB5Y,自己进行了8K高清重制\n前面那个被锁了,现在重投了\n记得多发弹幕吖~~~多发点空耳的唷\n原版看累了来康康up的其他印尼宽带视频吧\n哔哩哔哩大会员广告印尼特供版 8K超高清重制版BV14T4y1K7gY\n【4K⁶⁰ᶠᵖˢ】这里有一个初音给你的视频唷~~ BV19T4y1A7fJ\n\n#IndiHome paket Phoen##印尼宽带#",
    +        "cid": 288188355,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1y54y1s74a",
    +        "bvid": "BV1y54y1s74a",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 843793876,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 16744787,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/fc7356c9e697b4f9f911a4f1c14c15ac24444ea5.jpg",
    +        "title": "一个愤怒的德国小哥,为了证明德国人非常幽默,给大家讲了个笑话……",
    +        "pubdate": 1511852220,
    +        "ctime": 1511852220,
    +        "desc": "https://weibo.com/2393541445/Fx2D0xQ9e?from=page_1005052393541445_profile&amp;wvr=6&amp;mod=weibotime\n一个愤怒的德国小哥,为了证明德国人非常幽默,给大家讲了个笑话……\n(微博@松鼠视频)",
    +        "state": 0,
    +        "duration": 25,
    +        "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": 95511972,
    +          "name": "松鼠视频",
    +          "face": "http://i0.hdslb.com/bfs/face/706c7b0f8131aaae59886094d6dda3ae789775c9.jpg"
    +        },
    +        "stat": {
    +          "aid": 16744787,
    +          "view": 3829756,
    +          "danmaku": 1607,
    +          "reply": 1795,
    +          "favorite": 24529,
    +          "coin": 1377,
    +          "share": 6101,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 106929,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3829756
    +        },
    +        "dynamic": "一个愤怒的德国小哥,为了证明德国人非常幽默,给大家讲了个笑话……\n(微博@松鼠视频)",
    +        "cid": 27360814,
    +        "dimension": {
    +          "width": 360,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1kx41157pM",
    +        "bvid": "BV1kx41157pM",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 16744787,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 738113948,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/1b3dc4772ba90b6fc2e258023ea8082cf11f1556.jpg",
    +        "title": "当年成功暂停了b站最短的视频",
    +        "pubdate": 1677983278,
    +        "ctime": 1677983279,
    +        "desc": "哼哼哼,喝啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊哇啊啊啊啊啊这简介太臭力",
    +        "state": 0,
    +        "duration": 26,
    +        "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": 1942788306,
    +          "name": "神经兮兮的病猫",
    +          "face": "https://i0.hdslb.com/bfs/face/7e72c58637ff26df68fb30939de078d2bbbfcdbe.jpg"
    +        },
    +        "stat": {
    +          "aid": 738113948,
    +          "view": 1126625,
    +          "danmaku": 239,
    +          "reply": 964,
    +          "favorite": 1503,
    +          "coin": 359,
    +          "share": 90,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 12365,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1126625
    +        },
    +        "dynamic": "|-|",
    +        "cid": 1039873906,
    +        "dimension": {
    +          "width": 616,
    +          "height": 1280,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1kD4y1M7xk",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n230305qn2e096agbu88t6j39xe0mk9t_firsti.jpg",
    +        "pub_location": "广东",
    +        "bvid": "BV1kD4y1M7xk",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 738113948,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 207094984,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/8a52c7b347410bd7fc76f12243cc5cfa8287281e.jpg",
    +        "title": "Van Darkholme 听完这首歌绷不住了",
    +        "pubdate": 1628157469,
    +        "ctime": 1628157469,
    +        "desc": "Van Darkholme 听完这首歌绷不住了",
    +        "state": 0,
    +        "duration": 376,
    +        "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": 477631979,
    +          "name": "vansamaofficial",
    +          "face": "https://i2.hdslb.com/bfs/face/78ce170986aa6a8536a74f20d512efb1ba01abc7.jpg"
    +        },
    +        "stat": {
    +          "aid": 207094984,
    +          "view": 2048608,
    +          "danmaku": 2829,
    +          "reply": 3263,
    +          "favorite": 16843,
    +          "coin": 11612,
    +          "share": 6341,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 104351,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2048608
    +        },
    +        "dynamic": "Van Darkholme 听完这首歌绷不住了",
    +        "cid": 383094867,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1eh411q7ic",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n210805a23chpxg28zrbpo2kec99cy76_firsti.jpg",
    +        "pub_location": "浙江",
    +        "bvid": "BV1eh411q7ic",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 207094984,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 2056621,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/b7c6370dc85a19722d94f1677468c6443a1c40e1.jpg",
    +        "title": "德国BOY原版 (空耳字幕版)",
    +        "pubdate": 1425053793,
    +        "ctime": 1497430587,
    +        "desc": "http://v.qq.com/boke/page/k/q/z/k0147k30cqz.html 这才是真正的德国男孩说中文",
    +        "state": 0,
    +        "duration": 262,
    +        "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": 8224350,
    +          "name": "UmiKu39",
    +          "face": "https://i0.hdslb.com/bfs/face/81ca8715513197e252d795b14b16d25f77072929.jpg"
    +        },
    +        "stat": {
    +          "aid": 2056621,
    +          "view": 8428011,
    +          "danmaku": 98925,
    +          "reply": 17208,
    +          "favorite": 303576,
    +          "coin": 83034,
    +          "share": 146215,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 321054,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 8428011
    +        },
    +        "dynamic": "",
    +        "cid": 3183008,
    +        "dimension": {
    +          "width": 444,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1yx411A72S",
    +        "bvid": "BV1yx411A72S",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 2056621,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 585887630,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i0.hdslb.com/bfs/archive/56d158e4816546efbf8adda8fa2c1649ab053723.jpg",
    +        "title": "Rick astley本人被Rickroll给Rickroll了",
    +        "pubdate": 1609655387,
    +        "ctime": 1609655387,
    +        "desc": "https://www.youtube.com/watch?v=bIY0OYCB15w",
    +        "state": 0,
    +        "duration": 9,
    +        "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": 25072174,
    +          "name": "通訊录好友",
    +          "face": "https://i1.hdslb.com/bfs/baselabs/5e0044971bc5740363e6df59c9d4be59a6489651.jpg"
    +        },
    +        "stat": {
    +          "aid": 585887630,
    +          "view": 2082713,
    +          "danmaku": 145,
    +          "reply": 395,
    +          "favorite": 6660,
    +          "coin": 243,
    +          "share": 355,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 42458,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2082713
    +        },
    +        "dynamic": "",
    +        "cid": 276435856,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1fz4y1r7dH",
    +        "bvid": "BV1fz4y1r7dH",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 585887630,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 29842657,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/36be926b50bc091fc8074c540e2a9510844318e2.jpg",
    +        "title": "班长:我@#真的看不下去了!",
    +        "pubdate": 1535580001,
    +        "ctime": 1535579997,
    +        "desc": "已置顶被迫害的同学",
    +        "state": 0,
    +        "duration": 22,
    +        "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": 108330718,
    +          "name": "芙兰D嗒啦",
    +          "face": "https://i1.hdslb.com/bfs/face/9c63726ee0900789aaabcc4db07c812b654c1fca.jpg"
    +        },
    +        "stat": {
    +          "aid": 29842657,
    +          "view": 327790,
    +          "danmaku": 156,
    +          "reply": 175,
    +          "favorite": 629,
    +          "coin": 32,
    +          "share": 159,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 2990,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 327790
    +        },
    +        "dynamic": "",
    +        "cid": 51962975,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1aW411975v",
    +        "up_from_v2": 8,
    +        "bvid": "BV1aW411975v",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 29842657,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 816173477,
    +        "videos": 1,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/12a107b256a8984ac3e18c720d0ec1cf8786f07e.jpg",
    +        "title": "『SLG/像素/安卓直装』白毛萝莉…嘿嘿嘿!😍",
    +        "pubdate": 1664855100,
    +        "ctime": 1664797579,
    +        "desc": "可恶,我想去其他地方耍,河南农村太悲了,虽然房子确实蛮大的,但是灰尘好多啊啊啊啊啊",
    +        "state": 0,
    +        "duration": 31,
    +        "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": 503190013,
    +          "name": "卡卡萌拉",
    +          "face": "https://i1.hdslb.com/bfs/face/db1e5deb2a25e54a7a857cb5ba285066e4d0c587.jpg"
    +        },
    +        "stat": {
    +          "aid": 816173477,
    +          "view": 488050,
    +          "danmaku": 41,
    +          "reply": 446,
    +          "favorite": 7598,
    +          "coin": 8801,
    +          "share": 135,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 15446,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 488050
    +        },
    +        "dynamic": "让我看看是谁让我妊娠了",
    +        "cid": 851127373,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1pG4y1W73S",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n221003a22arnbc249oey1v6tsl6s1kk_firsti.jpg",
    +        "pub_location": "河南",
    +        "bvid": "BV1pG4y1W73S",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 816173477,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 895258574,
    +        "videos": 1,
    +        "tid": 130,
    +        "tname": "音乐综合",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/b94b8be43cd0a9a12bf1a334541b017a3bd24cb6.jpg",
    +        "title": "【全弹幕】av10388 武器A",
    +        "pubdate": 1648906567,
    +        "ctime": 1648906567,
    +        "desc": "sm9307581\n武器A\n[日常]UP主:博丽·灵梦(UID:13308)\n播放:0 | 弹幕:38279 | 硬币:3921 | 收藏:40047\n投稿时间:2010/06/20 10:13\n啊哈哈哈,啊哈哈,啊哈,啊……总之就是武器……",
    +        "state": 0,
    +        "duration": 72,
    +        "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": 104657830,
    +          "name": "尚宜鼎MEMZ",
    +          "face": "https://i1.hdslb.com/bfs/face/6761798442c6e9607c62803ac4fa5fe4a3e7b25b.jpg"
    +        },
    +        "stat": {
    +          "aid": 895258574,
    +          "view": 2763614,
    +          "danmaku": 14104,
    +          "reply": 2200,
    +          "favorite": 9211,
    +          "coin": 367,
    +          "share": 2980,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 36940,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2763614
    +        },
    +        "dynamic": "",
    +        "cid": 565705666,
    +        "dimension": {
    +          "width": 2560,
    +          "height": 1442,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1NP4y1K7Ze",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220402qnljolmy317ncyss4pr3ds863_firsti.jpg",
    +        "pub_location": "广东",
    +        "bvid": "BV1NP4y1K7Ze",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 895258574,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 827984205,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/ffacd250c10ca7cea1a665e89b691b3b7b837587.jpg",
    +        "title": "燃!保加利亚妖王2023新歌MV!",
    +        "pubdate": 1688208848,
    +        "ctime": 1688208848,
    +        "desc": "youtube\n保加利亚妖王azis新歌mv",
    +        "state": 0,
    +        "duration": 225,
    +        "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": 1295732260,
    +          "name": "SJM-史密斯",
    +          "face": "https://i1.hdslb.com/bfs/face/5a9898c57668ab662ad509151896284b10d2f3f7.jpg"
    +        },
    +        "stat": {
    +          "aid": 827984205,
    +          "view": 144989,
    +          "danmaku": 170,
    +          "reply": 324,
    +          "favorite": 761,
    +          "coin": 76,
    +          "share": 2247,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 4081,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 144989
    +        },
    +        "dynamic": "",
    +        "cid": 1181623685,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV19g4y1A7xq",
    +        "up_from_v2": 8,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n230701qn3tfuifpjvvh0e2pctwqbkep_firsti.jpg",
    +        "pub_location": "上海",
    +        "bvid": "BV19g4y1A7xq",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 827984205,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 345957866,
    +        "videos": 1,
    +        "tid": 193,
    +        "tname": "MV",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/2327de6051626e9f263e265805cbb1be3a05ad8d.jpg",
    +        "title": "【越南神曲】-《Kẻ Cắp Gặp Bà Già 》!终于找到原版了!",
    +        "pubdate": 1664102700,
    +        "ctime": 1664027264,
    +        "desc": "提到「越南电音」,大家可能会感到比较陌生,甚至摸不着头脑。 事实上,越南电音已经席卷国内短视频平台,没有人可以逃过它的轰炸。  音乐一开,无人不嗨~",
    +        "state": 0,
    +        "duration": 234,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 0,
    +          "autoplay": 0,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 2043250564,
    +          "name": "4K音乐馆",
    +          "face": "https://i1.hdslb.com/bfs/face/4be964615e70e18ab469e4403cb0fa320f8d2fdc.jpg"
    +        },
    +        "stat": {
    +          "aid": 345957866,
    +          "view": 5385788,
    +          "danmaku": 2780,
    +          "reply": 2811,
    +          "favorite": 104536,
    +          "coin": 7321,
    +          "share": 5689,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 97393,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 5385788
    +        },
    +        "dynamic": "",
    +        "cid": 842321779,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "season_id": 725909,
    +        "short_link_v2": "https://b23.tv/BV1Ud4y1M7C7",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220924qn371jsgk4te6781w32102ovo_firsti.jpg",
    +        "pub_location": "山东",
    +        "bvid": "BV1Ud4y1M7C7",
    +        "season_type": 1,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 345957866,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 827183116,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/724f74b61f670b10a78e026a352864eb7e89a138.jpg",
    +        "title": "对不起马老师,我真的没忍住",
    +        "pubdate": 1686386780,
    +        "ctime": 1686386780,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 23,
    +        "mission_id": 1570720,
    +        "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": 207454032,
    +          "name": "趣看视频",
    +          "face": "https://i0.hdslb.com/bfs/face/ff1317c16a58620a8e7a3c27d9db9a9edf569d59.jpg"
    +        },
    +        "stat": {
    +          "aid": 827183116,
    +          "view": 2797645,
    +          "danmaku": 2818,
    +          "reply": 2023,
    +          "favorite": 20772,
    +          "coin": 5499,
    +          "share": 25617,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 56003,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2797645
    +        },
    +        "dynamic": "",
    +        "cid": 1159242423,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1ou4y1d7Z3",
    +        "up_from_v2": 19,
    +        "first_frame": "http://i2.hdslb.com/bfs/storyff/n230610a21n9lcrrzzdtud2zi8janufy_firsti.jpg",
    +        "pub_location": "广西",
    +        "bvid": "BV1ou4y1d7Z3",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 827183116,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      },
    +      {
    +        "aid": 56927206,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 2,
    +        "pic": "http://i2.hdslb.com/bfs/archive/fd8324a72f0c6629f6d9b6af0daa11d950863993.jpg",
    +        "title": "【每天一遍,网抑再见】万恶之源,抖就完事了",
    +        "pubdate": 1561555314,
    +        "ctime": 1561555314,
    +        "desc": "【带字幕版】本人亲自翻译\nBGM:coincidance \n有些人看着看着就抖起来了,别说了,护士姐姐真漂亮\nhttps://www.youtube.com/watch?v=nBHkIWAJitg&feature=share\n肩膀好了,就来摇头吧\nav65659850",
    +        "state": 0,
    +        "duration": 139,
    +        "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": 34232005,
    +          "name": "200斤的五条艾",
    +          "face": "https://i1.hdslb.com/bfs/face/5135289ba858105ae466429ba9610e7980cf73f0.jpg"
    +        },
    +        "stat": {
    +          "aid": 56927206,
    +          "view": 40520266,
    +          "danmaku": 76914,
    +          "reply": 17391,
    +          "favorite": 1545707,
    +          "coin": 693056,
    +          "share": 547011,
    +          "now_rank": 0,
    +          "his_rank": 15,
    +          "like": 1970242,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 40520266
    +        },
    +        "dynamic": "#沙雕##搞笑视频##魔性#",
    +        "cid": 99428737,
    +        "dimension": {
    +          "width": 960,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Ax411d7jD",
    +        "up_from_v2": 11,
    +        "bvid": "BV1Ax411d7jD",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": {
    +          "id": 56927206,
    +          "goto": "av",
    +          "trackid": "web_related_0.router-related-1359031-c4bbc7796-vzc6q.1702381552599.144",
    +          "uniq_id": ""
    +        }
    +      }
    +    ],
    +    "Spec": null,
    +    "hot_share": {
    +      "show": false,
    +      "list": []
    +    },
    +    "elec": null,
    +    "recommend": null,
    +    "emergency": {
    +      "no_like": false,
    +      "no_coin": false,
    +      "no_fav": false,
    +      "no_share": false
    +    },
    +    "view_addit": {
    +      "63": false,
    +      "64": false,
    +      "69": false,
    +      "71": false,
    +      "72": false
    +    },
    +    "guide": null,
    +    "query_tags": null,
    +    "is_old_user": false,
    +    "participle": null
    +  }
    +}
    +

    获取视频简介

    https://api.bilibili.com/x/web-interface/archive/desc

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    62002:稿件不可见
    messagestr错误信息默认为0
    ttlnum1
    datastr简介内容

    示例:

    查看视频(教主的咕鸽)av39330059/BV1Bt411z799的简介

    avid方式:

    curl -G 'https://api.bilibili.com/x/archive/desc' \
    +--data-urlencode 'aid=39330059'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/archive/desc' \
    +--data-urlencode 'bvid=BV1Bt411z799'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataarray分P列表

    数组data

    类型内容备注
    0obj1P内容无分P仅有此项
    nobj(n+1)P内容
    ……obj…………

    数组data中的对象:

    字段类型内容备注
    cidnum当前分P cid
    pagenum当前分P
    fromstr视频来源vupload:普通上传(B站)
    hunan:芒果TV
    qq:腾讯
    partstr当前分P标题
    durationnum当前分P持续时间单位为秒
    vidstr站外视频vid
    weblinkstr站外视频跳转url
    dimensionobj当前分P分辨率有部分视频无法获取分辨率
    first_framestr分P封面

    数组data中的对象中的dimension对象:

    字段类型内容备注
    widthnum当前分P 宽度
    heightnum当前分P 高度
    rotatenum是否将宽高对换0:正常
    1:对换

    示例:

    查询视频av13502509/BV1ex411J7GE的分P列表

    avid方式:

    curl -G 'https://api.bilibili.com/x/player/pagelist' \
    +--data-urlencode 'aid=13502509'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/player/pagelist' \
    +--data-urlencode 'bvid=BV1ex411J7GE'
    +
    查看响应示例:
    {
    +    "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.html b/docs/video/interact_video.html new file mode 100644 index 0000000000..7561bc0ee1 --- /dev/null +++ b/docs/video/interact_video.html @@ -0,0 +1,196 @@ + + + + + + + + + 互动视频信息 | BAC Document + + + + +

    互动视频信息

    注:互动视频分P与普通视频分P不互通

    获取互动视频模块详细信息

    https://api.bilibili.com/x/stein/edgeinfo_v2

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    graph_versionnum剧情图id必要位于player.so
    edge_idnum模块编号非必要0或留空为起始模块

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    99003:剧情图被修改已失效
    99077:请输入aid/bvid
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    titlestr视频模块(分P)标题
    edge_idnum当前模块id
    story_listarray进度回溯信息未登录仅有起始模块
    edgesobj当前模块信息
    preloadobj预加载的分P
    hidden_varsarray变量列表无变量时不存在此项
    is_leafnum是否为结束模块0:当前模块为普通模块
    1:当前模块为结束模块
    no_tutorialnum禁止记录选择1:禁止
    非禁止时无此项
    no_backtrackingnum禁止进度回溯1:禁止
    非禁止时无此项
    no_evaluationnum禁止结尾评分1:禁止
    非禁止时无此项

    data中的story_list数组:

    类型内容备注
    0obj回溯第一项模块
    nobj回溯第(n+1)项模块
    ……obj…………

    story_list数组中的对象:

    类型内容备注
    node_idnum模块编号
    edge_idnum同上
    titlestr模块(分P)标题
    cidnum模块(分P)cid
    start_posnum记录播放开始位置单位为毫秒
    coverstr分P封面url
    is_currentnum是否为当前模块1:是
    仅为当前模块时存在
    cursornum进度序号从0开始向上增长

    data中的edges对象:

    字段类型内容备注
    dimensionobj当前分P分辨率有部分视频无法获取分辨率
    questionsarray问题结束模块无此项
    skinobj问题外观

    edges中的dimension对象:

    字段类型内容备注
    widthnum当前分P 宽度
    heightnum当前分P 高度
    rotatenum是否将宽高对换0:正常
    1:对换
    sarstr???作用尚不明确

    edges中的questions数组:

    类型内容备注
    0obj套了个娃

    edges中的questions数组中的对象:

    字段类型内容备注
    idnum???作用尚不明确
    typenum选项显示模式0:不显示选项
    1:底部选项模式
    2:坐标定点模式
    3:???
    127:???
    start_time_rnum300 或 duration作用尚不明确
    durationnum回答限时单位为毫秒
    不限时为-1
    pause_videonum是否暂停播放视频0:不暂停
    1:暂停播放
    titlestr作用尚不明确
    choicesarray选项列表
    fade_in_timenum选项淡入时间毫秒
    fade_out_timenum选项淡出时间毫秒

    questions数组中的对象中的choices数组:

    类型内容备注
    0obj第一选项
    nobj第(n+1)选项
    ……obj…………

    questions数组中的对象中的choices数组中的对象:

    字段类型内容备注
    idnum选项所跳转的模块id
    platform_actionstr跳转信息文字JUMP+{所跳转的模块编号}+{所跳转的cid}
    native_actionstr点击后对变量运算语句每项间用分号隔开
    无为空
    conditionstr选项出现条件判断语句无为空
    cidnum选项所跳转分P的cid
    xnum选项出现的x坐标仅坐标模式有此项
    ynum选项出现的y坐标仅坐标模式有此项
    text_alignnum选项文本对齐方式
    optionstr选项文字
    selectedobj选择动画信息
    submitedobj提交动画信息
    is_defaultnum是否为默认选项1:是
    非默认选项无此项
    is_hiddennum是否为隐藏选项1:是
    非隐藏选项无此项

    edges中的skin对象:

    字段类型内容备注
    choice_imagestr选项组件外观图片url
    title_text_colorstr文字颜色以下均为RGBA格式
    title_shadow_colorstr文字阴影颜色
    title_shadow_offset_xnum文字阴影x偏移
    title_shadow_offset_ynum文字阴影y偏移
    title_shadow_radiusnum文字阴影半径
    progressbar_colorstr倒计时条颜色
    progressbar_shadow_colorstr倒计时条阴影颜色

    data中的preload对象:

    字段类型内容备注
    videoarray预加载的分P

    preload中的video数组:

    类型内容备注
    0obj预加载第一项预加载的内容为当前所有选项的跳转视频
    nobj预加载第(n+1)项
    ……obj…………

    preload中的video数组中的对象:

    字段类型内容备注
    aidnum稿件avid
    cidnum分P cid

    data中的hidden_vars数组:

    类型内容备注
    0obj第一个变量
    nobj第(n+1)个变量
    ……obj…………

    data中的hidden_vars数组中的对象:

    字段类型内容备注
    valuenum变量值随机值为随机整数
    idstr变量编号
    id_v2str变量编号语句中一般使用这种
    typenum变量类型1:普通变量
    2:随机值
    is_shownum是否展示变量0:否
    1:是
    namestr变量名
    skip_overwritenum0作用尚不明确

    示例:

    查询互动视频av73267982下剧情图155446模块5556092的信息

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +    "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
    +    }
    +}
    +
    + + + diff --git a/docs/video/online.html b/docs/video/online.html new file mode 100644 index 0000000000..fc28d03d07 --- /dev/null +++ b/docs/video/online.html @@ -0,0 +1,65 @@ + + + + + + + + + 视频在线人数 | BAC Document + + + + +

    视频在线人数

    获取视频在线人数_web端

    https://api.bilibili.com/x/player/online/total

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    cidnum视频cid必要用于选择目标分P

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    totalstr所有终端总计人数例如10万+
    countstrweb端实时在线人数
    show_switchobj数据显示控制

    data中的show_switch对象:

    字段类型内容备注
    totalbool展示所有终端总计人数
    countbool展示web端实时在线人数

    示例:

    查询视频av759949922/BV1y64y1q757中1P(392402545)的在线人数

    curl -G 'https://api.bilibili.com/x/player/online/total' \
    +--data-urlencode 'aid=759949922' \
    +--data-urlencode 'cid=392402545'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要
    appkeystrAPP密钥APP方式必要
    cidnum视频cid必要用于选择目标分P
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    onlineobj所有终端总计人数

    data中的show_switch对象:

    字段类型内容备注
    onlinestr所有终端总计人数例如10万+人在看

    示例:

    查询视频av759949922/BV1y64y1q757中1P(392402545)的在线人数

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "online": {
    +            "total_text": "8.8万+人在看"
    +        }
    +    }
    +}
    +
    + + + diff --git a/docs/video/pbp.html b/docs/video/pbp.html new file mode 100644 index 0000000000..9d7be868c2 --- /dev/null +++ b/docs/video/pbp.html @@ -0,0 +1,43 @@ + + + + + + + + + 高能进度条 | BAC Document + + + + +

    高能进度条

    高能进度条反应了在时域上,单位时间内弹幕发送量的变化趋势

    并用曲线顶点表示在进度条上,实现可视化

    获取弹幕趋势顶点列表

    https://bvc.bilivideo.com/pbp/data

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    cidnum视频cid必要
    aidnum稿件avid非必要
    bvidnum稿件bvid非必要

    json回复:

    根对象:

    字段类型内容备注
    step_secnum采样间隔时间单位为秒
    由视频时长决定
    tagstrstr???作用尚不明确
    eventsobj数据本体
    debugstr调试信息json字串

    events对象:

    字段类型内容备注
    defaultarray顶点值列表

    events对象中的数组:

    类型内容备注
    0num顶点1
    nnum顶点(n+1)顶点个数由视频时长和采样时间决定
    ……num…………

    示例:

    获取视频cid=3724723的获取弹幕趋势顶点列表

    curl -G 'https://api.bilibili.com/pbp/data' \
    +--data-urlencode 'cid=3724723'
    +
    查看响应示例:
    {
    +	"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/player.html b/docs/video/player.html new file mode 100644 index 0000000000..0cf70b0462 --- /dev/null +++ b/docs/video/player.html @@ -0,0 +1,100 @@ + + + + + + + + + 播放器 | BAC Document + + + + +

    播放器

    web 播放器信息

    web 播放器的信息接口,提供正常播放需要的元数据,包括:智能防挡弹幕、字幕、章节看点等。

    https://api.bilibili.com/x/player/wbi/v2

    请求方式:GET

    url 参数:

    参数名类型内容必要性备注
    aidnum稿件 avid必要 (可选)aid 与 bvid 任选
    bvidstr稿件 bvid必要 (可选)aid 与 bvid 任选
    cidnum稿件 cid必要
    w_ridstrWBI 签名不必要
    wtsnum当前 unix 时间戳不必要

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    aidnum视频 aid
    bvidstr视频 bvid
    cidnum视频 cid
    dm_maskobjwebmask 信息(如果没有这一项,说明这个视频没有防挡功能)
    subtitleobj字幕信息(需要登录,不登录此项内容为 []
    view_pointsarray章节看点信息
    其他...主要是观看记录、使用者等级权限、背景音乐等信息

    dm_mask对象(如果有):

    字段类型内容备注
    cidnum视频 cid
    platnum未知
    fpsnumwebmask 取样 fps
    timenum未知
    mask_urlstrwebmask 资源 url

    解析 webmask 请看 智能防挡弹幕

    subtitle对象:

    字段类型内容备注
    allow_submitbooltrue
    lanstr""
    lan_docstr""
    subtitlesarray不登录为 []

    subtitles 数组内的元素:

    字段类型内容备注
    ai_statusnum
    ai_typenum
    idnum
    id_strstr和 id 不一样
    is_lockbool
    lanstr语言类型英文字母缩写
    lan_docstr语言类型中文名称
    subtitle_urlstr资源 url 地址
    typenum0

    view_point 数组内的元素:

    字段类型内容备注
    contentnum章节名
    fromnum
    tonum
    typenum
    imgUrlstr图片资源地址
    logoUrlstr""

    示例:

    curl -G "https://api.bilibili.com/x/player/wbi/v2?aid=515345690&cid=825851971"
    +
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "aid": 515345690,
    +        "bvid": "BV1Fg411D7Jy",
    +        ... // 省略
    +        "dm_mask": {
    +            "cid": 825851971,
    +            "plat": 0,
    +            "fps": 30,
    +            "time": 0,
    +            "mask_url": "//upos-sz-staticcos-cmask.bilivideo.com/cmaskboss/825851971_30_0.webmask?trid=219266863a1442baa05086b4285ba923B&orderid=0,1&logo=00000000"
    +        },
    +        "view_points": [
    +            {
    +                "type": 2,
    +                "from": 0,
    +                "to": 27,
    +                "content": "狗啃的",
    +                "imgUrl": "http://i0.hdslb.com/bfs/vchapter/825851971_0.jpg",
    +                "logoUrl": ""
    +            },
    +            {
    +                "type": 2,
    +                "from": 27,
    +                "to": 63,
    +                "content": "椒牌泡菜",
    +                "imgUrl": "http://i0.hdslb.com/bfs/vchapter/825851971_27.jpg",
    +                "logoUrl": ""
    +            }, ... // 省略
    +        ],
    +        "subtitle": {
    +            "allow_submit": true,
    +            "lan": "",
    +            "lan_doc": "",
    +            "subtitles": [], // 未登录,下面是登录的版本
    +            "subtitles":[
    +                {
    +                    "id": 1042985852759993300,
    +                    "lan": "ai-zh",
    +                    "lan_doc": "中文(自动生成)",
    +                    "is_lock": false,
    +                    "subtitle_url": "//aisubtitle.hdslb.com/bfs/ai_subtitle/prod/5153456908258519712094280c7c2884b77929bab82f64530f?auth_key=1714795727-a8eb254b60bc4a73bc8662da51005340-0-1c305894e48e959979b163636461fb8f",
    +                    "type": 1,
    +                    "id_str": "1042985852759993344",
    +                    "ai_type": 0,
    +                    "ai_status": 2
    +                }
    +            ]
    +        }
    +    }
    +}
    +

    播放反馈

    https://app.bilibili.com/x/resource/laser2

    请求方式: POST

    注: 该接口不传 Cookie

    URL参数:

    参数名类型内容必要性备注
    midnum当前用户 mid不必要未登录为空
    buvidstrBUVID (APP) 或 buvid3 (Web)必要可为任意非空字符串
    app_keystrAPP 密钥必要Web: web_player
    可为任意非空字符串
    urlstr日志 URL非必要上传接口 得到的 upos 协议 URL
    task_typenum任务类型非必要300: 播放卡顿
    301: 进度条君无法调戏
    354: 校园网无法访问
    303: 弹幕无法显示
    553: 跳过首尾时间有误
    304: 出现浮窗广告
    305: 无限小电视
    302: 音画不同步
    306: 黑屏
    307: 其他

    JSON回复:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj数据本体

    data 对象:

    字段类型内容备注
    task_idnum任务 ID?

    示例:

    播放反馈无限小电视, 不登录, 不传文件, buvid 为 chenrui-in-icu

    curl -X POST "https://app.bilibili.com/x/resource/laser2" \
    +--data-urlencode "buvid=chenrui-in-icu" \
    +--data-urlencode "app_key=web_player" \
    +--data-urlencode "task_type=305"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "task_id": 850448532
    +  }
    +}
    +
    + + + diff --git a/docs/video/recommend.html b/docs/video/recommend.html new file mode 100644 index 0000000000..59cc26c406 --- /dev/null +++ b/docs/video/recommend.html @@ -0,0 +1,1377 @@ + + + + + + + + + 视频推荐 | BAC Document + + + + +

    视频推荐

    获取单视频推荐列表(web端)

    https://api.bilibili.com/x/web-interface/archive/related

    请求方式:GET

    最多获取40条推荐视频

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray推荐列表

    data数组:

    类型内容备注
    0obj推荐视频1
    nobj推荐视频(n+1)
    ……obj…………
    39obj推荐视频40

    data数组中的对象:

    基本同「获取视频详细信息(web端)」中的data对象,已知没有分P信息

    示例:

    查询视频av7/BV1xx411c7m9的推荐视频列表

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/related' \
    +--data-urlencode 'aid=7'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/related' \
    +--data-urlencode 'bvid=BV1xx411c7m9'
    +
    查看响应示例:
    {
    +	"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": ""
    +	},
    +	…………
    +	]
    +}
    +

    获取首页视频推荐列表(web端)

    https://api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    最多获取30条推荐视频,直播及推荐边栏

    url参数:

    参数名类型内容必要性备注
    fresh_typenum相关性非必要默认为 4
    值越大推荐内容越相关
    psnum单页返回的记录条数非必要默认为 12, 留空即最大值为 30
    fresh_idxnum当前翻页号非必要以 1 开始
    fresh_idx_1hnum当前翻页号(一小时前?)非必要以 1 开始, 默认与 fresh_idx 内容相同
    brushnum刷子?非必要以 1 开始, 默认与 fresh_idx 内容相同
    fetch_rownum本次抓取的最后一行行号非必要1 递归加上本次抓取总行数
    web_locationnum网页位置非必要主页为 1430650
    y_numnum普通列数非必要一行中视频,直播及广告数
    last_y_numnum总列数非必要普通列数 + 边栏列数
    feed_versionstrV8非必要作用尚不明确
    homepage_vernum1非必要首页版本
    screenstr浏览器视口大小非必要水平在前垂直在后以减号分割
    seo_infostr非必要作用尚不明确
    last_showliststr上次抓取的视频av号列表非必要av与数字间用下划线分隔, 若视频UP主已关注则中间再插入n
    uniq_idstr???非必要作用尚不明确
    w_ridstrWBI 签名非必要WBI 签名
    wtsnumUNIX 时间戳非必要WBI 签名

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj

    data对象:

    字段类型内容备注
    business_cardnull
    floor_infonull
    itemarray推荐列表
    midnum用户mid未登录为0
    preload_expose_pctnum0.5用于预加载?
    preload_floor_expose_pctnum0.5用于预加载?
    side_bar_columnarray边栏列表?可参考字段 item 及对应功能文档
    user_featurenull

    data对象中item数组中的对象:

    字段类型内容备注
    av_featurenull
    business_infoobj商业推广信息无为null, 此处无参考意义
    bvidstr视频bvid
    cidnum稿件cid
    dislike_switchnum1显示不感兴趣开关?
    dislike_switch_pcnum0显示不感兴趣开关(PC)?
    duraionnum视频时长
    enable_vtnum0作用尚不明确
    gotonum目标类型av: 视频
    ogv: 边栏
    live: 直播
    duraionnum视频时长
    idnum视频aid / 直播间id
    is_followednum已关注0: 未关注
    1: 已关注
    is_stocknum0作用尚不明确
    ogv_infonull
    ownerobjUP主
    picstr封面
    pic_4_3str封面(4:3)
    posnum0位置?
    pubdatenum发布时间
    rcmd_reasonobj推荐理由直播等为null
    room_infoobj直播间信息普通视频等为null, 参见直播
    show_infonum展示信息1: 普通视频
    0: 直播
    statobj视频状态信息直播等为null, 参见视频基本信息
    titlestr标题
    track_idstr跟踪标识?
    uristr目标页 URI
    vt_displaystr作用尚不明确

    item数组中的对象中的owner对象:

    | 字段 | 类型 | 内容 | 备注 | | face | str | 头像URL | | | mid | num | UP主mid | | | name | str | UP昵称 | |

    item数组中的对象中的rcmd_reason对象:

    | 字段 | 类型 | 内容 | 备注 | | reason_type | num | 原因类型 | 0: 无
    1: 已关注
    3: 高点赞量 | | content | str | 原因描述 | 当 reason_type 为 3 时存在 |

    示例:

    获取新版web端首页推荐视频列表

    curl -G 'https://api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd' \
    +--data-urlencode 'fresh_type=4' \
    +--data-urlencode 'ps=12' \
    +--data-urlencode 'fresh_idx=5' \
    +--data-urlencode 'fresh_idx_1h=5' \
    +--data-urlencode 'fetch_row=16'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "item": [
    +            {
    +                "id": 1354614895,
    +                "bvid": "BV1Dz42117GZ",
    +                "cid": 1548835687,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1Dz42117GZ",
    +                "pic": "http://i1.hdslb.com/bfs/archive/b47154987b4c0f40a39779c09a9d485176d1238f.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/archive/b47154987b4c0f40a39779c09a9d485176d1238f.jpg",
    +                "title": "做数学题总是抄错 | 看错 | 算错 怎么破?决定高考分数的这个非智力因素不容忽视",
    +                "duration": 882,
    +                "pubdate": 1715946937,
    +                "owner": {
    +                    "mid": 374484802,
    +                    "name": "数学阮禾老师",
    +                    "face": "https://i1.hdslb.com/bfs/face/4df57e4b48b04206bce7572831688741580ca0e1.jpg"
    +                },
    +                "stat": {
    +                    "view": 48250,
    +                    "like": 2959,
    +                    "danmaku": 433,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1255924089,
    +                "bvid": "BV1DJ4m1u7Mp",
    +                "cid": 1600833978,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1DJ4m1u7Mp",
    +                "pic": "http://i0.hdslb.com/bfs/archive/5068d860e8bbc37679ece933aa8e6d8428cfb5c1.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-07-01-1145021255924089_1612_gener.jpg",
    +                "title": "人类这种生物,看到按钮就会按下去。",
    +                "duration": 326,
    +                "pubdate": 1719805500,
    +                "owner": {
    +                    "mid": 5616993,
    +                    "name": "马夫鱼33",
    +                    "face": "https://i0.hdslb.com/bfs/face/4c2af23046147e91ce5a4af3375464fdcf1956e6.jpg"
    +                },
    +                "stat": {
    +                    "view": 667067,
    +                    "like": 28529,
    +                    "danmaku": 483,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "content": "2万点赞",
    +                    "reason_type": 3
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1306020278,
    +                "bvid": "BV1rM4m117Ry",
    +                "cid": 1608959606,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1rM4m117Ry",
    +                "pic": "http://i0.hdslb.com/bfs/archive/49f62c70f17d0afe00e5e620dd366c68149c780e.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/archive/49f62c70f17d0afe00e5e620dd366c68149c780e.jpg",
    +                "title": "Axios 前后端对接教程|HTTP",
    +                "duration": 352,
    +                "pubdate": 1720440325,
    +                "owner": {
    +                    "mid": 260736087,
    +                    "name": "三分钟实验室",
    +                    "face": "https://i0.hdslb.com/bfs/face/6172aa089ed0b26ffffb72018422eb4280d4da41.jpg"
    +                },
    +                "stat": {
    +                    "view": 7527,
    +                    "like": 365,
    +                    "danmaku": 1,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1755972439,
    +                "bvid": "BV1g4421D7qn",
    +                "cid": 1597039275,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1g4421D7qn",
    +                "pic": "http://i2.hdslb.com/bfs/archive/35ee2ffaab4206d17893a3f48cdf512b4f028fdc.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-26-21354756381755972439_16_12_5326_crop.jpg",
    +                "title": "《我爱发明》里那些抽象发明 歹徒兴奋床!",
    +                "duration": 659,
    +                "pubdate": 1719408945,
    +                "owner": {
    +                    "mid": 348989367,
    +                    "name": "沫子瞪片",
    +                    "face": "https://i0.hdslb.com/bfs/face/a2131d38a2ea73f16ff25e61dbeb40377233f552.jpg"
    +                },
    +                "stat": {
    +                    "view": 1540767,
    +                    "like": 65409,
    +                    "danmaku": 5383,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1055953358,
    +                "bvid": "BV1jH4y1w7A6",
    +                "cid": 1598484848,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1jH4y1w7A6",
    +                "pic": "http://i1.hdslb.com/bfs/archive/accdb655b4f2bef665e6fdedb4de28de2feda078.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-28-12560692491055953358_16_12_2438_crop.jpg",
    +                "title": "为什么一个数的5次方个位数是自己!",
    +                "duration": 327,
    +                "pubdate": 1719550565,
    +                "owner": {
    +                    "mid": 483522694,
    +                    "name": "火星课堂",
    +                    "face": "https://i1.hdslb.com/bfs/face/fe751f0d7062c8e8adcef501390d48330fac0514.jpg"
    +                },
    +                "stat": {
    +                    "view": 244673,
    +                    "like": 5406,
    +                    "danmaku": 210,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": {
    +                    "id": 0,
    +                    "contract_id": "",
    +                    "res_id": 1055953358,
    +                    "asg_id": 0,
    +                    "pos_num": 0,
    +                    "name": "",
    +                    "pic": "",
    +                    "litpic": "",
    +                    "url": "",
    +                    "style": 0,
    +                    "agency": "",
    +                    "label": "",
    +                    "intro": "",
    +                    "creative_type": 0,
    +                    "request_id": "1721098961752q172a25a216a162q1363",
    +                    "src_id": 5637,
    +                    "area": 0,
    +                    "is_ad_loc": true,
    +                    "ad_cb": "",
    +                    "title": "",
    +                    "server_type": 0,
    +                    "cm_mark": 0,
    +                    "stime": 0,
    +                    "mid": "",
    +                    "activity_type": 0,
    +                    "epid": 0,
    +                    "sub_title": "",
    +                    "ad_desc": "",
    +                    "adver_name": "",
    +                    "null_frame": false,
    +                    "pic_main_color": "",
    +                    "card_type": 0,
    +                    "business_mark": null,
    +                    "inline": {
    +                        "inline_use_same": 0,
    +                        "inline_type": 0,
    +                        "inline_url": "",
    +                        "inline_barrage_switch": 0
    +                    },
    +                    "operater": "",
    +                    "jump_target": 0,
    +                    "show_urls": null,
    +                    "click_urls": null
    +                },
    +                "is_stock": 1,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1763571437,
    +                "bvid": "",
    +                "cid": 0,
    +                "goto": "live",
    +                "uri": "https://live.bilibili.com/1763571437",
    +                "pic": "http://i0.hdslb.com/bfs/live/new_room_cover/f1787ef2ce4a2a031fb4a6a63b62d15493268d71.jpg",
    +                "pic_4_3": "",
    +                "title": "【新V】今天不要再把自己笨哭了",
    +                "duration": 0,
    +                "pubdate": 0,
    +                "owner": {
    +                    "mid": 3546712666802274,
    +                    "name": "伊柒璇儿_鹤熙冠",
    +                    "face": "https://i0.hdslb.com/bfs/face/3e0ff3d7d53b9ac1a2d90ea563e22d3f70ad28cc.jpg"
    +                },
    +                "stat": null,
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": null,
    +                "show_info": 0,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": {
    +                    "room_id": 1763571437,
    +                    "uid": 3546712666802274,
    +                    "live_status": 1,
    +                    "show": {
    +                        "short_id": 0,
    +                        "title": "【新V】今天不要再把自己笨哭了",
    +                        "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/f1787ef2ce4a2a031fb4a6a63b62d15493268d71.jpg",
    +                        "keyframe": "http://i0.hdslb.com/bfs/live-key-frame/keyframe07161101001763571437k9l40v.jpg",
    +                        "popularity_count": 8539,
    +                        "tag_list": null,
    +                        "live_start_time": 0,
    +                        "live_id": 0,
    +                        "hidden_online": false
    +                    },
    +                    "area": {
    +                        "area_id": 0,
    +                        "area_name": "虚拟日常",
    +                        "parent_area_id": 9,
    +                        "parent_area_name": "虚拟主播",
    +                        "old_area_id": 0,
    +                        "old_area_name": "",
    +                        "old_area_tag": "",
    +                        "area_pk_status": 0,
    +                        "is_video_room": false
    +                    },
    +                    "watched_show": {
    +                        "switch": true,
    +                        "num": 168,
    +                        "text_small": "168",
    +                        "text_large": "168人看过",
    +                        "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
    +                        "icon_location": "",
    +                        "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png"
    +                    }
    +                },
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1855792572,
    +                "bvid": "BV16s421T7CU",
    +                "cid": 1587596195,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV16s421T7CU",
    +                "pic": "http://i2.hdslb.com/bfs/archive/1b9d9799260a075b094212bf79e3d7ccb9e04087.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-19-14044883851855792572_16_12_7260_crop.jpg",
    +                "title": "压缩蚊件.zip",
    +                "duration": 66,
    +                "pubdate": 1718777086,
    +                "owner": {
    +                    "mid": 173947574,
    +                    "name": "好奇五先生",
    +                    "face": "https://i2.hdslb.com/bfs/face/1c69fff12a2d0d50e71931cef0486ab919a818a2.jpg"
    +                },
    +                "stat": {
    +                    "view": 951633,
    +                    "like": 22930,
    +                    "danmaku": 932,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1405866842,
    +                "bvid": "BV11r421F7E8",
    +                "cid": 1589772517,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV11r421F7E8",
    +                "pic": "http://i2.hdslb.com/bfs/archive/50b1bb8d227d17a3b6195e80128ab295d152d3be.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-20-2148551405866842_1612_gener.jpg",
    +                "title": "【音游推荐】暑期音游推荐,不同基础都可入坑",
    +                "duration": 311,
    +                "pubdate": 1718891332,
    +                "owner": {
    +                    "mid": 592146708,
    +                    "name": "Qc天水",
    +                    "face": "https://i0.hdslb.com/bfs/face/2998a9e762aa07559b2acf54234f07979c959ffe.jpg"
    +                },
    +                "stat": {
    +                    "view": 278997,
    +                    "like": 6698,
    +                    "danmaku": 303,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1055540151,
    +                "bvid": "BV1in4y197U4",
    +                "cid": 1582190043,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1in4y197U4",
    +                "pic": "http://i2.hdslb.com/bfs/archive/9a366971fadd6e4dfd1813c42b180c8779038627.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-15-18004087071055540151_16_12_7856_crop.jpg",
    +                "title": "我把裁判罚下场了",
    +                "duration": 217,
    +                "pubdate": 1718445600,
    +                "owner": {
    +                    "mid": 475304452,
    +                    "name": "生姜蛋包饭",
    +                    "face": "https://i1.hdslb.com/bfs/face/40feee36c71f7f53931854fc54c88d530360b1a7.jpg"
    +                },
    +                "stat": {
    +                    "view": 678085,
    +                    "like": 62171,
    +                    "danmaku": 832,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "content": "6万点赞",
    +                    "reason_type": 3
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1505823466,
    +                "bvid": "BV1vS421d7No",
    +                "cid": 1596567774,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1vS421d7No",
    +                "pic": "http://i2.hdslb.com/bfs/archive/b2b19b067cdbf7dd93be5fc01009e72c20572184.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-26-1241021505823466_1612_gener.jpg",
    +                "title": "AI 视频:两小儿辩日",
    +                "duration": 138,
    +                "pubdate": 1719376858,
    +                "owner": {
    +                    "mid": 589397373,
    +                    "name": "宝玉xp",
    +                    "face": "https://i0.hdslb.com/bfs/face/c2c29f6e1bb9b0860241f0df4d2cdea8242ab5d2.jpg"
    +                },
    +                "stat": {
    +                    "view": 1216188,
    +                    "like": 54839,
    +                    "danmaku": 194,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1055744039,
    +                "bvid": "BV1Zn4y1Q7zj",
    +                "cid": 1575814128,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1Zn4y1Q7zj",
    +                "pic": "http://i0.hdslb.com/bfs/archive/5288cf0830e49de414084c4168b11033b08f8507.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-06-09-17404720501055744039_16_12_294_crop.jpg",
    +                "title": "【诺子】重新“看见”世界是一种什么样的感觉?",
    +                "duration": 579,
    +                "pubdate": 1717926045,
    +                "owner": {
    +                    "mid": 10276136,
    +                    "name": "诺子喵呜",
    +                    "face": "https://i2.hdslb.com/bfs/face/7e6846ed5619b945c888b8f8db5000469f6353ff.jpg"
    +                },
    +                "stat": {
    +                    "view": 1016467,
    +                    "like": 97886,
    +                    "danmaku": 979,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            },
    +            {
    +                "id": 1706215690,
    +                "bvid": "BV1tT421k7By",
    +                "cid": 1611364587,
    +                "goto": "av",
    +                "uri": "https://www.bilibili.com/video/BV1tT421k7By",
    +                "pic": "http://i1.hdslb.com/bfs/archive/cd3308109e8726fe4147dd25ed7ca0dbeeda1dc1.jpg",
    +                "pic_4_3": "http://i0.hdslb.com/bfs/aistory/2024-07-11-00194836761706215690_16_12_3934_crop.jpg",
    +                "title": "谷歌翻译20遍《河中石兽》泌尿系统",
    +                "duration": 145,
    +                "pubdate": 1720628387,
    +                "owner": {
    +                    "mid": 1030835113,
    +                    "name": "象哥嘎",
    +                    "face": "https://i1.hdslb.com/bfs/face/aa0ae89fa72dab7b8bc082433769b1768f51c3dc.jpg"
    +                },
    +                "stat": {
    +                    "view": 78600,
    +                    "like": 3437,
    +                    "danmaku": 328,
    +                    "vt": 0
    +                },
    +                "av_feature": null,
    +                "is_followed": 0,
    +                "rcmd_reason": {
    +                    "reason_type": 0
    +                },
    +                "show_info": 1,
    +                "track_id": "web_pegasus_4.router-web-pegasus-1554782-5c89895477-smhn8.1721098961744.133",
    +                "pos": 0,
    +                "room_info": null,
    +                "ogv_info": null,
    +                "business_info": null,
    +                "is_stock": 0,
    +                "enable_vt": 0,
    +                "vt_display": "",
    +                "dislike_switch": 1,
    +                "dislike_switch_pc": 0
    +            }
    +        ],
    +        "side_bar_column": [
    +            {
    +                "id": 25502,
    +                "goto": "comic",
    +                "track_id": "",
    +                "pos": 1,
    +                "card_type": "漫画",
    +                "card_type_en": "comic",
    +                "cover": "http://i0.hdslb.com/bfs/manga-static/5e410bf6f73ff87f87b543e4b918de5f024652e8.jpg",
    +                "url": "https://manga.bilibili.com/detail/mc25502",
    +                "title": "头文字D",
    +                "sub_title": "",
    +                "duration": 0,
    +                "stats": null,
    +                "room_info": null,
    +                "styles": [
    +                    "游戏竞技"
    +                ],
    +                "comic": {
    +                    "comic_id": 25502,
    +                    "title": "头文字D",
    +                    "horizontal_cover": "http://i0.hdslb.com/bfs/manga-static/5e410bf6f73ff87f87b543e4b918de5f024652e8.jpg",
    +                    "square_cover": "http://i0.hdslb.com/bfs/manga-static/da660f6274730af82d557f21a6247d4f6b1e300b.jpg",
    +                    "vertical_cover": "http://i0.hdslb.com/bfs/manga-static/64df8b860d2bf6bf2edd0426b4aefbff25b51386.jpg",
    +                    "is_finish": 1,
    +                    "status": 0,
    +                    "last_ord": 724,
    +                    "total": 724,
    +                    "release_time": "",
    +                    "last_short_title": "番外05",
    +                    "discount_type": 0,
    +                    "recommendation": "秋名山下坡最快的AE86神话!",
    +                    "last_read_ep_id": 0,
    +                    "latest_ep_short_title": "",
    +                    "style": [
    +                        "游戏竞技"
    +                    ],
    +                    "author_name": [
    +                        "重野秀一 ",
    +                        "讲谈社"
    +                    ],
    +                    "allow_wait_free": false,
    +                    "type": 0,
    +                    "rank": null,
    +                    "operate_cover": "",
    +                    "rookie_type": 0
    +                },
    +                "producer": null,
    +                "source": "",
    +                "av_feature": null,
    +                "is_rec": 0,
    +                "is_finish": 0,
    +                "is_started": 0,
    +                "is_play": 0,
    +                "enable_vt": 0,
    +                "vt_display": ""
    +            },
    +            {
    +                "id": 47800,
    +                "goto": "ogv",
    +                "track_id": "",
    +                "pos": 2,
    +                "card_type": "番剧",
    +                "card_type_en": "bangumi",
    +                "cover": "https://i0.hdslb.com/bfs/bangumi/image/1c61f75b571fffb8c5a2bd0396b49ce3529776f4.png",
    +                "url": "https://www.bilibili.com/bangumi/play/ss47800",
    +                "title": "铁甲小宝 重制版 中文配音",
    +                "sub_title": "童年经典回归!",
    +                "duration": 1382000,
    +                "stats": {
    +                    "follow": 116644,
    +                    "view": 10864687,
    +                    "danmaku": 42428,
    +                    "reply": 11448,
    +                    "coin": 18904,
    +                    "series_follow": 209046,
    +                    "series_view": 17474247,
    +                    "likes": 61376,
    +                    "favorite": 116644
    +                },
    +                "room_info": null,
    +                "new_ep": {
    +                    "id": 824212,
    +                    "index_show": "更新至第30话",
    +                    "cover": "http://i0.hdslb.com/bfs/archive/e185c054588945a1de6648ff7fb5001852df39f4.png",
    +                    "title": "30",
    +                    "long_title": "巨大机器来袭!!",
    +                    "pub_time": "2024-07-15 18:00:01",
    +                    "duration": 1382000,
    +                    "day_of_week": 1
    +                },
    +                "styles": [
    +                    "日常",
    +                    "热血",
    +                    "搞笑",
    +                    "原创",
    +                    "特摄"
    +                ],
    +                "comic": null,
    +                "producer": [
    +                    {
    +                        "mid": 928123,
    +                        "name": "哔哩哔哩番剧",
    +                        "type": 3,
    +                        "is_contribute": 1
    +                    }
    +                ],
    +                "source": "",
    +                "av_feature": null,
    +                "is_rec": 0,
    +                "is_finish": 0,
    +                "is_started": 1,
    +                "is_play": 1,
    +                "horizontal_cover_16_9": "https://i0.hdslb.com/bfs/bangumi/image/ec5065dc0e88417abd4792d5caa96dacc99d1d51.png",
    +                "horizontal_cover_16_10": "https://i0.hdslb.com/bfs/bangumi/image/5cc132e336cc72e6521bba928d8a0e50bd5a6d34.png",
    +                "enable_vt": 0,
    +                "vt_display": ""
    +            },
    +            {
    +                "id": 48020,
    +                "goto": "ogv",
    +                "track_id": "",
    +                "pos": 3,
    +                "card_type": "国创",
    +                "card_type_en": "guochuang",
    +                "cover": "https://i0.hdslb.com/bfs/bangumi/image/fcb176fcbf5a66fd122fa99f9fdf2cabf22468bb.png",
    +                "url": "https://www.bilibili.com/bangumi/play/ss48020",
    +                "title": "不白吃古诗词漫游记 第二季",
    +                "sub_title": "古诗词这动人的浪漫",
    +                "duration": 179000,
    +                "stats": {
    +                    "follow": 2173495,
    +                    "view": 325366,
    +                    "danmaku": 110,
    +                    "reply": 208,
    +                    "coin": 443,
    +                    "series_follow": 2208624,
    +                    "series_view": 3322752487,
    +                    "likes": 8794,
    +                    "favorite": 2173495
    +                },
    +                "room_info": null,
    +                "new_ep": {
    +                    "id": 830238,
    +                    "index_show": "更新至第7话",
    +                    "cover": "http://i0.hdslb.com/bfs/archive/6db74bc8ab2670181562314a24abe525cebb7c76.jpg",
    +                    "title": "7",
    +                    "long_title": "王维当个官怎么还郁闷了?",
    +                    "pub_time": "2024-07-15 19:00:00",
    +                    "duration": 179000,
    +                    "day_of_week": 1
    +                },
    +                "styles": [
    +                    "少儿",
    +                    "历史",
    +                    "原创",
    +                    "古风"
    +                ],
    +                "comic": null,
    +                "producer": [],
    +                "source": "",
    +                "av_feature": null,
    +                "is_rec": 0,
    +                "is_finish": 0,
    +                "is_started": 1,
    +                "is_play": 1,
    +                "horizontal_cover_16_9": "https://i0.hdslb.com/bfs/bangumi/image/f19013ddd7f87b0e03df10feccc4a61a3a43774a.png",
    +                "horizontal_cover_16_10": "https://i0.hdslb.com/bfs/bangumi/image/966553b199829aae7e47882edbe053463ee85276.png",
    +                "enable_vt": 0,
    +                "vt_display": ""
    +            }
    +        ],
    +        "business_card": null,
    +        "floor_info": null,
    +        "user_feature": null,
    +        "preload_expose_pct": 0.5,
    +        "preload_floor_expose_pct": 0.5,
    +        "mid": 645769214
    +    }
    +}
    +

    获取短视频模式视频列表

    https://app.bilibili.com/x/v2/feed/index

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    有大量不明意义的参数 备注仅供参考

    参数名类型内容必要性备注
    fnvalnum视频流格式标识非必要默认为272
    fnvernum视频流版本标识非必要恒为1
    force_hostnum源url类型非必要0:无限制 1:使用http 2:使用https
    fourknum是否允许 4K 视频非必要画质最高 1080P:0(默认)
    画质最高 4K:1
    guidancenum0非必要
    https_url_reqnum0非必要
    inline_danmunum2非必要
    inline_soundnum1非必要
    interest_idnum0非必要
    login_eventnum登录状态非必要0为登录 1为未登录
    mobi_appnumandroid非必要设备类型
    networknumwifi非必要网络类型
    open_eventnum非必要
    platformnumandroid非必要设备类型
    pullbollfalse非必要
    qnnum32非必要似乎是画质
    recsys_modenum0非必要
    s_localestrzh_CN非必要语言
    video_modenum1非必要
    voice_balancenum音量均衡?非必要默认为1

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj

    data对象:

    字段类型内容备注
    configobj一些界面相关的内容此处省略
    itemsarray视频列表

    data中的items数组的对象:

    以下为视频类型

    字段类型内容备注
    can_playnum1字面意思
    card_gotostrav
    card_typestr卡片类型视频为small_cover_v2
    coverstr封面url
    cover_left_1_content_descriptionstr播放量8.9万观看
    cover_left_2_content_descriptionstr弹幕数250弹幕
    cover_left_text_1str播放量8.9万
    cover_left_text_2str弹幕数250
    cover_right_content_descriptionstr视频长度1分钟20秒
    cover_right_textstr视频长度1:20
    desc_buttonobjup主信息
    paramstr视频aid
    player_argsobj视频信息
    talk_backstr
    titlestr标题
    uristr跳转链接

    desc_button对象:

    字段类型内容备注
    eventstr
    textstrup名称
    typenum1
    uristr跳转链接

    player_args对象:

    字段类型内容备注
    aidnum视频aid
    cidnum视频cid
    durationnum视频长度秒数
    typestr

    示例:

    获取短视频模式视频列表

    curl -G 'https://app.bilibili.com/x/v2/feed/index' 
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "items": [
    +            {
    +                "card_type": "small_cover_v2",
    +                "card_goto": "av",
    +                "goto": "av",
    +                "param": "411978753",
    +                "cover": "http://i2.hdslb.com/bfs/archive/a1bda1e57e6812ca8822a8839fc4a1d3539255a8.jpg",
    +                "title": "帕 鲁 现 状",
    +                "uri": "bilibili://video/411978753?cid=1423365216\u0026player_height=1920\u0026player_preload=%7B%22cid%22%3A1423365216%2C%22expire_time%22%3A1706633200%2C%22file_info%22%3A%7B%2216%22%3A%5B%7B%22timelength%22%3A79970%2C%22filesize%22%3A3782665%7D%5D%2C%2264%22%3A%5B%7B%22timelength%22%3A79900%2C%22filesize%22%3A9552030%7D%5D%7D%2C%22support_quality%22%3Anull%2C%22support_formats%22%3Anull%2C%22support_description%22%3Anull%2C%22quality%22%3A16%2C%22url%22%3A%22http%3A%2F%2Fcn-gdst-cm-01-12.bilivideo.com%2Fupgcxcode%2F16%2F52%2F1423365216%2F1423365216-1-16.mp4%3Fe%3Dig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_%5Cu0026uipk%3D5%5Cu0026nbs%3D1%5Cu0026deadline%3D1706636800%5Cu0026gen%3Dplayurlv2%5Cu0026os%3Dbcache%5Cu0026oi%3D0%5Cu0026trid%3D00000ccc07d4b7a34140a25493d51003bd95U%5Cu0026mid%3D0%5Cu0026platform%3D%5Cu0026upsig%3D2bf8e99202a181300981ab6ba9d2305d%5Cu0026uparams%3De%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%5Cu0026cdnid%3D6876%5Cu0026bvc%3Dvod%5Cu0026nettype%3D0%5Cu0026orderid%3D0%2C3%5Cu0026buvid%3D%5Cu0026build%3D0%5Cu0026f%3DU_0_0%5Cu0026bw%3D47881%5Cu0026logo%3D80000000%22%2C%22video_codecid%22%3A7%2C%22video_project%22%3Atrue%2C%22fnver%22%3A0%2C%22fnval%22%3A0%7D\u0026player_rotate=0\u0026player_width=1080\u0026report_flow_data=%7B%22flow_card_type%22%3A%22av%22%7D",
    +                "three_point": {
    +                    "dislike_reasons": [
    +                        {
    +                            "id": 4,
    +                            "name": "UP主:锤子game",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "分区:网络游戏",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "频道:搞笑",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 12,
    +                            "name": "此类内容过多",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 13,
    +                            "name": "推荐过",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 1,
    +                            "name": "不感兴趣",
    +                            "toast": "将减少相似内容推荐"
    +                        }
    +                    ],
    +                    "feedbacks": [
    +                        {
    +                            "id": 1,
    +                            "name": "恐怖血腥",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "色情低俗",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "封面恶心",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 4,
    +                            "name": "标题党/封面党",
    +                            "toast": "将优化首页此类内容"
    +                        }
    +                    ],
    +                    "watch_later": 1
    +                },
    +                "args": {
    +                    "up_id": 495695169,
    +                    "up_name": "锤子game",
    +                    "rid": 65,
    +                    "rname": "网络游戏",
    +                    "tid": 1833,
    +                    "tname": "搞笑",
    +                    "aid": 411978753
    +                },
    +                "player_args": {
    +                    "aid": 411978753,
    +                    "cid": 1423365216,
    +                    "type": "av",
    +                    "duration": 80
    +                },
    +                "idx": 1706629610,
    +                "three_point_v2": [
    +                    {
    +                        "title": "添加至稍后再看",
    +                        "type": "watch_later",
    +                        "icon": "https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/NyPAqcn0QF.png"
    +                    },
    +                    {
    +                        "title": "反馈",
    +                        "subtitle": "(选择后将优化首页此类内容)",
    +                        "reasons": [
    +                            {
    +                                "id": 1,
    +                                "name": "恐怖血腥",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "色情低俗",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "封面恶心",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 4,
    +                                "name": "标题党/封面党",
    +                                "toast": "将优化首页此类内容"
    +                            }
    +                        ],
    +                        "type": "feedback"
    +                    },
    +                    {
    +                        "title": "不感兴趣",
    +                        "subtitle": "(选择后将减少相似内容推荐)",
    +                        "reasons": [
    +                            {
    +                                "id": 4,
    +                                "name": "UP主:锤子game",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "分区:网络游戏",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "频道:搞笑",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 12,
    +                                "name": "此类内容过多",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 13,
    +                                "name": "推荐过",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 1,
    +                                "name": "不感兴趣",
    +                                "toast": "将减少相似内容推荐"
    +                            }
    +                        ],
    +                        "type": "dislike"
    +                    }
    +                ],
    +                "talk_back": "视频,帕 鲁 现 状,32.5万观看,257弹幕,时长1分钟20秒,UP主锤子game,",
    +                "report_flow_data": "{\"flow_card_type\":\"av\"}",
    +                "cover_left_text_1": "32.5万",
    +                "cover_left_icon_1": 1,
    +                "cover_left_1_content_description": "32.5万观看",
    +                "cover_left_text_2": "257",
    +                "cover_left_icon_2": 3,
    +                "cover_left_2_content_description": "257弹幕",
    +                "cover_right_text": "1:20",
    +                "cover_right_content_description": "1分钟20秒",
    +                "desc_button": {
    +                    "text": "锤子game",
    +                    "uri": "bilibili://space/495695169",
    +                    "event": "nickname",
    +                    "type": 1
    +                },
    +                "official_icon": 16,
    +                "can_play": 1,
    +                "goto_icon": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/077GOeHOfO.png",
    +                    "icon_night_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/ldbCXtkoK2.png",
    +                    "icon_width": 16,
    +                    "icon_height": 16
    +                }
    +            },
    +            {
    +                "card_type": "small_cover_v2",
    +                "card_goto": "av",
    +                "goto": "av",
    +                "param": "836990443",
    +                "cover": "http://i1.hdslb.com/bfs/archive/d16a125d6ec1c68cc9e0815bc28dcb62a1df9932.jpg",
    +                "title": "【Phigros自制/崩坏:星穹铁道】欢迎来到匹诺康尼! 不眠之夜 IN Lv.13",
    +                "uri": "bilibili://video/836990443?cid=1422516399\u0026player_height=1080\u0026player_preload=%7B%22cid%22%3A1422516399%2C%22expire_time%22%3A1706633200%2C%22file_info%22%3A%7B%2216%22%3A%5B%7B%22timelength%22%3A102818%2C%22filesize%22%3A4441802%7D%5D%2C%2264%22%3A%5B%7B%22timelength%22%3A102748%2C%22filesize%22%3A12468618%7D%5D%7D%2C%22support_quality%22%3Anull%2C%22support_formats%22%3Anull%2C%22support_description%22%3Anull%2C%22quality%22%3A16%2C%22url%22%3A%22http%3A%2F%2Fupos-sz-mirrorali.bilivideo.com%2Fupgcxcode%2F99%2F63%2F1422516399%2F1422516399-1-16.mp4%3Fe%3Dig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_%5Cu0026uipk%3D5%5Cu0026nbs%3D1%5Cu0026deadline%3D1706636800%5Cu0026gen%3Dplayurlv2%5Cu0026os%3Dalibv%5Cu0026oi%3D0%5Cu0026trid%3D0ccc07d4b7a34140a25493d51003bd95U%5Cu0026mid%3D0%5Cu0026platform%3D%5Cu0026upsig%3D06ea793aa573018646c0096adf0dcb9e%5Cu0026uparams%3De%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%5Cu0026bvc%3Dvod%5Cu0026nettype%3D0%5Cu0026orderid%3D0%2C3%5Cu0026buvid%3D%5Cu0026build%3D0%5Cu0026f%3DU_0_0%5Cu0026bw%3D43547%5Cu0026logo%3D80000000%22%2C%22video_codecid%22%3A7%2C%22video_project%22%3Atrue%2C%22fnver%22%3A0%2C%22fnval%22%3A0%7D\u0026player_rotate=0\u0026player_width=1920\u0026report_flow_data=%7B%22flow_card_type%22%3A%22av%22%7D",
    +                "three_point": {
    +                    "dislike_reasons": [
    +                        {
    +                            "id": 4,
    +                            "name": "UP主:早期陈总",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "分区:音游",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "频道:音乐游戏",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 12,
    +                            "name": "此类内容过多",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 13,
    +                            "name": "推荐过",
    +                            "toast": "将减少相似内容推荐"
    +                        },
    +                        {
    +                            "id": 1,
    +                            "name": "不感兴趣",
    +                            "toast": "将减少相似内容推荐"
    +                        }
    +                    ],
    +                    "feedbacks": [
    +                        {
    +                            "id": 1,
    +                            "name": "恐怖血腥",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 2,
    +                            "name": "色情低俗",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 3,
    +                            "name": "封面恶心",
    +                            "toast": "将优化首页此类内容"
    +                        },
    +                        {
    +                            "id": 4,
    +                            "name": "标题党/封面党",
    +                            "toast": "将优化首页此类内容"
    +                        }
    +                    ],
    +                    "watch_later": 1
    +                },
    +                "args": {
    +                    "up_id": 1515475415,
    +                    "up_name": "早期陈总",
    +                    "rid": 136,
    +                    "rname": "音游",
    +                    "tid": 10174,
    +                    "tname": "音乐游戏",
    +                    "aid": 836990443
    +                },
    +                "player_args": {
    +                    "aid": 836990443,
    +                    "cid": 1422516399,
    +                    "type": "av",
    +                    "duration": 103
    +                },
    +                "idx": 1706629609,
    +                "three_point_v2": [
    +                    {
    +                        "title": "添加至稍后再看",
    +                        "type": "watch_later",
    +                        "icon": "https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/NyPAqcn0QF.png"
    +                    },
    +                    {
    +                        "title": "反馈",
    +                        "subtitle": "(选择后将优化首页此类内容)",
    +                        "reasons": [
    +                            {
    +                                "id": 1,
    +                                "name": "恐怖血腥",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "色情低俗",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "封面恶心",
    +                                "toast": "将优化首页此类内容"
    +                            },
    +                            {
    +                                "id": 4,
    +                                "name": "标题党/封面党",
    +                                "toast": "将优化首页此类内容"
    +                            }
    +                        ],
    +                        "type": "feedback"
    +                    },
    +                    {
    +                        "title": "不感兴趣",
    +                        "subtitle": "(选择后将减少相似内容推荐)",
    +                        "reasons": [
    +                            {
    +                                "id": 4,
    +                                "name": "UP主:早期陈总",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 2,
    +                                "name": "分区:音游",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 3,
    +                                "name": "频道:音乐游戏",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 12,
    +                                "name": "此类内容过多",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 13,
    +                                "name": "推荐过",
    +                                "toast": "将减少相似内容推荐"
    +                            },
    +                            {
    +                                "id": 1,
    +                                "name": "不感兴趣",
    +                                "toast": "将减少相似内容推荐"
    +                            }
    +                        ],
    +                        "type": "dislike"
    +                    }
    +                ],
    +                "talk_back": "视频,【Phigros自制/崩坏:星穹铁道】欢迎来到匹诺康尼! 不眠之夜 IN Lv.13,22.8万观看,797弹幕,时长1分钟43秒,UP主早期陈总,",
    +                "report_flow_data": "{\"flow_card_type\":\"av\"}",
    +                "cover_left_text_1": "22.8万",
    +                "cover_left_icon_1": 1,
    +                "cover_left_1_content_description": "22.8万观看",
    +                "cover_left_text_2": "797",
    +                "cover_left_icon_2": 3,
    +                "cover_left_2_content_description": "797弹幕",
    +                "cover_right_text": "1:43",
    +                "cover_right_content_description": "1分钟43秒",
    +                "desc_button": {
    +                    "text": "早期陈总",
    +                    "uri": "bilibili://space/1515475415",
    +                    "event": "nickname",
    +                    "type": 1
    +                },
    +                "can_play": 1,
    +                "goto_icon": {
    +                    "icon_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/077GOeHOfO.png",
    +                    "icon_night_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/ldbCXtkoK2.png",
    +                    "icon_width": 16,
    +                    "icon_height": 16
    +                }
    +            }
    +        ],
    +        "config": {
    +            "column": 2,
    +            "autoplay_card": 2,
    +            "feed_clean_abtest": 0,
    +            "home_transfer_test": 0,
    +            "auto_refresh_time": 1200,
    +            "show_inline_danmaku": 1,
    +            "toast": {},
    +            "is_back_to_homepage": true,
    +            "enable_rcmd_guide": true,
    +            "inline_sound": 2,
    +            "auto_refresh_time_by_appear": 1200,
    +            "auto_refresh_time_by_active": 1200,
    +            "visible_area": 80,
    +            "card_density_exp": 1,
    +            "story_mode_v2_guide_exp": 6
    +        },
    +        "interest_choose": null
    +    }
    +}
    +
    + + + diff --git a/docs/video/report.html b/docs/video/report.html new file mode 100644 index 0000000000..b4c4c560bc --- /dev/null +++ b/docs/video/report.html @@ -0,0 +1,75 @@ + + + + + + + + + 视频观看数据上报 | BAC Document + + + + +

    视频观看数据上报

    上报观看进度(双端)

    https://api.bilibili.com/x/v2/history/report

    请求方式:POST

    认证方式:APP或Cookie(SESSDATA)

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    aidnum稿件avid必要
    cidnum视频cid必要用于识别分P
    progressnum观看进度非必要单位为秒
    默认为0
    platformstr平台标识非必要可为android
    csrfstrCSRF Token(位于cookie)Cookie方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -101:账号未登录
    -111:csrf校验失败
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    记录视频av13662970cid=126654047)的观看记录位于1248

    Cookie方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    上报视频播放心跳(web端)

    https://api.bilibili.com/x/click-interface/web/heartbeat

    请求方式:POST

    认证方式:仅可Cookie(SESSDATA)

    默认间隔15秒一次, 亦可记录播放历史

    该接口较为复杂, 且参数计算方法均为推测, 实际过程不明, 可能含有错误, 若要正式使用可以把已播放的持续时间全都设为相同值

    URL参数:

    参数名类型内容必要性备注
    w_start_tsnum参见请求正文同名无w_前缀参数非必要UNIX 秒级时间戳
    w_midnum参见请求正文同名无w_前缀参数非必要
    w_aidnum参见请求正文同名无w_前缀参数非必要
    w_dtnum2非必要
    w_realtimenum参见请求正文同名无w_前缀参数非必要单位 秒
    w_playedtimenum参见请求正文同名无w_前缀参数非必要单位 秒
    w_real_played_timenum参见请求正文同名无w_前缀参数非必要单位 秒
    w_video_durationnum参见请求正文同名无w_前缀参数非必要单位 秒
    w_last_play_progress_timenum参见请求正文同名无w_前缀参数非必要单位 秒
    web_locationnum网页位置非必要视频详情页播放器: 1315873
    w_ridnumWBI 签名非必要参见WBI 签名
    wtsnumUNIX 秒级时间戳非必要参见WBI 签名

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个(网页端请求默认仅使用aid)
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    cidnum视频cid非必要用于识别分P
    epidnum番剧epid非必要
    sidnum番剧ssid非必要
    midnum当前用户mid非必要
    played_timenum视频播放进度非必要单位 秒
    播放完成为 -1
    realtimenum本轮页面会话真实播放时间非必要单位 秒
    real_played_timenum本轮页面会话真实视频播放持续时间非必要单位 秒
    refer_urlstr与请求头 Referer 字段相同非必要
    qualitynum视频清晰度非必要参见qn视频清晰度标识
    video_durationnum视频时长非必要单位 秒
    last_play_progress_timenumplay_time 与 本轮页面会话开始时 played_time 之和非必要单位 秒
    max_play_progress_timenum本轮页面会话所有最大 last_play_progress_time 与 本轮页面会话开始时 played_time 之和非必要单位 秒
    start_tsnum开始播放时刻非必要时间戳
    typenum视频类型非必要3:投稿视频
    4:剧集
    10:课程
    sub_typenum剧集副类型非必要0: 普通投稿视频
    1:番剧
    2:电影
    3:纪录片
    4:国创
    5:电视剧
    7:综艺
    dtnum2非必要
    outernum0非必要
    spmidstr333.788.0.0非必要作用尚不明确
    from_spmidstr播放来源?非必要也可为空, 如: 444.41.list.card_archive.click 333.999.0.0
    sessionstr会话信息?非必要一串无分隔小写 UUID
    extraobj额外信息, 如播放器版本非必要如: {"player_version":"4.8.36"}
    play_typenum播放动作非必要0:播放中
    1:开始播放
    2:暂停
    3:继续播放
    4: 结束播放
    csrfstrCSRF Token (即 Cookie 中 bili_jct)非必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    上报一次视频av2/BV1xx411c7mD的心跳数据

    curl 'https://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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    开始观看视频 (web端)

    https://api.bilibili.com/x/click-interface/click/web/h5

    请求方式: POST

    认证方式: Cookie (SESSDATA)

    该接口亦被用于计算播放量, 播放量更新不是实时的

    URL参数:

    参数名类型内容必要性备注
    w_aidnum稿件 aid不必要
    w_partnum视频分 P 编号不必要
    w_ftimenum点击时间戳?不必要UNIX 秒级时间戳
    w_stimenum开始播放时间戳?不必要UNIX 秒级时间戳
    w_typenum视频类型不必要上报视频播放心跳(web端)
    web_locationnum网页位置?不必要1315873
    w_ridnumWBI 签名不必要参见WBI 签名
    wtsnumUNIX 秒级时间戳不必要参见WBI 签名

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    midnum当前用户 mid不必要
    aidnum稿件 aid必要
    cidnum视频 cid不必要
    partnum视频分 P 编号不必要
    lvnum当前用户等级不必要
    ftimenum同 URL 参数中带有 w_ 前缀的同名参数不必要
    stimenum同 URL 参数中带有 w_ 前缀的同名参数不必要
    typenum视频类型不必要上报视频播放心跳(web端)
    sub_typenum视频子类型不必要上报视频播放心跳(web端)
    referer_urlstr与请求头 Referer 字段相同不必要
    outernum0不必要
    spmidstr333.788.0.0不必要作用尚不明确
    from_spmidstr播放来源?不必要上报视频播放心跳(web端)
    sessionstr会话信息?不必要一串无分隔小写 UUID
    csrfstrCSRF Token (即 Cookie 中 bili_jct)不必要

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/click-interface/click/web/h5' \
    +--data-urlencode 'aid=2' \
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/video/snapshot.html b/docs/video/snapshot.html new file mode 100644 index 0000000000..9401aced7b --- /dev/null +++ b/docs/video/snapshot.html @@ -0,0 +1,114 @@ + + + + + + + + + 视频快照 | BAC Document + + + + +

    视频快照

    快照的截取时间根据视频画面变化程度决定,各视频不相同

    截取时间表的时间根据视频画面变化程度决定,各每个视频不相同

    截取时间表的时间和快照一一对应,并按照从左到右 从上到下的顺序排布

    获取视频快照(web端)

    https://api.bilibili.com/x/player/videoshot

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个
    cidnum分P cid非必要默认为1P
    indexnumjson数组截取时间表非必要1:需要
    0:不需要
    默认为0

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    40001:请求错误
    40003:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pvdatastrbin格式截取时间表url
    img_x_lennum每行图片数一般为10
    img_y_lennum每列图片数一般为10
    img_x_sizenum每张图片长一般为160
    img_y_sizenum每张图片宽一般为90
    imagearray图片拼版
    indexarrayjson数组格式截取时间表无为空

    data中的image数组:

    类型内容备注
    0str图片拼版1 url
    nstr图片拼版(n+1) url第一张拼版占满时延续第二张
    ……str…………

    data中的index数组:

    类型内容备注
    0num恒为0
    1num图片1 截取时间视频0秒截取时间
    nnum图片n 截取时间单位为秒
    ……num……单位为秒

    示例:

    获取视频av26273789/BV1os411H7wm的快照

    avid方式:

    curl -G 'https://api.bilibili.com/x/player/videoshot' \
    +--data-urlencode 'aid=26273789' \
    +--data-urlencode 'index=1'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/player/videoshot' \
    +--data-urlencode 'bvid=BV1os411H7wm' \
    +--data-urlencode 'index=1'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要
    appkeystrAPP密钥APP方式必要
    cidnum分P cid必要
    tsnum当前时间戳APP方式必要
    signstrAPP签名APP方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    10008:稿件的缩略图不存在
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pvdatastrbin格式截取时间表url
    img_x_lennum每行图片数一般为10
    img_y_lennum每列图片数一般为10
    img_x_sizenum每张图片长一般为160
    img_y_sizenum每张图片宽一般为90
    imagearray图片拼版

    data中的image数组:

    类型内容备注
    0str图片拼版1 url
    nstr图片拼版(n+1) url第一张拼版占满时延续第二张
    ……str…………

    示例:

    获取视频av26273789cid=49075258)的快照

    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'
    +
    查看响应示例:
    {
    +    "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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    40001:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    pvdatastrbin格式截取时间表url
    img_x_lennum每行图片数一般为10
    img_y_lennum每列图片数一般为10
    img_x_sizenum每张图片长一般为160
    img_y_sizenum每张图片宽一般为90
    imagearray图片拼版
    indexarrayjson数组格式截取时间表无为空

    data中的image数组:

    类型内容备注
    0str图片拼版1 url
    nstr图片拼版(n+1) url第一张拼版占满时延续第二张
    ……str…………

    data中的index数组:

    类型内容备注
    0num恒为0
    1num图片1 截取时间视频0秒截取时间
    nnum图片n 截取时间单位为秒
    ……num……单位为秒

    示例:

    获取视频av26273789的快照

    curl -G 'https://api.bilibili.com/pvideo' \
    +--data-urlencode 'aid=26273789'
    +
    查看响应示例:
    {
    +	"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

    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.html b/docs/video/status_number.html new file mode 100644 index 0000000000..294b39a988 --- /dev/null +++ b/docs/video/status_number.html @@ -0,0 +1,90 @@ + + + + + + + + + 视频状态数 | BAC Document + + + + +

    视频状态数

    视频状态数(仅avid)

    该接口已失效

    https://api.bilibili.com/archive_stat/stat

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    40001:请求错误
    40003:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum稿件avid
    view正常:num
    屏蔽:str
    正常:播放次数
    屏蔽:"--"
    danmakunum弹幕条数
    replynum评论条数
    favoritenum收藏人数
    coinnum投币枚数
    sharenum分享次数
    now_ranknum0作用尚不明确
    his_ranknum历史最高排行
    likenum获赞次数
    dislikenum0作用尚不明确
    no_reprintnum禁止转载标志0:无
    1:禁止
    copyrightnum版权标志1:自制
    2:转载

    示例:

    查询视频av91572143的状态数

    avid方式:

    curl -G 'https://api.bilibili.com/archive_stat/stat' \
    +--data-urlencode 'aid=91572143'
    +
    查看响应示例:
    {
    +	"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参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -412:请求被拦截
    40003:无视频
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    aidnum稿件avid
    bvidstr稿件bvid
    view正常:num
    屏蔽:str
    正常:播放次数
    屏蔽:"--"
    danmakunum弹幕条数
    replynum评论条数
    favoritenum收藏人数
    coinnum投币枚数
    sharenum分享次数
    now_ranknum0作用尚不明确
    his_ranknum历史最高排行
    likenum获赞次数
    dislikenum0作用尚不明确
    no_reprintnum禁止转载标志0:无
    1:禁止
    copyrightnum版权标志1:自制
    2:转载
    argue_msgstr警告信息默认为空
    evaluationstr视频评分默认为空

    示例:

    查询视频av2271112/BV1es411D7sW的状态数

    avid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \
    +--data-urlencode 'aid=2271112'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \
    +--data-urlencode 'bvid=BV1es411D7sW'
    +
    查看响应示例:
    {
    +	"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时,则无法访问此接口:

    curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \
    +--data-urlencode 'aid=2271112' \
    +-A '2333python2333'
    +
    查看响应示例:
    {
    +    "code":-412,
    +    "message":"请求被拦截",
    +    "ttl":1,
    +    "data":null
    +}
    +
    + + + diff --git a/docs/video/summary.html b/docs/video/summary.html new file mode 100644 index 0000000000..36d66ee14c --- /dev/null +++ b/docs/video/summary.html @@ -0,0 +1,106 @@ + + + + + + + + + 视频AI总结 | BAC Document + + + + +

    视频AI总结

    获取AI总结内容

    https://api.bilibili.com/x/web-interface/view/conclusion/get

    请求方式: GET

    鉴权方式:Wbi 签名

    url参数:

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid与bvid任选一个
    bvidstr稿件 bvid必要(可选)avid与bvid任选一个
    cidnum视频 cid必要
    up_midnumUP主 mid必要
    w_ridstrWbi 签名必要详见 Wbi 签名
    wtsnum当前时间戳必要详见 Wbi 签名

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400:请求错误
    -403: 访问权限不足
    messagestr错误信息默认为0
    ttlnum1
    dataobj数据本体

    data对象:

    字段类型内容备注
    codenum返回值-1: 不支持AI摘要(敏感内容等)或其他因素导致请求异常
    0: 有摘要
    1:无摘要(未识别到语音)
    model_resultobj摘要内容
    stidstr摘要 idcode=1且该字段为0时,则未进行 AI 总结,即添加总结队列
    code=1且该字段为空时未识别到语音
    statusnum(?)
    like_numnum点赞数默认为0
    dislike_numnum点踩数默认为0

    data中的model_result对象:

    字段类型内容备注
    result_typenum数据类型0: 没有摘要
    1:仅存着摘要总结
    2:存着摘要以及提纲
    summarystr视频摘要通常为一段概括整个视频内容的文本
    outline有数据时:array
    无数据时:null
    分段提纲通常为视频中叙述的各部分及其要点

    model_result对象中的outline数组:

    类型内容备注
    0obj总结分段1
    nobj总结分段(n+1)
    ……obj…………

    outline数组中的对象:

    字段类型内容备注
    titlestr分段标题段落内容的概括
    part_outlinearray分段要点当前分段中多个提到的细节
    timestampnum分段起始时间单位为秒

    outline数组中的对象中的part_outline数组:

    类型内容备注
    0obj分段要点1
    nobj分段要点(n+1)
    ……obj…………

    part_outline数组中的对象:

    字段类型内容备注
    timestampnum要点起始时间单位为秒
    contentstr小结内容其中一个分段的要点

    示例:

    得到视频BV1L94y1H7CVcid=1335073288)的摘要

    curl -G 'https://api.bilibili.com/x/web-interface/view/conclusion/get' \
    +  --data-urlencode 'bvid=BV1L94y1H7CV' \
    +  --data-urlencode 'cid=1335073288' \
    +  --data-urlencode 'up_mid=297242063' \
    +  --data-urlencode 'wts=1701546363' \
    +  --data-urlencode 'w_rid=1073871926b3ccd99bd790f0162af634'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "code": 0,
    +    "model_result": {
    +      "result_type": 2,
    +      "summary": "在网上阅读时遇到错别字和语言梗的烦恼,以及正确使用语言的重要性。作者认为,我们每个人都应该有包容心,不掉渣,不纠正别人的错误,同时也需要明辨是非,规范使用语言。视频还提到了一些常见的语言梗和错误用法,呼吁大家不要过分使用网络词汇,而应该注重语言的艺术性和深度。最后,作者欢迎大家关注他的微信公众号。",
    +      "outline": [
    +        {
    +          "title": "现代人使用中文时面临的困境,包括错别字、用法不正确等问题,并呼吁大家规范使用中文。",
    +          "part_outline": [
    +            {
    +              "timestamp": 1,
    +              "content": "网友评论有错别字,勉强能看懂,但难受。"
    +            },
    +            {
    +              "timestamp": 39,
    +              "content": "重来一次,明辨是非。"
    +            },
    +            {
    +              "timestamp": 167,
    +              "content": "粉墨登场是贬义词,形容坏人打扮好老登场。"
    +            }
    +          ],
    +          "timestamp": 1
    +        },
    +        {
    +          "title": "网络词汇的过度使用导致语言生硬,以及对流行语言梗的短暂使用感到厌倦。",
    +          "part_outline": [
    +            {
    +              "timestamp": 241,
    +              "content": "网络词汇过分使用会误导别人,使规范词汇生硬"
    +            },
    +            {
    +              "timestamp": 270,
    +              "content": "以前的语言梗有深度,现在的流行梗很短命"
    +            },
    +            {
    +              "timestamp": 338,
    +              "content": "巨星之间需要化学反应的过程,前几场发挥欠佳"
    +            }
    +          ],
    +          "timestamp": 241
    +        }
    +      ]
    +    },
    +    "stid": "5117037934391059183",
    +    "status": 0,
    +    "like_num": 6,
    +    "dislike_num": 2
    +  }
    +}
    +

    点赞&点踩摘要

    https://api.bilibili.com/x/web-interface/view/conclusion/set

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    鉴权方式:Wbi 签名

    url参数:

    参数名类型内容必要性备注
    w_ridstrWbi 签名必要详见 Wbi 签名
    wtsnum当前时间戳必要详见 Wbi 签名

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件 avid必要(可选)avid与bvid任选一个
    bvidstr稿件 bvid必要(可选)avid与bvid任选一个
    cidnum稿件 cid必要
    up_midnumUP主 mid非必要
    stidnum摘要 id必要
    like_statenum执行操作必要1: 点赞
    2: 取消点赞
    3: 点踩
    4: 取消点踩
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -400: 请求错误
    65002:origin id 错误
    65004:取消赞失败 未点赞过
    65005:取消踩失败 未点踩过
    65006: 已赞过
    65007:已踩过
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为视频BV1L94y1H7CVcid=1335073288)的摘要点赞

    curl 'https://api.bilibili.com/x/web-interface/view/conclusion/set?w_rid=edb471fc926646ef3889a80488166b66&wts=1700358953' \
    +  --data-urlencode 'bvid=BV1L94y1H7CV' \
    +  --data-urlencode 'cid=1335073288' \
    +  --data-urlencode 'up_mid=297242063' \
    +  --data-urlencode 'stid=5117037934391059183' \
    +  --data-urlencode '&like_state=1' \
    +  --data-urlencode 'csrf=xxx' \
    +  -b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +
    + + + diff --git a/docs/video/tags.html b/docs/video/tags.html new file mode 100644 index 0000000000..9e17b67816 --- /dev/null +++ b/docs/video/tags.html @@ -0,0 +1,170 @@ + + + + + + + + + 视频TAG | BAC Document + + + + +

    视频TAG

    获取视频TAG信息

    https://api.bilibili.com/x/tag/archive/tags

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    url参数:

    参数名类型内容必要性备注
    aidnum稿件avid必要(可选)avid与bvid任选一个
    bvidstr稿件bvid必要(可选)avid与bvid任选一个

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarrayTAG列表无TAG为空

    data数组:

    类型内容备注
    0obj第1个TAG
    nobj第(n+1)个TAG
    ……obj…………

    data数组中的对象:

    字段类型内容备注
    tag_idnumtag_id
    tag_namestrTAG名称
    coverstrTAG图片url
    head_coverstrTAG页面头图url
    contentstrTAG介绍
    short_contentstrTAG简介
    typenum???
    statenum0
    ctimenum创建时间时间戳
    countobj状态数
    is_attennum是否关注0:未关注
    1:已关注
    需要登录(Cookie)
    未登录为0
    likesnum0作用尚不明确
    hatesnum0作用尚不明确
    attributenum0作用尚不明确
    likednum是否已经点赞0:未点赞
    1:已点赞
    需要登录(Cookie)
    未登录为0
    hatednum是否已经点踩0:未点踩
    1:已点踩
    需要登录(Cookie)
    未登录为0
    extra_attrnum? ? ?

    data数组中的对象中的count对象:

    字段类型内容备注
    viewnum0作用尚不明确
    usenum视频添加TAG数
    attennumTAG关注

    示例:

    查询视频av89772773/BV1M741177Kg的TAG

    avid方式:

    curl -G 'https://api.bilibili.com/x/tag/archive/tags' \
    +--data-urlencode 'aid=89772773' \
    +-b 'SESSDATA=xxx'
    +

    bvid方式:

    curl -G 'https://api.bilibili.com/x/tag/archive/tags' \
    +--data-urlencode 'bvid=BV1M741177Kg' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +	"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 ):

    参数名类型内容必要性备注
    aidnum稿件avid必要
    tag_idnumtag_id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为视频av89772773的TAG12620189点赞

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +

    点踩&取消点踩视频TAG

    https://api.bilibili.com/x/tag/archive/hate2

    请求方式:POST

    认证方式:Cookie(SESSDATA)

    重复访问为取消

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    aidnum稿件avid必要
    tag_idnumtag_id必要
    csrfstrCSRF Token(位于cookie)必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1

    示例:

    为视频av89772773的TAG7520816点踩

    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'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1
    +}
    +
    + + + diff --git a/docs/video/video_zone.html b/docs/video/video_zone.html new file mode 100644 index 0000000000..47d443a280 --- /dev/null +++ b/docs/video/video_zone.html @@ -0,0 +1,33 @@ + + + + + + + + + 视频分区一览 | BAC Document + + + + +

    视频分区一览

    用于通过稿件 avid 判断所在的分区,或推荐分区视频等.......

    亦可用于更深♂入了解B站的分区

    动画

    名称代号tid简介url路由
    动画(主分区)douga1/v/dougaopen in new window
    MAD·AMVmad24具有一定制作程度的动画或静画的二次创作视频/v/douga/madopen in new window
    MMD·3Dmmd25使用MMD(MikuMikuDance)和其他3D建模类软件制作的视频/v/douga/mmdopen in new window
    短片·手书handdrawn47追求个人特色和创意表达的动画短片及手书(绘)/v/douga/handdrawnopen in new window
    配音voice257使用ACGN相关画面或台本素材进行人工配音创作的内容/v/douga/voiceopen in new window
    手办·模玩garage_kit210手办模玩的测评、改造或其他衍生内容/v/douga/garage_kitopen in new window
    特摄tokusatsu86特摄相关衍生视频/v/douga/tokusatsuopen in new window
    动漫杂谈acgntalks253以谈话形式对ACGN文化圈进行的鉴赏、吐槽、评点、解说、推荐、科普等内容/v/douga/acgntalksopen in new window
    综合other27以动画及动画相关内容为素材,包括但不仅限于音频替换、恶搞改编、排行榜等内容/v/douga/otheropen in new window

    番剧

    名称代号tid简介url路由
    番剧(主分区)anime13/animeopen in new window
    资讯information51动画番剧相关资讯视频/v/anime/informationopen in new window
    官方延伸offical152动画番剧为主题的宣传节目、采访视频,及声优相关视频/v/anime/officalopen in new window
    完结动画finish32已完结的动画番剧合集/v/anime/finishopen in new window
    连载动画serial33当季连载的动画番剧/v/anime/serialopen in new window

    国创

    名称代号tid简介url路由
    国创(主分区)guochuang167/guochuangopen in new window
    国产动画chinese153我国出品的PGC动画/v/guochuang/chineseopen in new window
    国产原创相关original168/v/guochuang/originalopen in new window
    布袋戏puppetry169/v/guochuang/puppetryopen in new window
    资讯information170/v/guochuang/informationopen in new window
    动态漫·广播剧motioncomic195/v/guochuang/motioncomicopen in new window

    音乐

    名称代号tid简介url路由
    音乐(主分区)music3/v/musicopen in new window
    原创音乐original28原创歌曲及纯音乐,包括改编、重编曲及remix/v/music/originalopen in new window
    翻唱cover31对曲目的人声再演绎视频/v/music/coveropen in new window
    VOCALOID·UTAUvocaloid30以VOCALOID等歌声合成引擎为基础,运用各类音源进行的创作/v/music/vocaloidopen in new window
    演奏perform59乐器和非传统乐器器材的演奏作品。/v/music/performopen in new window
    MVmv193为音乐作品配合拍摄或制作的音乐录影带(Music Video),以及自制拍摄、剪辑、翻拍MV/v/music/mvopen in new window
    音乐现场live29音乐表演的实况视频,包括官方/个人拍摄的综艺节目、音乐剧、音乐节、演唱会等/v/music/liveopen in new window
    音乐综合other130所有无法被收纳到其他音乐二级分区的音乐类视频/v/music/otheropen in new window
    乐评盘点commentary243音乐类新闻、盘点、点评、reaction、榜单、采访、幕后故事、唱片开箱等/v/music/commentaryopen in new window
    音乐教学tutorial244以音乐教学为目的的内容/v/music/tutorialopen in new window
    电音(已下线)electronic194以电子合成器、音乐软体等产生的电子声响制作的音乐/v/music/electronic

    舞蹈

    名称代号tid简介url路由
    舞蹈(主分区)dance129/v/danceopen in new window
    宅舞otaku20与ACG相关的翻跳、原创舞蹈/v/dance/otakuopen in new window
    舞蹈综合three_d154收录无法定义到其他舞蹈子分区的舞蹈视频/v/dance/three_dopen in new window
    舞蹈教程demo156镜面慢速,动作分解,基础教程等具有教学意义的舞蹈视频/v/dance/demoopen in new window
    街舞hiphop198收录街舞相关内容,包括赛事现场、舞室作品、个人翻跳、FREESTYLE等/v/dance/hiphopopen in new window
    明星舞蹈star199国内外明星发布的官方舞蹈及其翻跳内容/v/dance/staropen in new window
    国风舞蹈china200收录国风向舞蹈内容,包括中国舞、民族民间舞、汉唐舞、国风爵士等/v/dance/chinaopen in new window
    手势·网红舞gestures255手势舞及网红流行舞蹈、短视频舞蹈等相关视频/v/dance/gesturesopen in new window

    游戏

    名称代号tid简介url路由
    游戏(主分区)game4/v/gameopen in new window
    单机游戏stand_alone17以所有平台(PC、主机、移动端)的单机或联机游戏为主的视频内容,包括游戏预告、CG、实况解说及相关的评测、杂谈与视频剪辑等/v/game/stand_aloneopen in new window
    电子竞技esports171具有高对抗性的电子竞技游戏项目,其相关的赛事、实况、攻略、解说、短剧等视频。/v/game/esportsopen in new window
    手机游戏mobile172以手机及平板设备为主要平台的游戏,其相关的实况、攻略、解说、短剧、演示等视频。/v/game/mobileopen in new window
    网络游戏online65由网络运营商运营的多人在线游戏,以及电子竞技的相关游戏内容。包括赛事、攻略、实况、解说等相关视频/v/game/onlineopen in new window
    桌游棋牌board173桌游、棋牌、卡牌对战等及其相关电子版游戏的实况、攻略、解说、演示等视频。/v/game/boardopen in new window
    GMVgmv121由游戏素材制作的MV视频。以游戏内容或CG为主制作的,具有一定创作程度的MV类型的视频/v/game/gmvopen in new window
    音游music136各个平台上,通过配合音乐与节奏而进行的音乐类游戏视频/v/game/musicopen in new window
    Mugenmugen19以Mugen引擎为平台制作、或与Mugen相关的游戏视频/v/game/mugenopen in new window

    知识

    名称代号tid简介url路由
    知识(主分区)knowledge36/v/knowledgeopen in new window
    科学科普science201回答你的十万个为什么/v/knowledge/scienceopen in new window
    社科·法律·心理(原社科人文、原趣味科普人文)social_science124基于社会科学、法学、心理学展开或个人观点输出的知识视频/v/knowledge/social_scienceopen in new window
    人文历史humanity_history228看看古今人物,聊聊历史过往,品品文学典籍/v/knowledge/humanity_historyopen in new window
    财经商业business207说金融市场,谈宏观经济,一起畅聊商业故事/v/knowledge/financeopen in new window
    校园学习campus208老师很有趣,学生也有才,我们一起搞学习/v/knowledge/campusopen in new window
    职业职场career209职业分享、升级指南,一起成为最有料的职场人/v/knowledge/careeropen in new window
    设计·创意design229天马行空,创意设计,都在这里/v/knowledge/designopen in new window
    野生技术协会skill122技能党集合,是时候展示真正的技术了/v/knowledge/skillopen in new window
    演讲·公开课(已下线)speech_course39涨知识的好地方,给爱学习的你/v/technology/speech_course
    星海(已下线)military96军事类内容的圣地/v/technology/military
    机械(已下线)mechanical98机械设备展示或制作视频/v/technology/mechanical

    科技

    新:旧:

    原数码分区

    名称代号tid简介url路由
    科技(主分区)tech188/v/techopen in new window
    数码(原手机平板)digital95科技数码产品大全,一起来做发烧友/v/tech/digitalopen in new window
    软件应用application230超全软件应用指南/v/tech/applicationopen in new window
    计算机技术computer_tech231研究分析、教学演示、经验分享......有关计算机技术的都在这里/v/tech/computer_techopen in new window
    科工机械 (原工业·工程·机械)industry232从小芯片到大工程,一起见证科工力量/v/tech/industryopen in new window
    极客DIYdiy233炫酷技能,极客文化,硬核技巧,准备好你的惊讶/v/tech/diyopen in new window
    电脑装机(已下线)pc189电脑、笔记本、装机配件、外设和软件教程等相关视频/v/digital/pc
    摄影摄像(已下线)photography190摄影摄像器材、拍摄剪辑技巧、拍摄作品分享等相关视频/v/digital/photography
    影音智能(已下线)intelligence_av191影音设备、智能产品等相关视频/v/digital/intelligence_av

    运动

    名称代号tid简介url路由
    运动(主分区)sports234/v/sportsopen in new window
    篮球basketball235与篮球相关的视频,包括但不限于篮球赛事、教学、评述、剪辑、剧情等相关内容/v/sports/basketballopen in new window
    足球football249与足球相关的视频,包括但不限于足球赛事、教学、评述、剪辑、剧情等相关内容/v/sports/footballopen in new window
    健身aerobics164与健身相关的视频,包括但不限于瑜伽、CrossFit、健美、力量举、普拉提、街健等相关内容/v/sports/aerobicsopen in new window
    竞技体育athletic236与竞技体育相关的视频,包括但不限于乒乓、羽毛球、排球、赛车等竞技项目的赛事、评述、剪辑、剧情等相关内容/v/sports/cultureopen in new window
    运动文化culture237与运动文化相关的视频,包络但不限于球鞋、球衣、球星卡等运动衍生品的分享、解读,体育产业的分析、科普等相关内容/v/sports/cultureopen in new window
    运动综合comprehensive238与运动综合相关的视频,包括但不限于钓鱼、骑行、滑板等日常运动分享、教学、Vlog等相关内容/v/sports/comprehensiveopen in new window

    汽车

    名称代号tid简介url路由
    汽车(主分区)car223/v/caropen in new window
    汽车知识科普knowledge258关于汽车技术与文化的硬核科普,以及生活中学车、用车、养车的相关知识/v/car/knowledgeopen in new window
    赛车racing245F1等汽车运动相关/v/car/racingopen in new window
    改装玩车modifiedvehicle246汽车文化及改装车相关内容,包括改装车、老车修复介绍、汽车聚会分享等内容/v/car/modifiedvehicleopen in new window
    新能源车newenergyvehicle247新能源汽车相关内容,包括电动汽车、混合动力汽车等车型种类,包含不限于新车资讯、试驾体验、专业评测、技术解读、知识科普等内容/v/car/newenergyvehicleopen in new window
    房车touringcar248房车及营地相关内容,包括不限于产品介绍、驾驶体验、房车生活和房车旅行等内容/v/car/touringcaropen in new window
    摩托车motorcycle240骑士们集合啦/v/car/motorcycleopen in new window
    购车攻略strategy227丰富详实的购车建议和新车体验/v/car/strategyopen in new window
    汽车生活life176分享汽车及出行相关的生活体验类视频/v/car/lifeopen in new window
    汽车文化(已下线)culture224车迷的精神圣地,包括汽车赛事、品牌历史、汽车改装、经典车型和汽车模型等/v/car/culture
    汽车极客(已下线)geek225汽车硬核达人聚集地,包括DIY造车、专业评测和技术知识分享/v/car/geek
    智能出行(已下线)smart226探索新能源汽车和未来智能出行的前沿阵地/v/car/smart

    生活

    名称代号tid简介url路由
    生活(主分区)life160/v/lifeopen in new window
    搞笑funny138各种沙雕有趣的搞笑剪辑,挑战,表演,配音等视频/v/life/funnyopen in new window
    出行travel250为达到观光游览、休闲娱乐为目的的远途旅行、中近途户外生活、本地探店/v/life/travelopen in new window
    三农rurallife251分享美好农村生活/v/life/rurallifeopen in new window
    家居房产home239与买房、装修、居家生活相关的分享/v/life/homeopen in new window
    手工handmake161手工制品的制作过程或成品展示、教程、测评类视频/v/life/handmakeopen in new window
    绘画painting162绘画过程或绘画教程,以及绘画相关的所有视频/v/life/paintingopen in new window
    日常daily21记录日常生活,分享生活故事/v/life/dailyopen in new window
    亲子parenting254分享亲子、萌娃、母婴、育儿相关的视频/v/life/parentingopen in new window
    美食圈(重定向)food76美食鉴赏&料理制作教程/v/life/food
    动物圈(重定向)animal75萌萌的动物都在这里哦/v/life/animal
    运动(重定向)sports163运动相关的记录、教程、装备评测和精彩瞬间剪辑视频/v/life/sports
    汽车(重定向)automobile176专业汽车资讯,分享车生活/v/life/automobile
    其他(已下线)other174对于分区归属不明的视频进行归纳整合的特定分区/v/life/other

    美食

    名称代号tid简介url路由
    美食(主分区)food211/v/foodopen in new window
    美食制作(原[生活]->[美食圈])make76学做人间美味,展示精湛厨艺/v/food/makeopen in new window
    美食侦探detective212寻找美味餐厅,发现街头美食/v/food/detectiveopen in new window
    美食测评measurement213吃货世界,品尝世间美味/v/food/measurementopen in new window
    田园美食rural214品味乡野美食,寻找山与海的味道/v/food/ruralopen in new window
    美食记录record215记录一日三餐,给生活添一点幸福感/v/food/recordopen in new window

    动物圈

    名称代号tid简介url路由
    动物圈(主分区)animal217/v/animalopen in new window
    喵星人cat218喵喵喵喵喵/v/animal/catopen in new window
    汪星人dog219汪汪汪汪汪/v/animal/dogopen in new window
    动物二创second_edition220解说、配音、剪辑、混剪/v/animal/second_editionopen in new window
    野生动物wild_animal221内有“猛兽”出没/v/animal/wild_animalopen in new window
    小宠异宠reptiles222奇妙宠物大赏/v/animal/reptilesopen in new window
    动物综合animal_composite75收录除上述子分区外,其余动物相关视频以及非动物主体或多个动物主体的动物相关延伸内容/v/animal/animal_compositeopen in new window

    鬼畜

    名称代号tid简介url路由
    鬼畜(主分区)kichiku119/v/kichikuopen in new window
    鬼畜调教guide22使用素材在音频、画面上做一定处理,达到与BGM一定的同步感/v/kichiku/guideopen in new window
    音MADmad26使用素材音频进行一定的二次创作来达到还原原曲的非商业性质稿件/v/kichiku/mad/v/kichiku/madopen in new window
    人力VOCALOIDmanual_vocaloid126将人物或者角色的无伴奏素材进行人工调音,使其就像VOCALOID一样歌唱的技术/v/kichiku/manual_vocaloidopen in new window
    鬼畜剧场theatre216使用素材进行人工剪辑编排的有剧情的作品/v/kichiku/theatreopen in new window
    教程演示course127鬼畜相关的教程演示/v/kichiku/courseopen in new window

    时尚

    名称代号tid简介url路由
    时尚(主分区)fashion155/v/fashionopen in new window
    美妆护肤makeup157彩妆护肤、美甲美发、仿妆、医美相关内容分享或产品测评/v/fashion/makeupopen in new window
    仿妆coscos252对二次元、三次元人物角色进行模仿、还原、展示、演绎的内容/v/fashion/cosopen in new window
    穿搭clothing158穿搭风格、穿搭技巧的展示分享,涵盖衣服、鞋靴、箱包配件、配饰(帽子、钟表、珠宝首饰)等/v/fashion/clothingopen in new window
    时尚潮流catwalk159时尚街拍、时装周、时尚大片,时尚品牌、潮流等行业相关记录及知识科普/v/fashion/catwalkopen in new window
    健身(重定向)aerobics164器械、有氧、拉伸运动等,以达到强身健体、减肥瘦身、形体塑造目的/v/fashion/aerobics
    风尚标(已下线)trends192时尚明星专访、街拍、时尚购物相关知识科普/v/fashion/trends

    资讯

    注:该分区无排名功能

    名称代号tid简介url路由
    资讯(主分区)information202/v/informationopen in new window
    热点hotspot203全民关注的时政热门资讯/v/information/hotspotopen in new window
    环球global204全球范围内发生的具有重大影响力的事件动态/v/information/globalopen in new window
    社会social205日常生活的社会事件、社会问题、社会风貌的报道/v/information/socialopen in new window
    综合multiple206除上述领域外其它垂直领域的综合资讯/v/information/multipleopen in new window

    广告

    该分区已下线

    名称代号tid简介url路由
    广告(主分区)ad165/v/ad
    广告(已下线)ad166/v/ad/ad

    娱乐

    名称代号tid简介url路由
    娱乐(主分区)ent5/v/entopen in new window
    综艺variety71所有综艺相关,全部一手掌握!/v/ent/varietyopen in new window
    娱乐杂谈talker241娱乐人物解读、娱乐热点点评、娱乐行业分析/v/ent/talkeropen in new window
    粉丝创作fans242粉丝向创作视频/v/ent/fansopen in new window
    明星综合celebrity137娱乐圈动态、明星资讯相关/v/ent/celebrityopen in new window
    Korea相关(已下线)korea131Korea相关音乐、舞蹈、综艺等视频/v/ent/korea

    影视

    名称代号tid简介url路由
    影视(主分区)cinephile181/v/cinephileopen in new window
    影视杂谈cinecism182影视评论、解说、吐槽、科普等/v/cinephile/cinecismopen in new window
    影视剪辑montage183对影视素材进行剪辑再创作的视频/v/cinephile/montageopen in new window
    小剧场shortfilm85有场景、有剧情的演绎类内容/v/cinephile/shortfilmopen in new window
    预告·资讯trailer_info184影视类相关资讯,预告,花絮等视频/v/cinephile/trailer_infoopen in new window
    短片shortfilm256各种类型的短片/v/cinephile/shortfilmopen in new window

    纪录片

    名称代号tid简介url路由
    纪录片(主分区)documentary177/documentaryopen in new window
    人文·历史history37/v/documentary/historyopen in new window
    科学·探索·自然science178/v/documentary/scienceopen in new window
    军事military179/v/documentary/militaryopen in new window
    社会·美食·旅行travel180/v/documentary/travelopen in new window

    电影

    名称代号tid简介url路由
    电影(主分区)movie23/movieopen in new window
    华语电影chinese147/v/movie/chineseopen in new window
    欧美电影west145/v/movie/westopen in new window
    日本电影japan146/v/movie/japanopen in new window
    其他国家movie83/v/movie/movieopen in new window

    电视剧

    名称代号tid简介url路由
    电视剧(主分区)tv11/tvopen in new window
    国产剧mainland185/v/tv/mainlandopen in new window
    海外剧overseas187/v/tv/overseasopen in new window
    + + + diff --git a/docs/video/videostream_url.html b/docs/video/videostream_url.html new file mode 100644 index 0000000000..e7e77514a2 --- /dev/null +++ b/docs/video/videostream_url.html @@ -0,0 +1,904 @@ + + + + + + + + + 视频流URL | BAC Document + + + + +

    视频流URL

    视频为 DASH 或 MP4 流媒体,需调用取流 API 传参视频 id 获取

    qn视频清晰度标识

    注:该值在 DASH 格式下无效,因为 DASH 格式会取到所有分辨率的流地址

    又注: B站对于新的视频更新了播放设置, 较高分辨率均采用 DASH, 较低分辨率与老视频还保留了 MP4, 这导致较新视频无法获取 MP4 格式的高分辨率视频, 参见 #606open in new windowcv949156open in new window

    含义备注
    6240P 极速仅 MP4 格式支持
    platform=html5时有效
    16360P 流畅
    32480P 清晰
    64720P 高清WEB 端默认值
    B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址
    无 720P 时则为 720P60
    74720P60 高帧率登录认证
    801080P 高清TV 端与 APP 端默认值
    登录认证
    1121080P+ 高码率大会员认证
    1161080P60 高帧率大会员认证
    1204K 超清需要fnval&128=128fourk=1
    大会员认证
    125HDR 真彩色仅支持 DASH 格式
    需要fnval&64=64
    大会员认证
    126杜比视界仅支持 DASH 格式
    需要fnval&512=512
    大会员认证
    1278K 超高清仅支持 DASH 格式
    需要fnval&1024=1024
    大会员认证

    例如:请求 1080P+ 的视频,则qn=112

    fnver视频流版本标识

    目前该值恒为 0,即fnver=0

    fnval视频流格式标识

    该代码为二进制属性位,如需组合功能需要使用OR运算结合一下数值

    目前 FLV 格式已下线,应避免使用fnval=0

    含义备注
    0FLV 格式FLV 格式已下线
    仅 H.264 编码
    部分老视频存在分段现象
    与 MP4、DASH 格式互斥
    1MP4 格式仅 H.264 编码
    FLV、DASH 格式互斥
    16DASH 格式与 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

    视频编码代码

    含义备注
    7AVC 编码8K 视频不支持该格式
    12HEVC 编码
    13AV1 编码

    视频伴音音质代码

    含义
    3021664K
    30232132K
    30280192K
    30250杜比全景声
    30251Hi-Res无损

    获取视频流地址_web端

    https://api.bilibili.com/x/player/wbi/playurl

    https://api.bilibili.com/x/player/playurl (旧链接)

    请求方式:GET

    认证方式:Cookie(SESSDATA)

    鉴权方式:Wbi 签名


    关于视频流会员鉴权:

    • 获取 720P 及以上清晰度视频时需要登录(Cookie)

    • 获取高帧率(1080P60)/ 高码率(1080P+)/ HDR / 杜比视界 视频时需要有大会员的账号登录(Cookie)

    • 获取会员专属视频时需要登录(Cookie)

    • 部分特殊视频(如平台宣传片、活动视频等)不需要大会员账号认证


    获取 url 有效时间为 120min,超时失效需要重新获取

    部分视频会有分段,需要特别注意(FLV 格式已下线,不可能出现分段

    若视频有分P,仅为单P视频的 url,换P则需传参对应 CID 重新获取

    url参数:

    参数名类型内容必要性备注
    avidnum稿件 avid必要(可选)avid 与 bvid 任选一个
    bvidstr稿件 bvid必要(可选)avid 与 bvid 任选一个
    cidnum视频 cid必要
    qnnum视频清晰度选择非必要未登录默认 32(480P),登录后默认 64(720P)
    含义见 上表
    DASH 格式时无效
    fnvalnum视频流格式标识非必要默认值为1(MP4 格式)
    含义见 上表
    fnvernum0非必要
    fourknum是否允许 4K 视频非必要画质最高 1080P:0(默认)
    画质最高 4K:1
    sessionstr非必要从视频播放页的 HTML 中设置 window.__playinfo__ 处获取,或者通过 buvid3 + 当前UNIX毫秒级时间戳 经过md5获取
    otypestr非必要固定为json
    typestr非必要目前为空
    platformstr非必要pc:web播放(默认值,视频流存在 referer鉴权)
    html5:移动端 HTML5 播放(仅支持 MP4 格式,无 referer 鉴权可以直接使用video标签播放)
    high_qualitynum是否高画质非必要platform=html5时,此值为1可使画质为1080p

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    -404:无视频
    messagestr错误信息默认为0
    ttlnum1
    data有效时:obj
    无效时:null
    数据本体

    data对象:

    字段类型内容备注
    fromstrlocal
    resultstrsuee
    messagestr空?
    qualitynum清晰度标识含义见 上表
    formatstr视频格式mp4/flv
    timelengthnum视频长度单位为毫秒
    不同分辨率 / 格式可能有略微差异
    accept_formatstr支持的全部格式每项用,分隔
    accept_descriptionarray支持的清晰度列表(文字说明)
    accept_qualityarray支持的清晰度列表(代码)含义见 上表
    video_codecidnum默认选择视频流的编码id含义见 上表
    seek_paramstrstart
    seek_typestroffset(DASH / FLV)?
    second(MP4)?
    durlarray视频分段流信息注:仅 FLV / MP4 格式存在此字段
    dashobjDASH 流信息注:仅 DASH 格式存在此字段
    support_formatsarray支持格式的详细信息
    high_formatnull(?)
    last_play_timenum上次播放进度毫秒值
    last_play_cidnum上次播放分P的 cid

    data中的accept_description数组:

    类型内容备注
    0str分辨率名称1
    nstr分辨率名称(n+1)
    ……str……

    data中的accept_quality数组:

    类型内容备注
    0num分辨率代码1含义见 上表
    nnum分辨率代码(n+1)
    ……num……

    data中的support_formats数组:

    类型内容备注
    0obj播放格式详细信息1
    nobj播放格式详细信息(n+1)
    ……obj……

    support_formats数组中的对象:

    字段类型内容备注
    qualitynum视频清晰度代码含义见 上表
    formatstr视频格式
    new_descriptionstr格式描述
    display_descstr格式描述
    superscriptstr(?)
    codecsarray可用编码格式列表

    support_formats中的codecs数组:

    类型内容备注
    0str例:av01.0.13M.08.0.110.01.01.01.0使用AV1编码
    1str例子:avc1.640034使用AVC编码
    2str例子:hev1.1.6.L153.90使用HEVC编码

    由于 MP4 / FLV 与 DASH 格式的返回结构不同,以下内容需要分类讨论durldash字段的内容


    FLV/MP4格式

    data中的durl数组:

    类型内容备注
    0obj视频分段 1 信息目前由于 FLV 格式已经下线,不会存在分段现象,故无需关心
    nobj视频分段 (n+1) 信息
    ……obj……

    durl数组中的对象:

    字段类型内容备注
    ordernum视频分段序号某些视频会分为多个片段(从1顺序增长)
    lengthnum视频长度单位为毫秒
    sizenum视频大小单位为 Byte
    aheadstr(?)
    vheadstr(?)
    urlstr默认流 URL注意 unicode 转义符
    有效时间为120min
    backup_urlarray备用视频流

    durl数组中的对象中的backup_url数组:

    类型内容备注
    0str备用流 URL 1注意 unicode 转义符
    有效时间为120min
    nstr备用流 URL (n+1)
    ……str……

    示例:

    视频无分段时:

    获取视频av99999999/BV1y7411Q7Eq中的 1P(cid=171776208)的视频流 URL,清晰度为 1080P+,使用 FLV 方式获取

    avid方式:

    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方式:

    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'
    +
    查看响应示例:
    {
    +  "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
    +  }
    +}
    +

    视频有分段时:

    以下内容无参考价值,仅做历史保存

    查看响应示例:
    {
    +    "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对象:

    字段类型内容备注
    durationnum视频长度秒值
    minBufferTimenum1.5?
    min_buffer_timenum1.5?
    videoarray视频流信息
    audioarray伴音流信息当视频没有音轨时,此项为 null
    dolbyobj杜比全景声伴音信息
    flacobj无损音轨伴音信息当视频没有无损音轨时,此项为 null

    dash中的video数组:

    类型内容备注
    0obj视频码流 1同一清晰度可拥有 H.264 / H.265 / AV1 多种码流
    HDR 仅支持 H.265
    nobj视频码流(n+1)
    ……obj……

    dash中的audio数组:

    类型内容备注
    0obj清晰度1
    nobj清晰度(n+1)
    ……obj……

    videoaudio数组中的对象:

    字段类型内容备注
    idnum音视频清晰度代码参考上表
    qn视频清晰度标识
    视频伴音音质代码
    baseUrlstr默认流 URL注意 unicode 转义符
    有效时间为 120min
    base_urlstr同上
    backupUrlarray备用流 URL
    backup_urlarray同上
    bandwidthnum所需最低带宽单位为 Byte
    mimeTypestr格式 mimetype 类型
    mime_typestr同上
    codecsstr编码/音频类型eg:avc1.640032
    widthnum视频宽度单位为像素
    仅视频流存在该字段
    heightnum视频高度单位为像素
    仅视频流存在该字段
    frameRatestr视频帧率仅视频流存在该字段
    frame_ratestr同上
    sarstrSample Aspect Ratio(单个像素的宽高比)音频流该值恒为空
    startWithSapnumStream Access Point(流媒体访问位点)音频流该值恒为空
    start_with_sapnum同上
    SegmentBaseobj见下表url 对应 m4s 文件中,头部的位置
    音频流该值恒为空
    segment_baseobj同上
    codecidnum码流编码标识代码含义见 上表
    音频流该值恒为0

    video数组中的对象中的backup_url数组:

    类型内容备注
    0str备用流 URL 1注意 unicode 转义符
    有效时间为120min
    nstr备用流 URL (n+1)
    ……str……

    video数组中的对象中的SegmentBase对象:

    字段类型内容备注
    initializationstr${init_first}-${init_last}eg:0-821
    ftyp (file type) box 加上 moov box 在 m4s 文件中的范围(单位为 bytes)
    如 0-821 表示开头 820 个字节
    index_rangestr${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-12open in new window,如果不想那么深入的话可以百度「MP4 文件结构open in new window

    dash中的dolby对象:

    此项为”杜比视界“视频独有

    字段类型内容备注
    typenum杜比音效类型1:普通杜比音效
    2:全景杜比音效
    audioarray杜比伴音流列表

    dolby对象中的audio数组:

    类型内容备注
    0obj杜比伴音流信息同上文 DASH 流中videoaudio数组中的对象

    dash中的flac对象:

    类型内容备注
    displaybool是否在播放器显示切换Hi-Res无损音轨按钮
    audioobj音频流信息同上文 DASH 流中videoaudio数组中的对象

    示例:

    获取视频av969628065/BV1rp4y1e745中的 1P(cid=244954665)的视频流 URL,使用 DASH 方式获取

    avid 方式:

    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 方式:

    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'
    +
    查看响应示例:
    {
    +    "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 格式需要杜比或无损的伴音,需要取对应dolbyflac字段中的流
    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 标签<video>播放

    实例:

    下载 FLV / MP4 格式视频:

    wget 'http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=hwbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=5f469cb4c190ed54b89bd40cc37eddff&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000' \
    +    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    +    --referer 'https://www.bilibili.com' \
    +    -O 'Download_video.flv'
    +

    下载 DASH 格式视频:

    # 下载视频流
    +wget '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=1674137769&gen=playurlv2&os=bcache&oi=606633952&trid=0000524e9cc80dea41dca72b59782270b5d3u&mid=293793435&platform=pc&upsig=c4206c80b1d0dc18c0545a7758d56eee&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' \
    +    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    +    --referer 'https://www.bilibili.com' \
    +    -O 'video.m4s'
    +# 下载伴音流
    +wget 'https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674137769&gen=playurlv2&os=mcdn&oi=606633952&trid=0000524e9cc80dea41dca72b59782270b5d3u&mid=293793435&platform=pc&upsig=e5feff4626de4c6fd2ed9c6061c324a0&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' \
    +    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    +    --referer 'https://www.bilibili.com' \
    +    -O 'audio.m4s'
    +# 进行混流
    +ffmpeg -i video.m4s -i audio.m4s -c:v copy -c:a copy -f mp4 Download_video.mp4
    +
    + + + diff --git a/docs/video_ranking/dynamic.html b/docs/video_ranking/dynamic.html new file mode 100644 index 0000000000..c586dc2af8 --- /dev/null +++ b/docs/video_ranking/dynamic.html @@ -0,0 +1,423 @@ + + + + + + + + + 分区最新视频 | BAC Document + + + + +

    分区最新视频

    获取分区最新视频列表

    https://api.bilibili.com/x/web-interface/dynamic/region

    请求方式:GET

    url参数:

    参数名类型内容必要性备注
    pnnum页码非必要默认为1
    psnum每页项数非必要默认为14, 留空为5
    ridnum目标分区tid必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    archivesarray视频列表
    pageobj页面信息

    data中的archives数组:

    类型内容备注
    0obj视频1
    nobj视频(n+1)
    ……obj…………

    data中的archives数组中的对象:

    基本同获取视频详细信息(web端)中的data对象

    data中的page对象:

    字段类型内容备注
    countnum总计视频数
    numnum当前页码
    sizenum每页项数

    示例:

    获取tid=21(生活->日常)分区中的2条最新动态视频信息

    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'
    +
    查看响应示例:
    {
    +	"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"
    +		}]
    +	}
    +}
    +

    获取分区标签近期互动列表

    https://api.bilibili.com/x/web-interface/dynamic/tag

    请求方式: GET

    url参数:

    参数名类型内容必要性备注
    psnum视频数非必要默认为14, 留空为5
    pnnum列数非必要留空为1
    ridnum目标分区id必要参见视频分区一览
    tag_idnum目标标签id必要

    json回复:

    获取分区最新视频列表相同, 略

    示例:

    获取tid=136(游戏->音游)分区中tag_id=10026108(Phigros)标签近期互动列表的2条视频信息

    curl -G 'https://api.bilibili.com/x/web-interface/dynamic/tag' \
    +--data-urlencode 'rid=136' \
    +--data-urlencode 'tag_id=10026108' \
    +--data-urlencode 'ps=2' \
    +--data-urlencode 'pn=1'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "page": {
    +      "num": 1,
    +      "size": 2,
    +      "count": 152
    +    },
    +    "archives": [
    +      {
    +        "aid": 1452657587,
    +        "videos": 1,
    +        "tid": 136,
    +        "tname": "音游",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/4cb13f97e0d4b43645728432468e44b40ad343de.jpg",
    +        "title": "【MuseDash x Phigros/逆天愚人节谱面】Retribution ~Cycle of Redemption~ Lv.? AP",
    +        "pubdate": 1712310000,
    +        "ctime": 1712302810,
    +        "desc": "谱师:Mayflycmd(@命令提示符 )",
    +        "state": 0,
    +        "duration": 189,
    +        "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": 3493136175204754,
    +          "name": "TempoTiger",
    +          "face": "https://i1.hdslb.com/bfs/face/0cf2722f9aaa0db94f9166a8084e347bca3580f4.jpg"
    +        },
    +        "stat": {
    +          "aid": 1452657587,
    +          "view": 27021,
    +          "danmaku": 141,
    +          "reply": 113,
    +          "favorite": 306,
    +          "coin": 144,
    +          "share": 95,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 1050,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 27021
    +        },
    +        "dynamic": "",
    +        "cid": 1494650111,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Eq421w7T4",
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n240405sa2zsrp9x2i3erx1ln8icirs6_firsti.jpg",
    +        "pub_location": "广东",
    +        "cover43": "",
    +        "bvid": "BV1Eq421w7T4",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": null
    +      },
    +      {
    +        "aid": 1155789590,
    +        "videos": 1,
    +        "tid": 136,
    +        "tname": "音游",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c75674c8d104421d1794e69926d42ffa90e7d73d.jpg",
    +        "title": "[Phigros 自制谱] 把一切都倾注进去吧!/ 雑踏、僕らの街 - TOGENASHI TOGEARI",
    +        "pubdate": 1719687153,
    +        "ctime": 1719687153,
    +        "desc": "不是,你们怎么忍住把这键盘歌写这么简单的?\n不是,你们怎么忍住把这键盘歌写这么简单的?\n不是,你们怎么忍住把这键盘歌写这么简单的?\n\n应该是 Phigros 第一个写满三分钟的,虽然后面抄了很多重复配置,但无伤大雅(\n个人定数 16.6,其实就两段 5k 键盘难,看时间长多给了 0.1\n所以啊\n\n愤怒也好喜悦也好悲伤也好,把一切都倾注进去!\n怒りも喜びも哀しさも、全部ぶちこめ。\n\n-- 6.30 更新,修了一个特效的问题,改了一个很蹭的配置和一个很丑的排键",
    +        "state": 0,
    +        "duration": 201,
    +        "mission_id": 1726375,
    +        "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": 341532844,
    +          "name": "西宮缄",
    +          "face": "https://i1.hdslb.com/bfs/face/1387108d9337c04c27ce2d8d75679e40540d4c14.jpg"
    +        },
    +        "stat": {
    +          "aid": 1155789590,
    +          "view": 39479,
    +          "danmaku": 303,
    +          "reply": 169,
    +          "favorite": 1650,
    +          "coin": 473,
    +          "share": 653,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 5843,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 39479
    +        },
    +        "dynamic": "打这个比溜冰还爽",
    +        "cid": 1600971084,
    +        "dimension": {
    +          "width": 2000,
    +          "height": 1500,
    +          "rotate": 0
    +        },
    +        "season_id": 3395535,
    +        "short_link_v2": "https://b23.tv/BV1iZ421g7E8",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n240630sa3chl8idnpz8d31t6yaczagn_firsti.jpg",
    +        "pub_location": "天津",
    +        "cover43": "",
    +        "bvid": "BV1iZ421g7E8",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": null
    +      }
    +    ]
    +  }
    +}
    +

    获取分区近期投稿列表

    https://api.bilibili.com/x/web-interface/newlist

    请求方式: GET

    注: 该接口在 Web 端实际情况中被请求, 但似乎未在页面中显示, 作用尚不清楚

    URL参数:

    参数名类型内容必要性备注
    psnum视频数非必要默认为14, 留空为5
    pnnum页码非必要默认为1
    ridnum目标分区id非必要参见视频分区一览
    typenum类型?非必要默认为0

    JSON回复:

    获取分区最新视频列表相同, 略

    示例:

    获取分区最新视频列表相似, 略

    获取分区近期投稿列表 (带排序)

    https://api.bilibili.com/x/web-interface/newlist_rank

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    main_verstr主页版本非必要默认为 v3
    search_typestr搜索类型必要默认为 video
    view_typestr查看类型?必要默认为 hot_rank
    copy_rightnum版权?非必要默认为 -1
    new_web_tagnum标签?非必要默认为 1
    orderstr排序方式非必要click: 按播放排序(默认)
    scores: 按评论数排序
    stow: 按收藏排序
    coin: 按硬币数排序
    dm: 按弹幕数排序
    cate_idnum分区id必要留空会导致响应中dataresultnull, 参见视频分区一览
    pagenum页码非必要默认以 1 开始
    pagesizenum视频数必要默认为 30, 留空会导致 -500
    time_fromnum起始时间必要yyyyMMdd, 默认为 time_to - 7
    time_tonum结束时间必要yyyyMMdd, 默认为当前时间(大于起始时间)

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -500: 未传pagesize
    -10: 未传其余必要参数
    messagestr错误信息无为0
    ttlnum1
    dataobj信息本体错误为null

    data对象:

    字段类型内容备注
    exp_listnull作用尚不明确
    show_module_listarray显示模块列表?
    resultarray结果本体失败时为null
    show_columnnum0作用尚不明确
    rqt_typestrsearch作用尚不明确
    numPagesnum页码失败时为0
    numResultsnum视频数失败时为0
    crr_querystr作用尚不明确
    pagesizenum视频数
    suggest_keywordnum作用尚不明确
    egg_infonull作用尚不明确
    cachenum0作用尚不明确
    exp_bitsnum1作用尚不明确
    exp_strstr作用尚不明确
    seidstr一串字符串中的数字作用尚不明确
    msgstr结果信息成功时为success, 反之为as error.
    egg_hitnum0作用尚不明确
    pagenum页码

    data中的show_module_list数组:

    类型内容备注
    0strtips
    1strbrand_ad
    2stresports
    3stractivity
    4strweb_game
    5strcard
    6strmedia_bangumi
    7strmedia_ft
    8strbili_user
    9struser
    10strstar
    11strvideo

    data中的result数组中的对象:

    字段类型内容备注
    pubdatestr发布时间格式为 yyyy-MM-dd HH:mm:ss
    picstr封面图
    tagstr标签, 分隔
    durationnum时长单位为秒
    idnumaid
    rank_scorenum排序分数?
    badgepaybool是否有角标?
    senddatenum发送时间?UNIX 秒级时间戳
    authorstrUP主名
    reviewnum评论数
    midnumUP主mid
    is_union_videonum是否为联合投稿
    rank_indexnum排序索引号
    typestr类型video: 视频
    arcrankstr0作用尚不明确
    playstr播放数
    rank_offsetnum排序偏移?rank_index 相同
    descriptionstr简介
    video_reviewnum弹幕数?
    is_paynum是否付费?0: 免费
    1: 付费
    favoritesnum收藏数
    arcurlstr视频播放页URL
    bvidstrbvid
    titlestr标题
    vtnum0作用尚不明确
    enable_vtnum0作用尚不明确
    vt_displaystr作用尚不明确

    示例:

    获取tid=231(科技->计算机技术)分区近期投稿列表, 按播放数排序, 页码为1, 视频数为2, 时间一周

    curl -G 'https://api.bilibili.com/x/web-interface/newlist_rank' \
    +--data-urlencode 'search_type=video' \
    +--data-urlencode 'view_type=hot_rank' \
    +--data-urlencode 'order=click' \
    +--data-urlencode 'cate_id=231' \
    +--data-urlencode 'page=1' \
    +--data-urlencode 'pagesize=2' \
    +--data-urlencode 'time_from=20240716' \
    +--data-urlencode 'time_to=20240723'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "exp_list": null,
    +    "show_module_list": [
    +      "tips",
    +      "brand_ad",
    +      "esports",
    +      "activity",
    +      "web_game",
    +      "card",
    +      "media_bangumi",
    +      "media_ft",
    +      "bili_user",
    +      "user",
    +      "star",
    +      "video"
    +    ],
    +    "result": [
    +      {
    +        "pubdate": "2024-07-19 15:27:23",
    +        "pic": "//i0.hdslb.com/bfs/archive/a6c2a8669e623333eee4bd8316b4e7b01716b7f2.jpg",
    +        "tag": "微软,Microsoft",
    +        "duration": 14,
    +        "id": 1406270001,
    +        "rank_score": 237205,
    +        "badgepay": false,
    +        "senddate": 1721410429,
    +        "author": "柚子木字幕组",
    +        "review": 928,
    +        "mid": 221648,
    +        "is_union_video": 0,
    +        "rank_index": 1,
    +        "type": "video",
    +        "arcrank": "0",
    +        "play": "237205",
    +        "rank_offset": 1,
    +        "description": "X",
    +        "video_review": 42,
    +        "is_pay": 0,
    +        "favorites": 618,
    +        "arcurl": "http://www.bilibili.com/video/av1406270001",
    +        "bvid": "BV1gr421M7rE",
    +        "title": "突发:微软服务中断正在影响全球用户",
    +        "vt": 0,
    +        "enable_vt": 0,
    +        "vt_display": ""
    +      },
    +      {
    +        "pubdate": "2024-07-17 22:12:47",
    +        "pic": "//i0.hdslb.com/bfs/archive/1b02bc3806369f8c051a84e1ffef11b22695e659.jpg",
    +        "tag": "演讲,大学,编程,英伟达,人工智能,TED,AI,黄仁勋",
    +        "duration": 1908,
    +        "id": 1556206286,
    +        "rank_score": 52653,
    +        "badgepay": false,
    +        "senddate": 1721225567,
    +        "author": "YouTube精选字幕组",
    +        "review": 147,
    +        "mid": 487511093,
    +        "is_union_video": 0,
    +        "rank_index": 2,
    +        "type": "video",
    +        "arcrank": "0",
    +        "play": "52648",
    +        "rank_offset": 2,
    +        "description": "New SciTech\n上月加州理工学院毕业典礼上,刚刚带领英伟达达成世界第一市值的CEO黄仁勋,到场分享对当下AI革命趋势的见解、带领英伟达转型成AI公司的历程、以及自己在职场这么多年的人生感悟。\n\n全程没有上位者那种空洞无意义的说教,都是真实的发展故事和对未来世界的看法。如果你的工作生活中有涉及到AI技术的可能,那么这期演讲将会非常有意义。",
    +        "video_review": 16,
    +        "is_pay": 0,
    +        "favorites": 2152,
    +        "arcurl": "http://www.bilibili.com/video/av1556206286",
    +        "bvid": "BV1C1421b7dD",
    +        "title": "“这个时代要跑,不要走”黄仁勋加州理工毕业演讲完整版",
    +        "vt": 0,
    +        "enable_vt": 0,
    +        "vt_display": ""
    +      }
    +    ],
    +    "show_column": 0,
    +    "rqt_type": "search",
    +    "numPages": 404,
    +    "numResults": 808,
    +    "crr_query": "",
    +    "pagesize": 2,
    +    "suggest_keyword": "",
    +    "egg_info": null,
    +    "cache": 0,
    +    "exp_bits": 1,
    +    "exp_str": "",
    +    "seid": "6717218533109517809",
    +    "msg": "success",
    +    "egg_hit": 0,
    +    "page": 1
    +  }
    +}
    +
    + + + diff --git a/docs/video_ranking/popular.html b/docs/video_ranking/popular.html new file mode 100644 index 0000000000..cfa0c04bfd --- /dev/null +++ b/docs/video_ranking/popular.html @@ -0,0 +1,1152 @@ + + + + + + + + + 热门视频 | BAC Document + + + + +

    热门视频

    获取当前热门视频列表

    https://api.bilibili.com/x/web-interface/popular

    请求方式:GET

    注: 当携带Cookie时返回的数据的排行是个性化的

    参数名类型内容必要性备注
    pnnum页码非必要默认为 1
    psnum每页项数非必要默认为 20

    json 回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray视频列表
    no_morebool是否有更多数据false:下页还有数据
    true:下页没有数据

    data中的list数组:

    类型内容备注
    0obj视频1
    nobj视频(n+1)
    ……obj…………

    data中的list数组中的对象:

    基本同获取视频详细信息(web端)中的data对象

    示例:

    获取当前热门视频列表(不携带 Cookie)

    curl -G 'https://api.bilibili.com/x/web-interface/popular' \
    +--data-urlencode 'ps=2' \
    +--data-urlencode 'pn=1' \
    +-A 'qwq'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "aid": 1356452135,
    +        "videos": 1,
    +        "tid": 250,
    +        "tname": "出行",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/5c3a47b7189caa84965c03b08007635a3c2e0405.jpg",
    +        "title": "《抬您上泰山》",
    +        "pubdate": 1722060600,
    +        "ctime": 1722018603,
    +        "desc": "转型的第一次尝试\n大家觉得还可以的话多多支持\n有什么意见请一定要提!\n谢谢观众老师们!!!",
    +        "state": 0,
    +        "duration": 138,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 1339110285,
    +          "name": "赵峰山西四人行",
    +          "face": "https://i0.hdslb.com/bfs/face/6dfc87876cc8e6a0b81f113a5b3c1b473f48cb7a.jpg"
    +        },
    +        "stat": {
    +          "aid": 1356452135,
    +          "view": 2465053,
    +          "danmaku": 8467,
    +          "reply": 4426,
    +          "favorite": 46567,
    +          "coin": 168267,
    +          "share": 23180,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 403250,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2465053
    +        },
    +        "dynamic": "更新了xdm 转型之作大家多多支持",
    +        "cid": 1628605145,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1tz421i7zb",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n240727sa1qmofe0nqz3he18b11gotmv_firsti.jpg",
    +        "pub_location": "山东",
    +        "cover43": "",
    +        "bvid": "BV1tz421i7zb",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": {
    +          "content": "百万播放",
    +          "corner_mark": 0
    +        }
    +      },
    +      {
    +        "aid": 1906472398,
    +        "videos": 1,
    +        "tid": 221,
    +        "tname": "野生动物",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/1aecafe48c53f8033bda883aad4e18f6a737e6b3.jpg",
    +        "title": "杭州居然有科普展贩卖保护动物???",
    +        "pubdate": 1722176718,
    +        "ctime": 1722176718,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 278,
    +        "mission_id": 4016856,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "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": 14309659,
    +          "name": "凛某人",
    +          "face": "https://i1.hdslb.com/bfs/face/53a4bed97980363ed9cf5802d811c41a608f36ee.jpg"
    +        },
    +        "stat": {
    +          "aid": 1906472398,
    +          "view": 406829,
    +          "danmaku": 786,
    +          "reply": 2203,
    +          "favorite": 5698,
    +          "coin": 20079,
    +          "share": 2052,
    +          "now_rank": 0,
    +          "his_rank": 0,
    +          "like": 81327,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 406829
    +        },
    +        "dynamic": "",
    +        "cid": 1630483865,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1MU411S7Cc",
    +        "up_from_v2": 9,
    +        "first_frame": "http://i0.hdslb.com/bfs/storyff/n240728sa1eky6tk8i78rs1xtdt7pgyd_firsti.jpg",
    +        "pub_location": "浙江",
    +        "cover43": "",
    +        "bvid": "BV1MU411S7Cc",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": {
    +          "content": "6万点赞",
    +          "corner_mark": 0
    +        }
    +      }
    +    ],
    +    "no_more": false
    +  }
    +}
    +

    每周必看全部列表

    https://api.bilibili.com/x/web-interface/popular/series/list

    请求方式: GET

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -352: 请求被风控
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray全部信息列表套了个娃

    data对象中list数组:

    类型内容备注
    0obj第 n+1 期
    1obj第 n 期
    2obj第 n-1 期
    ……obj…………
    nobj第 1 期

    list数组中的对象:

    字段类型内容备注
    numbernum期数
    subjectstr主题
    statusnum状态2: 已结束
    namestr名称yyyy第n期 MM.dd - MM.dd

    示例:

    curl -G 'https://api.bilibili.com/x/web-interface/popular/series/list' \
    +-A ''
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "number": 279,
    +        "subject": "身残志坚钻石大盗",
    +        "status": 2,
    +        "name": "2024第279期 07.19 - 07.25"
    +      },
    +      {
    +        "number": 278,
    +        "subject": "中国诸神最强简史",
    +        "status": 2,
    +        "name": "2024第278期 07.12 - 07.18"
    +      },
    +      {
    +        "number": 277,
    +        "subject": "不用脚的射门大赛",
    +        "status": 2,
    +        "name": "2024第277期 07.05 - 07.11"
    +      },
    +      {
    +        "number": 276,
    +        "subject": "火柴人VS几何",
    +        "status": 2,
    +        "name": "2024第276期 06.28 - 07.04"
    +      },
    +      {
    +        "number": 275,
    +        "subject": "重磅自制三体动画",
    +        "status": 2,
    +        "name": "2024第275期 06.21 - 06.27"
    +      },
    +      /// ...
    +      {
    +        "number": 42,
    +        "subject": "【英雄联盟】——战士",
    +        "status": 2,
    +        "name": "2020第42期 01.03 - 01.09"
    +      },
    +      {
    +        "number": 41,
    +        "subject": "2019年度鬼畜回顾",
    +        "status": 2,
    +        "name": "2019第41期 12.27 - 01.02"
    +      },
    +      // ...
    +      {
    +        "number": 2,
    +        "subject": "噬元兽大战哥斯拉",
    +        "status": 2,
    +        "name": "2019第2期 03.29 - 04.04"
    +      },
    +      {
    +        "number": 1,
    +        "subject": "神仙爱情",
    +        "status": 2,
    +        "name": "2019第1期 03.22 - 03.28"
    +      }
    +    ]
    +  }
    +}
    +

    每周必看选期详细信息

    https://api.bilibili.com/x/web-interface/popular/series/one

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    numbernum期数必要默认为 1

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    -352: 请求被风控
    -404: 啥都木有
    messagestr错误信息默认为 0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    configobj选期信息
    reminderstr提醒
    listarray选期视频列表

    data对象中的config对象:

    字段类型内容备注
    idnum选期ID
    typestr选期类型
    numbernum期数
    subjectstr主题
    stimenum开始时间
    etimenum结束时间
    statusnum状态2: 已结束
    namestr名称yyyy第n期 MM.dd - MM.dd
    labelstr标题
    hintstr提示
    colornum颜色?
    coverstr封面
    share_titlestr分享标题
    share_subtitlestr分享副标题
    media_idnum媒体ID?

    data对象中的list数组:

    类型内容备注
    0obj第 1 个视频
    1obj第 2 个视频
    ……obj…………
    nobj第 n 个视频

    list数组中的对象:

    基本同获取视频详细信息(web端)中的data对象

    示例:

    查看小破站第 3 期每周必看详细信息

    curl -G 'https://api.bilibili.com/x/web-interface/popular/series/one' \
    +--data-urlencode 'number=3'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "config": {
    +      "id": 3,
    +      "type": "weekly_selected",
    +      "number": 3,
    +      "subject": "人类首张黑洞照片",
    +      "stime": 1554393600,
    +      "etime": 1554998399,
    +      "status": 2,
    +      "name": "2019第3期 04.05 - 04.11",
    +      "label": "第3期(0412更新)",
    +      "hint": "本周热词:",
    +      "color": 2,
    +      "cover": "http://i0.hdslb.com/bfs/archive/c10fe5913a1e503bcd68db69158605df2bf54424.jpg",
    +      "share_title": "人类首张黑洞照片  | B站每周必看2019年第3期",
    +      "share_subtitle": "和B站小伙伴一起见证历史!黑洞到底长啥样?",
    +      "media_id": 448239988
    +    },
    +    "reminder": "每周五晚18:00更新",
    +    "list": [
    +      {
    +        "aid": 48918074,
    +        "videos": 1,
    +        "tid": 201,
    +        "tname": "科学科普",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/a2cbee9c1e2e854e161f1bddc04d657baf6e95f5.jpg",
    +        "title": "人类第一张黑洞照片,来了!",
    +        "pubdate": 1554904794,
    +        "ctime": 1554904794,
    +        "desc": "联合出品:中国科学技术协会、中国科学院计算机网络信息中心\n制作:中国科普博览\n科学审核:中国科学院国家天文台 苟利军\n实习生沈慧慧、李哲欣对本视频亦有贡献",
    +        "state": 0,
    +        "duration": 89,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 407045223,
    +          "name": "二次元的中科院物理所",
    +          "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg"
    +        },
    +        "stat": {
    +          "aid": 48918074,
    +          "view": 1594796,
    +          "danmaku": 23255,
    +          "reply": 16022,
    +          "favorite": 23084,
    +          "coin": 26411,
    +          "share": 10095,
    +          "now_rank": 0,
    +          "his_rank": 7,
    +          "like": 62712,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1594796
    +        },
    +        "dynamic": "#趣味科普人文##科学##中科院#",
    +        "cid": 85668198,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Nb411M7r8",
    +        "cover43": "",
    +        "bvid": "BV1Nb411M7r8",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "和B站小伙伴一起见证历史!黑洞到底长啥样?错过直播的你还不快点进来。"
    +      },
    +      {
    +        "aid": 48678913,
    +        "videos": 1,
    +        "tid": 161,
    +        "tname": "手工",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/8cda8b937795081c5620b95a06670fd15ed5f768.jpg",
    +        "title": "破釜沉舟跑步机",
    +        "pubdate": 1554694435,
    +        "ctime": 1554694435,
    +        "desc": "-",
    +        "state": 0,
    +        "duration": 138,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 280793434,
    +          "name": "手工耿",
    +          "face": "http://i1.hdslb.com/bfs/face/b8a75ae7d2a0e2af1d36ca9f1084d850eebb28e3.jpg"
    +        },
    +        "stat": {
    +          "aid": 48678913,
    +          "view": 12760040,
    +          "danmaku": 20334,
    +          "reply": 14432,
    +          "favorite": 58473,
    +          "coin": 179999,
    +          "share": 146849,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 436988,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 12760040
    +        },
    +        "dynamic": "#手工##创意##自制#",
    +        "cid": 85243779,
    +        "dimension": {
    +          "width": 1080,
    +          "height": 1920,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1eb411u7Pz",
    +        "up_from_v2": 9,
    +        "cover43": "",
    +        "bvid": "BV1eb411u7Pz",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "脑洞发明家手工耿最新力作!如果你恨一个人,就送他这台破釜沉舟跑步机吧。"
    +      },
    +      {
    +        "aid": 48316018,
    +        "videos": 1,
    +        "tid": 22,
    +        "tname": "鬼畜调教",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/90a5f41351f7d8622f5c5e0aa163933e05830bd3.jpg",
    +        "title": "【名师rap】游戏不打不成才",
    +        "pubdate": 1554431709,
    +        "ctime": 1554415633,
    +        "desc": "欢迎收看由各位名师带来的精彩育儿饶舌讲座,教育孩子最科学的方法就是督促孩子打游戏,你学到了吗?\n如果想学习更多相关课程,可以收看名师讲堂·下一讲:如何让孩子爱上♂学习?(av2274779)",
    +        "state": 0,
    +        "duration": 156,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 375375,
    +          "name": "伊丽莎白鼠",
    +          "face": "https://i0.hdslb.com/bfs/face/6c36ec15f6d7ddd9bdb558511521bd0256779e1c.jpg"
    +        },
    +        "stat": {
    +          "aid": 48316018,
    +          "view": 8560735,
    +          "danmaku": 25131,
    +          "reply": 24307,
    +          "favorite": 206726,
    +          "coin": 382539,
    +          "share": 88084,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 476744,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 8560735
    +        },
    +        "dynamic": "没想到吧,时隔4年的名师rap居然有续作!快点赞投币收藏,素质3连是我更新的最大动力!",
    +        "cid": 84631475,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Yb411g7Mu",
    +        "cover43": "",
    +        "bvid": "BV1Yb411g7Mu",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "爷爷,你关注的鬼畜UP主终终终终于更新啦!还是熟悉的全明星阵容,还是曾经的味道。"
    +      },
    +      {
    +        "aid": 48823532,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/7cb8e384d34946564453a22131c50aa4eb308dfc.jpg",
    +        "title": "随机理发!太丢人了!!早知道这样我还不如女装!",
    +        "pubdate": 1554888608,
    +        "ctime": 1554817240,
    +        "desc": "太羞耻了!不能我一个受罪!收藏过2W就抽一个员工理跟我一样的发型!\n发现生活,改变自己\n体验世界的点点滴滴!\nav48289549 和UP主以物换物,最后竟然换到了中国boy的...!\nav48120567 赤身拳击!干翻拳击教练需要几拳?\nav47677645 精子捐献是怎样的体验?\nav47479428 名媛养成指南!\nav47006491 和“少爷”up主互换身份\nav46265017 200万粉UP主在上海开公司到底要花多少钱?\nav45061698 第一次去夜店是怎样的体验?",
    +        "state": 0,
    +        "duration": 347,
    +        "mission_id": 11230,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 808171,
    +          "name": "吃素的狮子",
    +          "face": "https://i1.hdslb.com/bfs/face/dd773c9572494338ada15aa10262a510f161baf1.jpg"
    +        },
    +        "stat": {
    +          "aid": 48823532,
    +          "view": 1523181,
    +          "danmaku": 13043,
    +          "reply": 4401,
    +          "favorite": 37835,
    +          "coin": 186720,
    +          "share": 5163,
    +          "now_rank": 0,
    +          "his_rank": 3,
    +          "like": 161974,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1523181
    +        },
    +        "dynamic": "太羞耻了!不能我一个受罪!收藏过2W就抽一个员工理跟我一样的发型!",
    +        "cid": 85496423,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1ib411T7bt",
    +        "cover43": "",
    +        "bvid": "BV1ib411T7bt",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "男人就要对自己狠一点,狮子的这个新发型说实话还有点小帅呢!"
    +      },
    +      {
    +        "aid": 48880868,
    +        "videos": 1,
    +        "tid": 76,
    +        "tname": "美食制作",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/8fd09f285109fc105a3427745329b0bdb055cc6d.jpg",
    +        "title": "这个水果长得真漂亮,不如做成【水果奶酪三明治】吧~嘻嘻",
    +        "pubdate": 1554897659,
    +        "ctime": 1554880873,
    +        "desc": "记得挑松软的吐司面包,吃起来是有点像甜点的口感!\nBGM:野餐面包 - Happy by Mikki Aglaganov",
    +        "state": 0,
    +        "duration": 192,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 17409016,
    +          "name": "爱做饭的芋头SAMA",
    +          "face": "http://i1.hdslb.com/bfs/face/2182d21ff5ae520f392f55b59022bc17f43b4943.jpg"
    +        },
    +        "stat": {
    +          "aid": 48880868,
    +          "view": 2231330,
    +          "danmaku": 3383,
    +          "reply": 3870,
    +          "favorite": 52784,
    +          "coin": 102138,
    +          "share": 9293,
    +          "now_rank": 0,
    +          "his_rank": 8,
    +          "like": 147138,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 2231330
    +        },
    +        "dynamic": "还有什么能比美丽的三明治更让人心情大好吗?emm…吃掉它!",
    +        "cid": 85602013,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV19b411T7a7",
    +        "cover43": "",
    +        "bvid": "BV19b411T7a7",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "这世上还有什么比新鲜的水果三明治更美好的吗?那就是一颗善良的心。"
    +      },
    +      {
    +        "aid": 48220814,
    +        "videos": 1,
    +        "tid": 183,
    +        "tname": "影视剪辑",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/d4fc8471e6fe3bcdf1de4df43fabffaad74646b4.jpg",
    +        "title": "【七代小丑/踩点/混剪/高燃】前方高能!欢乐与惊悚的踩点视觉盛宴!希斯莱杰诞辰40周年纪念。",
    +        "pubdate": 1554368448,
    +        "ctime": 1554341020,
    +        "desc": "BGM:《Lock Me Up》 - The Cab\n            《Holocene》 - Bon Iver \n推荐耳机食用,从筹备到剪辑完成断断续续花了一个月,希望我的用心剪辑可以被更多的人看到。\n一直都想做个DC小丑群像剪辑,把所有我喜欢的银幕小丑都剪到一起,\n届时烦请各位小伙伴理性发言。不要在评论区和弹幕引战、人身攻击和散布演员谣言\n谢谢配合!\n要是喜欢这期的话,求点赞、收藏和硬币。\n做视频实属不易,小伙伴们的支持与鼓励是我继续做视频的动力!",
    +        "state": 0,
    +        "duration": 343,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 27259842,
    +          "name": "迪亚瓦尔Diaval",
    +          "face": "https://i0.hdslb.com/bfs/face/ade2291e23d48050c1617dbaf3583b98d46be0dc.jpg"
    +        },
    +        "stat": {
    +          "aid": 48220814,
    +          "view": 23693530,
    +          "danmaku": 45208,
    +          "reply": 10213,
    +          "favorite": 833645,
    +          "coin": 789760,
    +          "share": 136694,
    +          "now_rank": 0,
    +          "his_rank": 3,
    +          "like": 1085389,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 23693530
    +        },
    +        "dynamic": "#希斯莱杰##自杀小队##小丑#",
    +        "cid": 517786039,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "season_id": 3223,
    +        "short_link_v2": "https://b23.tv/BV1Jb411W7dH",
    +        "first_frame": "http://i1.hdslb.com/bfs/storyff/n220227qn1sayugogts51k3m0m2cihw0_firsti.jpg",
    +        "cover43": "",
    +        "bvid": "BV1Jb411W7dH",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "感谢希斯·莱杰为我们带来如此经典的银幕形象,愿你安好。"
    +      },
    +      {
    +        "aid": 48956942,
    +        "videos": 1,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/564e938ae040831fa1620981b2e6e33a51b72ffd.jpg",
    +        "title": "【敖厂长】沙雕游戏主角死法超级华丽",
    +        "pubdate": 1554957465,
    +        "ctime": 1554957466,
    +        "desc": "500万粉丝达成 收藏充电硬币庆祝一波!",
    +        "state": 0,
    +        "duration": 785,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 122879,
    +          "name": "敖厂长",
    +          "face": "https://i2.hdslb.com/bfs/face/71d85b84b0b2aa59009cd6af09b53aac309c3461.jpg"
    +        },
    +        "stat": {
    +          "aid": 48956942,
    +          "view": 5272672,
    +          "danmaku": 28520,
    +          "reply": 9614,
    +          "favorite": 51080,
    +          "coin": 234581,
    +          "share": 7342,
    +          "now_rank": 0,
    +          "his_rank": 1,
    +          "like": 238148,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 5272672
    +        },
    +        "dynamic": "#敖厂长#新视频庆祝500万粉丝达成!沙雕游戏主角死法超级华丽!",
    +        "cid": 85738601,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1bb411M7G2",
    +        "cover43": "",
    +        "bvid": "BV1bb411M7G2",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "恶意满满的摩托赛车游戏,制作组的重点完全放在了花式死法上啊喂→_→"
    +      },
    +      {
    +        "aid": 48949609,
    +        "videos": 1,
    +        "tid": 138,
    +        "tname": "搞笑",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/970b7377cddc309b1793c0d7daace2a2a86e42a3.jpg",
    +        "title": "探秘印度医药,真的有牛尿做的药吗?",
    +        "pubdate": 1554951398,
    +        "ctime": 1554951398,
    +        "desc": "印度真有牛尿做的药吗?喝一口是什么味道?",
    +        "state": 0,
    +        "duration": 375,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 176037767,
    +          "name": "我是郭杰瑞",
    +          "face": "http://i2.hdslb.com/bfs/face/6182455e4d61159121c223ddc7a3a381f2d4d056.jpg"
    +        },
    +        "stat": {
    +          "aid": 48949609,
    +          "view": 1517839,
    +          "danmaku": 13115,
    +          "reply": 3538,
    +          "favorite": 3016,
    +          "coin": 16410,
    +          "share": 2337,
    +          "now_rank": 0,
    +          "his_rank": 16,
    +          "like": 46687,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1517839
    +        },
    +        "dynamic": "印度有牛尿做的药吗?我不是药神!",
    +        "cid": 85723703,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1Lb411M7B9",
    +        "cover43": "",
    +        "bvid": "BV1Lb411M7B9",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "继续跟随郭杰瑞走进印度。什么?你居然敢把印度神药当水喝w(゚Д゚)w"
    +      },
    +      {
    +        "aid": 48227749,
    +        "videos": 1,
    +        "tid": 222,
    +        "tname": "小宠异宠",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/f42431037088b5ddceae79ca62df24cc78575eff.jpg",
    +        "title": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪",
    +        "pubdate": 1554375629,
    +        "ctime": 1554375634,
    +        "desc": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪",
    +        "state": 0,
    +        "duration": 151,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 1,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 250858633,
    +          "name": "华农兄弟",
    +          "face": "https://i1.hdslb.com/bfs/face/bac504655c69ab937b0be4557e27535f794b0c66.jpg"
    +        },
    +        "stat": {
    +          "aid": 48227749,
    +          "view": 1743011,
    +          "danmaku": 6544,
    +          "reply": 3757,
    +          "favorite": 2755,
    +          "coin": 17290,
    +          "share": 2027,
    +          "now_rank": 0,
    +          "his_rank": 10,
    +          "like": 57675,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1743011
    +        },
    +        "dynamic": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪",
    +        "cid": 84476924,
    +        "dimension": {
    +          "width": 3840,
    +          "height": 2160,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1pb411W7iY",
    +        "pub_location": "江西",
    +        "cover43": "",
    +        "bvid": "BV1pb411W7iY",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "刚出生小香猪超可爱啊,好想抱一只回家,再过几个月就可以....( ‵▽′)ψ"
    +      },
    +      {
    +        "aid": 48882824,
    +        "videos": 1,
    +        "tid": 182,
    +        "tname": "影视杂谈",
    +        "copyright": 1,
    +        "pic": "http://i0.hdslb.com/bfs/archive/51e06a15b1a02478d7106931cd8bddda8c2c67ab.jpg",
    +        "title": "电影最TOP 123: 难以超越的奇幻史诗巨制《指环王》三部曲",
    +        "pubdate": 1554899413,
    +        "ctime": 1554899415,
    +        "desc": "本期咱来聊聊彼得•杰克逊执导的魔幻史诗巨著《指环王》三部曲。",
    +        "state": 0,
    +        "duration": 4632,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 17819768,
    +          "name": "电影最TOP",
    +          "face": "http://i2.hdslb.com/bfs/face/6b2ade215ea603b495648875c925172a863d16d4.jpg"
    +        },
    +        "stat": {
    +          "aid": 48882824,
    +          "view": 3771761,
    +          "danmaku": 56684,
    +          "reply": 6959,
    +          "favorite": 73050,
    +          "coin": 202173,
    +          "share": 12895,
    +          "now_rank": 0,
    +          "his_rank": 2,
    +          "like": 164801,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 3771761
    +        },
    +        "dynamic": "#魔戒##指环王##史诗#",
    +        "cid": 85605834,
    +        "dimension": {
    +          "width": 1280,
    +          "height": 720,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1db411T7He",
    +        "cover43": "",
    +        "bvid": "BV1db411T7He",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "一小时重温影史经典《指环王》系列。不论再看多少遍,感动与震撼依旧。"
    +      },
    +      {
    +        "aid": 48473798,
    +        "videos": 1,
    +        "tid": 21,
    +        "tname": "日常",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c0eff150f8ba32fefdb14cf8de4e39a0a4982640.jpg",
    +        "title": "和日本妹子结婚要花多少钱?日本的收入情况up听到后惊呆了。。。",
    +        "pubdate": 1554536915,
    +        "ctime": 1554536915,
    +        "desc": "记得关注我豆奶子呀~谢谢您嘞!\n→av40409086 日本妹子为什么这么瘦\n→av42806782 日本妹子为啥冬天光腿\n→av43240232 日本妹子吃超难吃中国菜的反应\n→av40892710 日本妹子为啥牙齿不太好看\n→av42064376 日本妹子为啥胸大\n→av41491192 片尾曲 日语版念诗之王\n有什么疑问请弹幕留言!豆奶为您倾情解惑!",
    +        "state": 0,
    +        "duration": 350,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 1,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 6574487,
    +          "name": "纳豆奶奶",
    +          "face": "https://i2.hdslb.com/bfs/face/0a8638b34173708fcf979bd1166fbb7fdb1110a4.jpg"
    +        },
    +        "stat": {
    +          "aid": 48473798,
    +          "view": 4564805,
    +          "danmaku": 21747,
    +          "reply": 9727,
    +          "favorite": 44873,
    +          "coin": 175160,
    +          "share": 7102,
    +          "now_rank": 0,
    +          "his_rank": 6,
    +          "like": 256532,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 4564805
    +        },
    +        "dynamic": "#日本文化##科普##吐槽#身边的男性友人看完这期表示非常喜欢,女性朋友更是爱不释手!结婚?日本收入?这些你最关心的问题都在这里!",
    +        "cid": 84891041,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1pb411373L",
    +        "cover43": "",
    +        "bvid": "BV1pb411373L",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "日本妹子坦露择偶标准,和你想象的一样吗?不过这和我又有什么关系呢_(:з」∠)_"
    +      },
    +      {
    +        "aid": 48138432,
    +        "videos": 1,
    +        "tid": 17,
    +        "tname": "单机游戏",
    +        "copyright": 1,
    +        "pic": "http://i2.hdslb.com/bfs/archive/89baecb3461b6bfaa4a969c812282161a27ebc0d.jpg",
    +        "title": "【老番茄】史上最骚杀手(第三集)",
    +        "pubdate": 1554436829,
    +        "ctime": 1554258253,
    +        "desc": "第一集:av45629276 ; 第二集:av46295706\n如果收藏到4w会继续做下去的!\n这次请了好朋友Chimera君配音!没看过他视频的一定要去看一看!超级厉害!我特别崇拜的UP主!\nP.S.视频中对原剧情进行了部分改编。如:给女公关写情书的并非里科·戴尔加多,而是他的弟弟赫克托·戴尔加多。为了简化剧情,在视频中说成是里科所写。",
    +        "state": 0,
    +        "duration": 624,
    +        "mission_id": 11225,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "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": 48138432,
    +          "view": 19624690,
    +          "danmaku": 58471,
    +          "reply": 8593,
    +          "favorite": 453185,
    +          "coin": 1213654,
    +          "share": 26329,
    +          "now_rank": 0,
    +          "his_rank": 1,
    +          "like": 1232305,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 19624690
    +        },
    +        "dynamic": "这个杀手真的太骚了!",
    +        "cid": 84597412,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1080,
    +          "rotate": 0
    +        },
    +        "season_id": 14014,
    +        "short_link_v2": "https://b23.tv/BV1Nb411W7uN",
    +        "cover43": "",
    +        "bvid": "BV1Nb411W7uN",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "职业杀手(雾)大光头这次来到了哥伦比亚村庄,他会以怎样奇葩的方式达成目标呢?"
    +      },
    +      {
    +        "aid": 48871442,
    +        "videos": 1,
    +        "tid": 182,
    +        "tname": "影视杂谈",
    +        "copyright": 1,
    +        "pic": "http://i1.hdslb.com/bfs/archive/c917f4d21543461dcffe0230e0614abef4b54483.jpg",
    +        "title": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!",
    +        "pubdate": 1554890417,
    +        "ctime": 1554890426,
    +        "desc": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!",
    +        "state": 0,
    +        "duration": 435,
    +        "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": 7487399,
    +          "name": "努力的Lorre",
    +          "face": "http://i2.hdslb.com/bfs/face/c63ebeed7d49967e2348ef953b539f8de90c5140.jpg"
    +        },
    +        "stat": {
    +          "aid": 48871442,
    +          "view": 1694250,
    +          "danmaku": 2799,
    +          "reply": 1588,
    +          "favorite": 7199,
    +          "coin": 15416,
    +          "share": 1089,
    +          "now_rank": 0,
    +          "his_rank": 18,
    +          "like": 49430,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 1694250
    +        },
    +        "dynamic": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!",
    +        "cid": 85584748,
    +        "dimension": {
    +          "width": 1920,
    +          "height": 1072,
    +          "rotate": 0
    +        },
    +        "short_link_v2": "https://b23.tv/BV1wb411M73A",
    +        "cover43": "",
    +        "bvid": "BV1wb411M73A",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "rcmd_reason": "看完《沙赞》是不是还有些意犹未尽?来了解一下DC漫画中的真反派吧。"
    +      }
    +    ]
    +  }
    +}
    +
    + + + diff --git a/docs/video_ranking/precious_videos.html b/docs/video_ranking/precious_videos.html new file mode 100644 index 0000000000..c3f93dbf19 --- /dev/null +++ b/docs/video_ranking/precious_videos.html @@ -0,0 +1,116 @@ + + + + + + + + + 入站必刷视频 | BAC Document + + + + +

    入站必刷视频

    获取入站必刷视频

    https://api.bilibili.com/x/web-interface/popular/precious

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray视频列表

    data 字段:

    字段类型内容备注
    titlestr标题入站必刷
    media_idnummedia_id
    explainstr解释(概括)我不允许还有人没看过这??个宝藏视频!
    listarray列表

    data中的list数组中的对象:

    基本同获取视频详细信息(web端)中的data对象

    示例:

    curl -G 'https://api.bilibili.com/x/web-interface/popular/precious'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "title": "入站必刷",
    +    "media_id": 496307088,
    +    "explain": "我不允许还有人没看过这98个宝藏视频!",
    +    "list": [
    +      // ...
    +      {
    +        "aid": 706,
    +        "videos": 1,
    +        "tid": 47,
    +        "tname": "同人·手书",
    +        "copyright": 2,
    +        "pic": "http://i1.hdslb.com/bfs/archive/753453a776fca838165a52c7511e8557857b61ea.jpg",
    +        "title": "【東方】Bad Apple!! PV【影絵】",
    +        "pubdate": 1256995125,
    +        "ctime": 1497344829,
    +        "desc": "sm8628149 2011/9/25追记:大家如果看到空耳字幕请果断举报,净化弹幕环境,你我有责,感谢。",
    +        "state": 0,
    +        "duration": 219,
    +        "rights": {
    +          "bp": 0,
    +          "elec": 0,
    +          "download": 0,
    +          "movie": 0,
    +          "pay": 0,
    +          "hd5": 0,
    +          "no_reprint": 0,
    +          "autoplay": 1,
    +          "ugc_pay": 0,
    +          "is_cooperation": 0,
    +          "ugc_pay_preview": 0,
    +          "no_background": 0,
    +          "arc_pay": 0,
    +          "pay_free_watch": 0
    +        },
    +        "owner": {
    +          "mid": 37,
    +          "name": "折射",
    +          "face": "http://i1.hdslb.com/bfs/face/49d19d3d9cc4b3938128cacd650859ac612156a1.gif"
    +        },
    +        "stat": {
    +          "aid": 706,
    +          "view": 11329388,
    +          "danmaku": 82247,
    +          "reply": 544932,
    +          "favorite": 502984,
    +          "coin": 195079,
    +          "share": 95877,
    +          "now_rank": 0,
    +          "his_rank": 88,
    +          "like": 480388,
    +          "dislike": 0,
    +          "vt": 0,
    +          "vv": 11329388
    +        },
    +        "dynamic": "",
    +        "cid": 3724723,
    +        "dimension": {
    +          "width": 480,
    +          "height": 360,
    +          "rotate": 0
    +        },
    +        "season_id": 879555,
    +        "short_link_v2": "https://b23.tv/BV1xx411c79H",
    +        "cover43": "",
    +        "bvid": "BV1xx411c79H",
    +        "season_type": 0,
    +        "is_ogv": false,
    +        "ogv_info": null,
    +        "rcmd_reason": "",
    +        "enable_vt": 0,
    +        "ai_rcmd": null,
    +        "achievement": "东方project标志性视频"
    +      },
    +      // ...
    +    ]
    +  }
    +}
    +
    + + + diff --git a/docs/video_ranking/ranking.html b/docs/video_ranking/ranking.html new file mode 100644 index 0000000000..e72d1f5952 --- /dev/null +++ b/docs/video_ranking/ranking.html @@ -0,0 +1,923 @@ + + + + + + + + + 视频排行榜 | BAC Document + + + + +

    视频排行榜


    获取分区视频排行榜列表

    https://api.bilibili.com/x/web-interface/ranking/v2

    请求方式:GET

    获取稿件内容质量,近期的数据前100个稿件,动态更新。

    url参数:

    参数名类型内容必要性备注
    tidnum目标分区tid非必要可参考视频分区一览,只支持主分区
    typestr未知非必要默认为:all,且为目前唯一已知值。怀疑为稿件类型,但没有找到其他值佐证。

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    -400:请求错误
    messagestr错误信息默认为0
    ttlnum1
    dataarray视频列表

    data对象:

    字段类型内容备注
    notestr“根据稿件内容质量、近期的数据综合展示,动态更新”目前恒为此结果
    listlist视频列表暂无

    list列表:

    类型内容备注
    0obj排行榜第1名
    nobj排行榜第(n+1)名
    ……obj…………
    99obj排行榜第100名

    data列表中的对象:

    可参考获取视频详细信息(web端)中的data对象。本API对象中所有字段,均可在链接对象中找到。

    示例:

    获取tid=1(动画)分区中所有稿件排行榜排行榜

    curl -G 'https://api.bilibili.com/x/web-interface/ranking/v2' \
    +--data-urlencode 'tid=1' \
    +--data-urlencode 'type=all'
    +
    因本API返回对象过多(100个),故不全部展示,使用者可自行尝试。查看响应示例:
    {
    +  "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/vip/action.html b/docs/vip/action.html new file mode 100644 index 0000000000..be73f2dc11 --- /dev/null +++ b/docs/vip/action.html @@ -0,0 +1,54 @@ + + + + + + + + + 大会员操作 | BAC Document + + + + +

    大会员操作

    兑换卡券

    https://api.bilibili.com/x/vip/privilege/receive

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    typenum兑换类型必要1:B币券
    2:会员购优惠券
    3:漫画福利券
    4:会员购包邮券
    5:漫画商城优惠券
    6:装扮体验卡
    7:课堂优惠券
    csrfstrCSRF Token (位于cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值-101:账号未登录
    -111:csrf 校验失败
    -400:请求错误
    69800:网络繁忙 请稍后再试
    69801:你已领取过该权益
    0:成功
    messagestr错误信息
    ttlnum1

    示例:

    curl 'https://api.bilibili.com/x/vip/privilege/receive' \
    +	-b 'SESSDATA=xxx' \
    +	--data-urlencode 'type=1' \
    +	--data-urlencode 'csrf=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1
    +}
    +

    大会员每日经验

    https://api.bilibili.com/x/vip/experience/add

    请求方式:POST

    认证方式:Cookie (SESSDATA)

    正文参数 (application/x-www-form-urlencoded):

    参数名类型内容必要性备注
    csrfstrCSRF Token (位于cookie)Cookie 方式必要

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值-101:账号未登录
    -111:csrf 校验失败
    69198:用户经验已经领取
    6034007:请求频繁,请稍后再试
    0:成功
    messagestr错误信息`
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    typenum0
    is_grantbool暂时发现 code 为 0 时为 true

    示例:

    curl 'https://api.bilibili.com/x/vip/experience/add' \
    +	-b 'SESSDATA=xxx' \
    +	--data-urlencode 'csrf=xxx'
    +
    查看响应示例:
    {
    +  "code": 69198,
    +  "message": "用户经验已经领取",
    +  "ttl": 1,
    +  "data": {
    +    "type": 0,
    +    "is_grant": false
    +  }
    +}
    +
    + + + diff --git a/docs/vip/center.html b/docs/vip/center.html new file mode 100644 index 0000000000..2462404c4b --- /dev/null +++ b/docs/vip/center.html @@ -0,0 +1,1385 @@ + + + + + + + + + 大会员中心 | BAC Document + + + + +

    大会员中心

    大会员中心信息

    https://api.bilibili.com/x/vip/web/vip_center/combine

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    platformstr平台表示非必要web端:web
    安卓APP:android
    mobi_appstrAPP 名称非必要安卓APP:android
    buildnum构建 id非必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    userobj用户信息
    walletobj钱包信息
    union_vipweb 端:null
    APP 端:array
    联合会员信息列表
    other_open_infoweb 端:null
    APP 端:array
    其他开通方式信息列表
    privilegesarray会员特权信息列表
    bannersarraybanner 卡片列表web 端为空
    welfareobj福利信息
    recommend_pendantsobj推荐头像框信息
    recommend_cardsobj推荐装扮信息
    sortarray
    in_reviewbool
    big_pointobj大积分信息详细 API 参考大积分中心信息
    hot_listobj热门榜单类型信息

    data中的user对象:

    字段名类型内容备注
    accountobj账号基本信息
    vipobj账号会员信息
    tvobj电视会员信息
    background_image_smallstr
    background_image_bigstr
    panel_titlestr用户昵称
    avatar_pendantobj用户头像框信息
    vip_overdue_explainstr大会员提示文案有效期 / 到期
    tv_overdue_explainstr电视大会员提示文案有效期 / 到期
    account_exception_textstr
    is_auto_renewbool是否自动续费true:是
    false:否
    is_tv_auto_renewbool是否自动续费电视大会员true:是
    false:否
    surplus_secondsnum大会员到期剩余时间单位为秒
    vip_keep_timenum持续开通大会员时间单位为秒
    renewobj(?)
    noticeobj(?)

    user中的account对象:

    字段名类型内容备注
    midnum用户 mid
    namestr昵称
    sexstr性别男 / 女 / 保密
    facestr头像 url
    signstr签名
    ranknum等级
    birthdaynum生日秒时间戳
    is_fake_accountnum(?)
    is_deletednum是否注销0:正常
    1:注销
    in_reg_auditnum是否注册审核0:正常
    1:审核
    is_senior_membernum是否转正0:未转正
    1:正式会员

    user中的vip对象:

    字段类型内容备注
    midnum用户 mid
    vip_typenum会员类型0:无
    1:月大会员
    2:年度及以上大会员
    vip_statusnum会员状态0:无
    1:有
    vip_due_datenum会员过期时间毫秒时间戳
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    theme_typenum(?)
    labelobj会员标签
    avatar_subscriptnum是否显示会员图标0:不显示
    1:显示
    nickname_colorstr会员昵称颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    is_new_userbool(?)
    tip_materialnull(?)

    vip中的label对象:

    字段类型内容备注
    textstr会员类型文案大会员 年度大会员 十年大会员 百年大会员 最强绿鲤鱼
    label_themestr会员标签vip:大会员
    annual_vip:年度大会员
    ten_annual_vip:十年大会员
    hundred_annual_vip:百年大会员
    fools_day_hundred_annual_vip:最强绿鲤鱼
    text_colorstr会员标签文本颜色
    bg_stylenum1
    bg_colorstr会员标签背景颜色颜色码,一般为#FB7299,曾用于愚人节改变大会员配色
    border_colorstr会员标签边框颜色未使用
    use_img_labelbooltrue
    img_label_uri_hansstr
    img_label_uri_hantstr
    img_label_uri_hans_staticstr大会员牌子图片简体版
    img_label_uri_hant_staticstr大会员牌子图片繁体版

    user中的tv对象:

    字段类型内容备注
    typenum电视大会员类型0:无
    1:月大会员
    2:年度及以上大会员
    vip_pay_typenum电视大支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    statusnum电视大会员状态0:无
    1:有
    due_datenum电视大会员过期时间毫秒时间戳

    user中的avatar_pendant对象:

    字段类型内容备注
    imagestr头像框 url
    image_enhancestr头像框 url动态图
    image_enhance_framestr动态头像框帧波普版 url

    user中的renew对象:

    字段类型内容备注
    textstr(?)
    linkstr(?)

    user中的notice对象:

    字段类型内容备注
    textstr(?)
    tv_textstr(?)
    typenum(?)
    can_closebool(?)
    surplus_secondsnum(?)
    tv_surplus_secondsnum(?)

    data中的wallet对象:

    字段类型内容备注
    couponnum当前 B 币券
    pointnum(?)
    privilege_receivedbool(?)

    data中的union_vip数组:

    类型内容备注
    0obj联合会员项 1仅 APP 端存在该信息
    nobj联合会员项 (n+1)
    ……obj…………

    union_vip数组中的对象:

    字段类型内容备注
    image_2xstr联合会员图片小 url
    image_3xstr联合会员图片大 url
    titlestr联合会员名称
    linkstr联合会员开通页 url
    sortnum排列顺序

    data中的other_open_info数组:

    类型内容备注
    0obj其他开通方式项 1仅 APP 端存在该信息
    nobj其他开通方式项 (n+1)
    ……obj…………

    other_open_info数组中的对象:

    字段类型内容备注
    titlestr其他开通方式名称
    urlstr其他开通方式开通页 url
    icon_urlstr其他开通方式图标 url
    descstr提示文案
    sortnum排列顺序

    data中的privileges数组:

    类型内容备注
    0obj特权父类 1
    nobj特权父类 (n+1)
    ……obj…………

    other_open_info数组中的对象:

    字段类型内容备注
    idnum特权父类 id
    namestr类型名称
    child_privilegesarray特权子类列表

    other_open_info数组中的对象中的child_privileges数组:

    类型内容备注
    0obj特权子类 1
    nobj特权子类 (n+1)
    ……obj…………

    child_privileges数组中的对象:

    字段类型内容备注
    first_idnum特权父类 id
    report_idstr上报 id该特权的代号?
    namestr特权名称
    descstr特权简介文案
    explainstr特权介绍正文
    icon_urlstr特权图标 url
    icon_gray_urlstr特权图标灰色主题 url某些项目无此字段
    background_image_urlstr背景图片 url
    linkstr特权介绍页 url
    image_urlstr特权示例图 url
    typenum类型?目前为0
    hot_typenum是否热门特权0:普通特权
    1:热门特权
    new_typenum是否新特权0:普通特权
    1:新特权
    idnum特权子类 id

    data中的banners数组:

    类型内容备注
    0objbanner 项目 1仅 APP 端存在该信息
    nobjbanner 项目 (n+1)
    ……obj…………

    banners数组中的对象:

    字段类型内容备注
    idnumbanner 卡片 id
    indexnumbanner 卡片排序
    imagestrbanner 卡片图片 url
    titlestrbanner 卡片标题
    uristrbanner 卡片跳转页 url
    track_paramsobj上报参数

    data中的welfare对象:

    字段类型内容备注
    countnum福利数
    listarray福利项目列表

    welfare中的list数组:

    类型内容备注
    0obj福利项目 1
    nobj福利项目 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum福利 id
    namestr福利名称
    homepage_uristr福利图片 url
    backdrop_uristr福利图片 banner url
    tidnum(?)目前为0
    ranknum排列顺序
    receive_uristr福利跳转页 url

    data中的recommend_pendants对象:

    字段类型内容备注
    jump_urlstr头像框商城页面跳转 url
    listarray推荐头像框列表

    recommend_pendants中的list数组:

    类型内容备注
    0obj推荐头像框 1
    nobj推荐头像框 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum头像框 id
    namestr头像框名称
    imagestr头像框图片 url
    jump_urlstr头像框页面 url

    data中的recommend_cards对象:

    字段类型内容备注
    jump_urlstr推荐个性装扮商城页面跳转 url
    listarray推荐个性装扮列表

    recommend_cards中的list数组:

    类型内容备注
    0obj推荐个性装扮 1
    nobj推荐个性装扮 (n+1)
    ……obj…………

    list数组中的对象:

    字段类型内容备注
    idnum个性装扮 id
    namestr个性装扮名称
    imagestr个性装扮图标 url
    jump_urlstr个性装扮页面 url

    data中的sort数组:

    类型内容备注
    0obj扩展 row 排序 1
    nobj扩展 row 排序 (n+1)
    ……obj…………

    sort数组中的对象:

    字段类型内容备注
    keystr扩展 row 字段名
    sortnum排列顺序

    data中的big_point对象:

    字段类型内容备注
    point_infoobj点数信息
    sign_infoobj签到信息
    sku_infoobj大积分商品预览
    tipsbool
    point_switch_offobj

    big_point中的point_info对象:

    字段类型内容备注
    pointnum当前拥有大积分数量
    expire_pointnum失效积分?目前为0
    expire_timenum失效时间?目前为0
    expire_daysnum失效天数?目前为0

    big_point中的sign_info对象:

    字段类型内容备注
    sign_remindbool(?)
    benefitnum签到收益单位为积分
    bonus_benefitnum(?)
    normal_remindbool(?)
    muggle_taskbool(?)

    big_point中的sku_info对象:

    字段类型内容备注
    skusarray套了个娃

    sku_info中的skus数组:

    类型内容备注
    0obj大积分商品 1对象定义同大积分中心信息,故略
    nobj大积分商品 (n+1)目前仅有 3 项
    完成商品列表请求大积分中心信息接口获得
    ……obj…………

    big_point中的hot_list对象:

    字段类型内容备注
    tapsarray套了个娃

    hot_list中的taps数组:

    类型内容备注
    0obj热门类型 1
    nobj热门类型 (n+1)
    ……obj…………

    taps数组中的对象:

    字段类型内容备注
    oidstr分类数据类似 JSON
    rank_idnum分类 id
    rank_titlestr分类名称

    示例:

    curl -G 'https://api.bilibili.com/x/vip/web/vip_center/combine' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "user": {
    +            "account": {
    +                "mid": 293793435,
    +                "name": "社会易姐QwQ",
    +                "sex": "男",
    +                "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
    +                "sign": "BAC项目负责人 | 带砖技术宅 | MC 编程 电子 | 车万人\u0026术术人 | 粉丝群1136462265 博客shakaianee.top",
    +                "rank": 10000,
    +                "birthday": 1015257600,
    +                "is_fake_account": 0,
    +                "is_deleted": 0,
    +                "in_reg_audit": 0,
    +                "is_senior_member": 1
    +            },
    +            "vip": {
    +                "mid": 293793435,
    +                "vip_type": 2,
    +                "vip_status": 1,
    +                "vip_due_date": 1675785600000,
    +                "vip_pay_type": 0,
    +                "theme_type": 0,
    +                "label": {
    +                    "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,
    +                "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png",
    +                "nickname_color": "#FB7299",
    +                "is_new_user": false,
    +                "tip_material": null
    +            },
    +            "tv": {
    +                "type": 1,
    +                "vip_pay_type": 0,
    +                "status": 0,
    +                "due_date": 1640793600000
    +            },
    +            "background_image_small": "",
    +            "background_image_big": "",
    +            "panel_title": "社会易姐QwQ",
    +            "panel_sub_title": "",
    +            "avatar_pendant": {
    +                "image": "http://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
    +                "image_enhance": "http://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
    +                "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png"
    +            },
    +            "vip_overdue_explain": "年度大会员有效期 2023/02/08",
    +            "tv_overdue_explain": "超级大会员已于 2021-12-30 过期",
    +            "account_exception_text": "",
    +            "is_auto_renew": false,
    +            "is_tv_auto_renew": false,
    +            "surplus_seconds": 8287677,
    +            "vip_keep_time": 1562046702,
    +            "renew": {
    +                "text": "",
    +                "link": ""
    +            },
    +            "notice": {
    +                "text": "",
    +                "tv_text": "",
    +                "type": 0,
    +                "can_close": false,
    +                "surplus_seconds": 0,
    +                "tv_surplus_seconds": 0
    +            }
    +        },
    +        "wallet": {
    +            "coupon": 5,
    +            "point": 0,
    +            "privilege_received": false
    +        },
    +        "union_vip": null,
    +        "other_open_info": null,
    +        "privileges": [
    +            {
    +                "id": 1,
    +                "name": "内容特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 1,
    +                        "report_id": "freewatch",
    +                        "name": "免费看",
    +                        "desc": "会员用户免费看",
    +                        "explain": "需要付费才能观看的影视内容,大会员可以免费观看(播放页面提示“大会员半价”的除外,部分视频仅限在中国大陆观看)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/cca929463895f8d2a5d65d41e0f69a608b711539.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/b8ea804c872fb2b096715f52b87deb0e6cdfd476.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=free",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/22c3735f9db313b7be35d87c1b5dd6da81cea48e.jpg",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 1
    +                    },
    +                    {
    +                        "first_id": 1,
    +                        "report_id": "firstwatch",
    +                        "name": "抢先看",
    +                        "desc": "会员用户可以快人一步抢先观看",
    +                        "explain": "连载内容中需要付费抢先看的内容,大会员可以直接观看,不限次数。(部分视频仅限在中国大陆观看)",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/2dac1a2c649407dc8ce5f899f244d3aed557c458.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/20b40771e4bf180a606ddc021dfdfe6a7e56b713.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=early",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/21c0f30302944b694a12f12cbf4ee02733e1e580.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 2
    +                    },
    +                    {
    +                        "first_id": 1,
    +                        "report_id": "halfprice",
    +                        "name": "半价点播",
    +                        "desc": "付费内容半价即享",
    +                        "explain": "部分付费点播内容,大会员可享受半价购买。购买成功后,48小时内不限次数观看该影片(部分内容仅限在中国大陆观看)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/f42c20d25e10700a2bc5e7257abb7fec91634822.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/3a613880463e01c8f9496f3b571e198a111191e5.png",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/07f8b89c6d044723ece8a42f558d1e84041ff991.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 55
    +                    }
    +                ]
    +            },
    +            {
    +                "id": 4,
    +                "name": "装扮特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "card",
    +                        "name": "动态卡片装扮",
    +                        "desc": "动态卡片装扮",
    +                        "explain": "大会员可以免费使用大会员专属动态卡片装扮,用于装扮自己的动态卡片,彰显不一样的自己!\r\n有效期内随意装扮,有效期结束后动态卡片装扮自动卸下~(当前仅限客户端)",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/fb9169586bb73dda319d6379440284361f46ff18.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/8775308a302014e3bfbfa0dfc69faa2e8faeaa3a.png",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/21880645864fbdace3d4d0b52eb895551ecd536d.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 46
    +                    },
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "pendant",
    +                        "name": "专属挂件",
    +                        "desc": "专属挂件免费换",
    +                        "explain": "大会员可免费领取专属挂件,用于装扮自己的头像,展示在评论区、个人空间等等位置。有钱也买不到哦!\r\n有效期内可以随便领,有效期结束后挂件自动卸下~",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/4198eee83d94539be16f60daac277bce5f8f01dc.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/ae16ed0dcf8246a28e45403243bc65eea0e7b4c7.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=pendant",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/1e6799197b0749c263dd8a28067c0e2b6327cab5.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 23
    +                    },
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "emoticon",
    +                        "name": "评论表情",
    +                        "desc": "评论有表情",
    +                        "explain": "会员可在评论中发送图片表情,表情多多,表情包常常更新哦。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/2080c73b6fa52351111b2830bc50a2a417b55216.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/f882182fcbca520194d9047ca4903dc2c1e42372.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=emoji",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/bbb74fa3264ef9cc0ae1de15e4989b9473a0d6d3.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 22
    +                    },
    +                    {
    +                        "first_id": 4,
    +                        "report_id": "spacepicture",
    +                        "name": "空间自主头图",
    +                        "desc": "空间自主头图",
    +                        "explain": "大会员可上传个性化图片来装扮个人空间头图,让自己的空间独具魅力。\r\nweb端进入个人空间后,点击头图右上角更换头图时,可以上传自定义头图。\r\n手机客户端进入个人空间后,即可通过点击头图上的“小衣服”按钮更换头图。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/a8144d3bbfeeaf43f3eff6741f4a7f5fcecec31c.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/0ebb039d9fefd37e094f0f181d7cfac9efd019be.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/6c32fe89bb56096fc963ed35118092744cb463b6.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=cover",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/f0b521b39a941f0f7198fbe7884aa41af0817ffe.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 24
    +                    }
    +                ]
    +            },
    +            {
    +                "id": 2,
    +                "name": "身份特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "nickname",
    +                        "name": "粉色昵称",
    +                        "desc": "尊享闪亮粉色昵称",
    +                        "explain": "年度大会员的昵称将以粉色高亮显示。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/f50ed845a94ac63adaa28f47716965269f9a9bdc.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/b67288e008a9fdfec0b13a27a527bb8db701c0d4.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/fa946f3c4011c28fe780d0cdd4da279fb996903f.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=pink",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/b609d85d3e30450586653b245ac9772740ec184c.png",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 18
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "comic",
    +                        "name": "漫读券",
    +                        "desc": "每月赠送漫画阅读券",
    +                        "explain": "开通时长大于等于31天的大会员,会员有效期内,在哔哩哔哩APP“我的”-“卡券包”,及哔哩哔哩漫画APP“我的”-“卡券包”-“大会员特权”,每31天可领取5张漫读券;开通时长大于等于31天的年度大会员,会员有效期内,每31天可领取10张漫读券(可在“哔哩哔哩漫画app”中用于观看付费漫画);\r\n该特权自开通起每31天可领取一次,当期内未领取则视为作废;\r\n漫读券使用有效期至领取后30天,具体有效期及适用范围详见券面说明;\r\n领取的漫读券可在哔哩哔哩APP“我的”-“卡券包”,及哔哩哔哩漫画APP“我的”-“卡券包”中查看;该大会员特权需将漫画APP升级至3.9版本及以上领取和使用;\r\n该特权有效期至2022年12月31日。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/eeabde9fc3b0891558af31c65e23913894324c6f.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/ba0c9df7c41d6c23c3c2470b5dbbbd5cf4d3d9c2.png",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/8a0d392d0d509c4bdff76aa98ccc007cd22b65a9.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 47
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "giftbag",
    +                        "name": "游戏礼包",
    +                        "desc": "游戏福利礼包",
    +                        "explain": "年度大会员可以在游戏礼包中心领取不同游戏的多款超值礼包,礼包数量和内容常常更新。\r\n\r\n具体使用方法请参照各个礼包的使用详情。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/77cbead3c0361dc9bb5638a901b89edec5820d0c.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/c1c810d0ad13b325da6f3dbde1adb5f351adc55c.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/013b5c7b3ba45c7a0f4b7a4967cf55aca3c92e40.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=game",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/80a5e1a19192ae65f2c267f1a672c3aaeb582447.png",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 21
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "vipmall",
    +                        "name": "会员购",
    +                        "desc": "会员购优惠券",
    +                        "explain": "开通时长大于等于31天的大会员,在会员有效期内,每31天可领取1张会员购10元包邮券;开通时长大于等于31天的年度大会员,在会员有效期内,每31天可领取1张会员购10元包邮券、1张会员购满50-10元优惠券。当月开通或升级的年度大会员,也可以立即领取;\r\n优惠券及包邮券有效期至领取后15天,具体有效期及使用范围详见优惠券说明;\r\n年度大会员可前往App“分区--会员购--右上角“优惠券”查看优惠券及包邮券,并前往App“分区--会员购”,在提交订单时选择优惠券及包邮券进行使用;该大会员特权需将哔哩哔哩APP升级至6.65版本及以上领取和使用。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/37108d523b939e3c4071d4fdd104b50003a1f627.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/972283284cfb7f3b3063b1b391aeeb4cbed3249d.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/21d79540e10618ee9bbaf8874ae711442d10edf0.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=hobby",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/9af168f768312da3c31df23c056f33b3dcaefe8a.jpg",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 20
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "bcoupon",
    +                        "name": "B币券",
    +                        "desc": "每月赠送B币",
    +                        "explain": "开通大会员时长大于等于31天的年度大会员,在会员有效期内,每31天可领取1张5B币券。当月开通或升级的年度大会员,也可以立即领取;\r\n有效期至领取后30天,到期未使用的B币券将自动过期。\r\nB币券可用于承包番剧、给up主充电、兑换电池,兑换漫画赛季积分等。\r\n赠送的B币券在使用时不再赠送会员积分。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/90e1cad7ccaa4c7d29728bdb68bb1af833b2b46b.png",
    +                        "icon_gray_url": "http://i0.hdslb.com/bfs/vip/c3dcef2bfea737a1342dacea1027a3b299d3cf71.png",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/20de7f4e81775c4cec1a9653131e5b10c8c8f41d.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=bcoin",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/11b77dd4ac7aabe42616031a7fe4b2a17f9e632d.png",
    +                        "type": 1,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 19
    +                    },
    +                    {
    +                        "first_id": 2,
    +                        "report_id": "update",
    +                        "name": "身份升级",
    +                        "desc": "连续购买享受更高级权益",
    +                        "explain": "购买大会员连续累计时长超过366天,即可免费升级为年度大会员身份,升级后可立即享受粉色昵称、游戏礼包、B币券等年度大会员专享权益。\r\n注意:中断续费的话,年度大会员身份会收回哦~",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/ea7ea61dab30edcd7bc53d2ebf159c167dda6286.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/75e8a25686e7556877be4074f002c426afe8d4a6.jpg",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 56
    +                    }
    +                ]
    +            },
    +            {
    +                "id": 3,
    +                "name": "视听特权",
    +                "child_privileges": [
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "clearwatch",
    +                        "name": "超清看",
    +                        "desc": "会员用户超清晰观看",
    +                        "explain": "大会员可专享高帧率、高码率画质(最高可达超清4k),觉醒超凡视觉体验。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/1870c718e3cd2a5625934d401838e67d738d4fcc.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "http://i0.hdslb.com/bfs/vip/21d79540e10618ee9bbaf8874ae711442d10edf0.png",
    +                        "link": "https://big.bilibili.com/mobile/rights?type=clear",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/fbe4cf2288571d7b0a509c7014d5182789ffdd74.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 3
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "边下边播",
    +                        "desc": "追番看剧拒绝卡顿",
    +                        "explain": "大会员下载剧集时,已下载部分可以播放,不用等下载完成即可观看(仅限手机端使用)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/5248289d4c313678edeb68436c5411d1b6f9df7f.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/e3ae66f7c72056e95d252a33ebceac70d32a27cc.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 53
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "并行下载",
    +                        "desc": "3集一起下才够快",
    +                        "explain": "大会员下载视频时,至多可支持2-3个视频同时缓存(仅限手机端使用)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/8198d4638f3322b485787f9af909955e54696de9.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/188e6a0905a3729905a3a053ffa7dad324705ca6.png",
    +                        "type": 0,
    +                        "hot_type": 1,
    +                        "new_type": 0,
    +                        "id": 54
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "专属缓存",
    +                        "desc": "随时随地想看就看",
    +                        "explain": "海量番剧、国创、电影大片,大会员独享专属缓存特权。(仅限手机端使用,部分内容受版权或地区限制无法缓存)。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/35cf4f902ecd836db0e841cc642d1c099adb2046.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/6cf08314a94aeb5579e956aa40a2f37ab68baa2d.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 51
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "hdr",
    +                        "name": "真彩HDR",
    +                        "desc": "更真实的视觉体验",
    +                        "explain": "哔哩哔哩提供基于HDR10技术的“真彩HDR”观影模式。HDR能够呈现更多的动态范围,细致优化画面中的明暗对比及色彩显示,更好的反映出真实环境中的视觉效果。使您可以享受到色彩细腻鲜艳,明暗层次丰富的高品质观影体验。\r\n注意事项: \r\n移动端请更新APP至6.9及以上版本;安卓机型需7及以上系统,iOS机型需13及以上系统,PC端仅部分浏览器支持。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/dd6acf7bb89686e6a15fe7d7762aa6215fb856f1.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/240c332b35355cfbfd982aa7b3bc8e48b31672f0.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 1,
    +                        "id": 57
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "dolby",
    +                        "name": "杜比全景声",
    +                        "desc": "更优质的听觉盛宴",
    +                        "explain": "大会员专享杜比音效(立体声、环绕声)以及杜比全景声,采用全新的音效技术,为你带来身临其中的听觉盛宴。(该权益仅可在移动端上部分内容支持使用)",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/d6915ef153c812f57b50fe4583f8eb6879f3c265.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/08377c70a185359242cf5c83f1cd5ed5c8b3c057.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 59
    +                    },
    +                    {
    +                        "first_id": 3,
    +                        "report_id": "",
    +                        "name": "预约缓存",
    +                        "desc": "后台运行即更即存",
    +                        "explain": "连载内容尚未播出的剧集可提前预约缓存,新剧集上线后,第一时间在wifi环境下自动缓存下载到本地,省时省力追番更轻松(仅限手机端使用)。\r\n使用说明:\r\n1.此权益需要将哔哩哔哩APP设置后台自动运行状态;\r\n2.具体以可预约下载剧集的播出安排为准。",
    +                        "icon_url": "http://i0.hdslb.com/bfs/vip/6d36c5603faf4a1ac4cea6c6ff719e70c05f8c3c.png",
    +                        "icon_gray_url": "",
    +                        "background_image_url": "",
    +                        "link": "",
    +                        "image_url": "http://i0.hdslb.com/bfs/vip/8e01e169551909bcaae6ed8b40759c4e1bae95cf.png",
    +                        "type": 0,
    +                        "hot_type": 0,
    +                        "new_type": 0,
    +                        "id": 52
    +                    }
    +                ]
    +            }
    +        ],
    +        "banners": [],
    +        "welfare": {
    +            "count": 3,
    +            "list": [
    +                {
    +                    "id": 80,
    +                    "name": "联通首月1分钱2022.11",
    +                    "homepage_uri": "https://i2.hdslb.com/bfs/vip/eacd5f4242034908e46575ee256f013dce6c3d69.png",
    +                    "backdrop_uri": "https://i2.hdslb.com/bfs/vip/522325bcf86b20fe13d92e0e1cc2872af27abff7.png",
    +                    "tid": 0,
    +                    "rank": 2,
    +                    "receive_uri": "https://operation.mige.tv/a/#/23791f7f84db"
    +                },
    +                {
    +                    "id": 77,
    +                    "name": "移动随心看2022.11",
    +                    "homepage_uri": "https://i0.hdslb.com/bfs/vip/4dcc85686972f6b9b61468992c2bc03a7e648dbc.png",
    +                    "backdrop_uri": "https://i0.hdslb.com/bfs/vip/00a0db85f8f43023893e8e9d0dd90f38493624ea.png",
    +                    "tid": 0,
    +                    "rank": 3,
    +                    "receive_uri": "https://dev.coc.10086.cn/coc/web/coc2020/package2/?pageId=1541343250813415424\u0026channelId=P00000000451"
    +                },
    +                {
    +                    "id": 79,
    +                    "name": "联通2233卡2022.11",
    +                    "homepage_uri": "https://i2.hdslb.com/bfs/vip/ff8e69b13ac5a560d7ceab7ef07aa9c807880ac4.jpg",
    +                    "backdrop_uri": "https://i2.hdslb.com/bfs/vip/a45bfa461444e231df14bea94ce6d2b738426387.jpg",
    +                    "tid": 0,
    +                    "rank": 8,
    +                    "receive_uri": "https://b23.tv/ifiFs6e"
    +                }
    +            ]
    +        },
    +        "recommend_pendants": {
    +            "list": [
    +                {
    +                    "id": 1758,
    +                    "name": "至尊戒",
    +                    "image": "http://i0.hdslb.com/bfs/garb/item/025d07fa04d38236bc2258be2faf2867e2c48fe1.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/pendant/1758?navhide=1"
    +                },
    +                {
    +                    "id": 1759,
    +                    "name": "精灵王",
    +                    "image": "http://i0.hdslb.com/bfs/garb/item/2db4ebcb23656f3a6f68bd3306805cc24a9e1144.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/pendant/1759?navhide=1"
    +                },
    +                {
    +                    "id": 1293,
    +                    "name": "碧蓝航线",
    +                    "image": "http://i0.hdslb.com/bfs/face/2508daec59b2aaada2784f26f9c1c28069f28e43.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/pendant/1293?navhide=1"
    +                }
    +            ],
    +            "jump_url": "https://www.bilibili.com/h5/mall/pendant/home?navhide=1\u0026tab_id=22"
    +        },
    +        "recommend_cards": {
    +            "list": [
    +                {
    +                    "id": 18,
    +                    "name": "阿维",
    +                    "image": "http://i0.hdslb.com/bfs/vip/ffa3e8c1cf92eb0c01db61abe5741419e9302a70.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/feed/18?navhide=1"
    +                },
    +                {
    +                    "id": 27,
    +                    "name": "尤里乌斯",
    +                    "image": "http://i0.hdslb.com/bfs/vip/0f733cdfd9cbe4746fb6bc76bcb1a720efdecfc6.png",
    +                    "jump_url": "https://www.bilibili.com/h5/mall/preview/feed/27?navhide=1"
    +                }
    +            ],
    +            "jump_url": "https://www.bilibili.com/h5/mall/card/detail?navhide=1\u0026tab_id=5"
    +        },
    +        "sort": [
    +            {
    +                "key": "union_vip",
    +                "sort": 1
    +            },
    +            {
    +                "key": "other_open_info",
    +                "sort": 2
    +            }
    +        ],
    +        "in_review": false,
    +        "big_point": {
    +            "point_info": {
    +                "point": 210,
    +                "expire_point": 0,
    +                "expire_time": 0,
    +                "expire_days": 0
    +            },
    +            "sign_info": {
    +                "sign_remind": false,
    +                "benefit": 5,
    +                "bonus_benefit": 0,
    +                "normal_remind": true,
    +                "muggle_task": true
    +            },
    +            "sku_info": {
    +                "skus": [
    +                    {
    +                        "base": {
    +                            "token": "610208400319545734",
    +                            "title": "大会员1天卡",
    +                            "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png",
    +                            "rotation_pictures": [
    +                                "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png"
    +                            ],
    +                            "price": {
    +                                "origin": 240,
    +                                "promotion": {
    +                                    "price": 120,
    +                                    "type": 1,
    +                                    "discount": 5,
    +                                    "label": "5折"
    +                                }
    +                            },
    +                            "inventory": {
    +                                "available_num": 1000000,
    +                                "used_num": 707448,
    +                                "surplus_num": 292552
    +                            },
    +                            "user_type": 2,
    +                            "exchange_limit_type": 3,
    +                            "exchange_limit_num": 3,
    +                            "start_time": 1658224800,
    +                            "end_time": 1672502399,
    +                            "state": 2
    +                        }
    +                    },
    +                    {
    +                        "base": {
    +                            "token": "650284831896337625",
    +                            "title": "克鲁苏手办-会员购7.2折券",
    +                            "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20221009/b88c479976ac33162f658d12959a2111/wRI6e4GWZ4.jpg",
    +                            "rotation_pictures": [
    +                                "https://i0.hdslb.com/bfs/activity-plat/static/20221009/b88c479976ac33162f658d12959a2111/wRI6e4GWZ4.jpg"
    +                            ],
    +                            "price": {
    +                                "origin": 500,
    +                                "promotion": {
    +                                    "price": 10,
    +                                    "type": 2,
    +                                    "discount": 0,
    +                                    "label": "秒杀"
    +                                }
    +                            },
    +                            "inventory": {
    +                                "available_num": 9734,
    +                                "used_num": 4795,
    +                                "surplus_num": 4939
    +                            },
    +                            "user_type": 2,
    +                            "exchange_limit_type": 4,
    +                            "exchange_limit_num": 1,
    +                            "start_time": 1664193600,
    +                            "end_time": 1672502399,
    +                            "state": 2
    +                        }
    +                    },
    +                    {
    +                        "base": {
    +                            "token": "652569526596107481",
    +                            "title": "个性装扮8折券",
    +                            "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg",
    +                            "rotation_pictures": [
    +                                "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg"
    +                            ],
    +                            "price": {
    +                                "origin": 500,
    +                                "promotion": {
    +                                    "price": 10,
    +                                    "type": 2,
    +                                    "discount": 0,
    +                                    "label": "秒杀"
    +                                }
    +                            },
    +                            "inventory": {
    +                                "available_num": 50000,
    +                                "used_num": 14065,
    +                                "surplus_num": 35935
    +                            },
    +                            "user_type": 2,
    +                            "exchange_limit_type": 2,
    +                            "exchange_limit_num": 10,
    +                            "start_time": 1664522420,
    +                            "end_time": 1672502399,
    +                            "state": 2
    +                        }
    +                    }
    +                ]
    +            },
    +            "point_switch_off": false,
    +            "tips": [
    +                {
    +                    "content": "今天的任务还没有做完哦"
    +                }
    +            ]
    +        },
    +        "hot_list": {
    +            "taps": [
    +                {
    +                    "oid": "{season_type:1}",
    +                    "rank_id": 118,
    +                    "rank_title": "番剧"
    +                },
    +                {
    +                    "oid": "{season_type:2,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 174,
    +                    "rank_title": "电影"
    +                },
    +                {
    +                    "oid": "{season_type:4}",
    +                    "rank_id": 119,
    +                    "rank_title": "国创"
    +                },
    +                {
    +                    "oid": "{season_type:5,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 176,
    +                    "rank_title": "电视剧"
    +                },
    +                {
    +                    "oid": "{season_type:3,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 175,
    +                    "rank_title": "纪录片"
    +                },
    +                {
    +                    "oid": "{season_type:7,style_id:0,day:3,rank_type:0}",
    +                    "rank_id": 177,
    +                    "rank_title": "综艺"
    +                }
    +            ]
    +        }
    +    }
    +}
    +

    大积分

    大积分商品类型

    id类型
    1大会员
    2会员购
    3生活服务
    4漫画
    5装扮

    大积分任务列表

    id类型
    bonus大会员福利大积分
    privilege浏览大会员权益页面
    animatetab浏览追番频道页10秒
    filmtab浏览影视频道页10秒
    vipmallview浏览会员购页面10秒
    ogvwatch观看任意正片内容
    tvodbuy购买单点付费影片
    vipmallbuy购买指定会员购商品

    大积分中心信息

    https://api.biliapi.com/x/vip_point/homepage/combine

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    url参数:

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    vip_infoobj大会员信息
    contentstr
    point_infoobj点数信息
    taskobj任务信息任务列表
    bannerarraybanner 卡片列表
    goods_categoryarray商品类型列表
    goods_skusarray商品明细列表包含所有类型的商品
    current_tsnum本次请求时间秒时间戳

    data中的vip_info对象:

    字段名类型内容备注
    typenum大会员类型0:无
    1:月大会员
    2:年度及以上大会员
    statusnum大会员状态0:无
    1:有
    due_datenum大会员过期时间毫秒时间戳
    vip_pay_typenum支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    start_timenum首次大会员开通时间秒时间戳
    paid_typenum0
    midnum当前用户 mid
    rolenum大会员类型1:月度大会员
    3:年度大会员
    7:十年大会员
    15:百年大会员
    tv_vip_statusnum电视大会员状态0:无
    1:有
    tv_vip_pay_typenum电视大会员支付类型0:未支付(常见于官方账号)
    1:已支付(以正常渠道获取的大会员均为此值)
    tv_due_datenum电视大会员过期时间秒时间戳

    data中的point_info对象:

    字段名类型内容备注
    pointnum当前拥有大积分数量
    expire_pointnum失效积分?目前为0
    expire_timenum失效时间?目前为0
    expire_daysnum失效天数?目前为0

    data中的task对象:

    字段名类型内容备注
    task_itemarray当前页面显示的任务
    task_countnum任务总数
    signedboolfalse
    scorenum5

    task中的 task_item数组:

    类型内容备注
    0obj任务 1
    nobj任务 (n+1)
    ……obj…………

    task_item数组中的对象:

    字段名类型内容备注
    task_codestr任务 id详见大积分任务列表
    statenum任务状态0:未领取
    1:未完成
    3:已完成/已领取
    titlestr任务名称
    iconstr任务图标 url
    subtitlestr任务副标题
    explainstr任务详情说明
    linkstr任务跳转 urlweb方式:目标页面url
    APP方式:APP内uri
    vip_limitnum是否为大会员专享任务0:否
    1:是
    complete_timesnum已完成次数
    max_timesnum最大完成次数
    recall_numnum重试次数?目前为0

    data中的 banner数组:

    类型内容备注
    0objbanner 项目 1
    nobjbanner 项目 (n+1)
    ……obj…………

    banner数组中的对象:

    字段名类型内容备注
    linkstr跳转 url
    image_urlstrbanner 卡片 url

    data中的 goods_category数组:

    类型内容备注
    0obj商品类型 1
    nobj商品类型 (n+1)
    ……obj…………

    goods_category数组中的对象:

    字段名类型内容备注
    idnum商品类型 id具体类型见大积分商品类型
    namestr商品类型名称
    statenum状态目前为2

    data中的 goods_skus数组:

    类型内容备注
    0obj大积分商品 1
    nobj大积分商品 (n+1)
    ……obj…………

    goods_skus数组中的对象:

    字段名类型内容备注
    baseobj套了个娃

    goods_skus数组中的对象中的base对象:

    字段名类型内容备注
    tokenstr商品 token用于购买 & 明细页面
    titlestr商品名称
    picturestr商品图片 url
    rotation_picturesarray商品图片组
    priceobj价格信息
    inventoryobj库存信息
    user_typenum2
    exchange_limit_typenum2 3 4
    exchange_limit_numnum限购数量
    start_timenum起售时间秒时间戳
    end_timenum止售时间秒时间戳
    statenum状态?2

    base中的rotation_pictures数组:

    类型内容备注
    0str商品图片 url目前只有1项
    同上层对象的商品图片 url字段

    base中的price对象:

    字段名类型内容备注
    originnum商品原价单位为积分
    promotion有折扣:obj
    无折扣:null
    折扣信息

    price中的promotion对象:

    字段名类型内容备注
    pricenum折后价格单位为积分
    typenum折扣类型1:普通折扣
    2:秒杀
    discountnum折扣力度
    labelstr标签文案普通折扣:显示为 eg:5折
    秒杀:显示为 eg:秒杀

    base中的inventory对象:

    字段名类型内容备注
    available_numnum库存总量
    used_numnum已售数量
    surplus_numnum剩余数量

    示例:

    web 方式:

    curl 'https://api.bilibili.com/x/vip_point/homepage/combine' \
    +	-b 'SESSDATA=xxx'
    +

    APP 方式:

    curl -G 'https://api.bilibili.com/x/vip_point/homepage/combine' \
    +	---data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "vip_info": {
    +      "type": 2,
    +      "status": 1,
    +      "due_date": 1678723200000,
    +      "vip_pay_type": 0,
    +      "start_time": 1475986259,
    +      "paid_type": 0,
    +      "mid": 10086,
    +      "role": 3,
    +      "tv_vip_status": 0,
    +      "tv_vip_pay_type": 0,
    +      "tv_due_date": 0
    +    },
    +    "content": "",
    +    "point_info": {
    +      "point": 355,
    +      "expire_point": 0,
    +      "expire_time": 0,
    +      "expire_days": 0
    +    },
    +    "task": {
    +      "task_item": [
    +        {
    +          "task_code": "animatetab",
    +          "state": 1,
    +          "title": "浏览追番频道页10秒",
    +          "icon": "https://i0.hdslb.com/bfs/activity-plat/static/20220607/b66bfe4ccfd6bed05bdb54008ff5c7aa/uOwc1tuJwm.png",
    +          "subtitle": "<span class=\"active\">+10大积分</span>",
    +          "explain": "从本任务入口跳转至追番频道页,并连续浏览页面达10秒可得10大积分,每天可完成1次。如浏览过程中离开追番频道页则中断计时,任务判定失败,需重新从本任务入口再次跳转。",
    +          "link": "bilibili://home?bottom_tab_name=首页&tab_name=追番&tab_id=bangumi&vip_task_countdown=10000",
    +          "vip_limit": 1,
    +          "complete_times": 0,
    +          "max_times": 1,
    +          "recall_num": 0
    +        },
    +        {
    +          "task_code": "filmtab",
    +          "state": 1,
    +          "title": "浏览影视频道页10秒",
    +          "icon": "https://i0.hdslb.com/bfs/activity-plat/static/20220607/b66bfe4ccfd6bed05bdb54008ff5c7aa/bWPJRBuMh3.png",
    +          "subtitle": "<span class=\"active\">+10大积分</span>",
    +          "explain": "从本任务入口跳转至影视频道页,并连续浏览页面达10秒可得10大积分,每天可完成1次。如浏览过程中离开影视频道页则中断计时,任务判定失败,需重新从本任务入口再次跳转。",
    +          "link": "bilibili://home?bottom_tab_name=首页&tab_name=影视&tab_id=film&vip_task_countdown=10000",
    +          "vip_limit": 1,
    +          "complete_times": 0,
    +          "max_times": 1,
    +          "recall_num": 0
    +        }
    +      ],
    +      "task_count": 8,
    +      "signed": false,
    +      "score": 5
    +    },
    +    "banner": [
    +      {
    +        "link": "https://www.bilibili.com/blackboard/activity-0sjbGf3IJt.html?msource=jifen_banner",
    +        "image_url": "https://i0.hdslb.com/bfs/activity-plat/static/20220819/b88c479976ac33162f658d12959a2111/KS1XfLBuk7.png"
    +      }
    +    ],
    +    "goods_category": [
    +      {
    +        "id": 1,
    +        "name": "大会员",
    +        "state": 2
    +      },
    +      {
    +        "id": 2,
    +        "name": "会员购",
    +        "state": 2
    +      },
    +      {
    +        "id": 5,
    +        "name": "装扮",
    +        "state": 2
    +      },
    +      {
    +        "id": 4,
    +        "name": "漫画",
    +        "state": 2
    +      },
    +      {
    +        "id": 3,
    +        "name": "生活服务",
    +        "state": 2
    +      }
    +    ],
    +    "goods_skus": [
    +      {
    +        "base": {
    +          "token": "610208400319545734",
    +          "title": "大会员1天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/UMsNkcRz1z.png"
    +          ],
    +          "price": {
    +            "origin": 240,
    +            "promotion": {
    +              "price": 120,
    +              "type": 1,
    +              "discount": 5,
    +              "label": "5折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 1000000,
    +            "used_num": 552427,
    +            "surplus_num": 447573
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 3,
    +          "start_time": 1658224800,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "650284831896337625",
    +          "title": "克鲁苏手办-会员购7.2折券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/W8QR1HfVP2.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/W8QR1HfVP2.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 6459,
    +            "used_num": 1662,
    +            "surplus_num": 4797
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 4,
    +          "exchange_limit_num": 1,
    +          "start_time": 1664193600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "652569526596107481",
    +          "title": "个性装扮8折券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/d5McccHzaX.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 50000,
    +            "used_num": 4486,
    +            "surplus_num": 45514
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 10,
    +          "start_time": 1664522420,
    +          "end_time": 1667145599,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "652569526663216345",
    +          "title": "大会员6周年3天试用装扮",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/0AgpMilH81.jpeg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/0AgpMilH81.jpeg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/umgPkNfHVr.jpeg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/2q5F0uSp7j.jpeg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220930/b88c479976ac33162f658d12959a2111/CHAvcqXip3.jpeg"
    +          ],
    +          "price": {
    +            "origin": 200,
    +            "promotion": {
    +              "price": 140,
    +              "type": 1,
    +              "discount": 7,
    +              "label": "7折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 5000,
    +            "used_num": 1553,
    +            "surplus_num": 3447
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 3,
    +          "start_time": 1664522420,
    +          "end_time": 1667145599,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "617703254146515334",
    +          "title": "元龙-哔哩哔哩漫画专属限免卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220801/b88c479976ac33162f658d12959a2111/ZvgHCqUX8z.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/IYmEC7WhRg.png"
    +          ],
    +          "price": {
    +            "origin": 120,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 2500,
    +            "used_num": 676,
    +            "surplus_num": 1824
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 5,
    +          "start_time": 1659337200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "593959019090116167",
    +          "title": "网易严选Pro纯享会员季卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/MmiTOh3B0r.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/MmiTOh3B0r.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 110000,
    +            "used_num": 36254,
    +            "surplus_num": 73746
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655802000,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "610739183048294790",
    +          "title": "大会员3天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/sxDsdSnSPc.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/sxDsdSnSPc.png"
    +          ],
    +          "price": {
    +            "origin": 720,
    +            "promotion": {
    +              "price": 360,
    +              "type": 1,
    +              "discount": 5,
    +              "label": "5折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 250000,
    +            "used_num": 75968,
    +            "surplus_num": 174032
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1658246400,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "639706098068193670",
    +          "title": "会员购8魔晶券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/yPGHN7xESw.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/yPGHN7xESw.png"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 300,
    +              "type": 1,
    +              "discount": 6,
    +              "label": "6折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 28224,
    +            "used_num": 8274,
    +            "surplus_num": 19950
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 4,
    +          "exchange_limit_num": 1,
    +          "start_time": 1662616800,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "617703254280733062",
    +          "title": "入间同学入魔了!-哔哩哔哩漫画专属限免卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220801/b88c479976ac33162f658d12959a2111/OT3LOXSnJN.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/c6RPOSe9Mn.png"
    +          ],
    +          "price": {
    +            "origin": 120,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 2500,
    +            "used_num": 820,
    +            "surplus_num": 1680
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 5,
    +          "start_time": 1659337200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "643171124875723142",
    +          "title": "会员购 5 元无门槛优惠券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/aFmXluGivH.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/aFmXluGivH.png"
    +          ],
    +          "price": {
    +            "origin": 1200,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 5097,
    +            "used_num": 102,
    +            "surplus_num": 4995
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1663135200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "643171125009940870",
    +          "title": "会员购10元运费券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/Tgki97iGuT.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/Tgki97iGuT.png"
    +          ],
    +          "price": {
    +            "origin": 2400,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1347,
    +            "used_num": 104,
    +            "surplus_num": 1243
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1663135200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "589270953100440487",
    +          "title": "大会员周卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/0veyfxh8pw.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/0veyfxh8pw.png"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": {
    +              "price": 1440,
    +              "type": 1,
    +              "discount": 5,
    +              "label": "5折"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 25000,
    +            "used_num": 23303,
    +            "surplus_num": 1697
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655049600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "617703254012297606",
    +          "title": "凡人修仙传-哔哩哔哩漫画专属限免卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220801/b88c479976ac33162f658d12959a2111/6ggYDOHmaI.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/Dgw0KcexF4.png"
    +          ],
    +          "price": {
    +            "origin": 120,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 2500,
    +            "used_num": 525,
    +            "surplus_num": 1975
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 5,
    +          "start_time": 1659337200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "615454955335156102",
    +          "title": "0元辣翅-麦当劳券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nRJUBwY08K.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nRJUBwY08K.jpg"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1000,
    +            "used_num": 13,
    +            "surplus_num": 987
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1659006000,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "634599326722654598",
    +          "title": "会员购6.7折优惠券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220830/b88c479976ac33162f658d12959a2111/UsBxJtHwuE.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220830/b88c479976ac33162f658d12959a2111/UsBxJtHwuE.png"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 200000,
    +            "used_num": 30051,
    +            "surplus_num": 169949
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 10,
    +          "start_time": 1661857200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "589270952362242983",
    +          "title": "QQ音乐豪华绿钻7天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/5ffuc5gpsE.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/5ffuc5gpsE.jpg"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1267,
    +            "used_num": 17,
    +            "surplus_num": 1250
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655049600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "640378711354474886",
    +          "title": "BEMOE 咒术回战 角色立绘徽章 官方首发版",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/hgziHzH19f.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/hgziHzH19f.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/NHOJmvbEAI.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/mcBJhmyd1q.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/9BpHMBjUnV.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/ZoJSeBHQ49.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/NtVKcx2rlk.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/DIElnpB6oa.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/UCjfV1tJZy.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/RoXnjbx7pv.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/ENZ9CWhZPs.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220529/b88c479976ac33162f658d12959a2111/Q5XFivyjX7.png"
    +          ],
    +          "price": {
    +            "origin": 6000,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 8,
    +            "used_num": 2,
    +            "surplus_num": 6
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1662703200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "640378708804338054",
    +          "title": "世嘉 VOCALOID 初音未来 ∞礼服Ver. 景品手办 再版 独家首发",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/MKe5xDCKOy.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/WIzEBSkANE.png",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/R0PT8fvVsu.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/bfaauwzc0F.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/9UDyJkhjaA.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/ZFkov947WL.jpg",
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220530/b88c479976ac33162f658d12959a2111/MKe5xDCKOy.jpg"
    +          ],
    +          "price": {
    +            "origin": 26160,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1,
    +            "used_num": 0,
    +            "surplus_num": 1
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 2,
    +          "exchange_limit_num": 1,
    +          "start_time": 1662703200,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "650284831695011033",
    +          "title": "初音手办-会员购7.2折券",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/KAeQDqSGMy.jpg",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220923/b88c479976ac33162f658d12959a2111/KAeQDqSGMy.jpg"
    +          ],
    +          "price": {
    +            "origin": 500,
    +            "promotion": {
    +              "price": 10,
    +              "type": 2,
    +              "discount": 0,
    +              "label": "秒杀"
    +            }
    +          },
    +          "inventory": {
    +            "available_num": 7387,
    +            "used_num": 2431,
    +            "surplus_num": 4956
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 4,
    +          "exchange_limit_num": 1,
    +          "start_time": 1664193600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      },
    +      {
    +        "base": {
    +          "token": "589270952563569575",
    +          "title": "QQ超级会员7天卡",
    +          "picture": "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nTB809PW5i.png",
    +          "rotation_pictures": [
    +            "https://i0.hdslb.com/bfs/activity-plat/static/20220809/b88c479976ac33162f658d12959a2111/nTB809PW5i.png"
    +          ],
    +          "price": {
    +            "origin": 2880,
    +            "promotion": null
    +          },
    +          "inventory": {
    +            "available_num": 1279,
    +            "used_num": 29,
    +            "surplus_num": 1250
    +          },
    +          "user_type": 2,
    +          "exchange_limit_type": 3,
    +          "exchange_limit_num": 1,
    +          "start_time": 1655049600,
    +          "end_time": 1672502399,
    +          "state": 2
    +        }
    +      }
    +    ],
    +    "current_ts": 1665149272
    +  }
    +}
    +

    大积分改变记录

    https://api.bilibili.com/x/vip_point/list

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    url 参数:

    参数名类型内容必要性备注
    access_keystrAPP 登录 TokenAPP 方式必要
    change_typenum改变类型非必要默认 0
    0:所有类型
    1:获取记录
    2:消耗记录
    pnnum分页页数非必要默认 1
    psnum分页大小非必要默认 20

    json 回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    messagestr0
    ttlnum1
    dataobj信息本体

    data对象:

    字段名类型内容备注
    totalnum总记录数
    big_point_listarray积分记录数组不存在时为 null,而不是空数组

    data.big_point_list 数组中的对象:

    字段名类型内容备注
    pointnum改变的积分数消耗为负数
    change_timenum改变时间戳
    remarkstr批注,积分改变的原因
    order_nostr编号
    image_urlstr商品图片消耗时存在,获取时为空

    示例:

    web 方式:

    curl 'https://api.bilibili.com/x/vip_point/list?ps=1&pn=1' \
    +	-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "total": 1,
    +    "big_point_list": [
    +      {
    +        "point": 40,
    +        "change_time": 1669782576,
    +        "remark": "观看任意正片内容",
    +        "order_no": "t-s-c-5228025310",
    +        "image_url": ""
    +      }
    +    ]
    +  }
    +}
    +
    + + + diff --git a/docs/vip/clockin.html b/docs/vip/clockin.html new file mode 100644 index 0000000000..69c3eadef4 --- /dev/null +++ b/docs/vip/clockin.html @@ -0,0 +1,43 @@ + + + + + + + + + 大会员签到 | BAC Document + + + + +

    大会员签到

    大积分签到

    https://api.bilibili.com/pgc/activity/score/task/sign

    请求方式:POST

    认证方式:Cookie (SESSDATA) / access_key

    Cookie 鉴权方式下需要满足以下条件:

    • Referer*.bilibili.com域名下
    • SESSDATA 需要进行 url 编码,即 , 替换为 %2C

    正文参数( application/x-www-form-urlencoded ):

    参数名类型内容必要性备注
    access_keystrAPP登录TokenAPP方式必要
    csrfstrCSRF Token (位于cookie)非必要

    json回复:

    根对象:

    字段名类型内容备注
    codenum响应码0:成功
    -101:账号未登录
    -401:非法访问
    -403:访问权限不足
    messagestr错误信息

    示例:

    web 方式:

    curl 'https://api.bilibili.com/pgc/activity/score/task/sign' \
    +    --data-urlencode 'csrf=xxx' \
    +	-b 'SESSDATA=xxx' \
    +	--referer 'https://www.bilibili.com'
    +

    APP 方式:

    curl 'https://api.bilibili.com/pgc/activity/score/task/sign' \
    +	--data-urlencode 'access_key=xxx'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "success"
    +}
    +
    + + + diff --git a/docs/vip/info.html b/docs/vip/info.html new file mode 100644 index 0000000000..70ff7b8a7a --- /dev/null +++ b/docs/vip/info.html @@ -0,0 +1,86 @@ + + + + + + + + + 大会员信息 | BAC Document + + + + +

    大会员信息

    卡券状态查询

    https://api.bilibili.com/x/vip/privilege/my

    请求方式:GET

    认证方式:Cookie (SESSDATA) / access_key

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值-101:账号未登录
    -400:请求错误
    0:成功
    messagestr错误信息
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    listarray卡券信息列表
    is_short_vipbool(?)
    is_freight_openbool(?)
    levelnum当前等级
    cur_expnum当前拥有经验值
    next_expnum升级所需经验值满级时为 -1
    is_vipbool是否为大会员
    is_senior_membernum(?)
    format060102num(?)

    list数组:

    索引类型内容type备注
    0objB币兑换状态1
    1obj会员购优惠券兑换状态2
    2obj漫画福利券兑换状态3
    3obj会员购包邮券兑换状态4
    4obj漫画商城优惠券兑换状态5
    5obj装扮体验卡兑换状态6
    6obj课堂优惠券兑换状态7
    7obj王者荣耀)游戏礼盒兑换状态8每日可领取,目前 state 固定为 1
    8obj每日 10 经验领取状态9每日可领取,未完成时 state 为 2

    list中的对象:

    字段类型内容备注
    typenum卡券类型详见 list 数组表格中的 type
    statenum兑换状态0:未兑换
    1:已兑换
    2:未完成(若需要完成)
    expire_timenum本轮卡券过期时间戳当月月底/当日24点
    vip_typenum当前用户的大会员状态2:年度大会员
    next_receive_daysnum距下一轮兑换剩余天数无权限时,每月任务固定为 0,每日固定为 1
    period_end_unixnum下一轮兑换开始时间戳秒级时间戳

    注意: 卡券除每日可领取(type89)的,其他可通过 https://api.bilibili.com/x/vip/privilege/receive 领取
    每日 10 经验领取(type9)需要完成视频观看,未完成的 state 为 2。

    示例:

    curl 'https://api.bilibili.com/x/vip/privilege/my' \
    +	-b "SESSDATA=xxx"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "list": [
    +      {
    +        "type": 1,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 2,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 3,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 4,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      },
    +      {
    +        "type": 5,
    +        "state": 0,
    +        "expire_time": 1667231999,
    +        "vip_type": 2,
    +        "next_receive_days": 29,
    +        "period_end_unix": 1667491200
    +      }
    +    ],
    +    "is_short_vip": false,
    +    "is_freight_open": true
    +  }
    +}
    +
    + + + diff --git a/docs/wallet/info.html b/docs/wallet/info.html new file mode 100644 index 0000000000..dcb4568097 --- /dev/null +++ b/docs/wallet/info.html @@ -0,0 +1,56 @@ + + + + + + + + + 基本信息 | BAC Document + + + + +

    基本信息

    获取用户钱包

    https://pay.bilibili.com/paywallet/wallet/getUserWallet

    请求方法: POST

    认证方式: Cookie (SESSDATA) (注意 , * 需要 URL 转义)

    正文参数 (application/json):

    参数名类型内容必要性备注
    panelTypenum面板类型不必要默认为 3
    platformTypenum平台类型必要任意有效数字, 默认为 3
    timestampnum当前时间不必要UNIX 毫秒时间戳
    traceIdnum追踪 ID不必要与 timestamp 值相同
    versionstr版本不必要默认 1.0

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    8006000004: 缺参
    别的错误码在 errno
    errnonum错误码8006000004: 缺参
    800501008: 内部错误(传的不是JSON)
    800501007: 用户未登录
    msgstr返回信息SUCCESS: 成功
    否则为错误信息
    showMsgstr显示信息成功时为空
    dataobj数据本体
    successbool是否成功

    data 对象:

    字段类型内容备注
    midnum用户 mid
    totalBpnum总计 B 币
    defaultBpnum默认 B 币?
    isoBpnumiOS B 币?
    couponBalancenum优惠券余额
    availableBpnum可用 B 币
    unavailableBpnum不可用 B 币
    unavailableReasonstr不可用原因
    tipstr请XXXXX请投币??
    needShowClassBalancenum需要显示类平衡??1

    示例:

    curl -X POST 'https://pay.bilibili.com/paywallet/wallet/getUserWallet' \
    +--data-raw '{"platformType":"3"}' \
    +-H 'content-type: application/json' \
    +-b 'SESSDATA=xxx'
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "errno": 0,
    +  "msg": "SUCCESS",
    +  "showMsg": "",
    +  "data": {
    +    "mid": 616368979,
    +    "totalBp": 0.00,
    +    "defaultBp": 0.00,
    +    "iosBp": 0.00,
    +    "couponBalance": 0,
    +    "availableBp": 0.00,
    +    "unavailableBp": 0,
    +    "unavailableReason": "",
    +    "tip": "请XXXXX",
    +    "needShowClassBalance": 1
    +  },
    +  "success": true
    +}
    +
    + + + diff --git a/docs/web_widget/404_manga.html b/docs/web_widget/404_manga.html new file mode 100644 index 0000000000..c5d4f3b4da --- /dev/null +++ b/docs/web_widget/404_manga.html @@ -0,0 +1,33 @@ + + + + + + + + + 404页漫画收集 | BAC Document + + + + +

    404页漫画收集

    视频稿件错误提示图

    https://static.hdslb.com/images/error/no_video.pngopen in new window

    https://static.hdslb.com/images/error/wait_for_release.pngopen in new window

    https://static.hdslb.com/images/error/wait_for_review.pngopen in new window

    https://static.hdslb.com/images/error/no_video_login.pngopen in new window

    https://static.hdslb.com/images/error/video_conflict.pngopen in new window

    static类型

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-1.pngopen in new window

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-2.pngopen in new window

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-3.pngopen in new window

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-4.pngopen in new window

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-5.pngopen in new window

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-6.pngopen in new window

    https://activity.hdslb.com/zzjs/cartoon/errorPage-manga-7.pngopen in new window

    dynamic类型

    以下内容爬取自接口https://api.bilibili.com/x/activity/operation/list?source_id=630edcfddbd0b39ca7371ad2&pn=1&ps=5且进行去重

    https://i0.hdslb.com/bfs/activity-plat/cover/20171215/o6y3r7or6z.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171215/2978n4wwpj.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171215/697mr4w97k.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171215/1297m40w7j.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171110/697zx5k7p3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171110/z4prl744z3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171110/798z30yro1.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171110/890zl5z890.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171110/o6y4qnjr3z.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/j6q4m9o9k3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073x5k78w.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/n6xkqmlkr0.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/597vq87jxx.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/4973p51n10.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073x5084w.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/397ro5k761.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/597vq8kwxk.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/697wr522nn.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/n6xkqm5wjp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/k7rwnj474r.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/397rokjopp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/9073xqk97w.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171103/4973pln894.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/l61j9zw8qm.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/o6kmv3r2w5.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/396mxjn5mq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/k7z6myrz2v.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/y4xzkn6y09.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/y4xzkn1ryz.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/z4y06on3mm.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/j6y5nx3wjw.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/m62ko1j4j8.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm09plj.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/z4y06mm37l.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/n6jl5yq9yp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/x60yjknjzw.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/o6kmvzp2pz.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm169w7.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/029jozv8jp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/126kq1owy3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/596ox53lzp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/p6lnm1p94x.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/k7z6mv4ryr.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/l61j9jzwvm.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20171017/496nrnmz9x.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/q0r1q5o63q.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/39l7rjmxl5.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/q0r1q51434.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/n6oxk2onql.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/y46oqn1lj9.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/49m73k2r1x.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170626/90r73kv75y.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170522/39lv2lxqnp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170522/r9v5j96lk4.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170522/z45lr4vmk3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66kmm08q8.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/z440ww0xox.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/l66jllq8kq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170522/12j0zwpp5l.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66kmm8w78.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/399m88l87m.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/n66lnnmqjj.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170522/m6nz424xn9.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k334q84.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/900vooj8xw.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/o66mooowy6.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/k776kkw10o.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/499njjrv79.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/y44zww9mz9.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/m66km4xz6p.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/499njw4m17.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3zlm7j.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/l66jl28oqq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw048k8.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/j665jz9j5v.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/699pl2484w.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/x66y3r2nyo.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3z3lp3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw6r98w.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/moCBusxHG2.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/LJjOhuzi2l.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/fzjTcKtbOA.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PEXod21DmE.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/5NYt7b0jWy.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I6DotAbsU0.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VZkCQV3H8N.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/pMst3j1Wh2.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/FFBsId9kkU.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/j8PQollWgb.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/CvPAnLwfLB.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/86Og1GMuE6.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/4gKxYMNEd7.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VUahg7oVIp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0Wp3GSTqa2.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/GI167h1ubu.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/abiv2iRJiN.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/vocgKB4Bjl.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/6cLRxO9RkR.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aoqhUIvZ3x.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/zRespfCkmo.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/3wdVaSoWjI.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XywNN8KlpA.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Yg8QV17GKZ.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/h4ytfrWZID.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/J8BB0k7uKM.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/i8sLpoa4Wn.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XHhqvtddUA.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hr97jf0KpZ.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/DUmMBOlW5E.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dKua3o3HRw.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/f1BYK2oCwp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/els4Nwd0F6.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PSI3OAv9Hs.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JGrXDA8RKH.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wT6pn2O18p.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Okx4iJ1PLv.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/8Ri6Xlk826.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/nNEBpbZlI0.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HtPXYfpuXU.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Wwzw0XTwUl.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/E738vcDvd3.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dFQfkypPWA.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hinEAw6Abq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/KNH7Hz104m.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/2ETVB2F8Pq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Bk5vekQZoa.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/IcRizWqXCq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/jvNq7sSxAT.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/laYMWQCnnY.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I2ep6rPv8i.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HKynZO2AxL.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dtYHFq8LIq.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/egQQvfxwvY.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/duwQurWqyy.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wqP0BMH8vp.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/00FlTw9i50.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/V8wFvnEm3T.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VrYZXfmehY.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/QBchCuhVFr.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hJo8sPKDkj.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JnqnvZTKxf.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0gu9qonH7t.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aA5e4coXVQ.pngopen in new window

    https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/UM9bnucVhq.pngopen in new window

    + + + diff --git a/docs/web_widget/header.html b/docs/web_widget/header.html new file mode 100644 index 0000000000..bbabf881bb --- /dev/null +++ b/docs/web_widget/header.html @@ -0,0 +1,49 @@ + + + + + + + + + 首页横幅头图 | BAC Document + + + + +

    首页横幅头图

    获取方法

    • 关注 UP 主 壁纸喵open in new window 获取静态图片

    • ✅ 通过主页获取头图接口获取静态图片与各部分及其动态偏移信息

    获取首页头图

    https://api.bilibili.com/x/web-show/page/header

    请求方式: GET

    URL参数:

    参数名类型内容必要性备注
    resource_idnum资源 ID?必要默认为 142, 实测可为任意有效整数

    JSON回复:

    根对象:

    字段类型内容备注
    codenum返回值0: 成功
    messagestr错误信息默认为 0
    ttlstr1
    dataobj信息本体

    data 对象:

    字段类型内容备注
    namestr
    picstr静态头图 URL
    litpicstrbilibili logo URL
    urlstr
    is_split_layerstr是否分层1: 是
    split_layerstr分层信息一个套在字符串里的 JSON 对象

    data 对象中的split_layer 字符串里的 JSON 对象:

    字段类型内容备注
    versionstr版本号目前为 1
    layersarray层信息

    split_layer 字符串里的 JSON 对象中的 layers 数组:

    类型内容备注
    0obj第 1 个层信息
    2obj第 3 个层信息
    1obj第 2 个层信息
    ……obj……
    nobj第 (n+1) 个层信息

    split_layer 字符串里的 JSON 对象中的 layers 数组里的对象:

    字段类型内容备注
    resourcesobj图层资源
    scaleobj缩放信息
    rotateobj路径?
    translateobj偏移信息
    blurobj模糊信息?
    opacityobj不透明度?内容 wrapclamp
    idnum层 ID似乎即图层索引
    namestr层名称

    layers 数组里的对象中的 resources 对象:

    字段类型内容备注
    srcstr图层 URL
    idnum0

    layers 数组里的对象中的 scale 对象:

    字段类型内容备注
    initialnum初始缩放值?
    offsetnum缩放偏移值?部分层无此项

    layers 数组里的对象中的 translate 对象:

    字段类型内容备注
    offsetarray偏移值?[x, y]? 部分层无此项

    示例:

    获取 Sat, 03 Aug 2024 01:41:35 GMT 时刻的 B 站首页头图

    curl -G "https://api.bilibili.com/x/web-show/page/header" \
    +--data-urlencode "resource_id=142"
    +
    查看响应示例:
    {
    +  "code": 0,
    +  "message": "0",
    +  "ttl": 1,
    +  "data": {
    +    "name": "",
    +    "pic": "http://i0.hdslb.com/bfs/archive/e5b7fca0c001cbe0b77a2956e4c861d9f19c4575.png",
    +    "litpic": "http://i0.hdslb.com/bfs/archive/c8fd97a40bf79f03e7b76cbc87236f612caef7b2.png",
    +    "url": "",
    +    "is_split_layer": 1,
    +    "split_layer": "{\"version\":\"1\",\"layers\":[{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/75ec2d45ce8c942a1f7379d4641171da4d90ab0d.png\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":0,\"name\":\"19-背景水\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/286eb259a60a0eabfcde96d7ea92d239fe68b3fe.png\",\"id\":0}],\"scale\":{\"initial\":0.53},\"rotate\":{},\"translate\":{\"offset\":[10,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":1,\"name\":\"18-再远景\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/782d55aeca6cc75f51d2d630005f514a61a0ddfa.png\",\"id\":0}],\"scale\":{\"initial\":0.55},\"rotate\":{},\"translate\":{\"offset\":[10,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":3,\"name\":\"16-远景房子1\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/d6c941cf2d5fc6c717173f7e3f166dbc444aa15b.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[30,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":4,\"name\":\"15-两侧房子\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/27e411d92729604aa594858beb5130ed60aad76d.png\",\"id\":0}],\"scale\":{\"initial\":0.55,\"offset\":0.2},\"rotate\":{},\"translate\":{\"offset\":[30,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":2,\"name\":\"17-远景鲸鱼机\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/09d0855b6b6d6965e8f02404777986237848c6c9.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[300,10]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":5,\"name\":\"14-中景鲸鱼机\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/40878bbef514e2d4bf5d660fe1145c869567bec2.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[20,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":6,\"name\":\"13-窗外垃圾\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/42485baddbca05d2c4c7710a0b76b74d303e06d7.png\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{\"offset\":[80,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":7,\"name\":\"12-机场\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/8ea0e95a8e5fc85ae227810925dba1ace1e9fcba.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[120,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":8,\"name\":\"11-空姐\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/c13ca9c6405c71bf864ed2bc421680cb437f45ef.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[80,40]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":9,\"name\":\"10-泡泡04\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/a43c6833d262301373234ffbd6934559d2ce7fb2.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[100,50]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":10,\"name\":\"09-泡泡03\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/ce8c5e45230a6d3805baf60f5916f1cd441aac8e.png\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{\"offset\":[130,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":11,\"name\":\"08-22\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/cbf19f3682dfb02e62557d07fefaf241a80296a1.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[200,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":12,\"name\":\"07-近路人\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/4a4c1f6b2977478c73e41f39a2910c3b3c33167e.webm\",\"id\":0}],\"scale\":{\"initial\":0.5},\"rotate\":{},\"translate\":{\"initial\":[1000,0],\"offset\":[20,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":21,\"name\":\"右气泡\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/7998ca9f0bc267375fb7b45f75626d96806f94d7.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[300,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":13,\"name\":\"06-两侧前景植物\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/198efffbc58493300854c04ab0ea8d979a6f9223.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[280,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":15,\"name\":\"04-顶部摸鱼牌子\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/142a486b8dd500a626a60b68ad993af8dabc8b55.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[300,130]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":16,\"name\":\"03-泡泡02\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/bb6266e1525a51f7920fc8881e47cadeee271b0c.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"initial\":[200,0],\"offset\":[350,20]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":17,\"name\":\"02-泡泡01\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/cd68251cde11936871237ca94360acb451bf7ed2.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"initial\":[-200,0],\"offset\":[500,0]},\"blur\":{},\"opacity\":{\"initial\":0.5,\"wrap\":\"clamp\"},\"id\":18,\"name\":\"01-光\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/426073f920477b718b8aee5ec141aca3889500f7.webm\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{\"initial\":[400,0],\"offset\":[50,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":19,\"name\":\"中气泡\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/0de9fb9822d2d00500abc8bdb143907eb1802ddb.webm\",\"id\":0}],\"scale\":{},\"rotate\":{},\"translate\":{\"initial\":[-700,0],\"offset\":[30,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":20,\"name\":\"左气泡\"}]}",
    +    "request_id": "1722649278"
    +  }
    +}
    +

    图层组合处理

    • 注意: 部分图像只包含部分颜色通道, 在创建文件时务必注意!

    • 图层既包含静态 PNG 图片,也包含动态 WebM 视频, 此处忽略视频, 按照 name 字段前的数字作为顺序, 依次导入 GIMP (你也可以使用其她图像处理软件), 未进行偏移调整

    • 接口提供的静态图片 http://i0.hdslb.com/bfs/archive/e5b7fca0c001cbe0b77a2956e4c861d9f19c4575.png

    • 手动导入合成的图片 https://archive.biliimg.com/bfs/archive/dc96f5d4e87a1985fc6085305d737f21f006f6a8.png (备链open in new window)

    + + + diff --git a/docs/web_widget/zone_upload.html b/docs/web_widget/zone_upload.html new file mode 100644 index 0000000000..ef1f6f9a42 --- /dev/null +++ b/docs/web_widget/zone_upload.html @@ -0,0 +1,65 @@ + + + + + + + + + 分区当日投稿数 | BAC Document + + + + +

    分区当日投稿数

    获取分区当日投稿稿件数

    https://api.bilibili.com/x/web-interface/online

    请求方式:GET

    json回复:

    根对象:

    字段类型内容备注
    codenum返回值0:成功
    messagestr错误信息默认为0
    ttlnum1
    dataobj信息本体

    data对象:

    字段类型内容备注
    region_countobj分区当日投稿稿件数信息

    data中的region_count对象:

    字段类型内容备注
    1num当日投稿稿件数-动画(主分区)
    13num当日投稿稿件数-番剧(主分区)
    167num当日投稿稿件数-国创(主分区)
    3num当日投稿稿件数-音乐(主分区)
    129num当日投稿稿件数-舞蹈(主分区)
    4num当日投稿稿件数-游戏(主分区)
    17num当日投稿稿件数-单机游戏
    36num当日投稿稿件数-知识(主分区)
    188num当日投稿稿件数-数码(主分区)
    160num当日投稿稿件数-生活(主分区)
    138num当日投稿稿件数-搞笑
    76num当日投稿稿件数-美食圈
    75num当日投稿稿件数-动物圈
    119num当日投稿稿件数-鬼畜(主分区)
    155num当日投稿稿件数-时尚(主分区)
    202num当日投稿稿件数-资讯(主分区)
    165num当日投稿稿件数-广告(主分区)
    5num当日投稿稿件数-娱乐(主分区)
    181num当日投稿稿件数-影视(主分区)
    177num当日投稿稿件数-纪录片(主分区)
    23num当日投稿稿件数-电影(主分区)
    11num当日投稿稿件数-电视剧(主分区)

    示例:

    curl 'https://api.bilibili.com/x/web-interface/online'
    +
    查看响应示例:
    {
    +    "code": 0,
    +    "message": "0",
    +    "ttl": 1,
    +    "data": {
    +        "region_count": {
    +            "1": 28,
    +            "11": 0,
    +            "119": 0,
    +            "129": 13,
    +            "13": 2,
    +            "138": 21,
    +            "155": 13,
    +            "160": 215,
    +            "165": 0,
    +            "167": 3,
    +            "17": 86,
    +            "177": 0,
    +            "181": 61,
    +            "188": 5,
    +            "202": 0,
    +            "23": 0,
    +            "3": 67,
    +            "36": 27,
    +            "4": 235,
    +            "5": 33,
    +            "75": 12,
    +            "76": 17
    +        }
    +    }
    +}
    +
    + + + diff --git a/grpc_api/index.html b/grpc_api/index.html new file mode 100644 index 0000000000..28e0697fda --- /dev/null +++ b/grpc_api/index.html @@ -0,0 +1,89 @@ + + + + + + + + + gRPC 接口定义(protobuf 结构体) | BAC Document + + + + +

    gRPC 接口定义(protobuf 结构体)

    注:

    1. proto 结构体文件按照包名分类, 同级放在同一目录中

    2. gRPC 接口定义全部来自对官方粉版(即大陆版本) APP 的逆向工程, 一般不会有错误, 但是可能有更新, 有实际应用需求的建议自行反编译 APP, 定位到 com.bapis.* 自行补足.

    gRPC 主机

    B 站客户端的 gRPC 接口主机包括:

    • grpc.biliapi.net 原生 gRPC 接口
    • app.bilibili.com Failover gRPC 接口

    实际应用中, 后者速度相对更快. 但是需要设置如 gRPC 超时时间等参数时只能使用前者.

    gRPC 鉴权

    需要在 Metadata 中添加 authorization: identify_v1 {access_key}.

    gRPC Metadata

    参考 gRPC Go 官方文档open in new windowMetadata 的说明.

    gRPC 的 Metadata 简单理解,就是 HTTP 的 Header 中的 key-value 对, 本质上是一个 Map. 在 gRPC Metadata 中,key 永远是 String,但是 value 可以是 String 也可以是二进制数据. 需要存储二进制数据时, key 应当加上一个 -bin 后缀, 同时二进制 value 应当编码为 Base64.

    一般而言, 设定 Binary 类型的 Metadata 时, 需要调用各个语言的 gRPC 库的相应方法, 库会帮我们编码二进制数据, 无需我们自行编码.

    需要的 Metadata 包括(但不限于):

    • Ascii 类
      • user-agent 客户端 UA, 如 Dalvik/2.1.0 (Linux; U; Android 12; {device_model} Build/{device_build}) {app_ver} os/android model/{device_model} mobi_app/{mobi_app} build/{app_build} channel/master innerVer/{app_build_inner} osVer/12 network/2 grpc-java-cronet/1.36.1(其中 grpc-java-cronet/1.36.1 为原生 gRPC 接口才需要的). 必需.
        • device_model 设备 Model, 如 NOH-AN01.
        • device_build 设备 Build, 如 HUAWEINOH-AN01.
        • app_ver APP 版本号, 如 7.38.0.
        • mobi_app APP 包类型, 参考 APPKey.md.
        • app_build APP 版本号, 如 7380300.
        • app_build_inner APP 版本号(内部), 如 7380310. 实际应用中设置为 app_build 即可.
      • x-bili-gaia-vtoken 暂时留空.
      • x-bili-aurora-eidUFUFQ1AA. 算法见附录. 未登录留空. 必需.
      • x-bili-mid 用户 UID, 未登录默认为 0. 必需.
      • x-bili-aurora-zone 留空. 必需.
      • x-bili-trace-id06e903399574695df75be114ff63ac64:f75be114ff63ac64:0:0. 算法见附录. 必需.
      • authorization 鉴权, 登录时设定为 identify_v1 {access_key}, 未登录时无需此项.
      • buvid 设备唯一标识, 算法见 device_identity.md. 必需(?).
      • bili-http-engine 恒定为 cronet, 使用 grpc.biliapi.net 作为 gRPC 主机时无需此项.
      • te 恒定为 trailers, Java gRPC 库固定添加, 使用 app.bilibili.com 作为 gRPC 主机时无需此项.
    • Binary 类
      • x-bili-fawkes-req-bin 设备 Fawkes 信息, 使用 FawkesReq 生成. 必需.
      • x-bili-metadata-bin 使用 Metadata 生成. 必需.
      • x-bili-device-bin 设备信息, 使用 Device 生成. 必需.
      • x-bili-network-bin 设备网络信息, 使用 Network 生成. 必需.
      • x-bili-restriction-bin 限制信息, 使用 Restriction 生成. 本项一般直接传空值即可. 必需.
      • x-bili-locale-bin 设备区域信息, 使用 Locale 生成. 必需.
      • x-bili-exps-bin 使用 Exps 生成. 本项一般直接传空值即可. 必需.

    接口请求定义

    等待补充, 参见 proto 文件注释. 以下仅介绍常用接口:

    应用示例

    Golang

    B 站 gRPC API Golang 封装:XiaoMiku01/bilibili-grpc-api-goopen in new window

    附录

    点此展开

    x-bili-aurora-eid 生成算法

    pub fn gen_aurora_eid(uid: u64) -> Option<String> {
    +    if uid == 0 {
    +        return None;
    +    }
    +    let mut result_byte = Vec::with_capacity(64);
    +    // 1. 将 UID 字符串转为字节数组.
    +    let mid_byte = uid.to_string().into_bytes();
    +    // 2. 将字节数组逐位(记为第 i 位)与 b"ad1va46a7lza" 中第 (i % 12) 位进行异或操作, 作为结果数组第 i 位.
    +    mid_byte.iter().enumerate().for_each(|(i, v)| {
    +        result_byte.push(v ^ (b"ad1va46a7lza"[i % 12]))
    +    });
    +    // 3. 对字节数组执行 Base64 编码, 注意 no padding, 即得到 x-bili-aurora-eid.
    +    Some(base64::Engine::encode(
    +        &base64::engine::general_purpose::STANDARD_NO_PAD,
    +        result_byte,
    +    ))
    +}
    +

    x-bili-trace-id 生成算法

    pub fn gen_trace_id() -> String {
    +    // 1. 生成 32 位随机字符串 random_id , Charset 为 0~9, a~z. 
    +    let random_id = gen_random_string!(32);
    +    let mut random_trace_id = String::with_capacity(40);
    +    // 2. 取 random_id 前 24 位, 作为 random_trace_id.
    +    random_trace_id.push_str(&random_id[0..24]);
    +    // 3. 初始化一个长度为 3 的数组 b_arr, 初始值都为 0.
    +    let mut b_arr: [i8; 3] = [0i8; 3];
    +    // 并获取当前时间戳
    +    let mut ts = chrono::Local::now().timestamp();
    +    // 使用循环从高位到低位遍历 b_arr 数组, 循环体内执行以下逻辑:
    +    //  - 首先将 ts 右移 8 位
    +    //  - 然后根据条件向 b_arr 的第 i 位赋值: 
    +    //    - 如果 (ts / 128) % 2的结果为0, 则 b_arr[i] = ts % 256
    +    //    - 否则 b_arr[i] = ts % 256 - 256
    +    for i in (0..3).rev() {
    +        ts >>= 8;
    +        b_arr[i] = {
    +            if ((ts / 128) % 2) == 0 {
    +                (ts % 256) as i8
    +            } else {
    +                (ts % 256 - 256) as i8
    +            }
    +        }
    +    }
    +    // 4. 将数组 b_arr 中的每个元素逐个转换为两位的十六进制字符串并追加到 random_trace_id 中.
    +    for i in 0..3 {
    +        random_trace_id.push_str(&format!("{:0>2x}", b_arr[i]))
    +    }
    +    // 5. 将 random_id 的第 31, 32 个字符追加到 random_trace_id 中, 此时 random_trace_id 生成完毕, 应当为 32 位长度.
    +    random_trace_id.push_str(&random_id[30..32]);
    +    // 6. 最后, 按 `{random_trace_id}:{random_trace_id[16..32]}:0:0` 的顺序拼接起来, 即为 x-bili-trace-id
    +    let mut random_trace_id_final = String::with_capacity(64);
    +    random_trace_id_final.push_str(&random_trace_id);
    +    random_trace_id_final.push_str(":");
    +    random_trace_id_final.push_str(&random_trace_id[16..32]);
    +    random_trace_id_final.push_str(":0:0");
    +    random_trace_id_final
    +}
    +
    + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000000..7e7f03eb44 --- /dev/null +++ b/index.html @@ -0,0 +1,33 @@ + + + + + + + + + BAC Document + + + + +

    哔哩哔哩-API收集整理

    GitHub issuesGitHub starsGitHub forksGitHub license

    SocialSisterYi%2Fbilibili-API-collect | Trendshift

    野生API文档

    不断更新中....

    本项目旨在对 B站 WEB、APP、TV 等客户端中,散落在世界各地的野生 API 进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、代码逆向分析、拆包及反编译法、网络抓包法等研究办法

    本文档探讨的对象是主站业务接口,官方开放平台open in new window直播开放平台open in new window 均不属于本项目范畴,请移步

    B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接口为 WebSocket;REST API 接口请求数据大多为 url query 表单或 JSON,返回数据大多为 JSON 或 Protobuf,强制使用 https 协议

    📖阅读地址:GithubPagesopen in new window

    小小的 Demo:av583785685 视频失效原因open in new window (Youtube备链open in new window)

    ⚠️声明

    1. 本项目遵守 CC-BY-NC 4.0 协议,禁止一切商业使用,如需转载请注明作者 ID
    2. 请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!
    3. 利用本项目提供的接口、文档等造成不良影响及后果与本人无关
    4. 由于本项目的特殊性,可能随时停止开发或删档
    5. 本项目为开源项目,不接受任何形式的催单和索取行为,更不容许存在付费内容

    🌱参与贡献

    欢迎各位 dalao 对本项目做出贡献,也希望每个使用者都能提出宝贵的意见

    目前本项目存在的问题包括但不限于:

    1. 文档二级目录尚未完成
    2. 部分文档较旧,修改与更新没有跟进
    3. 目前文档使用 markdown 语法编写,不易生成编程语言的 SDK,详见 #604open in new window

    更多信息请浏览 贡献指南

    🍴目录

    计划整理分类 & 目录:(文档已完结请选中 checkbox)

    ✨鸣谢

    你们的存在,让社区更美好

    contributorsopen in new window

    📖相关协议基础

    http 协议:传送门open in new window

    json 序列格式:传送门open in new window

    xml 序列格式:传送门open in new window

    protobuf 序列格式:传送门open in new window

    💦交流

    ⚠注意:开源社群欢迎交流探讨,拒绝咨询、不支持合作,黑产号一经发现立即拉黑并举报相关 SRC

    🧋发电

    欢迎来交♂易,大家的支持就是我继续开发的动力!

    请可爱的易姐喝杯奶茶

    WeChat & Alipay:

    OR Aifadian:https://afdian.net/@ShakaiAneEopen in new window

    🔗相关项目推荐

    库及文档

    成品

    其他

    + + + diff --git a/logo2.jpg b/logo2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..199eefc2de3db52e482d78f584e7ad78dd6f5edd GIT binary patch literal 17236 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 literal 0 HcmV?d00001