You are viewing archived documentation for v0.10. Go to latest →

Features

Everything BirdNET-NG can do today.

Audio Capture

Deploy microphones anywhere — Raspberry Pi nodes or Android phones — and let them record autonomously.

  • 3-second WAV chunks at 48kHz mono (BirdNET's native window)
  • Three capture modes: ALSA (real hardware), simulated (sine wave), replay (pre-recorded files)
  • Local outbox queue (sql.js SQLite) — never blocks on network, drains with exponential backoff
  • MQTT transport with auto-reconnect, QoS 1, and hub-side acknowledgment
  • On-device audio filtering: adaptive noise floor + spectral peak SNR detection — rejects silence and non-bird audio before uploading
  • Recording profiles: continuous, dawn chorus, night migration, low power — with sunrise/sunset scheduling from GPS coordinates (NOAA algorithm)
  • 30-second heartbeat keepalive (decouples online status from audio sending)

AI Inference

BirdNET deep learning model identifies 6,500+ bird species.

  • Geo-aware filtering: species range narrowing based on GPS + date
  • Confidence-based re-processing: uncertain detections (0.4–0.7) get a second pass with extended window, frequency isolation, and cross-chunk correlation
  • Scalable workers: Python 3.11 + TFLite, scale horizontally with docker compose up --scale worker=N
  • Worker dashboard: connected workers, queue depth, processing stats

Species Intelligence

Rich context around every detection.

  • Species catalog: sortable cards with detection count, confidence, first/last seen, satellite count, accuracy. Sort by name uses primary language; search works across all 38 languages
  • Species profile pages: 90-day trend, hourly activity, seasonal presence, satellite breakdown, confidence distribution
  • Expected species: eBird integration cross-references what you should be seeing vs. what you've detected
  • First-of-season detection: automatic seasonal tracking with green badge on detection cards
  • First-of-day detection: per-species per-satellite daily tracking with blue badge
  • Rarity model: frequency-based rarity scoring with watchlist alerts
  • Species images: bird thumbnails from Wikipedia, downloaded in background, stored permanently in MinIO

Detection & Timeline

Browse, verify, and explore your detections.

  • Detection list: filter by satellite, status, species, confidence — with server-side sorting and pagination. Species search works across all 38 languages
  • SpectrogramPlayer: click-to-seek, drag-to-select loop region, signal boost (1x–20x), speed control (0.25x–2x), volume, download
  • Timeline: chronological recording sessions with inline chunk bars, species filter pills, expand/collapse sessions
  • Community verification: vote Yes/No/Unsure with keyboard shortcuts, consensus threshold, accuracy stats
  • Detection comments: inline expandable thread per detection
  • Shareable links: HMAC-signed public URLs with species image, translated names, stats, and lightbox (no login required)
  • Link previews: Open Graph meta tags for rich previews on Discord, Slack, Telegram, WhatsApp, Twitter, Facebook

Analytics & Visualization

Understand your data at a glance.

  • Dashboard: 7-day detection trend, hourly activity bars, biodiversity snapshot, fleet status
  • Detection map: satellite markers (colored by status), detection clusters, heatmap layer, time range filter — species names in user's language
  • Biodiversity indices: Shannon H', Simpson 1-D, Pielou's evenness — per satellite and global
  • Migration patterns: month-by-species heatmap showing seasonal presence
  • Weather correlation: Open-Meteo temperature + precipitation overlaid on detection activity
  • Location comparison: side-by-side satellite stats, Jaccard similarity, shared/unique species, hourly activity
  • Activity heatmaps: hour-by-day-of-week grids per satellite and globally

Smart Alerts

Get notified about what matters.

  • Three trigger types: detection (species, confidence, time window, rare/first-of-season/first-of-day), absence (no activity for N minutes), trend (diversity or count drop/increase)
  • Six notification channels: Email (SMTP), Slack (Block Kit), Telegram (Bot API), Google Chat (Cards v2), Discord (embeds), Webhook (HMAC-signed)
  • Per-rule cooldown to prevent alert spam
  • Alert messages in tenant's language — species names, labels, and rarity reasons translated based on tenant settings
  • Notification links point to public share pages (no login required for recipients)
  • Species images in notifications via Wikipedia direct URLs
  • Platform health banner: persistent warning when core services are down
  • Scheduled exports: cron-based automatic CSV/JSON/eBird/iNaturalist delivery via any channel

Data Export

Get your data out in standard formats.

  • CSV and JSON export with filters
  • eBird checklist generation
  • iNaturalist observation export
  • xeno-canto recording submission
  • Scheduled automatic exports with cron scheduling

Satellites & Fleet Management

Monitor and configure your entire network.

  • Fleet table: sortable, searchable, filterable with expandable detail rows
  • Telemetry: CPU, storage, battery, uptime, GPS, recording state
  • Per-satellite config overrides: override any tenant setting per device, with admin lock
  • Recording profile push: assign and push profiles via MQTT
  • Remote update: trigger Pi satellite updates from the web UI via MQTT
  • Satellite registration: register from web UI with complete .env generation
  • Schedule preview: resolved sun times and recording windows per satellite

Android App

Turn any phone into a satellite.

  • Native AudioRecord plugin (bypasses WebView audio limitations)
  • GPS gate with auto-update interval (30s–10min)
  • Background mode for continuous recording
  • In-app log viewer, keep-screen-on toggle
  • Hub filter settings received and applied via MQTT
  • Schedule display (read-only, from hub)

Multi-Tenancy & Auth

Multiple teams share infrastructure with full data isolation.

  • Row-level isolation via tenant_id on all data tables
  • Global users with per-tenant membership and roles (viewer < member < admin < owner)
  • Platform admin: cross-tenant access, hidden from tenant member lists
  • JWT cookie sessions (httpOnly, 7-day expiry) + Bearer API key auth
  • Invite system: single-use links with role assignment, 72h expiry
  • Login security: rate limiting (20/IP/15min), account lockout (5 failures), last login tracking

User Management & Settings

Full control for admins and users.

  • Account page: edit profile, change password, delete account
  • User preferences: primary/secondary bird name languages, date/time format, voting mode
  • Platform users: search, block/unblock, reset password, add to tenant, edit, delete
  • Tenant settings: confidence thresholds, audio filter config, heartbeat interval, offline timeout, retention, watchlist, tenant language
  • Platform settings: self-registration toggle, tenant creation toggle, invite links toggle, Wikimedia API config, species image cache management with not-found investigation panel and per-species retry
  • Audit log: 30+ action types covering login, registration, profile changes, satellite management, settings, votes, webhooks, cache operations — with real client IPs
  • System monitoring: platform admin view of all running service instances (API, dispatcher, workers), infrastructure health, data summary, queue stats
  • Tenant ownership transfer

Internationalization (i18n)

The full interface in your language.

  • English and French translations with 500+ keys covering every page
  • Language switcher in sidebar
  • Locale-aware formatting: relative times, date/time, language names via Intl APIs
  • Singular/plural support via Intl.PluralRules (e.g. "1 detection" vs "5 detections")
  • Bird names in 38 languages via BirdNET label files (primary + secondary display)
  • Map popups and heatmap labels localized
  • Start-of-week preference (Monday/Sunday/Saturday) for heatmap grids

Infrastructure

  • Docker Compose: 8-container stack (9 with split mode) behind Traefik reverse proxy
  • Hub split mode: stateless API (scalable) + single-instance dispatcher
  • Four FQDNs: web, MQTT, MinIO console, documentation site
  • MQTT over WSS (port 443, no extra firewall ports)
  • Service registry: Redis-based auto-discovery with System monitoring page
  • 23 database migrations, run automatically on hub startup
  • Versioned documentation site with version switcher