VRC-Notifier 好友状态监控通知系统

介绍
VRC-Notifier是一个专门为VR chat玩家设计的后台监控工具,它可以持续地在后台监控您所指定的好友的状态变化,比如上线信息,下线信息,状态切换信息,和世界切换信息,并通过邮箱smtp服务或者Gotify等其他开源平台实时通知你。

功能
智能好友监控 - 选择性监控指定好友,而非全部好友列表
仅监控状态模式 - 无限制监控所有好友的在线状态,不监控世界变化
邮件通知 - 支持自定义 SMTP 服务器,实时接收状态变化通知
Gotify 推送 - 支持开源推送平台 Gotify,手机实时接收通知
NTFY 推送 - 支持开源推送平台 NTFY,支持自托管和官方服务器
Webhook 通知 - 支持自定义 Webhook 回调,可对接企业微信、钉钉、Discord 等第三方平台
世界轮询 - 智能轮询机制追踪好友所在世界变化(标准模式)
API 保护 - 多层限流保护机制,确保不触发官方 API 限制
防抖动机制 - 避免服务器抖动导致的误判,确保通知准确性
精美界面 - 现代化 Web UI,支持明暗主题切换
Docker 支持 - 一键部署,支持 Docker Compose
使用
部署本项目,并启用本项目
在终端会收到访问密钥输入生成的访问密钥即可登录VRchat官方账号(账号不会明文保存相关数据均已加密并保存在本地)
进入好友列表,便会自动的刷新一次好友列表,后面工具将不会主动的自动刷新以降低API的请求频率
刷新完后好友列表会进入六十秒等待期(不会调用任何API),以防止用户在此多次频繁的使用API导致限流问题
用户可选择标准模式,和仅监控状态模式,标准模式会监控好友的世界信息,但最多只能监控五个好友
仅监控状态模式下可以监控所有好友,但无法监控他们的世界变化信息,两种模式均在关于按钮中呈现
接下来用户只要配置smtp服务或者gotify服务或者webhook服务就可以将好友状态及其变化推送到推送平台了
快速开始
环境要求
Node.js 18.0 或更高版本
支持的平台:Windows / macOS / Linux
安装步骤
方式一:直接运行
# 克隆仓库
git clone https://github.com/shanyaojinjn/vrc-notifier.git
cd vrc-notifier
# 安装依赖
npm install
# 启动服务
npm start方式二:Docker 部署(推荐)
创建项目目录并进入
mkdir vrc-notifier && cd vrc-notifier创建
docker-compose.yml文件
version: '3.8'
services:
vrc-notifier:
image: shanyaojinjin/vrc-notifier:latest
container_name: vrc-notifier
restart: unless-stopped
ports:
- "5270:5270"
volumes:
# 数据持久化存储
- ./data:/app/data
environment:
- TZ=Asia/Shanghai
networks:
- vrc-network
networks:
vrc-network:
driver: bridge启动服务
docker-compose up -d访问服务
打开浏览器访问 http://localhost:5270 即可使用。
注意事项:
数据将保存在
./data目录中,请确保该目录有写入权限如需停止服务,运行
docker-compose down查看日志:
docker-compose logs -f
机制与解答
简单来说我们有非常灵活的API调用机制
防API请求失误抖动机制纠错系统,有三次防抖动纠错。
自动保护账号机制触发限流之前底层自动保护
世界信息轮询系统,世界信息将会以一个轮盘的形式进行轮询以节省API使用
工具兼容有API冗余可以与其他工具并存vrcx
游戏并上线可能会使得本工具掉线原因是因为ip发生变动等其他原因再次登录即可
如果你先启动游戏再启动本工具即可规避这个问题(或保持IP统一)
如果出现无法加载的情况,请耐心等待或者更换网络环境(查看终端,看是否触发保护)
| API 类型 | 官方建议 | 我们的限制 | 安全余量 |
|---------|---------|-----------|---------|
| 用户资料 | ≤1次/分钟 | 1次/分钟 | 100%合规 |
| 好友状态 | ≤5次/分钟 | 2次/分钟 | 60%余量 |
| 世界信息 | ≤10次/分钟 | 6次/分钟 | 40%余量 |全局限流保护
当检测到限流触发时,系统会自动进入全局暂停模式:
自动暂停所有 API 请求 60 秒
向用户发送警告通知
前端显示实时限流状态
安全与隐私
本项目是一个需要自己部署的项目,请你选择安全的部署环境和平台以保障你的账号安全。相关数据工具以进行严格加密,但如果服务器部署平台发生了问题,那么账号信息还是会有泄露风险,本工具以尽可能保护帐号安全,所以不承担泄露风险。
本项目有着非常严格的API请求规则。如果触发API限流那么本工具会在触发之前便进行限流保护,如果触发次数过多,便自动停止该工具运行,以保障用户帐号安全。如果用户不恶意进行高频次API请求,那么本工具将不会使得用户账号面临封禁危险。如果用户账号发生了封禁现象,与本工具无关。
注意
不要擅自部署到危险的平台上
不要恶意多次请求API
不要拿本工具去恶意监视好友
更新
2026/3/2 修复在使用docker部署时,无法正常调取时间的问题
V1.5 更新日志
当前版本:1.5
新增:
增添 NTFY 通知平台的支持
新增 web 端平台识别,修复使用 VRCX 工具时通知重复的问题
新增
{oldPlatform}{newPlatform}变量,支持自定义好友平台显示新增 web 端上线下线逻辑和防抖机制
终端新增验证码调试内容,监控验证码输入错误
修复:
修复部分自定义变量无返回值的问题
修复首次使用时所有好友初始状态为离线,导致通知大量重复的问题
修复首次使用时好友世界命名为“未知世界”引发的重复通知问题
修复 NTFY 中时间格式被手机端识别为电话号码的问题
修复好友每次上线时自定义状态重复通知的问题
修复登录时提示错误的问题
修复账号登出后不返回登录界面的问题
优化:
优化上下线通知逻辑
优化默认模板格式
优化标签页内容与布局
删除多余文字和未使用的函数/变量
VRC-Notifier 1.6登录修复
紧急修复,用户账号处于登录状态时,重进网页自动跳回到登录界面的问题
使用案例
邮箱端推送案例

Gotify平台推送案例

Gotify+手环推送案例

致谢
VRChat API - 提供 API 文档支持
Gotify - 开源推送服务
NTFY - 开源推送服务
Node.js - 运行时环境
相关链接
作者主页: https://shany.cc/
本人技术不精,我承认只是个玩具项目,可以适当体验,或者是作为参考
Made with ❤️ for VRChat Community