bilibili-API-collect icon indicating copy to clipboard operation
bilibili-API-collect copied to clipboard

[新增/更新请求] 直播间信息流cmd `WEALTH_NOTIFY`、`USER_PANEL_RED_ALARM`等,共14个

Open pskdje opened this issue 8 months ago • 14 comments

提交前请确认

  • [x] 我已检索仓库中文档,不包含所提及内容,或所提及内容在本仓库中存在错误,且 Issues、Pull Requests 中无相关提交

API 来源

Web 端(含 h5)

API 类型

长连接数据帧(含 ws、TCP)

API 地址

https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/live/message_stream.md

详情描述

WEALTH_NOTIFY

(推测)与登录会话绑定且当投喂电池数量达到升级条件时下发。

~~我直播所得收益甚至达不到升级所需,没法复核。~~

JSON消息:

根对象:

字段 类型 内容 备注
cmd str WEALTH_NOTIFY
data obj 信息本体

data 对象:

字段 类型 内容 备注
flag int 标志?
info obj 信息

data.info:

字段 类型 内容 备注
effect_key int ?
has_items_changed int ?
level int 达到的等级
send_time int 发送时间 UNIX 毫秒时间戳
status int 状态?

示例:

{
	"cmd": "WEALTH_NOTIFY",
	"data": {
		"flag": 3,
		"info": {
			"effect_key": 1073,
			"has_items_changed": 1,
			"level": 5,
			"send_time": 1743337942833,
			"status": 1
		}
	}
}

USER_PANEL_RED_ALARM

未知,于投喂“粉丝灯牌”后下发,与登录会话绑定。

JSON消息:

根对象:

字段 类型 内容 备注
cmd str
data obj 信息本体

data 对象:

字段 类型 内容 备注
module str ? 不清楚,可能是要调用的动画效果
alarm_num int

示例:

查看消息示例:

1743337943564478429.json

{
	"cmd": "USER_PANEL_RED_ALARM",
	"data": {
		"module": "user_head_dot",
		"alarm_num": 1
	}
}

1743338013976410433.json

{
	"cmd": "USER_PANEL_RED_ALARM",
	"data": {
		"module": "user_head_dot",
		"alarm_num": 0
	}
}

GIFT_BOARD_RED_DOT

跟上面那个USER_PANEL_RED_ALARM下发情况相同,不过只有1次。

没看明白是什么。

JSON消息:

根对象:

字段 类型 内容 备注
cmd str
data obj 信息本体

data 对象:

字段 类型 内容 备注
categoryL1 str

示例:

查看消息示例:

1743337948341784937.json

{
	"cmd": "GIFT_BOARD_RED_DOT",
	"data": {
		"categoryL1": "3"
	}
}

pskdje avatar Mar 30 '25 15:03 pskdje

获得粉丝勋章 MESSAGEBOX_USER_GAIN_MEDAL

与登录会话绑定,目前发现使用主播登录信息会在自己的直播间会下发,在某个直播间投喂粉丝灯牌后下发。

JSON消息:

根对象:

字段 类型 内容 备注
cmd str
data obj 信息本体

data 对象:

字段 类型 内容 备注
type int 类型?
uid int 用户mid
up_uid int 主播mid
medal_id int
medal_name str 粉丝勋章名称
medal_level int 粉丝勋章等级
medal_color int 粉丝勋章颜色 十进制颜色值
medal_color_start int 粉丝勋章变色起始值
medal_color_end int 粉丝勋章变色结束值
medal_color_border int 粉丝勋章边框颜色值 推测
msg_title str 信息标题 未确定
msg_content str 信息内容 未确定

其余待补充

示例:

查看消息示例:

部分数据包是我粉丝投喂后收到的,这类数据包将抹去粉丝信息,实际数据是完整的。具体抹去: 1742650672636808872.json1742808315878038648.jsondata.uiddata.fan_name

1742650672636808872.json

{
	"cmd": "MESSAGEBOX_USER_GAIN_MEDAL",
	"data": {
		"type": 0,
		"uid": 9,
		"up_uid": 438160221,
		"medal_id": 19113177,
		"medal_name": "粉丝团",
		"medal_level": 1,
		"medal_color": 6067854,
		"medal_color_start": 6067854,
		"medal_color_end": 6067854,
		"medal_color_border": 6067854,
		"msg_title": "欢迎萌新~",
		"msg_content": "获得100点亲密度\n你的粉丝勋章达到1级",
		"normal_color": 7697781,
		"highlight_color": 16478873,
		"intimacy": 100,
		"next_intimacy": 201,
		"today_feed": 100,
		"day_limit": 2000,
		"is_wear": 1,
		"guard_level": 0,
		"is_received": 1,
		"is_lighted": 1,
		"is_lighted_v2": true,
		"toast": "成功入团并关注主播,得1级大礼包",
		"fan_name": "[粉丝昵称]",
		"uinfo_medal": {
			"name": "粉丝团",
			"level": 1,
			"color_start": 6067854,
			"color_end": 6067854,
			"color_border": 6067854,
			"color": 6067854,
			"id": 19113177,
			"typ": 0,
			"is_light": 1,
			"ruid": 438160221,
			"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
		}
	}
}

1742808315878038648.json

{
	"cmd": "MESSAGEBOX_USER_GAIN_MEDAL",
	"data": {
		"type": 0,
		"uid": 9,
		"up_uid": 438160221,
		"medal_id": 19296674,
		"medal_name": "粉丝团",
		"medal_level": 1,
		"medal_color": 6067854,
		"medal_color_start": 6067854,
		"medal_color_end": 6067854,
		"medal_color_border": 6067854,
		"msg_title": "恭喜你获得【weatfe】的粉丝勋章~",
		"msg_content": "获得100点亲密度\n你的粉丝勋章达到1级",
		"normal_color": 7697781,
		"highlight_color": 16478873,
		"intimacy": 100,
		"next_intimacy": 201,
		"today_feed": 100,
		"day_limit": 2000,
		"is_wear": 0,
		"guard_level": 0,
		"is_received": 1,
		"is_lighted": 1,
		"is_lighted_v2": true,
		"toast": "成功入团并关注主播,得1级大礼包",
		"fan_name": "[粉丝昵称]",
		"uinfo_medal": {
			"name": "粉丝团",
			"level": 1,
			"color_start": 6067854,
			"color_end": 6067854,
			"color_border": 6067854,
			"color": 6067854,
			"id": 19296674,
			"typ": 0,
			"is_light": 1,
			"ruid": 438160221,
			"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
		}
	}
}

1743337943543817491.json

{
	"cmd": "MESSAGEBOX_USER_GAIN_MEDAL",
	"data": {
		"type": 0,
		"uid": 438160221,
		"up_uid": 11602644,
		"medal_id": 19252517,
		"medal_name": "广药",
		"medal_level": 1,
		"medal_color": 6067854,
		"medal_color_start": 6067854,
		"medal_color_end": 6067854,
		"medal_color_border": 6067854,
		"msg_title": "恭喜你获得【WuGuangYao】的粉丝勋章~",
		"msg_content": "获得100点亲密度\n你的粉丝勋章达到1级",
		"normal_color": 7697781,
		"highlight_color": 16478873,
		"intimacy": 100,
		"next_intimacy": 201,
		"today_feed": 100,
		"day_limit": 2000,
		"is_wear": 0,
		"guard_level": 0,
		"is_received": 1,
		"is_lighted": 1,
		"is_lighted_v2": true,
		"toast": "成功入团并关注主播,得1级大礼包",
		"fan_name": "weatfe",
		"uinfo_medal": {
			"name": "广药",
			"level": 1,
			"color_start": 6067854,
			"color_end": 6067854,
			"color_border": 6067854,
			"color": 6067854,
			"id": 19252517,
			"typ": 0,
			"is_light": 1,
			"ruid": 11602644,
			"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
		}
	}
}

pskdje avatar Mar 30 '25 15:03 pskdje

有人购买商品 GOTO_BUY_FLOW

去购买主播推荐商品时下发。

用户昵称会打星号(*)。

目前仅在手机客户端上显示。

JSON消息:

根对象:

字段 类型 内容 备注
cmd str ``
data obj 信息本体

data 对象:

字段 类型 内容 备注
text str 购买提示

示例:

查看消息示例:
{
	"cmd": "GOTO_BUY_FLOW",
	"data": {
		"text": "回**正在去买"
	}
}

pskdje avatar Apr 06 '25 11:04 pskdje

热抢提示 HOT_BUY_NUM

推测是有人去购买后下发。

JSON消息:

根对象:

字段 类型 内容 备注
cmd str ``
data obj 信息本体

data 对象:

字段 类型 内容 备注
num int 热抢数量
goods_id str 商品id

示例:

查看消息示例:
{
	"cmd": "HOT_BUY_NUM",
	"data": {
		"num": 81,
		"goods_id": "1817875296579985408"
	}
}
查看示例图片 已对图片中的用户昵称打码处理。

购买列表的热抢提示

热抢提示

热抢提示

pskdje avatar Apr 06 '25 12:04 pskdje

成功搞清楚遗留在DM_INTERACTION记录里的103所指代的。103为关注。

{
	"cmd": "DM_INTERACTION",
	"data": {
		"data": "{\"fade_duration\":10000,\"cnt\":6,\"card_appear_interval\":0,\"suffix_text\":\"人关注了主播\",\"reset_cnt\":0,\"display_flag\":1}",
		"dmscore": 36,
		"id": 94362402889728,
		"status": 4,
		"type": 103
	}
}

直播间1864383375时间2025-04-11T11:30:56+08:00

pskdje avatar Apr 11 '25 03:04 pskdje

粉丝勋章更新 MESSAGEBOX_USER_MEDAL_CHANGE

JSON消息:

根对象:

字段 类型 内容 备注
cmd str ``
data obj 信息本体

data 对象:

字段 类型 内容 备注
type int 提示类型 1:升级,2:点亮
uid int 用户mid
up_uid int 主播mid
medal_level int 粉丝勋章等级
medal_name str 粉丝勋章名称
medal_color_start int 勋章过渡开始颜色
medal_color_end int 勋章过渡结束颜色
medal_color_border int 勋章边框颜色
is_lighted int 是否点亮?
is_lighted_v2 bool 是否点亮v2?
guard_level int
unlock int
unlock_level int
multi_unlock_level str
upper_bound_content str 提示信息
uinfo_medal obj 用户粉丝勋章信息
effect_id int

待补充和论证

示例:

查看消息示例:
{
	"cmd": "MESSAGEBOX_USER_MEDAL_CHANGE",
	"data": {
		"type": 1,
		"uid": 438160221,
		"up_uid": 11602644,
		"medal_level": 5,
		"medal_name": "广药",
		"medal_color_start": 6126494,
		"medal_color_end": 6126494,
		"medal_color_border": 6126494,
		"is_lighted": 1,
		"is_lighted_v2": true,
		"guard_level": 0,
		"unlock": 1,
		"unlock_level": 5,
		"multi_unlock_level": "5",
		"upper_bound_content": "恭喜你的粉丝勋章【广药】升到5级",
		"uinfo_medal": {
			"name": "广药",
			"level": 5,
			"color_start": 6126494,
			"color_end": 6126494,
			"color_border": 6126494,
			"color": 0,
			"id": 0,
			"typ": 0,
			"is_light": 1,
			"ruid": 11602644,
			"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
		},
		"effect_id": 1861
	}
}

pskdje avatar Apr 11 '25 04:04 pskdje

master_qn_strategy_chg

未知,在直播时有概率捕获,用途未知,没有更多信息。

查看数据包

1744379313198411390.json

{
	"cmd": "master_qn_strategy_chg",
	"data": "{\"mtime\":1744378995,\"scatter\":[0,300]}"
}

1744379853143736080.json

{
	"cmd": "master_qn_strategy_chg",
	"data": "{\"mtime\":1744379604,\"scatter\":[0,300]}"
}

1744380753118644643.json

{
	"cmd": "master_qn_strategy_chg",
	"data": "{\"mtime\":1744380444,\"scatter\":[0,300]}"
}

pskdje avatar Apr 12 '25 06:04 pskdje

一起玩图标更改 (机翻) PLAYTOGETHER_ICON_CHANGE

未知。

字段 类型 内容 备注
area_id num 分区id
has_perm num
show_count num
{
	"cmd": "PLAYTOGETHER_ICON_CHANGE",
	"data": {
		"area_id": 40,
		"has_perm": 0,
		"show_count": 0
	}
}

pskdje avatar Apr 24 '25 07:04 pskdje

连麦开关 VOICE_JOIN_SWITCH

在直播姬开关连麦功能时下发。

字段 类型 内容 备注
cmd str
data obj
room_id num 房间号

data 对象:

字段 类型 内容 备注
room_id num 房间号
room_status num 连麦开关状态
root_status num 连麦开关状态
数据

开:

{
	"cmd": "VOICE_JOIN_SWITCH",
	"data": {
		"room_id": 1899237171,
		"room_status": 1,
		"root_status": 1
	},
	"room_id": 1899237171
}

关:

{
	"cmd": "VOICE_JOIN_SWITCH",
	"data": {
		"room_id": 1899237171,
		"room_status": 0,
		"root_status": 0
	},
	"room_id": 1899237171
}

pskdje avatar Apr 24 '25 07:04 pskdje

必须接受的进场特效 ENTRY_EFFECT_MUST_RECEIVE

已知主播进入自己的直播间会下发该数据包。

整体结构与ENTRY_EFFECT相同。(回头确认一下它要不要更新)

JSON消息:

根对象:

字段 类型 内容 备注
cmd str ``
data obj 信息本体

data 对象:

字段 类型 内容 备注

示例:

查看消息示例:
{
	"cmd": "ENTRY_EFFECT_MUST_RECEIVE",
	"data": {
		"id": 135,
		"uid": 438160221,
		"target_id": 438160221,
		"mock_effect": 0,
		"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
		"privilege_type": 0,
		"copy_writing": "<%weatfe%> 来了",
		"copy_color": "#000000",
		"highlight_color": "#FFF100",
		"priority": 1,
		"basemap_url": "https://i0.hdslb.com/bfs/live/mlive/da6933ea70f31c4df63f4b68b735891284888357.png",
		"show_avatar": 1,
		"effective_time": 1,
		"web_basemap_url": "https://i0.hdslb.com/bfs/live/mlive/da6933ea70f31c4df63f4b68b735891284888357.png",
		"web_effective_time": 2,
		"web_effect_close": 0,
		"web_close_time": 900,
		"business": 3,
		"copy_writing_v2": "<%weatfe%> 来了",
		"icon_list": [],
		"max_delay_time": 7,
		"trigger_time": 1746076900180569651,
		"identities": 1,
		"effect_silent_time": 0,
		"effective_time_new": 0,
		"web_dynamic_url_webp": "",
		"web_dynamic_url_apng": "",
		"mobile_dynamic_url_webp": "",
		"wealthy_info": null,
		"new_style": 0,
		"is_mystery": false,
		"uinfo": {
			"uid": 438160221,
			"base": {
				"name": "weatfe",
				"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
				"name_color": 0,
				"is_mystery": false,
				"risk_ctrl_info": null,
				"origin_info": null,
				"official_info": null,
				"name_color_str": ""
			},
			"medal": {
				"name": "粉丝团",
				"level": 11,
				"color_start": 9272486,
				"color_end": 9272486,
				"color_border": 9272486,
				"color": 9272486,
				"id": 2956282,
				"typ": 0,
				"is_light": 1,
				"ruid": 438160221,
				"guard_level": 0,
				"score": 17500,
				"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
			},
			"wealth": {
				"level": 5,
				"dm_icon_key": ""
			},
			"title": null,
			"guard": {
				"level": 0,
				"expired_str": ""
			},
			"uhead_frame": null,
			"guard_leader": null
		},
		"full_cartoon_id": 0,
		"priority_level": 0,
		"wealth_style_info": {
			"url": "https://i0.hdslb.com/bfs/live/24f6ef867c3905064136f5c4e33a8d423d41ebdd.png"
		}
	}
}

pskdje avatar May 01 '25 09:05 pskdje

粉丝团戳一戳礼物通知 FANS_CLUB_POKE_GIFT_NOTICE

与登录会话绑定,主播使用粉丝团戳一戳功能时下发。

需要求证:

  • [ ] 头像是主播还是用户的(因为这个数据是我戳我自己)

JSON消息:

根对象:

字段 类型 内容 备注
cmd str ``
data obj 信息本体

data 对象:

字段 类型 内容 备注
icon str 图标
uface str 头像 需要求证
bg_img_url str 背景图片
text str 提示文本
highlight_text str 高亮文本?
button_text str 按钮文本
display_duration num 显示时间?
room_id num 房间号

示例:

查看消息示例:
{
	"cmd": "FANS_CLUB_POKE_GIFT_NOTICE",
	"data": {
		"icon": "https://i0.hdslb.com/bfs/live/37a2fe03f2af95928c67cbac889e10dab6f7d42a.png",
		"uface": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
		"bg_img_url": "https://i0.hdslb.com/bfs/live/fbe99002b5914157d783f8e07f021e2fd6ba5c1b.png",
		"text": "主播戳了戳你~投喂礼物获5倍亲密度加成",
		"highlight_text": "5倍亲密度加成",
		"button_text": "去投喂",
		"display_duration": 8,
		"room_id": 1899237171
	}
}

pskdje avatar May 01 '25 09:05 pskdje

使用投票功能会使用DM_INTERACTION来承载,type为101。

目前认为status与type关联,有1,2,4,5

具体不清楚,特别是106(点赞)。

目前暂时认为:

status值 猜测
1 投票发起审核
2 投票审核结果(目前是不通过)
4 正在交互(若使用官方提供的投票也会直接用这个)
5 交互结束

106(点赞)有记录到45都是正在交互状态,无法敲定。

pskdje avatar May 01 '25 11:05 pskdje

投票 (DM_INTERACTION type为101)

JSON消息:

其它略过,直接 data.data JSON解析后对象:

字段 类型 内容 备注
question str 投票问题
options obj 投票详细选项
vote_id num 投票id
cnt num 弹幕计数
duration num 持续时间 单位毫秒
left_duration num 剩余时间 单位毫秒
fade_duration num ?
waiting_duration num ?
result num 投票倾向状态
result_text str 投票倾向提示
component str 投票链接
natural_die_duration num ?
my_vote num ?
component_anchor str 投票控制链接
audit_reason str 审核结果
combo obj 投票状态展示

data.data JSON解析后的 options 数组中对象:

字段 类型 内容 备注
idx num 选项索引
desc str 选项内容
cnt num 票数
percent num 显示占比

data.data JSON解析后的 combo 数组中对象:

字段 类型 内容 备注
id num 标识id data.data.options数组中对象的idx
status num 状态 data.status
content str 投票选项内容
cnt str 弹幕计数
guide str ? 空字符串
left_duration num 剩余时间
fade_duration num ?
prefix_icon str 投票选项图标

示例:

查看消息示例:

1746083627185045255.json

{
	"cmd": "DM_INTERACTION",
	"data": {
		"data": "{\"question\":\"投票\",\"options\":[{\"idx\":1,\"desc\":\"赞成\",\"cnt\":0,\"percent\":0.5},{\"idx\":2,\"desc\":\"弃权\",\"cnt\":0,\"percent\":0.5}],\"vote_id\":98014370742272,\"cnt\":0,\"duration\":60000,\"left_duration\":60000,\"fade_duration\":1000,\"waiting_duration\":-1,\"result\":1,\"result_text\":\"平局\",\"component\":\"https://live.bilibili.com/p/html/live-app-guessing-game/vote.html?is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,245,0,0,30,100,12,0;2,2,375,100p,0,0,30,100,12,0;3,3,100p,245,0,0,30,100,12,0;4,2,375,100p,0,0,30,100,12,0;5,3,100p,70p,0,0,30,100,12,0;6,3,100p,70p,0,0,30,100,12,0;7,3,100p,70p,0,0,30,100,12,0;8,3,100p,70p,0,0,30,100,12,0\",\"natural_die_duration\":30000,\"my_vote\":0,\"component_anchor\":\"https://live.bilibili.com/p/html/live-app-guessing-game/anchor_vote.html?pc_ui=390,428,0,3\\u0026is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,448,0,0,30,0,12,0;2,2,375,100p,0,0,30,0,12,0;3,3,100p,448,0,0,30,0,12,0;4,2,375,100p,0,0,30,0,12,0;5,3,100p,448,0,0,30,0,12,0;6,2,320,100p,0,0,30,0,12,0;7,2,320,100p,0,0,30,0,12,0;8,2,320,100p,0,0,30,0,12,0#/\",\"audit_reason\":\"\",\"combo\":[{\"id\":1,\"status\":1,\"content\":\"赞成\",\"cnt\":0,\"guide\":\"\",\"left_duration\":60000,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/7d7e3682c9116aa3503418abe3cde6b45ed2e91e.png\"},{\"id\":2,\"status\":1,\"content\":\"弃权\",\"cnt\":0,\"guide\":\"\",\"left_duration\":60000,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/f83c7280b2a90b4f58a68fd8c594ea7d5667e3cb.png\"}]}",
		"dmscore": 36,
		"id": 98014370742272,
		"status": 1,
		"type": 101
	}
}

1746083627284230776.json

{
	"cmd": "DM_INTERACTION",
	"data": {
		"data": "{\"question\":\"投票\",\"options\":[{\"idx\":1,\"desc\":\"赞成\",\"cnt\":0,\"percent\":0.5},{\"idx\":2,\"desc\":\"弃权\",\"cnt\":0,\"percent\":0.5}],\"vote_id\":98014370742272,\"cnt\":0,\"duration\":60000,\"left_duration\":60000,\"fade_duration\":1000,\"waiting_duration\":-1,\"result\":1,\"result_text\":\"平局\",\"component\":\"https://live.bilibili.com/p/html/live-app-guessing-game/vote.html?is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,245,0,0,30,100,12,0;2,2,375,100p,0,0,30,100,12,0;3,3,100p,245,0,0,30,100,12,0;4,2,375,100p,0,0,30,100,12,0;5,3,100p,70p,0,0,30,100,12,0;6,3,100p,70p,0,0,30,100,12,0;7,3,100p,70p,0,0,30,100,12,0;8,3,100p,70p,0,0,30,100,12,0\",\"natural_die_duration\":30000,\"my_vote\":0,\"component_anchor\":\"https://live.bilibili.com/p/html/live-app-guessing-game/anchor_vote.html?pc_ui=390,428,0,3\\u0026is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,448,0,0,30,0,12,0;2,2,375,100p,0,0,30,0,12,0;3,3,100p,448,0,0,30,0,12,0;4,2,375,100p,0,0,30,0,12,0;5,3,100p,448,0,0,30,0,12,0;6,2,320,100p,0,0,30,0,12,0;7,2,320,100p,0,0,30,0,12,0;8,2,320,100p,0,0,30,0,12,0#/\",\"audit_reason\":\"您提交的弹幕投票未审核通过,请修改\",\"combo\":[{\"id\":1,\"status\":2,\"content\":\"赞成\",\"cnt\":0,\"guide\":\"\",\"left_duration\":60000,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/7d7e3682c9116aa3503418abe3cde6b45ed2e91e.png\"},{\"id\":2,\"status\":2,\"content\":\"弃权\",\"cnt\":0,\"guide\":\"\",\"left_duration\":60000,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/f83c7280b2a90b4f58a68fd8c594ea7d5667e3cb.png\"}]}",
		"dmscore": 36,
		"id": 98014370742272,
		"status": 2,
		"type": 101
	}
}

1746083672711936540.json

{
	"cmd": "DM_INTERACTION",
	"data": {
		"data": "{\"question\":\"给我你们的意见\",\"options\":[{\"idx\":1,\"desc\":\"1\",\"cnt\":0,\"percent\":0.5},{\"idx\":2,\"desc\":\"2\",\"cnt\":0,\"percent\":0.5}],\"vote_id\":98014463034880,\"cnt\":0,\"duration\":60000,\"left_duration\":59000,\"fade_duration\":1000,\"waiting_duration\":-1,\"result\":1,\"result_text\":\"平局\",\"component\":\"https://live.bilibili.com/p/html/live-app-guessing-game/vote.html?is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,245,0,0,30,100,12,0;2,2,375,100p,0,0,30,100,12,0;3,3,100p,245,0,0,30,100,12,0;4,2,375,100p,0,0,30,100,12,0;5,3,100p,70p,0,0,30,100,12,0;6,3,100p,70p,0,0,30,100,12,0;7,3,100p,70p,0,0,30,100,12,0;8,3,100p,70p,0,0,30,100,12,0\",\"natural_die_duration\":30000,\"my_vote\":0,\"component_anchor\":\"https://live.bilibili.com/p/html/live-app-guessing-game/anchor_vote.html?pc_ui=390,428,0,3\\u0026is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,448,0,0,30,0,12,0;2,2,375,100p,0,0,30,0,12,0;3,3,100p,448,0,0,30,0,12,0;4,2,375,100p,0,0,30,0,12,0;5,3,100p,448,0,0,30,0,12,0;6,2,320,100p,0,0,30,0,12,0;7,2,320,100p,0,0,30,0,12,0;8,2,320,100p,0,0,30,0,12,0#/\",\"audit_reason\":\"\",\"combo\":[{\"id\":1,\"status\":4,\"content\":\"1\",\"cnt\":0,\"guide\":\"\",\"left_duration\":59000,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/7d7e3682c9116aa3503418abe3cde6b45ed2e91e.png\"},{\"id\":2,\"status\":4,\"content\":\"2\",\"cnt\":0,\"guide\":\"\",\"left_duration\":59000,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/f83c7280b2a90b4f58a68fd8c594ea7d5667e3cb.png\"}]}",
		"dmscore": 36,
		"id": 98014463034880,
		"status": 4,
		"type": 101
	}
}

1746083733861426100.json

{
	"cmd": "DM_INTERACTION",
	"data": {
		"data": "{\"question\":\"给我你们的意见\",\"options\":[{\"idx\":1,\"desc\":\"1\",\"cnt\":1,\"percent\":0.8},{\"idx\":2,\"desc\":\"2\",\"cnt\":0,\"percent\":0.2}],\"vote_id\":98014463034880,\"cnt\":1,\"duration\":60000,\"left_duration\":0,\"fade_duration\":1000,\"waiting_duration\":-1,\"result\":2,\"result_text\":\"蓝领先\",\"component\":\"https://live.bilibili.com/p/html/live-app-guessing-game/vote.html?is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,245,0,0,30,100,12,0;2,2,375,100p,0,0,30,100,12,0;3,3,100p,245,0,0,30,100,12,0;4,2,375,100p,0,0,30,100,12,0;5,3,100p,70p,0,0,30,100,12,0;6,3,100p,70p,0,0,30,100,12,0;7,3,100p,70p,0,0,30,100,12,0;8,3,100p,70p,0,0,30,100,12,0\",\"natural_die_duration\":30000,\"my_vote\":0,\"component_anchor\":\"https://live.bilibili.com/p/html/live-app-guessing-game/anchor_vote.html?pc_ui=390,428,0,3\\u0026is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,448,0,0,30,0,12,0;2,2,375,100p,0,0,30,0,12,0;3,3,100p,448,0,0,30,0,12,0;4,2,375,100p,0,0,30,0,12,0;5,3,100p,448,0,0,30,0,12,0;6,2,320,100p,0,0,30,0,12,0;7,2,320,100p,0,0,30,0,12,0;8,2,320,100p,0,0,30,0,12,0#/\",\"audit_reason\":\"\",\"combo\":[{\"id\":1,\"status\":4,\"content\":\"1\",\"cnt\":1,\"guide\":\"\",\"left_duration\":0,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/7d7e3682c9116aa3503418abe3cde6b45ed2e91e.png\"},{\"id\":2,\"status\":4,\"content\":\"2\",\"cnt\":0,\"guide\":\"\",\"left_duration\":0,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/f83c7280b2a90b4f58a68fd8c594ea7d5667e3cb.png\"}]}",
		"dmscore": 36,
		"id": 98014463034880,
		"status": 4,
		"type": 101
	}
}

1746083733918230162.json

{
	"cmd": "DM_INTERACTION",
	"data": {
		"data": "{\"question\":\"给我你们的意见\",\"options\":[{\"idx\":1,\"desc\":\"1\",\"cnt\":1,\"percent\":0.8},{\"idx\":2,\"desc\":\"2\",\"cnt\":0,\"percent\":0.2}],\"vote_id\":98014463034880,\"cnt\":1,\"duration\":60000,\"left_duration\":0,\"fade_duration\":1000,\"waiting_duration\":-1,\"result\":2,\"result_text\":\"蓝获胜\",\"component\":\"https://live.bilibili.com/p/html/live-app-guessing-game/vote.html?is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,245,0,0,30,100,12,0;2,2,375,100p,0,0,30,100,12,0;3,3,100p,245,0,0,30,100,12,0;4,2,375,100p,0,0,30,100,12,0;5,3,100p,70p,0,0,30,100,12,0;6,3,100p,70p,0,0,30,100,12,0;7,3,100p,70p,0,0,30,100,12,0;8,3,100p,70p,0,0,30,100,12,0\",\"natural_die_duration\":30000,\"my_vote\":0,\"component_anchor\":\"https://live.bilibili.com/p/html/live-app-guessing-game/anchor_vote.html?pc_ui=390,428,0,3\\u0026is_live_half_webview=1\\u0026hybrid_half_ui=1,3,100p,448,0,0,30,0,12,0;2,2,375,100p,0,0,30,0,12,0;3,3,100p,448,0,0,30,0,12,0;4,2,375,100p,0,0,30,0,12,0;5,3,100p,448,0,0,30,0,12,0;6,2,320,100p,0,0,30,0,12,0;7,2,320,100p,0,0,30,0,12,0;8,2,320,100p,0,0,30,0,12,0#/\",\"audit_reason\":\"\",\"combo\":[{\"id\":1,\"status\":5,\"content\":\"1\",\"cnt\":1,\"guide\":\"\",\"left_duration\":0,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/7d7e3682c9116aa3503418abe3cde6b45ed2e91e.png\"},{\"id\":2,\"status\":5,\"content\":\"2\",\"cnt\":0,\"guide\":\"\",\"left_duration\":0,\"fade_duration\":0,\"prefix_icon\":\"http://i0.hdslb.com/bfs/dm/f83c7280b2a90b4f58a68fd8c594ea7d5667e3cb.png\"}]}",
		"dmscore": 36,
		"id": 98014463034880,
		"status": 5,
		"type": 101
	}
}

pskdje avatar May 01 '25 12:05 pskdje

直播小助手的那两个cmd在直播时长首次达到360分钟(6个小时)也会下发。

没有启用数据包记录,所以没有示例。

修订:

400分钟也会。

再修订:

460、500、600分钟也会。

pskdje avatar May 02 '25 10:05 pskdje

礼物星球小部件信息 WIDGET_WISH_INFO

目前只在主播更新想要的礼物时下发。

推测达成礼物数量也会下发。

JSON消息:

根对象:

字段 类型 内容 备注
cmd str ``
data obj 信息本体

data 对象:

字段 类型 内容 备注
sid num ?
wish arr 礼物需求信息
jump_url str 用户端礼物星球界面
wish_status num 礼物星球状态
card_text str 卡片提示文本
modal_text str 需求标题
button_text str 按钮文本
show_time num 显示时间 单位秒
ts num 发送时间戳 秒时间戳
tid num ?
wish_status_info arr 状态对照信息
wish_name str 礼物星球名称

data.wish 数组内对象:

字段 类型 内容 备注
gift_id num 礼物id
target_num num 需求数量
gift_img str 礼物图片URL
gift_price num 礼物价格 ×0.001RMB
gift_name str 礼物名称
wish_status num 该礼物达成状态

data.wish_status_info 数组内对象:

字段 类型 内容 备注
wish_status_msg str 状态提示信息
wish_status_img str 状态图片URL
wish_status str 状态
wish_status_desc str 状态描述 不一定存在

示例:

查看消息示例:
{
	"cmd": "WIDGET_WISH_INFO",
	"data": {
		"sid": 658537,
		"wish": [
			{
				"gift_id": 31036,
				"target_num": 1,
				"gift_img": "https://s1.hdslb.com/bfs/live/8b40d0470890e7d573995383af8a8ae074d485d9.png",
				"gift_price": 100,
				"gift_name": "小花花",
				"wish_status": 1
			},
			{
				"gift_id": 30758,
				"target_num": 1,
				"gift_img": "https://s1.hdslb.com/bfs/live/3ddb10b055b9d1826829ec0fad93ab56484d4a90.png",
				"gift_price": 100,
				"gift_name": "这个好诶",
				"wish_status": 1
			},
			{
				"gift_id": 31039,
				"target_num": 1,
				"gift_img": "https://s1.hdslb.com/bfs/live/91ac8e35dd93a7196325f1e2052356e71d135afb.png",
				"gift_price": 100,
				"gift_name": "牛哇牛哇",
				"wish_status": 1
			}
		],
		"jump_url": "https://live.bilibili.com/p/html/bilili-page-gift-wishes-mix-planet/user.html?is_live_half_webview=1&hybrid_half_ui=1,3,100p,70p,0,0,30,100,15,0;2,2,375,100p,0,0,30,100,15,0;3,3,100p,70p,0,0,30,100,15,0;4,2,375,100p,0,0,30,100,15,0;5,3,100p,70p,0,0,30,100,15,0;6,3,100p,70p,0,0,30,100,15,0;7,3,100p,70p,0,0,30,100,15,0;8,3,100p,70p,0,0,30,100,15,0",
		"wish_status": 1,
		"card_text": "主播今日心愿还未完成",
		"modal_text": "今日心愿礼物",
		"button_text": "去助力",
		"show_time": 5,
		"ts": 1746257134,
		"tid": 6585370000,
		"wish_status_info": [
			{
				"wish_status_msg": "礼物星球待点亮",
				"wish_status_img": "https://i0.hdslb.com/bfs/live/e507f8b101289b2ce6741880a28304215a65f5bf.png",
				"wish_status": -1
			},
			{
				"wish_status_msg": "今日心愿暂未达成",
				"wish_status_img": "https://i0.hdslb.com/bfs/live/e507f8b101289b2ce6741880a28304215a65f5bf.png",
				"wish_status": 1
			},
			{
				"wish_status_msg": "今日心愿已达成",
				"wish_status_img": "https://i0.hdslb.com/bfs/live/e507f8b101289b2ce6741880a28304215a65f5bf.png",
				"wish_status": 2,
				"wish_status_desc": "已完成"
			}
		],
		"wish_name": "心愿礼物"
	}
}

pskdje avatar May 03 '25 08:05 pskdje