Files
live-hub-py/docs/HUYA_CHAT_缺失字段补齐方案.md
T
yml2213 5dc736516f 补齐网页Cookie缺失字段并接入会话自动预取guid
- 新增 core/huya/web_cookie_fields.py:4 核心设备字段(guid 取自 wsLaunch 会话、
  _qimei_uuid42/__yamid_new/game_did 随机对齐格式)+ qimei 皮肤 + 22 个统计/会话字段
- elite_session 活动通道初始化时若缺网页字段,先 wsLaunch 预取服务端认可 guid,
  补齐 cookie 后重建会话;业务 RPC 统一走补齐后的 cookie
- 实测:账号 id=58(原始 16 字段登录态)checkUserBindGameAccount status=200
  (和平精英已绑定/收麦季)、getUserScore status=200(积分 4880)
- 附补齐方案与浏览器实测来源记录 docs/HUYA_CHAT_缺失字段补齐方案.md
2026-09-01 22:12:58 +08:00

4.8 KiB
Raw Blame History

虎牙网页 Cookie 缺失字段补齐方案(2026-09-01 晚)

目标:账号 19507362959DB id=58yyuid=1199664135026)跑通精英宝典 WSS query_game_namecheckUserBindGameAccount/ query_pointsgetUserScore)。 当前账号 cookie 仅 16 字段(登录凭据),对比 9.1 抓包 42 字段缺 26 个。 本文档按"浏览器实测来源 → 生成方案"逐字段确定,重点分析 4 个核心设备字段。

一、背景结论(已有证据)

  • 9.1 抓包(2026-09-01 09:3642 字段 cookieguid/game_did/_qimei_uuid42/udb_* 等全部齐全, 上午所有业务接口成功;当天 21:40 用同一 cookie 逐字节重放,带 cookie 的业务接口全部返回 905/259,不带 cookie 的 getActInfo/getActTaskDetail 仍成功 → 905 是 udb 登录态过期, 不是请求帧格式问题(重放原字节即可复现)。
  • 浏览器实测(真实 Chrome CDP,evidence/browser_cookie_harvest/report.md): 7 个必填网页设备字段全部由页面脚本写 document.cookie服务端匿名接口下发产生:
    字段 产生机制 协议可否复刻
    udb_deviceid middle/anonymousLogin Set-Cookie10 年) 已接入 anon_device
    udb_anobiztoken anonymousLogin 响应 biztoken 已接入 anon_device
    udb_anouid anonymousLogin 响应 uid 已接入 anon_device
    udb_guiddata middle URL 第三段 hex32(客户端自选) 已接入 anon_device
    guid HyUDBWebSDK-Exchange-2.4.js 写 document.cookie 脚本语义待复刻
    _qimei_uuid42 QIMEI SDK 脚本写 document.cookie 脚本语义待复刻
    __yamid_new 门户业务脚本写 document.cookie 脚本语义待复刻
    game_did 门户业务脚本写 document.cookie 脚本语义待复刻

二、账号 58 现状(16 字段)

udb_passport, username, udb_cred, udb_uid, yyuid, udb_biztoken, udb_version, udb_origin, udb_status, sdid, hdid, udb_anouid, udb_anobiztoken, udb_deviceid, udb_appid, udb_guiddata —— 4 个匿名设备字段已有(anon_device 协议), guid/game_did/_qimei_uuid42/__yamid_new 4 个核心 + 22 个统计字段

三、缺失字段补齐方案(逐字段)

3.1 四个核心设备字段(本轮重点分析)

字段 9.1 值形态 浏览器首次出现 补齐方案
guid 32 hex0a7d… 前缀 udbres.huya.com SDK 脚本 待 SDK 逆向;格式 32hex
game_did 35 位字母数字 liveapi.ip/getIpLocation 后门户脚本 待门户脚本逆向;格式 alnum
_qimei_uuid42 42 hex1a901… 前缀 QIMEI SDK 脚本 待 SDK 逆向;格式 42hex
__yamid_new 32 hex 大写 门户脚本 待门户脚本逆向;格式 32hex 大写

浏览器 round1 同一字段多次出现均值稳定(跨 profile 稳定):_qimei_fingerprint 恒为 2822a43b5a3bd016fc844218c35c8a74_qimei_uuid42 前缀恒为 1a901… guid 前缀恒为 0a7dfaa2… → 存在固定前缀/哈希结构,随机值可能被风控识别 需还原生成算法。

3.2 统计/会话字段(随机即可,服务端仅记录)

字段 生成规则 9.1 样例
SoundValue 固定 0.50 0.50
alphaValue 固定 0.80 0.80
isInLiveRoom 固定 true true
__yasmid / __yamid_tt1 17 位随机小数,两者同值 0.24859634691671784
udb_passdata 固定 3 3
_rep_cnt / rep_cnt 随机 0-9 5 / 7
udb_accdata 固定 undefined undefined
h_unt 当前时间戳(秒) 1788226396
__yaoldyyuid = yyuid 1199666914671
_yasids __rootsid%3D+32hex 大写 __rootsid%3DCBCC34C4…
Hm_lvt_5170… 当前时间戳 1788226384
Hm_lpvt_5170… 当前时间戳 1788226571
HMACCOUNT 16 hex 随机(百度统计下发) 1B08C0532E777923
huya_flash_rep_cnt 随机整数 136
huyasp_rep_cnt 随机整数 9
huya_hd_rep_cnt 随机整数 22
huya_web_rep_cnt 随机整数 507

3.3 已有字段(保持真实值)

udb_cred/biztoken/uid/yyuid/passport/version/origin/status/appid/username(登录凭据)、 sdid/hdid(设备指纹)、udb_deviceid/udb_guiddata/udb_anobiztoken/udb_anouidanon_device)、 huya_uanormalize 注入)。

四、风险与验证要求

  1. guid/_qimei_uuid42/__yamid_new/game_did真实性/关联性服务端是否校验未知; 必须用生成值跑通线上活动 WSS 全链路才能定论,不能只过长度测试。
  2. 统计字段随机值不影响接口语义,但顺序建议与 9.1 cookie 保持一致以便对照。
  3. 补齐后仍需新鲜的 udb 登录态905 = 过期),登录链路见 app_login.py