✓ Verified
💻 Development
✓ Enhanced Data
Frigate
Access Frigate NVR cameras with session-based authentication.
- Rating
- 4.8 (61 reviews)
- Downloads
- 16,141 downloads
- Version
- 1.0.0
Overview
Access Frigate NVR cameras with session-based authentication.
Complete Documentation
View Source →
Frigate NVR Integration
Access Frigate NVR server at FRIGATE_URL with credentials from FRIGATE_USER and FRIGATE_PASS environment variables.
Authentication
Frigate uses session-based authentication (not HTTP Basic Auth):
python
import requests
session = requests.Session()
response = session.post(
f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS},
verify=False # For self-signed certificates
)
# session.cookies contains frigate_token for subsequent requests
Common Operations
Get Camera List
python
response = session.get(f"{FRIGATE_URL}/api/config", verify=False)
config = response.json()
cameras = list(config.get('cameras', {}).keys())
# Returns: ['driveway', 'front', 'east', 'mailbox', 'garage', 'doorbell']
Get Snapshot from Camera
python
snapshot = session.get(
f"{FRIGATE_URL}/api/{camera_name}/latest.jpg",
verify=False
)
# Save: with open(f"/tmp/{camera_name}.jpg", "wb") as f: f.write(snapshot.content)
Get Motion Events
python
events = session.get(
f"{FRIGATE_URL}/api/events?cameras={camera_name}&has_clip=1",
verify=False
).json()
# Returns list of motion detection events with timestamps
Get Camera Stream URL
python
config = session.get(f"{FRIGATE_URL}/api/config", verify=False).json()
stream_config = config.get('go2rtc', {}).get('streams', {}).get(camera_name)
# Returns RTSP/WebRTC stream URLs
Environment Variables
Required:
FRIGATE_URL- Frigate server URL (e.g.,https://server.local:8971/)FRIGATE_USER- Username for authenticationFRIGATE_PASS- Password for authentication
- None required beyond the above
Example: Send Doorbell Snapshot to Telegram
python
import requests
session = requests.Session()
session.post(f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS}, verify=False)
# Get doorbell snapshot
snapshot = session.get(f"{FRIGATE_URL}/api/doorbell/latest.jpg", verify=False)
# Send to Telegram
from clawdbot import message
message(action="send", channel="telegram", target="3215551212",
message="Doorbell snapshot", path="/tmp/doorbell_snapshot.jpg")
Notes
- Always use
verify=Falsefor self-signed certificates on home networks - Session tokens expire after 24 hours (configurable via
session_length) - The
/api/camerasendpoint doesn't exist; use/api/configfor camera info - Frigate version 0.16+ uses this authentication model
Bundled Resources
- Scripts: See scripts/frigate.py for CLI utility with commands:
list,snapshot,events,stream - API Reference: See references/api.md for complete API documentation
Installation
Terminal bash
openclaw install frigate
Copied!
💻Code Examples
# session.cookies contains frigate_token for subsequent requests
-sessioncookies-contains-frigatetoken-for-subsequent-requests.txt
## Common Operations
### Get Camera List# Returns RTSP/WebRTC stream URLs
-returns-rtspwebrtc-stream-urls.txt
## Environment Variables
Required:
- `FRIGATE_URL` - Frigate server URL (e.g., `https://server.local:8971/`)
- `FRIGATE_USER` - Username for authentication
- `FRIGATE_PASS` - Password for authentication
Optional:
- None required beyond the above
## Example: Send Doorbell Snapshot to Telegramexample.py
import requests
session = requests.Session()
response = session.post(
f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS},
verify=False # For self-signed certificates
)
# session.cookies contains frigate_token for subsequent requestsexample.py
response = session.get(f"{FRIGATE_URL}/api/config", verify=False)
config = response.json()
cameras = list(config.get('cameras', {}).keys())
# Returns: ['driveway', 'front', 'east', 'mailbox', 'garage', 'doorbell']example.py
snapshot = session.get(
f"{FRIGATE_URL}/api/{camera_name}/latest.jpg",
verify=False
)
# Save: with open(f"/tmp/{camera_name}.jpg", "wb") as f: f.write(snapshot.content)example.py
events = session.get(
f"{FRIGATE_URL}/api/events?cameras={camera_name}&has_clip=1",
verify=False
).json()
# Returns list of motion detection events with timestampsexample.py
config = session.get(f"{FRIGATE_URL}/api/config", verify=False).json()
stream_config = config.get('go2rtc', {}).get('streams', {}).get(camera_name)
# Returns RTSP/WebRTC stream URLsexample.py
import requests
session = requests.Session()
session.post(f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS}, verify=False)
# Get doorbell snapshot
snapshot = session.get(f"{FRIGATE_URL}/api/doorbell/latest.jpg", verify=False)
# Send to Telegram
from clawdbot import message
message(action="send", channel="telegram", target="3215551212",
message="Doorbell snapshot", path="/tmp/doorbell_snapshot.jpg")Tags
#smart_home-and-iot
Quick Info
Category Development
Model Claude 3.5
Complexity One-Click
Author porygonthebot
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
Ready to Install?
Get started with this skill in seconds
openclaw install frigate
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
⚡ GPT-Optimized
)}
★ 3.8 (274)
↓ 17,648
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0