๐Ÿฆ BirdWatchAI Manual Part 1 ยท Introduction Community Feed
Part 1

Introduction

BirdWatchAI turns any camera pointed at your bird feeder into an automatic bird-watching station โ€” identifying species on-device, saving photos and short video clips, and (optionally) sending you a notification when something rare shows up. This Part introduces the project, the two editions you can choose between, and the high-level picture of how a single detection happens.

What BirdWatchAI is

BirdWatchAI sits between an ordinary network camera and you. It watches the camera's video feed continuously, notices when something moves, decides whether the moving thing is actually a bird (filtering out squirrels, swaying branches, and shadows), identifies the species using a local AI model, and then saves a labeled snapshot plus a short clip โ€” all without anything leaving your home network unless you opt in to community sharing.

Key things it does:

Private by default Identification runs locally โ€” no images are sent to any cloud service for recognition. Sharing to the community is entirely opt-in and you control exactly how much is published (see Part 5 โ†’ Community sharing).

Desktop vs. Server โ€” which one should I run?

BirdWatchAI ships in two flavors. They share the same AI models and the same community backend; they differ mainly in where and how they run.

Windows Desktop App Server (Docker)
Where it runs Windows 10 / 11 PC Raspberry Pi 4 / 5, Linux x86_64, or Windows + Docker Desktop
Interface Native Windows Forms window Web dashboard on port 8080 โ€” open from any device on your network
Best for A PC that's already on most of the day; people who want the full feature set with no command line Always-on operation, low power draw, headless / remote access; people comfortable copy-pasting one or two commands
Camera types RTSP (any IP camera) RTSP or wired Raspberry Pi Camera Module (CSI ribbon)
Updates In-app update check; installer re-runs One-click "Apply update" from the dashboard (via Watchtower sidecar)
Status Mature (v2.1) Newer port; tracks the desktop app feature set

You can run either โ€” never both pointing at the same camera at the same time, since most cameras only allow a small handful of simultaneous RTSP streams. Pick the one that fits your situation; the rest of this manual flags instructions that apply to only one edition.

Feature matrix

What's available where:

Feature Desktop Server
Local AI identification (965 species)โœ…โœ…
SpeciesNet model (2,498 species)โœ…โœ…
RTSP camerasโœ…โœ…
Wired Pi camera (CSI)โ€”โœ…
Snapshot + video clip per detectionโœ…โœ…
Burn-in overlay on snapshots / clipsโœ…โœ…
Email notificationsโœ…โœ…
Pushover notificationsโœ…โ€”
ntfy pushโœ…โœ…
Windows toast notificationsโœ…โ€”
Photo frame (FTP / email-to-frame)โœ…โ€”
Detection history (searchable)โœ…โœ…
Statistics dashboardsโœ…โœ…
Species-grouped gallery + slideshowโœ…โœ…
Achievements / badgesโœ…โ€”
Community sharingโœ…โœ…
Weekly / monthly summary reportsโœ…โœ…
Video summaries (highlight reels)โœ…โ€”
Remote access (without VPN)โ€”โœ… (web dashboard)
One-click in-app updateโ€”โœ… (Watchtower)
Catching up The server edition is the newer port. Parity with the desktop app is ongoing โ€” a handful of features (Pushover, photo frame, achievements, video summaries) haven't been ported yet. See the project roadmap or release notes for current status.

System requirements

Windows desktop app

ComponentRequirement
Operating systemWindows 10 or 11, 64-bit only
Runtime.NET 8 Desktop Runtime (x64) โ€” the installer offers to fetch this if missing
WebView2 RuntimeNeeded for the "Pick on Map" location feature (pre-installed on Win 10/11)
CameraAny RTSP-capable IP camera on your local network
Memory~200โ€“300 MB RAM in use
CPUUnder 5% idle; brief 10โ€“20% spike during a detection
DiskA few GB for snapshots and clips, depending on how much you keep

Server (Raspberry Pi or Docker)

ComponentRequirement
HardwareRaspberry Pi 4 (4 GB+) or Pi 5; or any x86_64 Linux box; or Windows 10/11 with Docker Desktop (8 GB RAM minimum, 16 GB recommended)
Storage32 GB+ SD card (class A2) on a Pi; 20 GB free disk on Windows / Linux for the image + data folder
OSRaspberry Pi OS Lite 64-bit, any modern x86_64 Linux, or Windows 10 1903+ / Windows 11
SoftwareDocker (Engine on Linux, Docker Desktop on Windows)
CameraRTSP camera, or โ€” on a Pi โ€” a wired Camera Module over CSI
NetworkWired Ethernet recommended; Wi-Fi works but is the most common source of "weird intermittent issues"
Everything else is bundled The AI models, the video engine (FFmpeg), and the streaming libraries all ship inside the app / Docker image. You do not install FFmpeg, VLC, or any AI tools separately.

How a detection happens

Both editions run the same pipeline. When monitoring is active:

  1. Motion is detected โ€” either by the camera's own hardware (via ONVIF, recommended for Tapo) or by the app comparing low-resolution frames.
  2. A high-resolution snapshot is captured immediately, and a short video clip starts recording (using a rolling pre-buffer so the clip includes the seconds before the trigger).
  3. Best-frame extraction picks the sharpest frame from the clip โ€” important when the bird arrives a moment after the motion trigger.
  4. An object detector finds the bird, crops to it, and silently drops non-bird motion like squirrels or branches.
  5. The classifier runs the local AI model on the cropped bird and returns the most likely species plus a confidence percentage.
  6. Enrichment looks up the current outdoor temperature and the regional rarity of the species (when your location is set).
  7. If confidence is above the threshold, the snapshot is saved with an on-image overlay, the clip is labeled, the detection is added to history, and any enabled notifications fire. Below-threshold detections are discarded by default (or kept in a "for review" folder if you opt in).

That whole pipeline runs in a couple of seconds per detection. The rest of this manual is about getting the camera connected, tuning the thresholds, and reading the results.