Skip to content

DESN131/StreamAlert

Repository files navigation

Stream-Alert

使用 Flask 接收录播姬 Webhook v2,并通过 Telegram Bot 发送提醒消息。

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

复制 .env.example.env,修改以下必填项:

  • TELEGRAM_BOT_TOKEN:你的 Telegram Bot Token
  • TELEGRAM_CHAT_ID:接收消息的 chat id(个人、群组或频道)

可选项:

  • WEBHOOK_PATH:Webhook 路径,默认 /webhook
  • FLASK_HOST/FLASK_PORT:监听地址和端口
  • PUSH_FILTER_ENABLED:是否启用推送过滤
  • PUSH_ONLY_EVENT_TYPES:仅推送指定事件类型(逗号分隔)
  • PUSH_ONLY_ROOM_IDS:仅推送指定房间号(逗号分隔)

3. 启动服务

PowerShell

Get-Content .env | ForEach-Object {
  if ($_ -match '^\s*#' -or $_ -match '^\s*$') { return }
  $name, $value = $_ -split '=', 2
  [Environment]::SetEnvironmentVariable($name, $value, 'Process')
}

python app.py

启动后健康检查:

  • GET /health

Webhook 接口:

  • POST {WEBHOOK_PATH}(默认 POST /webhook

Docker 部署

  1. 确保 .env 已按 .env.example 配置好。
  2. 构建并启动:
docker compose up -d --build
  1. 查看日志:
docker compose logs -f

可查看健康状态:

docker compose ps
  1. 停止服务:
docker compose down

4. 在录播姬中配置

在录播姬 Webhook 设置中填入:

http://你的服务器IP或域名:5000/webhook

如果你修改了 WEBHOOK_PATH 或端口,请同步修改 URL。

5. 行为说明

  • 支持 SessionStartedFileOpeningFileClosedSessionEndedStreamStartedStreamEnded
  • 收到未知事件类型也会通知(显示为未知事件)
  • 使用 EventId 做去重,避免重试造成重复推送
  • Telegram 发送失败会返回非 2xx,录播姬可按其机制重试
  • PUSH_FILTER_ENABLED=true 时,可按事件类型和房间号进行推送过滤

过滤配置示例:

PUSH_FILTER_ENABLED=true
PUSH_ONLY_EVENT_TYPES=StreamStarted,StreamEnded
PUSH_ONLY_ROOM_IDS=23058,123456

About

StreamAlert是一款基于录播姬的直播提醒工具,通过 Telegram Bot 发送提醒消息。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors