OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  frigate:通过会话认证访问 Frigate NVR 监控摄像头

frigate:通过会话认证访问 Frigate NVR 监控摄像头

 
  nosql ·  2026-02-06 06:32:40 · 3 次点击  · 0 条评论  

名称: frigate
描述: 通过基于会话的身份验证访问 Frigate NVR 摄像头。获取实时快照、检索运动事件并获取流媒体 URL。包含用于门铃、车道、前门、东侧、邮箱和车库摄像头的 CLI 辅助脚本。


Frigate NVR 集成

通过环境变量 FRIGATE_USERFRIGATE_PASS 中的凭据,访问位于 FRIGATE_URL 的 Frigate NVR 服务器。

身份验证

Frigate 使用基于会话的身份验证(非 HTTP 基本认证):

import requests

session = requests.Session()
response = session.post(
    f"{FRIGATE_URL}/api/login",
    json={"user": FRIGATE_USER, "password": FRIGATE_PASS},
    verify=False  # 用于自签名证书
)
# session.cookies 包含后续请求所需的 frigate_token

常用操作

获取摄像头列表

response = session.get(f"{FRIGATE_URL}/api/config", verify=False)
config = response.json()
cameras = list(config.get('cameras', {}).keys())
# 返回:['driveway', 'front', 'east', 'mailbox', 'garage', 'doorbell']

从摄像头获取快照

snapshot = session.get(
    f"{FRIGATE_URL}/api/{camera_name}/latest.jpg",
    verify=False
)
# 保存:with open(f"/tmp/{camera_name}.jpg", "wb") as f: f.write(snapshot.content)

获取运动事件

events = session.get(
    f"{FRIGATE_URL}/api/events?cameras={camera_name}&has_clip=1",
    verify=False
).json()
# 返回带时间戳的运动检测事件列表

获取摄像头流媒体 URL

config = session.get(f"{FRIGATE_URL}/api/config", verify=False).json()
stream_config = config.get('go2rtc', {}).get('streams', {}).get(camera_name)
# 返回 RTSP/WebRTC 流媒体 URL

环境变量

必需:
- FRIGATE_URL - Frigate 服务器 URL(例如:https://server.local:8971/
- FRIGATE_USER - 身份验证用户名
- FRIGATE_PASS - 身份验证密码

可选:
- 除上述外无需其他变量

示例:将门铃快照发送到 Telegram

import requests

session = requests.Session()
session.post(f"{FRIGATE_URL}/api/login",
    json={"user": FRIGATE_USER, "password": FRIGATE_PASS}, verify=False)

# 获取门铃快照
snapshot = session.get(f"{FRIGATE_URL}/api/doorbell/latest.jpg", verify=False)

# 发送到 Telegram
from clawdbot import message
message(action="send", channel="telegram", target="3215551212",
        message="Doorbell snapshot", path="/tmp/doorbell_snapshot.jpg")

注意事项

  • 家庭网络中使用自签名证书时,请始终使用 verify=False
  • 会话令牌在 24 小时后过期(可通过 session_length 配置)
  • /api/cameras 端点不存在;请使用 /api/config 获取摄像头信息
  • Frigate 0.16+ 版本使用此身份验证模型

捆绑资源

  • 脚本:参见 scripts/frigate.py 获取包含 listsnapshoteventsstream 命令的 CLI 实用工具
  • API 参考:参见 references/api.md 获取完整的 API 文档
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor