

如今,市面上已经有不少开源项目可以用于连接 B 站直播 WebSocket 获取信息流。
但在实际使用中,常常发现它们并不能完全满足个性化需求。
为了更好地适配自己的业务场景,我决定自己动手实现一套连接方案。
因此,我整理了整个实现过程的一些关键步骤和注意事项,希望能够对有相似需求的朋友们有所帮助
接入前准备#
获取直播间真实 ID#
网页版 直播间 URL 携带的房间号可能是短号,并不保证一定为真实地址,因此建议调用该接口以确保房间号无误
请求方式:GET
| 参数名 | 类型 | 内容 | 
|---|---|---|
| room_id | int | 直播间 ID | 
请求响应示例与字段说明
展开查看
curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \
--data-urlencode 'room_id=27668995'{
  "code": 0,
  "msg": "ok",
  "message": "ok",
  "data": {
    "uid": 3493124609411229, // 主播id
    "room_id": 27668995, // 真实房间id
    "short_id": 0, // 直播间短号,0为无短号
    "attention": 13353, // 关注数量
    "online": 4173, // 观看人数
    "is_portrait": false, // 是否是竖屏
    "description": "一只屑狐狸,不专业的CV,新晋歌杂,不缺席你的每一天...直播时间: 晚22:00-02:00,下午3:00-7:00闪现打游戏", // 描述
    "live_status": 1, // 直播间状态:0-未开播,1-直播中,2-轮播中
    "area_id": 371, // 分区id
    "parent_area_id": 9, // 父分区id
    "parent_area_name": "虚拟主播", // 父分区名称
    "old_area_id": 6, // 旧版分区id
    "background": "", // 背景图片链接
    "title": "不给糖就捣蛋", // 标题
    "user_cover": "https://i0.hdslb.com/bfs/live/new_room_cover/22426f0ead9804fabd06ad1c4305e2641a4e6d11.jpg", // 封面
    "keyframe": "https://i0.hdslb.com/bfs/live-key-frame/keyframe11011431000027668995752wsi.jpg", // 关键帧
    "is_strict_room": false, // 待观测
    "live_time": "2024-11-01 14:25:09", // 开播时间
    "tags": "御姐,屑狐狸,狐仙,憨憨,温柔", // 标签
    "is_anchor": 0, // 待观测
    "room_silent_type": "", // 禁言状态
    "room_silent_level": 0, // 禁言等级
    "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": "https://i0.hdslb.com/bfs/live/fc28a2a4123154012e0ce3da1273de5f17e81b24.png", // 头像框图片URL
        "position": 0, // 位置
        "desc": "", // 描述
        "area": 0, // 分区
        "area_old": 0, // 旧分区
        "bg_color": "", // 背景色
        "bg_pic": "", // 背景图
        "use_old_area": false // 是否旧分区号
      },
      "badge": {
        // 大V才会有的信息
        "name": "v_person", // 认证类型:v_person=个人认证(黄),v_company=企业认证(蓝)
        "position": 3, // 位置,可能是个枚举
        "value": "", // 待观测
        "desc": "bilibili 知名UP主、直播高能主播" // 描述
      },
      "mobile_frame": {
        // 头像框信息,手机版,可能为null
        "name": "大乱斗乱斗之王", // 名称
        "value": "https://i0.hdslb.com/bfs/live/fc28a2a4123154012e0ce3da1273de5f17e81b24.png", // 头像框图片URL
        "position": 0, // 位置
        "desc": "", // 描述
        "area": 0, // 分区
        "area_old": 0, // 旧分区
        "bg_color": "", // 背景色
        "bg_pic": "", // 背景图
        "use_old_area": false // 是否旧分区号
      },
      "mobile_badge": {
        // 大V才会有的信息,手机版,可能为null
        "name": "v_person", // 认证类型:v_person=个人认证(黄),v_company=企业认证(蓝)
        "position": 3, // 位置,可能是个枚举
        "value": "", // 待观测
        "desc": "bilibili 知名UP主、直播高能主播" // 描述
      }
    },
    "up_session": "557568462506308099", // 待观测
    "pk_status": 0, // pk状态
    "pk_id": 0, // pk id
    "battle_id": 0, // 待观测
    "allow_change_area_time": 0, // 待观测
    "allow_upload_cover_time": 0, // 待观测
    "studio_info": {
      // 待观测
      "status": 0, // 待观测
      "master_list": []
    }
  }
}获取信息流认证秘钥#
该接口可以获取到对应直播间信息流的链接地址,以及建立链接需要认证的 token 信息
注意: B 站更新了隐私政策, 连接建立 5 分钟左右, 若该连接认证时传入信息来自未登录用户, 会提示 为保护用户隐私,未注册登陆用户将无法查看他人昵称, 随后所有发送弹幕的用户 id 都为 0, 用户名部分也使用 * 保护,因此调用本接口时需要传递 ** cookie **
注意: ws 与 wss 连接地址带有路径 /sub, 如 wss://tx-sh-live-comet-08.chat.bilibili.com:443/sub
请求方式:GET
请求地址:https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo ↗
| 参数名 | 类型 | 内容 | 
|---|---|---|
| id | int | 直播间真实 id | 
请求响应示例与字段说明
展开查看
curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \
--data-urlencode 'id=30118851'{
  "code": 0, // 0:成功,65530:token错误(登录错误),1:错误,60009:分区不存在,其他错误仍需观察
  "message": "0", // 错误信息
  "ttl": 1, // 默认为1
  "data": {
    // 信息本体
    "group": "live", // 不重要,默认live
    "business_id": 0, // 不重要,默认 0
    "refresh_row_factor": 0.125, // 不重要,默认0.125
    "refresh_rate": 100, // 不重要,默认100
    "max_delay": 5000, // 不重要,默认5000
    "token": "TrF6FaSlmxVBM4eBYGoaWPuZ-xVL-bhK80waLbGRfpj6JiLkjgaxLcu5whFM6iEBrQFw8wJwdraBJwkctMzMrkyP7kmWkRAmFUa_Z1aiXVDhyMwsiQe81KHMGC82tuyWF9iHNstIX-M0IhU=", // 认证密钥
    "host_list": [
      // 信息流服务器节点列表
      {
        "host": "tx-sh-live-comet-08.chat.bilibili.com", // 服务器域名
        "port": 2243, // tcp端口
        "wss_port": 443, // wss 端口
        "ws_port": 2244 // ws端口
      },
      {
        "host": "tx-bj-live-comet-08.chat.bilibili.com",
        "port": 2243,
        "wss_port": 443,
        "ws_port": 2244
      },
      {
        "host": "broadcastlv.chat.bilibili.com",
        "port": 2243,
        "wss_port": 443,
        "ws_port": 2244
      }
    ]
  }
}信息流接入#
数据包为 MQ(Message Queue,消息队列)使用 Websocket 或 TCP 连接作为通道,具体格式为 弹幕协议 + 正文数据
操作流程:
连接信息流服务器节点 -> 发送认证包 -> 接收认证包回应 -> 接收普通包&(每 30 秒发送心跳包 -> 接收心跳回应)

- Packet Length:整个 Packet 的长度,包含 Header
- Header Length:Header 的长度,固定为 16
- Version:协议版本
- Operation:操作码
- Sequence ID:保留字段,可以忽略
- Body:消息体,客户端解析 Body 之前请先解析 Version 字段
Version 说明: 0 - 普通包正文不使用压缩 1 - 心跳及认证包正文不使用压缩 2 - 普通包(zlib 压缩) 3 - 普通包(brotli 压缩)
Operation 说明: 2 - 客户端发送的心跳包(30 秒发送一次) 3 - 服务器收到心跳包的回复 5 - 服务器推送的弹幕消息包 7 - 客户端发送的鉴权包(客户端发送的第一个包) 8 - 服务器收到鉴权包后的回复
注意:B 站最近加强了风控,建议在建立连接时携带好用户的cookie以避免风控限流
认证包构建#
注意: 认证包需要在握手成功 5 秒内发送, 否则强制断开连接
认证包头部信息基于上述协议格式不再赘述,仅说明 Body 如何构建
| 字段 | 类型 | 说明 | 
|---|---|---|
| uid | int | 用户 uid | 
| roomid | int | 主播房间 id | 
| protover | int | 协议版本,决定了后续数据包的 Version | 
| buvid | string | 用户buvid3,可在cookie中获得 | 
| platform | string | 平台,传web即可 | 
| type | int | 不确定用途,目前 B 站网页版传 2,照着传即可 | 
| key | string | 获取信息流认证秘钥接口提供的token | 
protover 说明: 2 - 后续正文以 zlib 方式返回 3 - 后续正文以 brotli 方式返回
示例:
00000000: 0000 0152 0010 0001 0000 0007 0000 0001  ...R............
00000001: 7b22 7569 6422 3a34 3332 3530 3531 2c22  {"uid":4325051,"
00000002: 726f 6f6d 6964 223a 3331 3432 3735 3432  roomid":31427542
00000003: 2c22 7072 6f74 6f76 6572 223a 332c 2262  ,"protover":3,"b
00000004: 7576 6964 223a 2232 4445 3846 4141 312d  uvid":"2DE8FAA1-
00000005: 3642 4643 2d45 3741 412d 3031 3041 2d31  6BFC-E7AA-010A-1
00000006: 3039 4544 3039 3443 4245 3537 3935 3139  09ED094CBE579519
00000007: 696e 666f 6322 2c22 706c 6174 666f 726d  infoc","platform
00000008: 223a 2277 6562 222c 2274 7970 6522 3a32  ":"web","type":2
00000009: 2c22 6b65 7922 3a22 375f 6573 4f70 564e  ,"key":"7_esOpVN
0000000a: 697a 5570 4732 7069 3169 7741 2d79 3651  izUpG2pi1iwA-y6Q
0000000b: 4545 4550 734a 7872 666a 6c4c 5f73 4e50  EEEPsJxrfjlL_sNP
0000000c: 6b77 4f55 385a 7255 4150 334a 7951 746e  kwOU8ZrUAP3JyQtn
0000000d: 4154 6748 474c 645f 514a 616b 794b 4d54  ATgHGLd_QJakyKMT
0000000e: 4b75 717a 3856 5174 6474 5479 5f75 476c  Kuqz8VQtdtTy_uGl
0000000f: 5541 3958 6d75 334f 507a 6944 5170 3952  UA9Xmu3OPziDQp9R
00000010: 5832 6f57 4366 5356 3345 7778 3554 4532  X2oWCfSV3Ewx5TE2
00000011: 6c6a 4552 616e 684f 3757 7230 695f 3641  ljERanhO7Wr0i_6A
00000012: 584f 3862 6d38 634f 5757 5649 4a31 7966  XO8bm8cOWWVIJ1yf
00000013: 5535 4c63 7638 484b 3864 564e 4954 6e74  U5Lcv8HK8dVNITnt
00000014: 7144 4669 7339 5471 586d 544f 344e 413d  qDFis9TqXmTO4NA=
00000015: 227d                                     "}
命令列表#
- SEND_GIFT:赠送礼物
- DANMU_MSG:弹幕信息
- GUARD_BUY:开通舰长
- GUARD_LOTTERY_START:千舰推送
- USER_TOAST_MSG:上舰抽奖消息推送
- SUPER_CHAT_MESSAGE:醒目留言
- ENTRY_EFFECT:舰长进入直播间(进入直播间特效)
- INTERACT_WORD:直播间互动
- PK_BATTLE_PRE_NEW:PK 即将开始
命令说明#
赠送礼物:SEND_GIFT#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.action | string | 行为,一般都是投喂 | 
| data.bag_gift | array | 从背包中赠送礼物时会出现 | 
| data.bag_gift.price_for_show | int | 礼品单价(电池) | 
| data.bag_gift.show_price | int | 赠送数量 | 
| data.batch_combo_id | string | 连击 ID | 
| data.batch_combo_send | array | 连击信息 | 
| data.batch_combo_send.action | string | 行为,一般都是投喂 | 
| data.batch_combo_send.batch_combo_id | string | 连击 ID | 
| data.batch_combo_send.batch_combo_num | int | 当前连击数 | 
| data.batch_combo_send.blind_gift | array | 相关礼物信息 | 
| data.batch_combo_send.blind_gift.blind_gift_config_id | int | 赠送盲盒时存在数据,疑似是盲盒的配置 | 
| data.batch_combo_send.blind_gift.from | int | 不确定用途,观测到 blind_gift_config_id存在时为 0,其余情况无数据 | 
| data.batch_combo_send.blind_gift.gift_action | string | 赠送盲盒时为爆出,其余无数据 | 
| data.batch_combo_send.blind_gift.gift_tip_price | int | 赠送盲盒时为爆出的礼物价格,其余无数据 | 
| data.batch_combo_send.blind_gift.original_gift_id | int | 赠送盲盒时为盲盒的 gift_id,其余无数据 | 
| data.batch_combo_send.blind_gift.original_gift_name | string | 赠送盲盒时为盲盒的名称,其余无数据 | 
| data.batch_combo_send.blind_gift.original_gift_price | int | 赠送盲盒时为盲盒的价格,其余无数据 | 
| data.batch_combo_send.gift_id | int | 礼物 id,如果是盲盒则为盲盒爆出的礼物 id | 
| data.batch_combo_send.gift_name | string | 礼物名称,如果是盲盒则为盲盒爆出的礼物名称 | 
| data.batch_combo_send.gift_num | int | 赠送数量 | 
| data.batch_combo_send.send_master | string | 不清楚用途 | 
| data.batch_combo_send.uid | string | 赠送人 uid | 
| data.batch_combo_send.uname | string | 赠送人名称 | 
| data.beatId | int | 暂不确定用途,观测到多是空或者 0 | 
| data.biz_source | string | 暂不确定用途,观测到多是 Live跟live | 
| data.blind_gift | array | 相关礼物信息 | 
| data.blind_gift.blind_gift_config_id | int | 赠送盲盒时存在数据,疑似是盲盒的配置 | 
| data.blind_gift.from | int | 不确定用途,观测到 blind_gift_config_id存在时为 0,其余情况无数据 | 
| data.blind_gift.gift_action | string | 赠送盲盒时为爆出,其余无数据 | 
| data.blind_gift.gift_tip_price | int | 赠送盲盒时为爆出的礼物价格,其余无数据 | 
| data.blind_gift.original_gift_id | int | 赠送盲盒时为盲盒的 gift_id | 
| data.blind_gift.original_gift_name | string | 赠送盲盒时为盲盒的名称,其余无数据 | 
| data.blind_gift.original_gift_price | int | 赠送盲盒时为盲盒的价格,其余无数据 | 
| data.broadcast_id | int | 广播 ID,疑似赠送大礼物触发广播时与其绑定 | 
| data.coin_type | string | 硬币类型,目前观测到非付费礼物为 silver,付费礼物为gold | 
| data.combo_resources_id | int | 待观测,通常是 0 或 1 | 
| data.combo_send | array | 连击信息 | 
| data.combo_send.action | string | 行为,一般都是投喂 | 
| data.combo_send.combo_id | string | 连击 ID | 
| data.combo_send.combo_num | int | 当前连击数 | 
| data.combo_send.gift_id | int | 礼物 id (盲盒为实际爆出礼物) | 
| data.combo_send.gift_name | string | 礼物名称(盲盒为实际爆出礼物) | 
| data.combo_send.gift_num | int | 数量 | 
| data.combo_send.send_master | string | 未观测到有效数据 | 
| data.combo_send.uid | int | 赠送人 uid | 
| data.combo_send.uname | string | 赠送人名称 | 
| data.combo_stay_time | int | 连击有效间隔时间 | 
| data.combo_total_coin | int | 连击总费用 | 
| data.crit_prob | int | 待观测,全是 0 | 
| data.demarcation | int | 待观测,数据一般是 1,2,3,应该是分类,看起来数字越大越贵 | 
| data.discount_price | int | 折扣价格,比如不要钱的粉丝团灯牌 | 
| data.dmscore | int | 某种评分?待观测 | 
| data.draw | int | 待观测 | 
| data.effect | int | 待观测 | 
| data.effect_block | int | 待观测 | 
| data.face | string | 用户头像 URL | 
| data.face_effect_id | int | 待观测 | 
| data.face_effect_type | int | 待观测 | 
| data.face_effect_v2 | array | 待观测 | 
| data.face_effect_v2.id | int | 待观测 | 
| data.face_effect_v2.type | int | 待观测 | 
| data.float_sc_resource_id | int | 待观测 | 
| data.giftId | int | 礼物 ID | 
| data.giftName | string | 礼物名称 | 
| data.giftType | int | 礼物类型,枚举,目前发现值 5 疑似免费礼物或背包礼物,其他含义待观测 | 
| data.gift_info | array | 礼物详细信息 | 
| data.gift_info.effect_id | int | 某种 ID,目前看好像只有盲盒礼物有,其余为 0 | 
| data.gift_info.gif | string | 礼物 GIF 图 | 
| data.gift_info.has_imaged_gift | int | 某种枚举,effect_id 非 0 时为 1,其余为 0 | 
| data.gift_info.img_basic | string | 礼物 PNG 图 | 
| data.gift_info.webp | string | 礼物 webp 图 | 
| data.gift_tag | array | 礼物标签? | 
| data.gift_tag.0 | int | 标签相关,待观测 | 
| data.gold | int | 待观测 | 
| data.group_medal | int | 套票相关?不确定,待观测 | 
| data.guard_level | int | 牌子的大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.is_first | bool | 待观测,应该是标记本场直播是否是第一次赠送 | 
| data.is_join_receiver | bool | 待观测 | 
| data.is_naming | bool | 待观测 | 
| data.is_special_batch | int | 待观测 | 
| data.magnification | int | 待观测 | 
| data.medal_info | array | 牌子信息 | 
| data.medal_info.anchor_roomid | int | 房间号,目前疑似并未使用 | 
| data.medal_info.anchor_uname | string | 主播名称,目前疑似并未使用 | 
| data.medal_info.guard_level | int | 牌子的大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.medal_info.icon_id | int | 应该是某 ID 相关,待观测,目前全是 0 | 
| data.medal_info.is_lighted | int | 牌子是否点亮 ,1=是,0=否 | 
| data.medal_info.medal_color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_level | int | 牌子等级 | 
| data.medal_info.medal_name | string | 牌子名称 | 
| data.medal_info.special | - | 估计是用来区分特殊牌子的,待观测 | 
| data.medal_info.target_id | int | 牌子所属主播 uid | 
| data.name_color | string | 用户名颜色 | 
| data.num | int | 赠送数量 | 
| data.original_gift_name | string | 待观测 | 
| data.price | int | 礼物价格 | 
| data.rcost | int | 待观测 | 
| data.receive_user_info | array | 收礼人信息(主播) | 
| data.receive_user_info.uid | int | 主播 uid | 
| data.receive_user_info.uname | string | 主播名称 | 
| data.receiver_uinfo | array | 收礼人信息(主播)(估计是新版本) | 
| data.receiver_uinfo.base | array | 收礼人(主播)基本信息 | 
| data.receiver_uinfo.base.face | string | 头像 | 
| data.receiver_uinfo.base.is_mystery | bool | 不确定含义,待观测 | 
| data.receiver_uinfo.base.name | string | 名称 | 
| data.receiver_uinfo.base.name_color | int | 待观测,估计是名字颜色十进制数字 | 
| data.receiver_uinfo.base.name_color_str | string | 待观测,估计是名字颜色十六进制代码 | 
| data.receiver_uinfo.base.official_info | array | 待观测,估计是官方相关 | 
| data.receiver_uinfo.base.official_info.desc | string | ?说明? | 
| data.receiver_uinfo.base.official_info.role | int | ?角色? | 
| data.receiver_uinfo.base.official_info.title | string | ?官方 title? | 
| data.receiver_uinfo.base.official_info.type | int | ?类型 | 
| data.receiver_uinfo.base.origin_info | array | 待观测,目前看到的都是主播个人信息 | 
| data.receiver_uinfo.base.origin_info.face | string | 头像 | 
| data.receiver_uinfo.base.origin_info.name | string | 名称 | 
| data.receiver_uinfo.base.risk_ctrl_info | array | 待观测,目前看到的都是主播个人信息 | 
| data.receiver_uinfo.base.risk_ctrl_info.face | string | 头像 | 
| data.receiver_uinfo.base.risk_ctrl_info.name | string | 名称 | 
| data.receiver_uinfo.guard | - | 待观测,当前未观测到数据 | 
| data.receiver_uinfo.guard_leader | - | 待观测,当前未观测到数据 | 
| data.receiver_uinfo.medal | - | 待观测,当前未观测到数据 | 
| data.receiver_uinfo.title | - | 待观测,当前未观测到数据 | 
| data.receiver_uinfo.uhead_frame | - | 待观测,当前未观测到数据 | 
| data.receiver_uinfo.uid | int | uid | 
| data.receiver_uinfo.wealth | - | 待观测,当前未观测到数据 | 
| data.remain | int | 待观测 | 
| data.rnd | string | 待观测 | 
| data.send_master | string | 待观测 | 
| data.sender_uinfo | array | 送礼人信息 | 
| data.sender_uinfo.base | array | 送礼人(用户)基本信息 | 
| data.sender_uinfo.base.face | string | 头像 | 
| data.sender_uinfo.base.is_mystery | bool | 不确定含义,待观测 | 
| data.sender_uinfo.base.name | string | 名称 | 
| data.sender_uinfo.base.name_color | int | 待观测,估计是名字颜色十进制数字 | 
| data.sender_uinfo.base.name_color_str | string | 待观测,估计是名字颜色十六进制代码 | 
| data.sender_uinfo.base.official_info | array | 待观测,估计是官方相关 | 
| data.sender_uinfo.base.official_info.desc | string | ?说明? | 
| data.sender_uinfo.base.official_info.role | int | ?角色? | 
| data.sender_uinfo.base.official_info.title | string | ?官方 title? | 
| data.sender_uinfo.base.official_info.type | int | ?类型 | 
| data.sender_uinfo.base.origin_info | array | 待观测,目前看到的都是送礼人个人信息 | 
| data.sender_uinfo.base.origin_info.face | string | 头像 | 
| data.sender_uinfo.base.origin_info.name | string | 名称 | 
| data.sender_uinfo.base.risk_ctrl_info | array | 待观测,目前看到的都是送礼人个人信息 | 
| data.sender_uinfo.base.risk_ctrl_info.face | string | 头像 | 
| data.sender_uinfo.base.risk_ctrl_info.name | string | 名称 | 
| data.sender_uinfo.guard | - | 待观测,目前未观察到数据 | 
| data.sender_uinfo.guard_leader | - | 待观测,目前未观察到数据 | 
| data.sender_uinfo.medal | array | 牌子信息 | 
| data.sender_uinfo.medal.color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.sender_uinfo.medal.color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.sender_uinfo.medal.color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.sender_uinfo.medal.color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.sender_uinfo.medal.guard_icon | string | 大航海图标 | 
| data.sender_uinfo.medal.guard_level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.sender_uinfo.medal.honor_icon | - | 待观测,目前无数据 | 
| data.sender_uinfo.medal.id | int | 待观测,目前都是 0 | 
| data.sender_uinfo.medal.is_light | int | 牌子是否点亮 ,1=是,0=否 | 
| data.sender_uinfo.medal.level | int | 牌子等级 | 
| data.sender_uinfo.medal.name | string | 牌子名称 | 
| data.sender_uinfo.medal.ruid | int | 牌子所属主播 uid | 
| data.sender_uinfo.medal.score | int | 某种评分?待观测 | 
| data.sender_uinfo.medal.typ | int | 待观测,目前都是 0 | 
| data.sender_uinfo.medal.user_receive_count | int | 待观测,目前都是 0 | 
| data.sender_uinfo.medal.v2_medal_color_border | string | v2 版本牌子边框颜色 | 
| data.sender_uinfo.medal.v2_medal_color_end | string | v2 版本牌子右侧颜色(渐变) | 
| data.sender_uinfo.medal.v2_medal_color_level | int | v2 版本牌子等级颜色 | 
| data.sender_uinfo.medal.v2_medal_color_start | string | v2 版本牌子左侧颜色(渐变) | 
| data.sender_uinfo.medal.v2_medal_color_text | string | v2 版本牌子内容颜色 | 
| data.sender_uinfo.title | - | 待观测,目前无数据 | 
| data.sender_uinfo.uhead_frame | - | 待观测,目前无数据 | 
| data.sender_uinfo.uid | int | uid | 
| data.sender_uinfo.wealth | int | 待观测,目前都是 0 | 
| data.silver | int | 待观测,目前都是 0 | 
| data.super | int | 待观测,目前都是 0 | 
| data.super_batch_gift_num | int | 待观测,与赠送数量相关 | 
| data.super_gift_num | int | 待观测,与赠送数量相关 | 
| data.svga_block | int | 待观测,目前都是 0 | 
| data.switch | bool | 待观测,目前都是 TRUE | 
| data.tag_image | - | 待观测,目前无数据 | 
| data.tid | string | 待观测 | 
| data.timestamp | int | 礼物赠送时间(秒级时间戳) | 
| data.top_list | - | 待观测,目前无数据 | 
| data.total_coin | int | 礼物总价,连击时累加 | 
| data.uid | int | 赠送人 uid | 
| data.uname | string | 赠送人名称 | 
| data.wealth_level | int | 荣耀等级 | 
| msg_id | string | 待观测,感觉跟消息绑定了 | 
| p_is_ack | bool | 无数据或者 TRUE,仍需观测 | 
| p_msg_type | int | 无数据或者 1,仍需观测 | 
| send_time | int | 毫秒级时间戳,有时会没数据,待观测 | 
点击查看数据示例
{
  "cmd": "SEND_GIFT", // 固定命令
  "data": {
    // 数据信息
    "action": "投喂", // 行为,一般都是投喂
    "bag_gift": {
      // 从背包中赠送礼物时会出现
      "price_for_show": 500, // 礼品单价(电池*100)
      "show_price": 1 // 赠送数量
    },
    "batch_combo_id": "30d6eb24-88c5-49bf-9023-baa91ec084a7", // 连击ID
    "batch_combo_send": {
      // 连击信息
      "action": "投喂", // 行为,一般都是投喂
      "batch_combo_id": "30d6eb24-88c5-49bf-9023-baa91ec084a7", // 连击ID
      "batch_combo_num": 1, // 当前连击数
      "blind_gift": {
        // 相关礼物信息
        "blind_gift_config_id": 51, // 赠送盲盒时存在数据,疑似是盲盒的配置
        "from": 0, // 不确定用途,观测到 blind_gift_config_id 存在时为0,其余情况无数据
        "gift_action": "爆出", // 赠送盲盒时为爆出,其余无数据
        "gift_tip_price": 16000, // 赠送盲盒时为爆出的礼物价格,其余无数据
        "original_gift_id": 32251, // 赠送盲盒时为盲盒的 gift_id,其余无数据
        "original_gift_name": "心动盲盒", // 赠送盲盒时为盲盒的名称,其余无数据
        "original_gift_price": 15000 // 赠送盲盒时为盲盒的价格,其余无数据
      },
      "gift_id": 32128, // 礼物id,如果是盲盒则为盲盒爆出的礼物id
      "gift_name": "爱心抱枕", // 礼物名称,如果是盲盒则为盲盒爆出的礼物名称
      "gift_num": 1, // 赠送数量
      "send_master": null, // 不清楚用途
      "uid": 3494362281412802, // 赠送人uid
      "uname": "舒葵交错" // 赠送人名称
    },
    "beatId": "", // 暂不确定用途,观测到多是空或者0
    "biz_source": "live", // 暂不确定用途,观测到多是 Live 跟 live
    "blind_gift": {
      // 相关礼物信息
      "blind_gift_config_id": 51, // 赠送盲盒时存在数据,疑似是盲盒的配置
      "from": 0, // 不确定用途,观测到 blind_gift_config_id 存在时为0,其余情况无数据
      "gift_action": "爆出", // 赠送盲盒时为爆出,其余无数据
      "gift_tip_price": 16000, // 赠送盲盒时为爆出的礼物价格,其余无数据
      "original_gift_id": 32251, // 赠送盲盒时为盲盒的 gift_id
      "original_gift_name": "心动盲盒", // 赠送盲盒时为盲盒的名称,其余无数据
      "original_gift_price": 15000 // 赠送盲盒时为盲盒的价格,其余无数据
    },
    "broadcast_id": 0, // 广播ID,疑似赠送大礼物触发广播时与其绑定
    "coin_type": "gold", // 硬币类型,目前观测到非付费礼物为silver,付费礼物为gold
    "combo_resources_id": 1, // 待观测,通常是 0 或 1
    "combo_send": {
      // 连击信息
      "action": "投喂", // 行为,一般都是投喂
      "combo_id": "c210a464-9620-425e-b9e3-73db191ed1c5", // 连击ID
      "combo_num": 1, // 当前连击数
      "gift_id": 32128, // 礼物id (盲盒为实际爆出礼物)
      "gift_name": "爱心抱枕", // 礼物名称(盲盒为实际爆出礼物)
      "gift_num": 1, // 数量
      "send_master": null, // 未观测到有效数据
      "uid": 3494362281412802, // 赠送人uid
      "uname": "舒葵交错" // 赠送人名称
    },
    "combo_stay_time": 5, // 连击有效间隔时间
    "combo_total_coin": 16000, // 连击总费用
    "crit_prob": 0, // 待观测,全是0
    "demarcation": 2, // 待观测,数据一般是1,2,3,应该是分类,看起来数字越大越贵
    "discount_price": 16000, // 折扣价格,比如不要钱的粉丝团灯牌
    "dmscore": 952, // 某种评分?待观测
    "draw": 0, // 待观测
    "effect": 0, // 待观测
    "effect_block": 0, // 待观测
    "face": "https://i2.hdslb.com/bfs/face/5d620fea3b4586311884155153a7091b79d0777d.jpg", // 用户头像URL
    "face_effect_id": 0, // 待观测
    "face_effect_type": 0, // 待观测
    "face_effect_v2": {
      // 待观测
      "id": 0, // 待观测
      "type": 0 // 待观测
    },
    "float_sc_resource_id": 0, // 待观测
    "giftId": 32128, // 礼物ID
    "giftName": "爱心抱枕", // 礼物名称
    "giftType": 0, // 礼物类型,枚举,目前发现值 5 疑似免费礼物或背包礼物,其他含义待观测
    "gift_info": {
      // 礼物详细信息
      "effect_id": 0, // 某种ID,目前看好像只有盲盒礼物有,其余为0
      "gif": "https://i0.hdslb.com/bfs/live/ae80d80ea758ff08fb4e2c4226ab7b5011b728a6.gif", // 礼物GIF图
      "has_imaged_gift": 0, // 某种枚举,effect_id非0时为1,其余为0
      "img_basic": "https://s1.hdslb.com/bfs/live/824714c830966d7bec381e35ef808b1f478e21ee.png", // 礼物PNG图
      "webp": "https://i0.hdslb.com/bfs/live/32c8ee42566501822d8ecc68b33cd2c64937266a.webp" // 礼物webp图
    },
    "gift_tag": [
      // 礼物标签?
      1101 // 标签相关,待观测
    ],
    "gold": 0, // 待观测
    "group_medal": null, // 套票相关?不确定,待观测
    "guard_level": 3, // 牌子的大航海类型,0=普通用户,1=总督,2=提督,3=舰长
    "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": 3, // 牌子的大航海类型,0=普通用户,1=总督,2=提督,3=舰长
      "icon_id": 0, // 应该是某ID相关,待观测,目前全是0
      "is_lighted": 1, // 牌子是否点亮 ,1=是,0=否
      "medal_color": 398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_end": 6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_start": 398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      "medal_level": 25, // 牌子等级
      "medal_name": "娴丢人", // 牌子名称
      "special": "", // 估计是用来区分特殊牌子的,待观测
      "target_id": 3493262186776769 // 牌子所属主播uid
    },
    "name_color": "#00D1F1", // 用户名颜色
    "num": 1, // 赠送数量
    "original_gift_name": "", // 待观测
    "price": 16000, // 礼物价格
    "rcost": 11936982, // 待观测
    "receive_user_info": {
      // 收礼人信息(主播)
      "uid": 3494365156608185, // 主播uid
      "uname": "温以泠" // 主播名称
    },
    "receiver_uinfo": {
      // 收礼人信息(主播)(估计是新版本)
      "base": {
        // 收礼人(主播)基本信息
        "face": "https://i2.hdslb.com/bfs/face/00e03b4b528b6a475d2987f44002c61c4a75d77c.jpg", // 头像
        "is_mystery": false, // 不确定含义,待观测
        "name": "温以泠", // 名称
        "name_color": 0, // 待观测,估计是名字颜色十进制数字
        "name_color_str": "", // 待观测,估计是名字颜色十六进制代码
        "official_info": {
          // 待观测,估计是官方相关
          "desc": "", // ?说明?
          "role": 0, // ?角色?
          "title": "", // ?官方title?
          "type": -1 // ?类型?
        },
        "origin_info": {
          // 待观测,目前看到的都是主播个人信息
          "face": "https://i2.hdslb.com/bfs/face/00e03b4b528b6a475d2987f44002c61c4a75d77c.jpg", // 头像
          "name": "温以泠" // 名称
        },
        "risk_ctrl_info": {
          // 待观测,目前看到的都是主播个人信息
          "face": "https://i2.hdslb.com/bfs/face/00e03b4b528b6a475d2987f44002c61c4a75d77c.jpg", // 头像
          "name": "温以泠" // 名称
        }
      },
      "guard": null, // 待观测,当前未观测到数据
      "guard_leader": null, // 待观测,当前未观测到数据
      "medal": null, // 待观测,当前未观测到数据
      "title": null, // 待观测,当前未观测到数据
      "uhead_frame": null, // 待观测,当前未观测到数据
      "uid": 3494365156608185, // 主播uid
      "wealth": null // 待观测,当前未观测到数据
    },
    "remain": 0, // 待观测
    "rnd": "4568350171557109760", // 待观测
    "send_master": null, // 待观测
    "sender_uinfo": {
      // 送礼人信息
      "base": {
        // 送礼人(用户)基本信息
        "face": "https://i2.hdslb.com/bfs/face/5d620fea3b4586311884155153a7091b79d0777d.jpg", // 头像
        "is_mystery": false, // 不确定含义,待观测
        "name": "舒葵交错", // 名称
        "name_color": 0, // 待观测,估计是名字颜色十进制数字
        "name_color_str": "", // 待观测,估计是名字颜色十六进制代码
        "official_info": {
          // 待观测,估计是官方相关
          "desc": "", // ?说明?
          "role": 0, // ?角色?
          "title": "", // ?官方title?
          "type": -1 // ?类型?
        },
        "origin_info": {
          // 待观测,目前看到的都是送礼人个人信息
          "face": "https://i2.hdslb.com/bfs/face/5d620fea3b4586311884155153a7091b79d0777d.jpg", // 头像
          "name": "舒葵交错" // 名称
        },
        "risk_ctrl_info": {
          // 待观测,目前看到的都是送礼人个人信息
          "face": "https://i2.hdslb.com/bfs/face/5d620fea3b4586311884155153a7091b79d0777d.jpg", // 头像
          "name": "舒葵交错" // 名称
        }
      },
      "guard": null, // 待观测,目前未观察到数据
      "guard_leader": null, // 待观测,目前未观察到数据
      "medal": {
        // 牌子信息
        "color": 398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
        "color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
        "color_end": 6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "color_start": 398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", // 大航海图标
        "guard_level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
        "honor_icon": "", // 待观测,目前无数据
        "id": 0, // 待观测,目前都是0
        "is_light": 1, // 牌子是否点亮 ,1=是,0=否
        "level": 27, // 牌子等级
        "name": "泠妻", // 牌子名称
        "ruid": 3494365156608185, // 牌子所属主播uid
        "score": 50093206, // 某种评分?待观测
        "typ": 0, // 待观测,目前都是0
        "user_receive_count": 0, // 待观测,目前都是0
        "v2_medal_color_border": "#58A1F8FF", // v2版本牌子边框颜色
        "v2_medal_color_end": "#4775EFCC", // v2版本牌子右侧颜色(渐变)
        "v2_medal_color_level": "#000B7099", // v2版本牌子等级颜色
        "v2_medal_color_start": "#4775EFCC", // v2版本牌子左侧颜色(渐变)
        "v2_medal_color_text": "#FFFFFFFF" // v2版本牌子内容颜色
      },
      "title": null, // 待观测,目前无数据
      "uhead_frame": null, // 待观测,目前无数据
      "uid": 3494362281412802, // 赠送人uid
      "wealth": null // 待观测,目前都是0
    },
    "silver": 0, // 待观测,目前都是0
    "super": 0, // 待观测,目前都是0
    "super_batch_gift_num": 1, // 待观测,与赠送数量相关
    "super_gift_num": 1, // 待观测,与赠送数量相关
    "svga_block": 0, // 待观测,目前都是0
    "switch": true, // 待观测,目前都是true
    "tag_image": "", // 待观测,目前无数据
    "tid": "4568350171557109760", // 待观测
    "timestamp": 1730123987, // 礼物赠送时间(秒级时间戳)
    "top_list": null, // 待观测,目前无数据
    "total_coin": 15000, // 礼物总价,连击时累加
    "uid": 3494362281412802, // 赠送人uid
    "uname": "舒葵交错", // 赠送人名称
    "wealth_level": 35 // 荣耀等级
  },
  "msg_id": "21794708686651904:1000:1000", // 待观测,感觉跟消息绑定了
  "p_is_ack": true, // 无数据或者TRUE,仍需观测
  "p_msg_type": 1, // 无数据或者1,仍需观测
  "send_time": 1730123987816 // 毫秒级时间戳,有时会没数据,待观测
}弹幕信息:DANMU_MSG#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 命令 | 
| dm_v2 | - | 待观察 | 
| info | array | 数据信息 | 
| info.0 | array | 弹幕信息 | 
| info.0.0 | int | 待观测,目前全是 0 | 
| info.0.1 | int | 弹幕的 mode 字段 | 
| info.0.2 | int | 弹幕的 fontsize 字段 | 
| info.0.3 | int | 弹幕颜色(十进制数据,需要自己转十六进制颜色代码) | 
| info.0.4 | int | 发送时的 UNIX 毫秒时间戳 | 
| info.0.5 | int | 待观测 | 
| info.0.6 | int | 待观测,目前全是 0 | 
| info.0.7 | string | 一个十六进制数,待观测,可能是颜色 | 
| info.0.8 | int | 待观测,目前全是 0 | 
| info.0.9 | int | 待观测,目前全是 0 | 
| info.0.10 | int | 待观测,疑似某种类型 | 
| info.0.11 | string | 待观测,通常为空字符串, info.0.10 == 5返回一组十六进制颜色代码 | 
| info.0.12 | int | 消息中是否携带表情,1=是,0=否 | 
| info.0.13 | string 或 array | 表情信息,info.0.12 == 1 时为 array,其余时候为字符串 | 
| info.0.13.bulge_display | int | 某种枚举,待观测 | 
| info.0.13.emoticon_unique | string | 表情符号,类似表情 ID 性质 | 
| info.0.13.height | int | 表情高度 | 
| info.0.13.in_player_area | int | 某种枚举,待观测 | 
| info.0.13.is_dynamic | int | 是否是动态表情,0=否,1=是 | 
| info.0.13.url | string | 表情 URL 图片地址 | 
| info.0.13.width | int | 表情宽度 | 
| info.0.14 | string | 字符串表示的 JSON Object,目前未观测到数据 | 
| info.0.15 | array | 弹幕补充信息,大部分数据都可以在里面获取 | 
| info.0.15.extra | string | 补充信息,json 字符串,需要自行转换为对象 | 
| info.0.15.extra.send_from_me | bool | 是否是自己发送 | 
| info.0.15.extra.mode | int | 弹幕模式 (等同于 info[0][1]) | 
| info.0.15.extra.color | int | 弹幕颜色 (等同于 info[0][3]) | 
| info.0.15.extra.dm_type | int | 某种枚举,待观测 | 
| info.0.15.extra.font_size | int | 字体大小(等同于 info[0][2]) | 
| info.0.15.extra.player_mode | int | 某种枚举,待观测 | 
| info.0.15.extra.show_player_type | int | 某种枚举,待观测 | 
| info.0.15.extra.content | string | 弹幕文本信息(等同于 info[1]) | 
| info.0.15.extra.user_hash | string | 待观测 | 
| info.0.15.extra.emoticon_unique | string | 待观测 | 
| info.0.15.extra.bulge_display | int | 待观测 | 
| info.0.15.extra.recommend_score | int | 待观测 | 
| info.0.15.extra.main_state_dm_color | string | 待观测 | 
| info.0.15.extra.objective_state_dm_color | string | 待观测 | 
| info.0.15.extra.direction | int | 待观测 | 
| info.0.15.extra.pk_direction | int | 待观测 | 
| info.0.15.extra.quartet_direction | int | 待观测 | 
| info.0.15.extra.anniversary_crowd | int | 待观测 | 
| info.0.15.extra.yeah_space_type | string | 待观测 | 
| info.0.15.extra.yeah_space_url | string | 待观测 | 
| info.0.15.extra.jump_to_url | string | 待观测 | 
| info.0.15.extra.space_type | string | 待观测 | 
| info.0.15.extra.space_url | string | 待观测 | 
| info.0.15.extra.animation | array | 待观测,目前未观测到数据 | 
| info.0.15.extra.emots | array | 文本中使用过的表情信息,对象类型,key 为表情,例如:[藏狐] | 
| info.0.15.extra.emots.[藏狐].count | int | 文本中出现的数量 | 
| info.0.15.extra.emots.[藏狐].descript | string | 描述 | 
| info.0.15.extra.emots.[藏狐].emoji | string | 描述 | 
| info.0.15.extra.emots.[藏狐].emoticon_id | int | 待观测 | 
| info.0.15.extra.emots.[藏狐].emoji | string | 待观测 | 
| info.0.15.extra.emots.[藏狐].height | int | 图片高度 | 
| info.0.15.extra.emots.[藏狐].url | string | 图片 url | 
| info.0.15.extra.emots.[藏狐].width | int | 图片宽度 | 
| info.0.15.extra.is_audited | bool | 待观测 | 
| info.0.15.extra.id_str | string | 待观测 | 
| info.0.15.extra.icon | - | 待观测 | 
| info.0.15.extra.show_reply | bool | 是否允许回复 | 
| info.0.15.extra.reply_mid | int | 回复消息发送人 uid | 
| info.0.15.extra.reply_uname | string | 回复消息发送人名称 | 
| info.0.15.extra.reply_uname_color | string | 回复消息发送人名字颜色 | 
| info.0.15.extra.reply_is_mystery | bool | 待观测 | 
| info.0.15.extra.reply_type_enum | int | 待观测,某种枚举 | 
| info.0.15.extra.hit_combo | int | 待观测,疑似是一些重内容连续发送的连击数 | 
| info.0.15.extra.esports_jump_url | string | 待观测 | 
| info.0.15.mode | int | 某种枚举,待观测 | 
| info.0.15.show_player_type | int | 某种枚举,待观测 | 
| info.0.15.user | array | 弹幕发送人信息 | 
| info.0.15.user.base | array | 发送人基本信息 | 
| info.0.15.user.base.face | string | 头像 | 
| info.0.15.user.base.is_mystery | bool | 不确定含义,待观测 | 
| info.0.15.user.base.name | string | 名称 | 
| info.0.15.user.base.name_color | int | 待观测,估计是名字颜色十进制数字 | 
| info.0.15.user.base.name_color_str | string | 待观测,估计是名字颜色十六进制代码 | 
| info.0.15.user.base.official_info | array | 待观测,估计是官方相关 | 
| info.0.15.user.base.official_info.desc | string | ?说明? | 
| info.0.15.user.base.official_info.role | int | ?角色? | 
| info.0.15.user.base.official_info.title | string | ?官方 title? | 
| info.0.15.user.base.official_info.type | int | ?类型 | 
| info.0.15.user.base.origin_info | array | 待观测,目前看到的都是发送人个人信息 | 
| info.0.15.user.base.origin_info.face | string | 头像 | 
| info.0.15.user.base.origin_info.name | string | 名称 | 
| info.0.15.user.base.risk_ctrl_info | array | 待观测,目前看到的都是发送人个人信息 | 
| info.0.15.user.base.risk_ctrl_info.face | string | 头像 | 
| info.0.15.user.base.risk_ctrl_info.name | string | 名称 | 
| info.0.15.user.guard | - | 待观测,怀疑可能跟超管有关 | 
| info.0.15.user.guard_leader | array | 待观测,怀疑可能跟超管有关 | 
| info.0.15.user.guard_leader.is_guard_leader | bool | 待观测,怀疑可能跟超管有关 | 
| info.0.15.user.medal | array | 牌子信息 | 
| info.0.15.user.medal.color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| info.0.15.user.medal.color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| info.0.15.user.medal.color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| info.0.15.user.medal.color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| info.0.15.user.medal.guard_icon | string | 大航海图标 | 
| info.0.15.user.medal.guard_level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| info.0.15.user.medal.honor_icon | - | 待观测,目前无数据 | 
| info.0.15.user.medal.id | int | 待观测,目前都是 0 | 
| info.0.15.user.medal.is_light | int | 牌子是否点亮 ,1=是,0=否 | 
| info.0.15.user.medal.level | int | 牌子等级 | 
| info.0.15.user.medal.name | string | 牌子名称 | 
| info.0.15.user.medal.ruid | int | 牌子所属主播 uid | 
| info.0.15.user.medal.score | int | 某种评分?待观测 | 
| info.0.15.user.medal.typ | int | 待观测,目前都是 0 | 
| info.0.15.user.medal.user_receive_count | int | 待观测,目前都是 0 | 
| info.0.15.user.medal.v2_medal_color_border | string | v2 版本牌子边框颜色 | 
| info.0.15.user.medal.v2_medal_color_end | string | v2 版本牌子右侧颜色(渐变) | 
| info.0.15.user.medal.v2_medal_color_level | int | v2 版本牌子等级颜色 | 
| info.0.15.user.medal.v2_medal_color_start | string | v2 版本牌子左侧颜色(渐变) | 
| info.0.15.user.medal.v2_medal_color_text | string | v2 版本牌子内容颜色 | 
| info.0.15.user.title | array | 待观测 | 
| info.0.15.user.title.title_css_id | string | 待观测 | 
| info.0.15.user.title.old_title_css_id | string | 待观测 | 
| info.0.15.user.uhead_frame | - | 待观测,目前无数据 | 
| info.0.15.user.uid | int | uid | 
| info.0.15.user.wealth | int | 待观测,目前都是 0 | 
| info.0.16 | array | 疑似活动信息,待观测 | 
| info.0.16.activity_identity | string | 待观测 | 
| info.0.16.activity_source | int | 待观测 | 
| info.0.16.not_show | int | 待观测 | 
| info.0.17 | int | 待观测 | 
| info.1 | string | 弹幕信息 | 
| info.2 | array | 用户信息 | 
| info.2.0 | int | 用户 uid | 
| info.2.1 | string | 用户名称 | 
| info.2.2 | int | 待观测 | 
| info.2.3 | int | 待观测 | 
| info.2.4 | int | 待观测 | 
| info.2.5 | int | 待观测 | 
| info.2.6 | int | 待观测 | 
| info.2.7 | string | 待观测,某种颜色信息,有时为空 | 
| info.3 | array | 牌子信息 | 
| info.3.0 | int | 牌子等级 | 
| info.3.1 | string | 牌子名称 | 
| info.3.2 | string | 牌子所属主播名称 | 
| info.3.3 | int | 牌子所属直播间房间号 | 
| info.3.4 | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| info.3.5 | string | 待观测,一直是空 | 
| info.3.6 | int | 待观测,一直是 0 | 
| info.3.7 | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| info.3.8 | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| info.3.9 | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| info.3.10 | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| info.3.11 | int | 牌子是否点亮 ,1=是,0=否 | 
| info.3.12 | int | 牌子所属主播 uid | 
| info.4 | array | 疑似什么等级信息 | 
| info.4.0 | int | 疑似什么等级 | 
| info.4.0 | int | 待观测,目前都是 0 | 
| info.4.0 | int | 颜色(十进制数据,需要自己转十六进制颜色代码) | 
| info.4.0 | string | 待观测,疑似当前什么等级经验值 | 
| info.4.0 | int | 待观测,某种枚举 | 
| info.5 | array | 待观测 | 
| info.5.0 | string | 待观测,大部分为空串,少部分存在数据,不确定用途 | 
| info.5.1 | string | 待观测,大部分为空串,少部分存在数据,不确定用途 | 
| info.6 | int | 待观测,一直都是 0 | 
| info.7 | int | 疑似大航海类型 | 
| info.8 | - | 待观测,一直都是空 | 
| info.9 | array | 发送时间戳 | 
| info.9.ct | string | 待观测,某十六进制数据 | 
| info.9.ts | int | 秒级时间戳,应该是发送时间 | 
| info.10 | int | 待观测,一直都是 0 | 
| info.11 | int | 待观测,一直都是 0 | 
| info.12 | - | 待观测,一直都是空 | 
| info.13 | - | 待观测,一直都是空 | 
| info.14 | int | 待观测,一直都是 0 | 
| info.15 | int | 待观测 | 
| info.16 | array | 待观测,疑似某种等级信息 | 
| info.16.0 | int | 待观测,疑似某种等级信息 | 
点击查看数据示例
{
  "cmd": "DANMU_MSG", // 命令
  "dm_v2": "", // 待观察
  "info": [
    // 数据信息
    [
      // 弹幕信息
      0, // 待观测,目前全是0
      4, // 弹幕的 mode 字段
      25, // 弹幕的 fontsize 字段
      14893055, // 弹幕颜色(十进制数据,需要自己转十六进制颜色代码)
      1730214752940, // 发送时的 UNIX 毫秒时间戳
      1730214703, // 待观测
      0, // 待观测,目前全是0
      "d136d2ff", // 一个十六进制数,待观测,可能是颜色
      0, // 待观测,目前全是0
      0, // 待观测,目前全是0
      2, // 待观测,疑似某种类型
      "#19897EFF,#403F388E,#33897EFF", // 待观测,通常为空字符串,info.0.10 == 5 返回一组十六进制颜色代码
      1, // 消息中是否携带表情,1=是,0=否
      {
        // 表情信息,info.0.12 == 1 时为array,其余时候为字符串
        "bulge_display": 1, // 某种枚举,待观测
        "emoticon_unique": "room_30118851_73109", // 表情符号,类似表情ID性质
        "height": 162, // 表情高度
        "in_player_area": 1, // 某种枚举,待观测
        "is_dynamic": 0, // 是否是动态表情,0=否,1=是
        "url": "http://i0.hdslb.com/bfs/live/c45b116a620ba68ce4a6d0ce7bcfc629a4cbbf98.png", // 表情URL图片地址
        "width": 162 // 表情宽度
      },
      "{}", // 字符串表示的 JSON Object,目前未观测到数据
      {
        // 弹幕补充信息,大部分数据都可以在里面获取
        "extra": {
          // 补充信息,json字符串,需要自行转换为对象
          "send_from_me": false, // 是否是自己发送
          "mode": 0, // 弹幕模式 (等同于info[0][1])
          "color": 14893055, // 弹幕颜色 (等同于info[0][3])
          "dm_type": 1, // 某种枚举,待观测
          "font_size": 25, // 	字体大小(等同于info[0][2])
          "player_mode": 4, // 某种枚举,待观测
          "show_player_type": 0, // 某种枚举,待观测
          "content": "[墨镜]这个表情", // 弹幕文本信息(等同于info[1])
          "user_hash": "3510031103", // 待观测
          "emoticon_unique": "room_30118851_73109", // 待观测
          "bulge_display": 1, // 待观测
          "recommend_score": 0, // 待观测
          "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": {
            // 文本中使用过的表情信息,对象类型,key为表情,例如:[墨镜]
            "[墨镜]": {
              // 某个表情,key为对应的文本
              "count": 1, // 文本中出现的数量
              "descript": "[墨镜]", // 描述
              "emoji": "[墨镜]", // 描述
              "emoticon_id": 273, // 待观测
              "emoticon_unique": "emoji_273", // 待观测
              "height": 20, // 图片高度
              "url": "http://i0.hdslb.com/bfs/live/5e01c237642c8b662a69e21b8e0fbe6e7dbc2aa1.png", // 图片url
              "width": 20 // 图片宽度
            }
          },
          "is_audited": false, // 待观测
          "id_str": "0b0b20c622a374dc3e1e327bb76720fb63", // 待观测
          "icon": null, // 待观测
          "show_reply": true, // 是否允许回复
          "reply_mid": 0, // 回复消息发送人uid
          "reply_uname": "", // 回复消息发送人名称
          "reply_uname_color": "", // 回复消息发送人名字颜色
          "reply_is_mystery": false, // 待观测
          "reply_type_enum": 0, // 待观测,某种枚举
          "hit_combo": 0, // 待观测,疑似是一些重内容连续发送的连击数
          "esports_jump_url": "" // 待观测
        },
        "mode": 0, // 某种枚举,待观测
        "show_player_type": 0, // 某种枚举,待观测
        "user": {
          // 弹幕发送人信息
          "base": {
            // 发送人基本信息
            "face": "https://i1.hdslb.com/bfs/face/1bddafc0564fd84e6da7f262c6c37deb6605d623.jpg", // 头像
            "is_mystery": false, // 不确定含义,待观测
            "name": "岚烟y", // 名称
            "name_color": 0, // 待观测,估计是名字颜色十进制数字
            "name_color_str": "", // 待观测,估计是名字颜色十六进制代码
            "official_info": {
              // 待观测,估计是官方相关
              "desc": "", // ?说明?
              "role": 0, // ?角色?
              "title": "", // ?官方title?
              "type": -1 // ?类型
            },
            "origin_info": {
              // 待观测,目前看到的都是发送人个人信息
              "face": "https://i1.hdslb.com/bfs/face/1bddafc0564fd84e6da7f262c6c37deb6605d623.jpg", // 头像
              "name": "岚烟y" // 名称
            },
            "risk_ctrl_info": {
              // 待观测,目前看到的都是发送人个人信息
              "face": "https://i1.hdslb.com/bfs/face/1bddafc0564fd84e6da7f262c6c37deb6605d623.jpg", // 头像
              "name": "岚烟y" // 名称
            }
          },
          "guard": null, // 待观测,怀疑可能跟超管有关
          "guard_leader": {
            // 待观测,怀疑可能跟超管有关
            "is_guard_leader": false // 待观测,怀疑可能跟超管有关
          },
          "medal": {
            // 牌子信息
            "color": 398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
            "color_border": 16771156, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
            "color_end": 6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
            "color_start": 398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
            "guard_icon": "https://i0.hdslb.com/bfs/live/98a201c14a64e860a758f089144dcf3f42e7038c.png", // 大航海图标
            "guard_level": 2, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
            "honor_icon": "", // 待观测,目前无数据
            "id": 1130856, // 待观测,目前都是0
            "is_light": 1, // 牌子是否点亮 ,1=是,0=否
            "level": 26, // 牌子等级
            "name": "泠妻", // 牌子名称
            "ruid": 3494365156608185, // 牌子所属主播uid
            "score": 50046632, // 某种评分?待观测
            "typ": 0, // 待观测,目前都是0
            "user_receive_count": 0, // 待观测,目前都是0
            "v2_medal_color_border": "#58A1F8FF", // v2版本牌子边框颜色
            "v2_medal_color_end": "#4775EFCC", // v2版本牌子右侧颜色(渐变)
            "v2_medal_color_level": "#000B7099", // v2版本牌子等级颜色
            "v2_medal_color_start": "#4775EFCC", // v2版本牌子左侧颜色(渐变)
            "v2_medal_color_text": "#FFFFFFFF" // v2版本牌子内容颜色
          },
          "title": {
            // 待观测
            "old_title_css_id": "", // 待观测
            "title_css_id": "" // 待观测
          },
          "uhead_frame": null, // 待观测,目前无数据
          "uid": 400970605, // uid
          "wealth": null // 待观测
        }
      },
      {
        // 疑似活动信息,待观测
        "activity_identity": "", // 待观测
        "activity_source": 0, // 待观测
        "not_show": 0 // 待观测
      },
      42 // 待观测
    ],
    "[墨镜]这个表情", // 弹幕信息
    [
      // 用户信息
      400970605, // 用户uid
      "岚烟y", // 用户名称
      1, // 待观测
      0, // 待观测
      0, // 待观测
      10000, // 待观测
      1, // 待观测
      "#E17AFF" // 待观测,某种颜色信息,有时为空
    ],
    [
      // 牌子信息
      26, // 牌子等级
      "泠妻", // 牌子名称
      "温以泠", // 牌子所属主播名称
      30118851, // 牌子所属直播间房间号
      398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
      "", // 待观测,一直是空
      0, // 待观测,一直是0
      16771156, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
      398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      2, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
      1, // 牌子是否点亮 ,1=是,0=否
      3494365156608185 // 牌子所属主播uid
    ],
    [
      // 疑似什么等级信息
      15, // 疑似什么等级
      0, // 待观测,目前都是0
      6406234, // 颜色(十进制数据,需要自己转十六进制颜色代码)
      ">50000", // 待观测,疑似当前什么等级经验值
      0 // 待观测,某种枚举
    ],
    [
      // 待观测
      "", // 待观测,大部分为空串,少部分存在数据,不确定用途
      "" // 待观测,大部分为空串,少部分存在数据,不确定用途
    ],
    0, // 待观测,一直都是0
    2, // 疑似大航海类型
    null, // 待观测,一直都是空
    {
      // 发送时间戳
      "ct": "F2A502B4", // 待观测,某十六进制数据
      "ts": 1730214752 // 秒级时间戳,应该是发送时间
    },
    0, // 待观测,一直都是0
    0, // 待观测,一直都是0
    null, // 待观测,一直都是空
    null, // 待观测,一直都是空
    0, // 待观测,一直都是0
    594, // 待观测
    [
      // 待观测,疑似某种等级信息
      28 // 待观测,疑似某种等级信息
    ],
    null // 待观测
  ]
}开通大航海:GUARD_BUY#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.uid | int | 用户 uid | 
| data.username | string | 用户名 | 
| data.guard_level | int | 开通类型,1=总督,2=提督,3=舰长 | 
| data.num | int | 开通数量 | 
| data.price | int | 价值(电池*100) | 
| data.gift_id | int | 礼物 ID | 
| data.gift_name | int | 礼物名称 | 
| data.start_time | int | 上舰时间 | 
| data.end_time | int | 上舰时间 | 
点击查看数据示例
{
  "cmd": "GUARD_BUY", // 固定命令
  "data": {
    // 数据信息
    "uid": 24967532, // 用户uid
    "username": "骸骸家的三哥哥", // 用户名
    "guard_level": 3, // 开通类型,1=总督,2=提督,3=舰长
    "num": 1, // 开通数量
    "price": 198000, // 价值(电池*100)
    "gift_id": 10003, // 礼物ID
    "gift_name": "舰长", // 礼物名称
    "start_time": 1730438935, // 上舰时间
    "end_time": 1730438935 // 上舰时间
  }
}千舰推送:GUARD_LOTTERY_START#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.add | array | 新增千舰主播 uid 数组 | 
| data.del | array | 退出千舰主播 uid 数组 | 
点击查看数据示例
{
  "cmd": "GUARD_HONOR_THOUSAND", // 固定命令
  "data": {
    // 数据信息
    "add": [
      // 新增千舰
      13164144, // 主播的uid
      433351 // 主播的uid
    ],
    "del": [
      // 退出千舰
      3537115310721781, // 主播的uid
      3493273152784750 // 主播的uid
    ]
  }
}上舰抽奖消息推送:USER_TOAST_MSG#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.anchor_show | bool | 待观测,疑似是否在直播间展示,通常为 true | 
| data.color | string | 某种颜色值 | 
| data.dmscore | int | 待观测 | 
| data.effect_id | int | 待观测 | 
| data.end_time | int | 结束时间(秒级时间戳),与开始时间相同 | 
| data.face_effect_id | int | 待观测 | 
| data.gift_id | int | 礼物 ID | 
| data.group_name | int | 待观测 | 
| data.group_op_type | int | 待观测 | 
| data.group_role_name | int | 待观测 | 
| data.guard_level | int | 开通大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.is_group | int | 待观测 | 
| data.is_show | int | 待观测 | 
| data.num | int | 开通数量 | 
| data.op_type | int | 待观测 | 
| data.payflow_id | string | 待观测 | 
| data.price | int | 大航海价格(电池*100) | 
| data.role_name | string | 身份名称 | 
| data.room_effect_id | int | 待观测 | 
| data.room_gift_effect_id | int | 待观测 | 
| data.room_group_effect_id | int | 待观测 | 
| data.source | int | 待观测 | 
| data.start_time | int | 开始时间(秒级时间戳),与开始时间相同 | 
| data.svga_block | int | 待观测 | 
| data.target_guard_count | int | 待观测 | 
| data.toast_msg | string | 在直播间中发送的文字内容 | 
| data.uid | int | 开通用户 uid | 
| data.unit | string | 开通单位 | 
| data.user_show | bool | 跟显示相关?待观测 | 
| data.username | string | 开通用户名称 | 
点击查看数据示例
{
  "cmd": "USER_TOAST_MSG", // 固定命令
  "data": {
    // 数据信息
    "anchor_show": true, // 待观测,疑似是否在直播间展示,通常为true
    "color": "#00D1F1", // 某种颜色值
    "dmscore": 306, // 待观测
    "effect_id": 397, // 待观测
    "end_time": 1730361519, // 结束时间(秒级时间戳),与开始时间相同
    "face_effect_id": 44, // 待观测
    "gift_id": 10003, // 礼物ID
    "group_name": "", // 待观测
    "group_op_type": 0, // 待观测
    "group_role_name": "", // 待观测
    "guard_level": 3, // 开通大航海类型,0=普通用户,1=总督,2=提督,3=舰长
    "is_group": 0, // 待观测
    "is_show": 0, // 待观测
    "num": 1, // 开通数量
    "op_type": 2, // 待观测
    "payflow_id": "2410311558284912114936330", // 待观测
    "price": 168000, // 大航海价格(电池*100)
    "role_name": "舰长", // 身份名称
    "room_effect_id": 590, // 待观测
    "room_gift_effect_id": 0, // 待观测
    "room_group_effect_id": 1337, // 待观测
    "source": 0, // 待观测
    "start_time": 1730361519, // 开始时间(秒级时间戳),与开始时间相同
    "svga_block": 0, // 待观测
    "target_guard_count": 64, // 待观测
    "toast_msg": "<%尘世七仙%> 在主播温以泠的直播间续费了舰长,今天是TA陪伴主播的第325天", // 在直播间中发送的文字内容
    "uid": 1517971493, // 开通用户uid
    "unit": "月", // 开通单位
    "user_show": true, // 跟显示相关?待观测
    "username": "尘世七仙" // 开通用户名称
  },
  "msg_id": "21919243995990016:1000:1000",
  "p_is_ack": true,
  "p_msg_type": 1,
  "send_time": 1730361520068
}醒目留言:SUPER_CHAT_MESSAGE#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.background_bottom_color | string | 底部正文区域背景色 | 
| data.background_color | string | 底部正文文字颜色 | 
| data.background_color_end | string | 牌子右侧颜色(渐变) | 
| data.background_color_start | string | 牌子左侧颜色(渐变) | 
| data.background_icon | string | ?背景图标? | 
| data.background_image | string | ?背景图片? | 
| data.background_price_color | string | ?价格背景颜色? | 
| data.color_point | int | 待观测 | 
| data.dmscore | int | 待观测 | 
| data.end_time | int | 醒目留言结束时间(秒级时间戳) | 
| data.gift | array | 礼物信息 | 
| data.gift.gift_id | int | 礼物 ID | 
| data.gift.gift_name | string | 礼物名称 | 
| data.gift.num | int | 赠送数量 | 
| data.group_medal | array | 待观测,疑似套票 | 
| data.group_medal.is_lighted | int | 疑似套票是否点亮,1=是,0=否 | 
| data.group_medal.medal_id | int | 疑似套票 id | 
| data.group_medal.name | string | 疑似套票名称 | 
| data.id | int | 疑似醒目留言 ID | 
| data.is_mystery | bool | 待观测 | 
| data.is_ranked | int | 待观测 | 
| data.is_send_audit | int | 待观测 | 
| data.medal_info | array | 牌子信息 | 
| data.medal_info.anchor_roomid | int | 房间号 | 
| data.medal_info.anchor_uname | string | 主播名称 | 
| data.medal_info.guard_level | int | 牌子的大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.medal_info.icon_id | int | 应该是某 ID 相关,待观测,目前全是 0 | 
| data.medal_info.is_lighted | int | 牌子是否点亮 ,1=是,0=否 | 
| data.medal_info.medal_color | string | 牌子颜色(十六进制颜色代码) | 
| data.medal_info.medal_color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.medal_info.medal_level | int | 牌子等级 | 
| data.medal_info.medal_name | string | 牌子名称 | 
| data.medal_info.special | - | 估计是用来区分特殊牌子的,待观测 | 
| data.medal_info.target_id | int | 牌子所属主播 uid | 
| data.message | string | 醒目留言内容 | 
| data.message_font_color | string | 醒目留言颜色 | 
| data.message_trans | string | 日语信息 | 
| data.price | int | 单价?电池/10 | 
| data.rate | int | 待观测,会不会是用来计算价格的?比如 price * rate = 电池*100 | 
| data.start_time | int | 醒目留言开始时间(秒级时间戳) | 
| data.time | int | 醒目留言持续时间 | 
| data.token | string | 待观测 | 
| data.trans_mark | int | 待观测 | 
| data.ts | int | 醒目留言开始时间(秒级时间戳) | 
| data.uid | int | 发送用户 uid | 
| data.uinfo | array | 发送用户信息 | 
| data.uinfo.base | array | 收礼人(主播)基本信息 | 
| data.uinfo.base.face | string | 头像 | 
| data.uinfo.base.is_mystery | bool | 不确定含义,待观测 | 
| data.uinfo.base.name | string | 名称 | 
| data.uinfo.base.name_color | int | 待观测,估计是名字颜色十进制数字 | 
| data.uinfo.base.name_color_str | string | 待观测,估计是名字颜色十六进制代码 | 
| data.uinfo.base.official_info | array | 待观测,估计是官方相关 | 
| data.uinfo.base.official_info.desc | string | ?说明? | 
| data.uinfo.base.official_info.role | int | ?角色? | 
| data.uinfo.base.official_info.title | string | ?官方 title? | 
| data.uinfo.base.official_info.type | int | ?类型 | 
| data.uinfo.base.origin_info | array | 待观测,目前看到的都是主播个人信息 | 
| data.uinfo.base.origin_info.face | string | 头像 | 
| data.uinfo.base.origin_info.name | string | 名称 | 
| data.uinfo.base.risk_ctrl_info | array | 待观测,目前看到的都是主播个人信息 | 
| data.uinfo.base.risk_ctrl_info.face | string | 头像 | 
| data.uinfo.base.risk_ctrl_info.name | string | 名称 | 
| data.uinfo.guard | array | 大航海应该是,如果不是大航海就是 null | 
| data.uinfo.guard.expired_str | string | 到期时间? | 
| data.uinfo.guard.level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.uinfo.guard_leader | - | 待观测,当前未观测到数据 | 
| data.uinfo.medal | array | 牌子信息 | 
| data.uinfo.medal.color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.guard_icon | string | 大航海图标 | 
| data.uinfo.medal.guard_level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.uinfo.medal.honor_icon | - | 待观测,目前无数据 | 
| data.uinfo.medal.id | int | 待观测,目前都是 0 | 
| data.uinfo.medal.is_light | int | 牌子是否点亮 ,1=是,0=否 | 
| data.uinfo.medal.level | int | 牌子等级 | 
| data.uinfo.medal.name | string | 牌子名称 | 
| data.uinfo.medal.ruid | int | 牌子所属主播 uid | 
| data.uinfo.medal.score | int | 某种评分?待观测 | 
| data.uinfo.medal.typ | int | 待观测,目前都是 0 | 
| data.uinfo.medal.user_receive_count | int | 待观测,目前都是 0 | 
| data.uinfo.medal.v2_medal_color_border | string | v2 版本牌子边框颜色 | 
| data.uinfo.medal.v2_medal_color_end | string | v2 版本牌子右侧颜色(渐变) | 
| data.uinfo.medal.v2_medal_color_level | int | v2 版本牌子等级颜色 | 
| data.uinfo.medal.v2_medal_color_start | string | v2 版本牌子左侧颜色(渐变) | 
| data.uinfo.medal.v2_medal_color_text | string | v2 版本牌子内容颜色 | 
| data.uinfo.title | array | 待观测,当前未观测到数据 | 
| data.uinfo.title.old_title_css_id | string | 待观测,当前未观测到数据 | 
| data.uinfo.title.title_css_id | string | 待观测,当前未观测到数据 | 
| data.uinfo.uhead_frame | - | 待观测,当前未观测到数据 | 
| data.uinfo.uid | int | uid | 
| data.uinfo.wealth | - | 待观测,当前未观测到数据 | 
| data.user_info | array | 也是用户信息 | 
| data.user_info.face | string | 用户头像 | 
| data.user_info.face_frame | string | 用户头像框 | 
| data.user_info.guard_level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.user_info.is_main_vip | int | 待观测,看起来是是否是某种,1=是,0=否 | 
| data.user_info.is_svip | int | 待观测,看起来是是否是某种,1=是,0=否 | 
| data.user_info.is_vip | int | 待观测,看起来是是否是某种,1=是,0=否 | 
| data.user_info.level_color | string | 用户等级颜色 | 
| data.user_info.manager | int | 待观测 | 
| data.user_info.name_color | string | 用户名字颜色 | 
| data.user_info.title | string | 待观测,当前未观测到数据 | 
| data.user_info.uname | string | 用户名 | 
| data.user_info.user_level | int | 用户等级 | 
点击查看数据示例
{
  "cmd": "SUPER_CHAT_MESSAGE", // 固定命令
  "data": {
    // 数据信息
    "background_bottom_color": "#2A60B2", // 底部正文区域背景色
    "background_color": "#EDF5FF", // 底部正文文字颜色
    "background_color_end": "#405D85", // 牌子右侧颜色(渐变)
    "background_color_start": "#3171D2", // 牌子左侧颜色(渐变)
    "background_icon": "", // ?背景图标?
    "background_image": "", // ?背景图片?
    "background_price_color": "#7497CD", // ?价格背景颜色?
    "color_point": 0.7, // 待观测
    "dmscore": 952, // 待观测
    "end_time": 1730468880, // 醒目留言结束时间(秒级时间戳)
    "gift": {
      // 礼物信息
      "gift_id": 12000, // 礼物ID
      "gift_name": "醒目留言", // 礼物名称
      "num": 1 // 赠送数量
    },
    "group_medal": {
      // 待观测,疑似套票
      "is_lighted": 0, // 疑似套票是否点亮,1=是,0=否
      "medal_id": 0, // 疑似套票id
      "name": "" // 疑似套票名称
    },
    "id": 10857495, // 疑似醒目留言ID
    "is_mystery": false, // 待观测
    "is_ranked": 0, // 待观测
    "is_send_audit": 0, // 待观测
    "medal_info": {
      // 牌子信息
      "anchor_roomid": 22384516, // 房间号
      "anchor_uname": "呜米", // 主播名称
      "guard_level": 3, // 牌子的大航海类型,0=普通用户,1=总督,2=提督,3=舰长
      "icon_id": 0, // 应该是某ID相关,待观测,目前全是0
      "is_lighted": 1, // 牌子是否点亮 ,1=是,0=否
      "medal_color": "#2d0855", // 牌子颜色(十六进制颜色代码)
      "medal_color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_end": 10329087, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_start": 2951253, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      "medal_level": 29, // 牌子等级
      "medal_name": "小米星", // 牌子名称
      "special": "", // 估计是用来区分特殊牌子的,待观测
      "target_id": 617459493 // 牌子所属主播uid
    },
    "message": "说实话2.0这个皮套当时吸引我留下来的很大原因(小声)后面成功转型为歌粉", // 醒目留言内容
    "message_font_color": "#A3F6FF", // 醒目留言颜色
    "message_trans": "", // 日语信息
    "price": 30, // 单价?电池/10
    "rate": 1000, // 待观测,会不会是用来计算价格的?比如 price * rate = 电池*100
    "start_time": 1730468820, // 醒目留言开始时间(秒级时间戳)
    "time": 60, // 醒目留言持续时间
    "token": "5D8E7A9D", // 待观测
    "trans_mark": 0, // 待观测
    "ts": 1730468820, // 醒目留言开始时间(秒级时间戳)
    "uid": 15589465, // 发送用户uid
    "uinfo": {
      // 发送用户信息
      "base": {
        // 基本信息
        "face": "https://i1.hdslb.com/bfs/face/fad0fa8d7cb85f82fde486fc49b8766e00d7272b.jpg", // 头像URL
        "is_mystery": false, // 不确定含义,待观测
        "name": "唯心的狐狸", // 名称
        "name_color": 0, // 待观测,估计是名字颜色十进制数字
        "name_color_str": "#00D1F1", // 待观测,估计是名字颜色十六进制代码
        "official_info": {
          // 待观测,估计是官方相关
          "desc": "", // ?说明?
          "role": 0, // ?角色?
          "title": "", // ?官方title?
          "type": -1 // ?类型?
        },
        "origin_info": {
          // 待观测,目前看到的都是用户个人信息
          "face": "https://i1.hdslb.com/bfs/face/fad0fa8d7cb85f82fde486fc49b8766e00d7272b.jpg", // 头像URL
          "name": "唯心的狐狸" // 名称
        },
        "risk_ctrl_info": {
          // 待观测,目前看到的都是用户个人信息
          "face": "https://i1.hdslb.com/bfs/face/fad0fa8d7cb85f82fde486fc49b8766e00d7272b.jpg", // 头像URL
          "name": "唯心的狐狸" // 名称
        }
      },
      "guard": {
        // 大航海应该是,如果不是大航海就是null
        "expired_str": "2025-11-14 23:59:59", // 到期时间
        "level": 3 // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
      },
      "guard_leader": null, // 房管的领导?
      "medal": {
        // 牌子信息
        "color": 2951253, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
        "color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
        "color_end": 10329087, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "color_start": 2951253, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", // 大航海图标URL
        "guard_level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
        "honor_icon": "", // 待观测,目前无数据
        "id": 0, // 待观测,目前都是0
        "is_light": 1, // 牌子是否点亮 ,1=是,0=否
        "level": 29, // 牌子等级
        "name": "小米星", // 牌子名称
        "ruid": 617459493, // 牌子所属主播uid
        "score": 50505386, // 某种评分?待观测
        "typ": 0, // 待观测,目前都是0
        "user_receive_count": 0, // 待观测,目前都是0
        "v2_medal_color_border": "#D47AFFFF", // v2版本牌子边框颜色
        "v2_medal_color_end": "#9660E5CC", // v2版本牌子右侧颜色(渐变)
        "v2_medal_color_level": "#6C00A099", // v2版本牌子等级颜色
        "v2_medal_color_start": "#9660E5CC", // v2版本牌子左侧颜色(渐变)
        "v2_medal_color_text": "#FFFFFFFF" // v2版本牌子内容颜色
      },
      "title": {
        // 待观测,当前未观测到数据
        "old_title_css_id": "", // 待观测,当前未观测到数据
        "title_css_id": "" // 待观测,当前未观测到数据
      },
      "uhead_frame": null, // 待观测,当前未观测到数据
      "uid": 15589465, // 用户uid
      "wealth": null // 待观测,当前未观测到数据
    },
    "user_info": {
      // 也是用户信息
      "face": "https://i1.hdslb.com/bfs/face/fad0fa8d7cb85f82fde486fc49b8766e00d7272b.jpg", // 用户头像
      "face_frame": "https://i0.hdslb.com/bfs/live/80f732943cc3367029df65e267960d56736a82ee.png", // 用户头像框
      "guard_level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
      "is_main_vip": 1, // 待观测,看起来是是否是某种,1=是,0=否
      "is_svip": 0, // 待观测,看起来是是否是某种,1=是,0=否
      "is_vip": 0, // 待观测,看起来是是否是某种,1=是,0=否
      "level_color": "#5896de", // 用户等级颜色
      "manager": 0, // 待观测
      "name_color": "#00D1F1", // 用户名字颜色
      "title": "", // 待观测,当前未观测到数据
      "uname": "唯心的狐狸", // 用户名
      "user_level": 24 // 用户等级
    }
  },
  "is_report": true,
  "msg_id": "21975500356352512:1000:1000",
  "p_is_ack": true,
  "p_msg_type": 1,
  "send_time": 1730468820560
}舰长进入直播间:ENTRY_EFFECT#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.basemap_url | string | 欢迎进入时的背景图 | 
| data.business | int | 待观测,像是区分了欢迎背景图的类型 | 
| data.copy_color | string | 文字颜色 | 
| data.copy_writing | string | 网页中出现的欢迎文案 | 
| data.copy_writing_v2 | string | 网页中出现的欢迎文案 | 
| data.effect_silent_time | int | 待观测 | 
| data.effective_time | int | 有效时间,单位应该是秒 | 
| data.effective_time_new | int | 待观测 | 
| data.face | string | 用户头像 | 
| data.full_cartoon_id | int | 待观测 | 
| data.highlight_color | string | 文字突出颜色 | 
| data.icon_list | array | 待观测 | 
| data.icon_list.0 | - | 待观测 | 
| data.id | int | id | 
| data.identities | int | 待观测 | 
| data.is_mystery | bool | 待观测 | 
| data.max_delay_time | int | 疑似最长停留时间? | 
| data.mobile_dynamic_url_webp | int | 待观测 | 
| data.mock_effect | int | 待观测 | 
| data.new_style | int | 待观测 | 
| data.priority | int | 优先级,应该是数字越大越靠前 | 
| data.priority_level | xxxxx | xxxxx | 
| data.privilege_type | int | 特权类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.show_avatar | int | 是否显示头像,0=否,1=是 | 
| data.target_id | int | 主播 uid | 
| data.trigger_time | int | 待观测 | 
| data.uid | int | 用户 uid | 
| data.uinfo | array | 用户信息 | 
| data.uinfo.base | array | 基本信息 | 
| data.uinfo.base.face | string | 头像 | 
| data.uinfo.base.is_mystery | bool | 待观测 | 
| data.uinfo.base.name | string | 名称 | 
| data.uinfo.base.name_color | int | 待观测 | 
| data.uinfo.base.name_color_str | string | 名字颜色? | 
| data.uinfo.base.official_info | - | 待观测 | 
| data.uinfo.base.origin_info | - | 待观测 | 
| data.uinfo.base.risk_ctrl_info | - | 待观测 | 
| data.uinfo.guard | array | 大航海信息 | 
| data.uinfo.guard.expired_str | string | 到期日期 | 
| data.uinfo.guard.level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.uinfo.guard_leader | - | 待观测 | 
| data.uinfo.medal | array | 牌子信息 | 
| data.uinfo.medal.color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.guard_icon | string | 大航海图标 URL | 
| data.uinfo.medal.guard_level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.uinfo.medal.honor_icon | string | 待观测,目前无数据 | 
| data.uinfo.medal.id | int | 待观测 | 
| data.uinfo.medal.is_light | int | 牌子是否点亮 ,1=是,0=否 | 
| data.uinfo.medal.level | int | 牌子等级 | 
| data.uinfo.medal.name | int | 牌子名称 | 
| data.uinfo.medal.ruid | int | 主播 uid | 
| data.uinfo.medal.score | int | 某种评分?待观测 | 
| data.uinfo.medal.typ | int | 待观测,目前都是 0 | 
| data.uinfo.medal.user_receive_count | int | 待观测,目前都是 0 | 
| data.uinfo.medal.v2_medal_color_border | string | v2 版本牌子边框颜色 | 
| data.uinfo.medal.v2_medal_color_end | string | v2 版本牌子右侧颜色(渐变) | 
| data.uinfo.medal.v2_medal_color_level | string | v2 版本牌子等级颜色 | 
| data.uinfo.medal.v2_medal_color_start | string | v2 版本牌子左侧颜色(渐变) | 
| data.uinfo.medal.v2_medal_color_text | string | v2 版本牌子内容颜色 | 
| data.uinfo.title | - | 待观测 | 
| data.uinfo.uhead_frame | array | 待观测 | 
| data.uinfo.uhead_frame.frame_img | string | 待观测 | 
| data.uinfo.uhead_frame.id | int | 待观测 | 
| data.uinfo.uid | int | 用户 uid | 
| data.uinfo.wealth | array | 荣耀等级 | 
| data.uinfo.wealth.dm_icon_key | int | 荣耀等级 | 
| data.uinfo.wealth.level | string | 待观测 | 
| data.wealth_style_info | array | 荣耀等级图片 | 
| data.wealth_style_info.url | string | 荣耀等级图片 URL | 
| data.wealthy_info | array | 荣耀等级信息 | 
| data.wealthy_info.cur_score | int | 待观测 | 
| data.wealthy_info.dm_icon_key | int | 待观测 | 
| data.wealthy_info.level | int | 荣耀等级 | 
| data.wealthy_info.level_total_score | int | 待观测 | 
| data.wealthy_info.status | int | 待观测 | 
| data.wealthy_info.uid | int | 待观测 | 
| data.wealthy_info.upgrade_need_score | int | 待观测 | 
| data.web_basemap_url | string | web 版欢迎进入时的背景图 | 
| data.web_close_time | int | 待观测 | 
| data.web_dynamic_url_apng | int | 待观测 | 
| data.web_dynamic_url_webp | int | 待观测 | 
| data.web_effect_close | int | 待观测 | 
| data.web_effective_time | int | web 版有效时间,单位应该是秒 | 
点击查看数据示例
{
  "cmd": "ENTRY_EFFECT",
  "data": {
    "id": 381, // id
    "uid": 28726406, // 用户uid
    "target_id": 617459493, // 主播uid
    "mock_effect": 0, // 待观测
    "face": "https://i2.hdslb.com/bfs/face/cbbe6b3ebf859640afd9fd67897ea6089dea8b51.webp", // 用户头像
    "privilege_type": 3, // 特权类型,0=普通用户,1=总督,2=提督,3=舰长
    "copy_writing": "<%ユリが一番好き%> 来了", // 网页中出现的欢迎文案
    "copy_color": "#F7F7F7", // 文字颜色
    "highlight_color": "#FFFFFF", // 文字突出颜色
    "priority": 1, // 优先级,应该是数字越大越靠前
    "basemap_url": "https://i0.hdslb.com/bfs/live/mlive/aee950e6aacddd0b125506f0a47d7fc1695d3ece.png", // 欢迎进入时的背景图
    "show_avatar": 0, // 是否显示头像,0=否,1=是
    "effective_time": 4, // 有效时间,单位应该是秒
    "web_basemap_url": "https://i0.hdslb.com/bfs/live/mlive/aee950e6aacddd0b125506f0a47d7fc1695d3ece.png", // web版欢迎进入时的背景图
    "web_effective_time": 4, // web版有效时间,单位应该是秒
    "web_effect_close": 1, // 待观测
    "web_close_time": 900, // 待观测
    "business": 6, // 待观测,像是区分了欢迎背景图的类型
    "copy_writing_v2": "<%ユリが一番好…%> 来了", // 网页中出现的欢迎文案
    "icon_list": [
      // 待观测
    ],
    "max_delay_time": 7, // 疑似最长停留时间?
    "trigger_time": 1730559246176328524, // 待观测
    "identities": 1, // 待观测
    "effect_silent_time": 0, // 待观测
    "effective_time_new": 0, // 待观测
    "web_dynamic_url_webp": "", // 待观测
    "web_dynamic_url_apng": "", // 待观测
    "mobile_dynamic_url_webp": "", // 待观测
    "wealthy_info": {
      // 荣耀等级信息
      "uid": 0, // 待观测
      "level": 28, // 荣耀等级
      "level_total_score": 0, // 待观测
      "cur_score": 0, // 待观测
      "upgrade_need_score": 0, // 待观测
      "status": 0, // 待观测
      "dm_icon_key": "" // 待观测
    },
    "new_style": 1, // 待观测
    "is_mystery": false, // 待观测
    "uinfo": {
      // 用户信息
      "uid": 28726406, // 用户uid
      "base": {
        // 基本信息
        "name": "ユリが一番好き", // 名称
        "face": "https://i2.hdslb.com/bfs/face/cbbe6b3ebf859640afd9fd67897ea6089dea8b51.webp", // 头像
        "name_color": 0, // 待观测
        "is_mystery": false, // 待观测
        "risk_ctrl_info": null, // 待观测
        "origin_info": null, // 待观测
        "official_info": null, // 待观测
        "name_color_str": "#00D1F1" // 名字颜色?
      },
      "medal": {
        // 牌子信息
        "name": "小米星", // 牌子名称
        "level": 25, // 牌子等级
        "color_start": 398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "color_end": 6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
        "color": 398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
        "id": 310969, // 待观测
        "typ": 0, // 待观测,目前都是0
        "is_light": 1, // 牌子是否点亮 ,1=是,0=否
        "ruid": 617459493, // 主播uid
        "guard_level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
        "score": 50027800, // 某种评分?待观测
        "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", // 大航海图标URL
        "honor_icon": "", // 待观测,目前无数据
        "v2_medal_color_start": "#4775EFCC", // v2版本牌子左侧颜色(渐变)
        "v2_medal_color_end": "#4775EFCC", // v2版本牌子右侧颜色(渐变)
        "v2_medal_color_border": "#58A1F8FF", // v2版本牌子边框颜色
        "v2_medal_color_text": "#FFFFFFFF", // v2版本牌子内容颜色
        "v2_medal_color_level": "#000B7099", // v2版本牌子等级颜色
        "user_receive_count": 0 // 待观测,目前都是0
      },
      "wealth": {
        // 荣耀等级
        "level": 28, // 荣耀等级
        "dm_icon_key": "" // 待观测
      },
      "title": null, // 待观测
      "guard": {
        // 大航海信息
        "level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
        "expired_str": "2024-11-17 23:59:59" // 到期日期
      },
      "uhead_frame": null, // 待观测
      "guard_leader": null // 待观测
    },
    "full_cartoon_id": 0, // 待观测
    "priority_level": 0, // 待观测
    "wealth_style_info": {
      // 荣耀等级图片
      "url": "https://i0.hdslb.com/bfs/live/62fe89aef112353cfd97016b4b2cc653438642ac.png" // 荣耀等级图片URL
    }
  }
}直播间互动:INTERACT_WORD#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.contribution | array | ?贡献? | 
| data.contribution.grade | int | 待观测,看起来都是 0 | 
| data.contribution_v2 | array | ?贡献 V2 版本? | 
| data.contribution_v2.grade | int | 待观测,看起来都是 0 | 
| data.contribution_v2.rank_type | string | 待观测,看起来都是空字符串 | 
| data.contribution_v2.text | string | 待观测,看起来都是空字符串 | 
| data.core_user_type | int | 某种用户类型,等待观测 | 
| data.dmscore | int | 待观测 | 
| data.fans_medal | array | 牌子信息 | 
| data.fans_medal.anchor_roomid | int | 牌子主播房间号 | 
| data.fans_medal.guard_level | int | 大航海类型 | 
| data.fans_medal.icon_id | int | 待观测,某种 ID | 
| data.fans_medal.is_lighted | int | 是否点亮,1=是,0=否 | 
| data.fans_medal.medal_color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.fans_medal.medal_color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.fans_medal.medal_color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.fans_medal.medal_color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.fans_medal.medal_level | int | 牌子等级 | 
| data.fans_medal.medal_name | string | 牌子名称 | 
| data.fans_medal.score | int | 待观测,某种分数 | 
| data.fans_medal.special | string | 待观测 | 
| data.fans_medal.target_id | int | 牌子主播 id | 
| data.group_medal | array | 套票信息 | 
| data.group_medal.is_lighted | int | 是否点亮 | 
| data.group_medal.medal_id | int | 套票 id | 
| data.group_medal.name | string | 套票名称 | 
| data.identities | array | 待观测,?某种身份? | 
| data.is_mystery | bool | 待观测,疑似是否是未登陆用户 | 
| data.is_spread | int | 是否是推广用户,1=是,0=否 | 
| data.msg_type | int | 消息类型,1=进入直播间,2=关注,3=分享直播间 | 
| data.privilege_type | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.relation_tail | array | 尾部说明 | 
| data.relation_tail.tail_guide_text | string | 指导文本 | 
| data.relation_tail.tail_icon | string | 指导图标 | 
| data.relation_tail.tail_type | int | 内容类型 | 
| data.roomid | int | 直播间房间号 | 
| data.score | int | 待观测 | 
| data.spread_desc | string | 推广来源 | 
| data.spread_info | string | 展示推广来源文字颜色 | 
| data.tail_icon | int | 待观测 | 
| data.tail_text | string | 待观测 | 
| data.timestamp | int | 互动时间(秒级时间戳) | 
| data.trigger_time | int | 待观测 | 
| data.uid | int | 用户 uid | 
| data.uinfo | array | 用户信息 | 
| data.uinfo.base | array | 基本信息 | 
| data.uinfo.base.face | string | 用户头像 | 
| data.uinfo.base.is_mystery | bool | 待观测,疑似是否是未登陆用户 | 
| data.uinfo.base.name | string | 名称 | 
| data.uinfo.base.name_color | int | 名字颜色十进制数字 | 
| data.uinfo.base.name_color_str | string | 名字颜色十六进制代码 | 
| data.uinfo.base.official_info | array | 待观测,估计是官方相关 | 
| data.uinfo.base.official_info.desc | string | ?说明? | 
| data.uinfo.base.official_info.role | int | ?角色? | 
| data.uinfo.base.official_info.title | string | ?官方 title? | 
| data.uinfo.base.official_info.type | int | ?类型? | 
| data.uinfo.base.origin_info | array | 待观测,目前看到的都是用户个人信息 | 
| data.uinfo.base.origin_info.face | string | 头像 | 
| data.uinfo.base.origin_info.name | string | 名称 | 
| data.uinfo.base.risk_ctrl_info | array | 待观测,目前看到的都是用户个人信息 | 
| data.uinfo.base.risk_ctrl_info.face | string | 头像 | 
| data.uinfo.base.risk_ctrl_info.name | string | 名称 | 
| data.uinfo.guard | array | 大航海信息 | 
| data.uinfo.guard.expired_str | string | 到期日期 | 
| data.uinfo.guard.level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.uinfo.guard_leader | - | 待观测 | 
| data.uinfo.medal | array | 牌子信息 | 
| data.uinfo.medal.color | int | 牌子颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_border | int | 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_end | int | 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.color_start | int | 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码) | 
| data.uinfo.medal.guard_icon | string | 大航海图标 | 
| data.uinfo.medal.guard_level | int | 大航海类型,0=普通用户,1=总督,2=提督,3=舰长 | 
| data.uinfo.medal.honor_icon | string | 待观测,目前无数据 | 
| data.uinfo.medal.id | int | 待观测,目前都是 0 | 
| data.uinfo.medal.is_light | int | 牌子是否点亮,1=是,0=否 | 
| data.uinfo.medal.level | int | 牌子等级 | 
| data.uinfo.medal.name | string | 牌子名称 | 
| data.uinfo.medal.ruid | int | 牌子所属主播 uid | 
| data.uinfo.medal.score | int | 某种评分?待观测 | 
| data.uinfo.medal.typ | int | 待观测,目前都是 0 | 
| data.uinfo.medal.user_receive_count | int | 待观测,目前都是 0 | 
| data.uinfo.medal.v2_medal_color_border | string | v2 版本牌子边框颜色 | 
| data.uinfo.medal.v2_medal_color_end | string | v2 版本牌子右侧颜色(渐变) | 
| data.uinfo.medal.v2_medal_color_level | string | v2 版本牌子等级颜色 | 
| data.uinfo.medal.v2_medal_color_start | string | v2 版本牌子左侧颜色(渐变) | 
| data.uinfo.medal.v2_medal_color_text | string | v2 版本牌子内容颜色 | 
| data.uinfo.title | - | 待观测 | 
| data.uinfo.uhead_frame | array | 头像框信息 | 
| data.uinfo.uhead_frame.frame_img | string | 头像框 URL | 
| data.uinfo.uhead_frame.id | int | 头像框 ID | 
| data.uinfo.uid | int | 用户 uid | 
| data.uinfo.wealth | array | 待观测 | 
| data.uinfo.wealth.dm_icon_key | string | 待观测 | 
| data.uinfo.wealth.level | int | 待观测 | 
| data.uname | string | 用户名 | 
| data.uname_color | string | 用户名颜色 | 
点击查看数据示例
{
  "cmd": "INTERACT_WORD", // 固定命令
  "data": {
    // 数据信息
    "contribution": {
      // ?贡献?
      "grade": 0 // 待观测,看起来都是0
    },
    "contribution_v2": {
      // ?贡献V2版本?
      "grade": 0, // 待观测,看起来都是0
      "rank_type": "", // 待观测,看起来都是空字符串
      "text": "" // 待观测,看起来都是空字符串
    },
    "core_user_type": 3, // 某种用户类型,等待观测
    "dmscore": 22, // 待观测
    "fans_medal": {
      // 牌子信息
      "anchor_roomid": 22384516, // 牌子主播房间号
      "guard_level": 0, // 大航海类型
      "icon_id": 0, // 待观测,某种ID
      "is_lighted": 0, // 是否点亮,1=是,0=否
      "medal_color": 398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_end": 6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      "medal_color_start": 398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
      "medal_level": 10, // 牌子等级
      "medal_name": "小米星", // 牌子名称
      "score": 13082, // 待观测,某种分数
      "special": "", // 待观测
      "target_id": 617459493 // 牌子主播id
    },
    "group_medal": {
      // 套票信息
      "is_lighted": 1, // 是否点亮
      "medal_id": 9, // 套票id
      "name": "MeUmy" // 套票名称
    },
    "identities": [
      // 待观测,?某种身份?
      1
    ],
    "is_mystery": false, // 待观测,疑似是否是未登陆用户
    "is_spread": 1, // 是否是推广用户,1=是,0=否
    "msg_type": 1, // 消息类型,1=进入直播间,2=关注,3=分享直播间
    "privilege_type": 0, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
    "relation_tail": {
      // 尾部说明
      "tail_guide_text": "曾经活跃过,近期与你互动较少", // 指导文本
      "tail_icon": "https://i0.hdslb.com/bfs/live/bb88734558c6383a4cfb5fa16c9749d5290d95e8.png", // 指导图标
      "tail_type": 4 // 内容类型
    },
    "roomid": 22384516, // 直播间房间号
    "score": 1730642535456, // 待观测
    "spread_desc": "流量包推广", // 推广来源
    "spread_info": "#FF649E", // 展示推广来源文字颜色
    "tail_icon": 0, // 待观测
    "tail_text": "", // 待观测
    "timestamp": 1730642525, // 互动时间(秒级时间戳)
    "trigger_time": 1730642525444320300, // 待观测
    "uid": 439150369, // 用户uid
    "uinfo": {
      // 用户信息
      "base": {
        // 基本信息
        "face": "https://i1.hdslb.com/bfs/face/6c3ff0055a77286e2d0cdf7a27413fb207906c26.jpg", // 用户头像
        "is_mystery": false, // 待观测,疑似是否是未登陆用户
        "name": "大大怪----------", // 名称
        "name_color": 0, // 名字颜色十进制数字
        "name_color_str": "", //名字颜色十六进制代码
        "official_info": {
          // 待观测,估计是官方相关
          "desc": "", // ?说明?
          "role": 0, // ?角色?
          "title": "", // ?官方title?
          "type": -1 // ?类型?
        },
        "origin_info": {
          // 待观测,目前看到的都是用户个人信息
          "face": "https://i1.hdslb.com/bfs/face/6c3ff0055a77286e2d0cdf7a27413fb207906c26.jpg", // 头像
          "name": "大大怪----------" // 名称
        },
        "risk_ctrl_info": {
          // 待观测,目前看到的都是用户个人信息
          "face": "https://i1.hdslb.com/bfs/face/6c3ff0055a77286e2d0cdf7a27413fb207906c26.jpg", // 头像
          "name": "大大怪----------" // 名称
        }
      },
      "guard": {
        // 大航海信息
        "level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
        "expired_str": "2024-11-17 23:59:59" // 到期日期
      },
      "guard_leader": null, // 待观测
      "medal": {
        // 牌子信息
        "color": 398668, // 牌子颜色(十进制数据,需要自己转十六进制颜色代码)
        "color_border": 6809855, // 牌子边框颜色(十进制数据,需要自己转十六进制颜色代码)
        "color_end": 6850801, // 牌子右侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "color_start": 398668, // 牌子左侧颜色(渐变)(十进制数据,需要自己转十六进制颜色代码)
        "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", // 大航海图标
        "guard_level": 3, // 大航海类型,0=普通用户,1=总督,2=提督,3=舰长
        "honor_icon": "", // 待观测,目前无数据
        "id": 0, // 待观测,目前都是0
        "is_light": 1, // 牌子是否点亮,1=是,0=否
        "level": 27, // 牌子等级
        "name": "泠妻", // 牌子名称
        "ruid": 3494365156608185, // 牌子所属主播uid
        "score": 50093206, // 某种评分?待观测
        "typ": 0, // 待观测,目前都是0
        "user_receive_count": 0, // 待观测,目前都是0
        "v2_medal_color_border": "#58A1F8FF", // v2版本牌子边框颜色
        "v2_medal_color_end": "#4775EFCC", // v2版本牌子右侧颜色(渐变)
        "v2_medal_color_level": "#000B7099", // v2版本牌子等级颜色
        "v2_medal_color_start": "#4775EFCC", // v2版本牌子左侧颜色(渐变)
        "v2_medal_color_text": "#FFFFFFFF" // v2版本牌子内容颜色
      },
      "title": null, // 待观测
      "uhead_frame": {
        // 头像框信息
        "frame_img": "https://i0.hdslb.com/bfs/live/80f732943cc3367029df65e267960d56736a82ee.png", // 头像框URL
        "id": 1775 // 头像框ID
      },
      "uid": 481471034, // 用户uid
      "wealth": {
        // 待观测
        "dm_icon_key": "", // 待观测
        "level": 24 // 待观测
      }
    },
    "uname": "欧豆豆的派大星", // 用户名
    "uname_color": "" // 用户名颜色
  }
}PK 即将开始:PK_BATTLE_PRE_NEW#
点击查看字段说明
| 字段 | 字段类型 | 字段说明 | 
|---|---|---|
| cmd | string | 固定命令 | 
| data | array | 数据信息 | 
| data.battle_sub_type | int | 待观测 | 
| data.battle_type | int | pk 类型 | 
| data.end_win_task | - | 待观测 | 
| data.face | string | pk 对象的头像 | 
| data.is_followed | int | 待观测 | 
| data.match_type | int | 待观测 | 
| data.pk_votes_name | string | pk 得分名称 | 
| data.pre_timer | int | 前置定时器(10 秒后开始 pk) | 
| data.room_id | int | pk 对象的房间号 | 
| data.season_id | int | 待观测 | 
| data.uid | int | pk 对象的 uid | 
| data.uname | string | pk 对象的名称 | 
| pk_id | int | PKID | 
| pk_status | int | pk 状态,代表值待观察 | 
| status_msg | string | pk 状态文字说明 | 
| template_id | string | 待观测 | 
| timestamp | int | 时间 | 
点击查看数据示例
{
  "cmd": "PK_BATTLE_PRE_NEW", // 固定命令
  "pk_id": 360499657, // PKID
  "pk_status": 101, // pk状态,代表值待观察
  "status_msg": "", // pk状态文字说明
  "timestamp": 1730295557, // 时间
  "data": {
    // 数据信息
    "is_followed": 0, // 待观测
    "uname": "西红柿教主大人", // pk对象的名称
    "face": "https://i2.hdslb.com/bfs/face/638b5ce6a4ecc689ea76a94ba7119fa8ffb53b41.jpg", // pk对象的头像
    "uid": 471024854, // pk对象的uid
    "room_id": 31948297, // pk对象的房间号
    "season_id": 78, // 待观测
    "pre_timer": 10, // 前置定时器(10秒后开始pk)
    "pk_votes_name": "PK值", // pk得分名称
    "end_win_task": null, // 待观测
    "battle_type": 2, // pk类型
    "match_type": 1, // 待观测
    "battle_sub_type": 7 // 待观测
  },
  "template_id": "multi_conn_grid" // 待观测
}有用的命令#
几个比较实用的状态,持续更新中…
赠送礼物#
点击查看应用场景
盲盒亏损#
通过判断 data.blind_gift 的数据来取得,当 data.blind_gift 存在数据时,则可判断礼物是盲盒礼物
- data.blind_gift.original_gift_price:盲盒的价格(电池*100)
- data.blind_gift.gift_tip_price:爆出礼物的价格(电池*100)
- data.blind_gift.original_gift_id:盲盒的 ID
- data.blind_gift.original_gift_name:盲盒的名称
通过盲盒 ID 或名称分类可以记录没种盲盒的盈亏
更进一步通过 data.uid 字段分类可记录每个用户&每种盲盒的盈亏
感谢礼物#
接收到数据即为有人赠送了礼物
如果有需要,可以通过判断 data.coin_type == gold 或者 data.giftType != 5 来过滤免费礼物
礼物总价可以通过 data.price * data.num 获得
B 站发言有频率限制,建议发送消息的逻辑单做一条队列,每 3 秒执行一条发送
进阶:建议将 感谢礼物事件 封装成队列,每当有需要感谢的礼物出现时加入队列,同一个用户赠送数据合并,当 消息发送队列 无更高优先级任务时取一条进行感谢,可以避免同一用户短时间大量赠送带来的问题
- data.uid:送礼人 uid
- data.uname:送礼人名称
- data.coin_type:礼物是否是免费礼物
- data.giftId:礼物 ID
- data.giftName:礼物名称
- data.price:礼物单价
- data.num:赠送数量
- receiver_uinfo.uid:收礼人 uid(主播的 id)
- sender_uinfo.medal.ruid:用户携带的牌子归属主播的 uid(可以根据 receiver_uinfo.uid == sender_uinfo.medal.ruid来确认送礼人携带的当前主播的牌子)
- sender_uinfo.medal.guard_level:大航海类型,0=普通用户,1=总督,2=提督,3=舰长(所携带的牌子,有可能不是主播的,需要自行判断)
- sender_uinfo.medal.level:牌子等级(所携带的牌子,有可能不是主播的,需要自行判断)
理论上可以连击信息来判断在连击结束之后所有的礼物一起感谢,但因工作比较忙还没有时间去观测对应的数据,后续补全
弹幕信息#
点击查看应用场景
自动回复#
通过检查弹幕信息,可以为关键词匹配自动回复
建议留足配置空间,以便拓展,例如:
- 多关键词配置,命中一个就触发或全部命中才触发
- 黑名单配置,某些用户的发言不触发自动回复
- 多禁词配置,与关键词相同,命中一个就不触发自动回复或全部命中就不触发自动回复
- 多回复项,可以配置多个回复项在触发自动回复时随机触发一条
- info.1:文本信息
- info.2.0:发送人 uid
- info.2.1:发送人用户名
- info.3.3:牌子所属房间号(可以通过该字段与链接的房间号匹配判断携带的当前主播的牌子)
- info.3.10:大航海类型,0=普通用户,1=总督,2=提督,3=舰长(所携带的牌子,有可能不是主播的,需要自行判断)
- info.3.0:牌子等级(所携带的牌子,有可能不是主播的,需要自行判断)
弹幕信息事件可以做的事情非常多,类似抽奖一类的与弹幕互动的功能均可实现,拓展性极强
开通舰长#
舰长进入直播间#
点击查看应用场景
进房欢迎#
对来到直播间的用户进行欢迎
建议在进房量少时再启用,或根据牌子进行过滤,否则大量进房信息积压会导致机器人欢迎不及时
- data.uinfo.medal.ruid:用户携带的牌子归属主播的 uid(目前看来可以根据 data.target_id == data.uinfo.medal.ruid来判断用户携带的是否是主播自己的牌子)
- data.uinfo.medal.guard_level:大航海类型,0=普通用户,1=总督,2=提督,3=舰长(所携带的牌子,有可能不是主播的,需要自行判断)
- data.uinfo.medal.level:牌子等级(所携带的牌子,有可能不是主播的,需要自行判断)
- data.uinfo.base.name:用户名
- data.uinfo.uid:用户 ID
直播间互动#
点击查看应用场景
进房欢迎 & 感谢关注 & 感谢分享#
三个消息都由一个推送进行,通过 data.msg_type 进行区分
建议在进房量少时再启用,或根据牌子进行过滤,否则大量进房信息积压会导致机器人欢迎不及时
- data.fans_medal.anchor_roomid:牌子主播房间号(目前看来可以根据 data.fans_medal.anchor_roomid == 直播间房间号来判断用户携带的是否是主播自己的牌子)
- data.fans_medal.guard_level:大航海类型,0=普通用户,1=总督,2=提督,3=舰长(所携带的牌子,有可能不是主播的,需要自行判断)
- data.uid:用户 uid
- data.uname:用户名称
- data.msg_type:消息类型,1=进入直播间,2=关注,3=分享直播间
PK 即将开始#
点击查看应用场景
PK 播报#
可以在 PK 开始之前(前 10 秒)获取到 PK 方的信息,通过该信息可查询对方直播间的信息并进行播报
- data.uid:主播 uid
- data.uname:主播名称
- data.room_id:直播间房间号