- 手动 Action 和
python main.py默认是 diagnose:仅确认登录和普通虎粮库存,禁止送礼。 - 显式
python main.py --mode send/ Actionmode=send才赠送;定时任务仍使用 send,仅在默认分支运行。 - 已在 GitHub Actions 验证诊断及真实赠送:登录有效、普通虎粮 25 个送出、业务成功提示及库存归零均确认。定时执行仍可能受网络、页面变化和 Cookie 有效期影响;发生结果未知时请人工核对,不要盲目重跑。
- 页面使用
page_load_strategy=none+ 关键元素就绪检查。登录/库存最多重试两次,发送和确认按钮不自动重试。 - 优先直接调用网页同款只读
getTimeSign→listTotalGET 接口,避免充值页无关资源阻塞;失败才回退到网页观察库存响应。只精确匹配普通“虎粮”,不包含超粉虎粮。查询失败不当作零库存。 - 公共 artifact 仅包含白名单 JSON(阶段、就绪状态、结果),不保存/上传 Cookie、原始 HTML、截图、完整 URL 或用户名。
DIAGNOSE_OK:登录和库存查询通过;EMPTY_STOCK:确认库存为零;INVENTORY_QUERY_FAILED:查询失败;SEND_FAILED_OR_UNKNOWN:停止并人工核对,勿盲目 rerun。- 每个房间送礼后必须出现本次页面新产生的“送礼成功”业务提示,才会计数并继续;拒绝/超时/结果未知立即停止,不补点。全部完成后重新查库存,库存核对不能取代平台赠送账单。
- 同 URL 重新导航也要求旧文档标记消失,并校验房间 lp/gid 参数。传输超时仅在导航/查询阶段有界重试,清理错误不会覆盖已记录结果。
本地安全测试(不使用账号,浏览器仅访问本机测试页):
python -m unittest discover -s tests -v
RUN_BROWSER_TESTS=1 python -m unittest discover -s tests -v轻量、开箱即用的 虎牙虎粮自动批量赠送工具,支持 GitHub Actions
- 🔐 安全配置:Cookie / 房间号通过 GitHub Secrets 管理,不泄露
- 🤖 全自动运行:支持定时执行 + 手动触发
- 📦 无冗余依赖:仅需 Selenium 环境,超轻量
- 🎯 精准分配:自动读取背包虎粮,批量分配到多个房间
- 🚀 云原生:直接在 GitHub Actions 运行,无需服务器
.github/workflows/auto.yml # GitHub Actions 自动化配置
requirements.txt # 依赖清单
main.py # 主程序(核心逻辑)
config.py # 页面选择器(唯一配置文件)
- 登录 虎牙网页版
- F12 打开开发者工具 -> 网络 -> F5
- 找到 "index.php?m=Msg&do=getMsgC" 项
- 在标头中找到并复制整个 Cookie 字符串
-
Fork 本仓库
-
进入仓库 Settings → Secrets and variables → Actions
-
添加 2 个必需密钥(缺少任意一个将直接停止运行):
HUYA_COOKIE:你的虎牙登录 CookieHUYA_ROOMS:房间号列表,英文逗号分隔(例:518512,1964,294636272)
-
进入 Actions → 启用工作流
-
完成!每天 北京时间 0:01 自动运行
- 进入仓库 Actions
- 选择
虎牙虎粮自动发放 - 点击
Run workflow - 可自定义输入房间号(覆盖密钥配置)
# 安装依赖
pip install -r requirements.txt
# 设置环境变量
export HUYA_COOKIE="你的Cookie"
export HUYA_ROOMS="518512,1964"
# 启动
python main.py| 名称 | 说明 |
|---|---|
| HUYA_COOKIE | 登录凭证(必须) |
| HUYA_ROOMS | 目标房间号列表(必须) |
默认:每天 北京时间 0:01 执行
修改定时:编辑 .github/workflows/auto.yml
on:
schedule:
# 每天 北京时间 00:01 运行
- cron: '1 16 * * *'- 验证 Cookie / 房间号(缺少直接退出)
- 打开背包页面,读取虎粮数量
- 自动分配数量到所有房间
- 依次进入房间 → 悬停虎粮 → 自定义数量 → 赠送
- 输出执行结果
- 请勿分享 Cookie,避免账号被盗
- Cookie 过期后重新获取更新即可
- 房间必须正常开播才能赠送礼物
- 本项目仅用于学习交流,遵守平台规则
- 登录失败:Cookie 过期或格式错误,重新获取
- 赠送失败:房间未开播、礼物面板未加载
- Action 报错:检查 Secrets 是否正确配置
MIT License