B站直播 PK大乱斗相关API

收集方法:PC端直播姬 + Fiddler抓包

获取大乱斗赛季详情

GET https://api.live.bilibili.com/av/v1/Battle/getSeasonInfo

入参

参数是否必须说明
scodeN赛季,格式如s51,不填默认当前赛季

返回示例

{
  "code": 0,
  "msg": "",
  "message": "",
  "data": {
    "id": 79,
    "season_start_time": "1730390400",
    "season_end_time": "1732982399",
    "pk_entrance_start_time": "1730390400",
    "pk_entrance_end_time": "1732982399",
    "season_name": "PK大乱斗S51赛季",
    "scode": "s51",
    "last_scode": "s9",
    "act_id": 107291
  }
}

其他的不重要,data.id一定要记下来(下称“赛季id”),准备好你或者你钟意主播的uid(在主站空间找)和直播间id,后面要用

获取PK大乱斗周榜单

GET https://api.live.bilibili.com/xlive/general-interface/v1/battle/getScoreWeekRank

入参

参数是否必须说明
ruidN主播的uid ,不填默认当前登录用户
room_idN主播的直播间号,不填默认当前登录用户
season_idY赛季id
need_current_infoN是否展示用户当前排名,与ruidroom_id有关,默认0
page_sizeY单页条数,亲测最大可支持到99
pageY分页,即第x页
timestampN秒级时间戳,可填指定自然周的任意时间,需与赛季id匹配,不填默认当前周

如你的账号未开通直播间,请保证传入ruidroom_id,或者不传入need_current_info,否则会返回服务器错误(-500)

返回示例

// 星号是手动加上去的,实际返回为明文,数据结构请顾名思义
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "uid": 34**88,
        "rank": 1,
        "score": 15**66,
        "uname": "***",
        "face": "https://i1.hdslb.com/bfs/face/0b6be7***3eb1.jpg",
        "link": "https://live.bilibili.com/26**1",
        "first_uid": 4**8,
        "first_uname": "***",
        "first_face": "https://i0.hdslb.com/bfs/face/8ca31***6756.webp",
        "level1_name": "苍穹主宰",
        "level1_img": "https://i0.hdslb.com/bfs/live/2cf06***46d2.png",
        "level2_count": 0,
        "level2_img": "",
        "is_live": 0,
        "top_rank": 0
      }
    ],
    // 如果need_current_info为0,owner_rank返回null
    "owner_rank": {
      "uid": 1**3,
      "rank": 0,
      "score": 0,
      "uname": "***",
      "face": "https://i2.hdslb.com/bfs/face/a2969f***655d4.jpg",
      "link": "https://live.bilibili.com/27**5",
      "level1_name": "青铜萌新",
      "level1_img": "https://i0.hdslb.com/bfs/live/bd6ca7***f7813.png",
      "level2_count": 1,
      "level2_img": "https://i0.hdslb.com/bfs/live/1f8c2a***429cd.png",
      "is_live": 0,
      "top_rank": 0,
      "score_diff": 5**1,
      "text": "距上榜",
      "first_uid": 0,
      "first_uname": "",
      "first_face": ""
    },
    "reqTimestamp": 1732030334
  }
}

获取PK大乱斗全区榜

GET https://api.live.bilibili.com/xlive/general-interface/v1/battle/getPkRankInfoV2

入参

参数是否必须说明
ruidN主播的uid ,不填默认当前登录用户
room_idN主播的直播间号,不填默认当前登录用户
season_idY赛季id
typeY排行榜类型,104总榜,105新星榜,106潜力榜
parent_area_idY分区id,此处固定为12154
pageY分页,即第x页,从0开始

返回

获取大乱斗分区榜单ID

GET https://api.live.bilibili.com/xlive/general-interface/v1/battle/getPkAreaRankId

{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "rank_id": 12409,
        "area_name": "娱乐榜",
        "area_ids": [1]
      },
      {
        "rank_id": 12545,
        "area_name": "电台榜",
        "area_ids": [5]
      },
      {
        "rank_id": 12408,
        "area_name": "游戏榜",
        "area_ids": [3, 2, 6]
      },
      {
        "rank_id": 12407,
        "area_name": "虚拟榜",
        "area_ids": [9]
      }
    ]
  }
}

获取大乱斗分区榜

GET https://api.live.bilibili.com/xlive/general-interface/v1/battle/getPkAreaRankList

入参

参数是否必须说明
ruidN主播的uid ,不填默认当前登录用户
room_idN主播的直播间号,不填默认当前登录用户
season_idY赛季id
trackY排行榜类型,0总榜,1新星榜,2潜力榜
parent_area_idY分区id,上个接口获取的rank_id
pageY分页,即第x页,从0开始

返回

获取大乱斗礼物榜

GET https://api.live.bilibili.com/xlive/general-interface/v1/battle/getPkGiftRankList

参数是否必须说明
ruidN主播的uid ,不填默认当前登录用户
room_idN主播的直播间号,不填默认当前登录用户
season_idY赛季id
pageY分页,即第x页,从0开始

获取单日大乱斗PK记录

GET https://api.live.bilibili.com/xlive/general-interface/v1/battle/getSeasonBattleRecord

入参

参数是否必须说明
ruidY主播的uid ,不填默认当前登录用户
room_idY主播的直播间号,不填默认当前登录用户
season_idY赛季id
dateN指定日期,不填默认当天,格式如2024-11-01,需与赛季id匹配(如S51赛季对应2024年11月),不匹配会返回参数错误(1002002)

返回示例

// 星号是手动加上去的,实际返回为明文,数据结构请顾名思义
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      // 多人PK
      {
        "pk_id": 3**8,
        "result_type": 2,
        "pk_score": 3,
        "pk_end_time": 1723823423,
        "match_info": {
          "name": "",
          "pk_votes": 0,
          "room_id": 0,
          "group_id": 0,
          "uid": 0
        },
        "pk_votes": 161,
        "battle_type": 8,
        "is_final_hit": 0,
        "pk_start_time": 1723823123,
        "other_match_list": [
          {
            "name": "***",
            "pk_votes": 1426,
            "room_id": 1**9,
            "group_id": 2,
            "uid": 0
          },
          {
            "name": "***",
            "pk_votes": 2750,
            "room_id": 3**7,
            "group_id": 1,
            "uid": 0
          },
          {
            "name": "***",
            "pk_votes": 1155,
            "room_id": 3**5,
            "group_id": 2,
            "uid": 0
          }
        ],
        "group_id": 1,
        "sub_battle_type": 101
      },
      // 单人PK
      {
        "pk_id": 3**1,
        "result_type": -1,
        "pk_score": 0,
        "pk_end_time": 1723821557,
        "match_info": {
          "name": "***",
          "pk_votes": 90,
          "room_id": 1**2,
          "group_id": 0,
          "uid": 3**3
        },
        "pk_votes": 10,
        "battle_type": 2,
        "is_final_hit": 0,
        "pk_start_time": 1723821247,
        "other_match_list": null,
        "group_id": 0,
        "sub_battle_type": 8  // 已知的值有5、8、99、101(多人PK)
      }
    ],
    "dates": []
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初心正圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值