mrkeyoor.com_
Wed 02 Sept 18:07 UTC
Self-Hostedevaluationupdated 02 Sept 2026

birdnet-go review

BirdNET-Go is a self-hosted wildlife listening station that turns microphone or network audio into bird, bat, and other animal detections in a web dashboard. Its default classifier runs locally around the clock, while saved clips, alerts, and optional integrations help users follow what was heard.

trackingstars / 7d
Verdict

Our BirdNET-Go build took 8 seconds, but 51 of 185 tests failed after a 467-second run, so we would not deploy commit 4e6b486 without reproducing the suite on the target hardware. It remains a good fit for a technically managed, noncommercial wildlife station that needs local classification and a useful dashboard. Commercial users should stop for a license review, and privacy-sensitive sites should resolve the open speech-filter problem before retaining clips.

We ran it

Lab card: what happened when we ran birdnet-goScreenshot of birdnet-go (github.com/tphakala/birdnet-go)
Install✓ · 56s356 packages
Build✓ · 8s
Tests✗ · 467s134 passed · 51 failed of 185 (go test)
Repo2891 files~741,830 lines of source · 252.3 MB · 28 CI workflows · Dockerfile

Answers from our run

Does birdnet-go build from source?

Dependencies installed in 56 seconds (356 packages), and the build succeeded in 8 seconds. We cloned commit 4e6b486 into a clean Debian container with 3 CPUs and no project-specific setup.

Do birdnet-go's tests pass?

Not all of them: 134 of 185 passed and 51 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use birdnet-go?

Commercial product teams that need an OSI-approved license today: the repository currently uses CC BY-NC-SA 4.0, and the AGPL-3.0 relicensing consent thread is still open.

What are the alternatives to birdnet-go?

BirdNET-Analyzer, BirdNET-Pi. Our BirdNET-Go build took 8 seconds, but 51 of 185 tests failed after a 467-second run, so we would not deploy commit 4e6b486 without reproducing the suite on the target hardware.

Setup3/556-second install, but hardware setup and 51 failed tests add work
Docs4/5Strong install, hardware, security, and operations guides
Community4/51,834 stars with same-day code and issue activity
Maturity3/5Backups and health tools exist; 51 tests failed in our run

Who it’s for

Birders and field researchers building a fixed, 24/7 listening station on Linux or a Raspberry Pi.
Home users willing to choose a microphone, manage clip storage, and tune confidence thresholds for their location.
Operators feeding several sound cards or RTSP sources into one dashboard with alerts and MQTT.
Privacy-conscious teams that can secure the web interface and test audio-retention rules before deployment.

Who it’s NOT for

Commercial product teams that need an OSI-approved license today: the repository currently uses CC BY-NC-SA 4.0, and the AGPL-3.0 relicensing consent thread is still open.
Sites where saved audio must never contain human speech: open issue 4177 says the privacy filter can miss speech discarded before its top-10 check.
Raspberry Pi 3 or Pi Zero owners: the hardware guide says those boards are no longer supported.
Bat monitors using an ordinary 48 kHz sound card: the hardware guide calls for at least 96 kHz input and recommends 192 kHz.
Users expecting BirdNET v3.0 to be production-ready: release 20260823 labels that classifier a developer preview and keeps v2.4 as the default.

Setup reality

Our sandbox installed 356 packages in 56 seconds and built BirdNET-Go in 8 seconds. Tests then failed after 467 seconds: 134 passed and 51 failed out of 185. The log tail names TestCollectDeploymentInfo_Orchestration in internal/support, but it does not show the failed assertion or explain the other failures.

A basic local station needs an audio device or RTSP stream, location and locale settings, and storage for SQLite data and clips. The embedded default model does not require a hosted AI credential. BirdWeather, alert services, OIDC, and remote streams need their own endpoints or credentials when enabled.

The recommended Linux script uses Docker, systemd, sudo, and a nightly image. Windows and macOS use manual binaries with native libraries and media tools. Bat classifiers also need an ultrasonic-capable microphone and audio interface; ordinary human-audio hardware cannot capture the required frequencies.

The default model covers more than 6,500 bird species locally

BirdNET-Go turns a microphone, sound card, or RTSP stream into a continuous wildlife log. BirdNET v2.4 is embedded as the default classifier and covers more than 6,500 bird species. The web app shows detections, clips, heatmaps, and a live spectrogram. It can also send selected events to MQTT, BirdWeather, webhooks, or messaging services. This is a station application, not merely a command that labels one audio file.

The same installation can assign different models to separate sources or run models together. Google Perch v2 broadens the catalog beyond birds, while regional BattyBirdNET models handle bats with suitable audio hardware. The interface has 15 UI languages and species names in more than 40 languages. SQLite is the default datastore, MySQL is optional, and automatic backup and retention controls address a machine that may write clips all year.

CC BY-NC-SA 4.0 rules out many commercial uses

BirdNET-Go is source available under Creative Commons Attribution-NonCommercial-ShareAlike 4.0. The noncommercial restriction matters to consultants, hosted monitoring vendors, appliance makers, and companies embedding the software in a paid service. Do not assume that public source and a GitHub repository grant the same rights as MIT or Apache-2.0. Model and taxonomy terms can add separate obligations, so a commercial evaluation needs an actual license review.

An open issue created on September 2, 2026 proposes a move to AGPL-3.0 and asks contributors for consent because the project has no contributor license agreement. Several consent boxes were still unchecked when we read it. That thread describes a possible change, not the license in force. BirdNET-Analyzer is the cleaner alternative for MIT-licensed source, although its BirdNET models still carry noncommercial terms.

What happened when we ran it

Our 3-CPU, 8 GB sandbox installed 356 Go packages in 56 seconds. BirdNET-Go then built successfully in 8 seconds. The test step ran for 467 seconds and exited with code 1: 134 tests passed and 51 failed out of 185. The container was unprivileged, had no secrets, and used commit 4e6b486. A fast compile did not translate into a clean repository check.

The supplied log tail identifies TestCollectDeploymentInfo_Orchestration in internal/support as a failure, then shows several other packages completing successfully. It does not include the assertion text, so we cannot say what caused that failure or the other 50. We measured the checkout at 252.3 MB, with 2,891 files and about 741,830 source lines. Our scan found 28 CI workflow files, a Dockerfile, and no top-level tests directory.

The recommended Linux installer pulls a nightly container

The installation guide supports Debian 11 or newer, Ubuntu 20.04 or newer, and 64-bit Raspberry Pi OS Bullseye or newer. Its recommended script checks prerequisites, may install Docker and system packages with sudo, creates persistent config and data directories, and registers a systemd service. It pulls the nightly container by default. That is convenient for fixes, but a 24/7 station deserves a pinned image and a tested rollback.

Manual installation is less tidy. Windows and macOS users download a binary, then manage the TensorFlow Lite C library and process startup themselves. Some media paths require FFmpeg or SoX. The hardware guide sets a Raspberry Pi 4B with 2 GB as the minimum and recommends a Pi 5; it also suggests 64 GB or larger high-endurance storage for constant writes. The software install is only half of this purchase.

Bat monitoring starts at a 96 kHz audio path

Bat calls sit above the range captured by ordinary voice hardware. The hardware guide sets 96 kHz as the minimum input rate, describes 192 kHz as the practical target, and says 256 kHz or higher covers the full range with room to spare. An ultrasonic microphone and matching interface are therefore required. Checking the BattyBirdNET box without that signal chain will not create usable bat audio.

Model choice also needs validation. BirdNET v2.4 remains the default, while the 20260823 release calls v3.0 a developer preview. Open issue 4206 reports wrong Perch v2 results from one recommended regional FP32 build on a Raspberry Pi 5; the reporter says the full ARM64 model worked. That single report does not condemn Perch, but it is enough reason to compare detections before trusting a recommended variant.

Open issue 4177 says speech can survive the privacy filter

Issue 4177 describes a concrete privacy failure: classifiers keep only their top 10 results before the privacy filter sees them. Human speech scored below those results can disappear from the list, so lowering the privacy confidence threshold does not help. A concurrent bird detection and its clip may still be saved. Any station near a garden, window, workplace, or public path should test this behavior with real overlapping speech before enabling retention.

The 20260823 release fixed several other exposure paths. Detection media now requires authentication in Private Mode, CSRF checks no longer trust one browser header alone, and profiling endpoints were removed from the unauthenticated telemetry listener. BirdNET-Go supports passwords, OIDC, TLS, and trusted-network bypasses. Those controls are useful because the dashboard also contains administration features, including a browser terminal. Direct public exposure deserves a narrow access policy.

A September 2 push shows activity, while the failed suite matters

GitHub recorded a push on September 2, 2026, the same day as active issue and relicensing discussion updates. The repository had 1,834 stars and 179 combined issues and pull requests when fetched. Release 20260823 had shipped ten days earlier with model-gallery work, security fixes, and dashboard changes. These dates show active maintenance; the 179 count is not a bug total.

BirdNET-Go has the pieces for a serious backyard or field station: local inference, multiple sources, retention controls, alerts, and a polished browser view. Our 51 failed tests keep it out of unattended deployment until the exact target and configuration pass their own checks. The current license excludes many paid uses, and issue 4177 makes speech-retention testing mandatory anywhere people may be recorded.

Alternatives

ProjectWhat it isPick it when
BirdNET-AnalyzerThe upstream BirdNET toolkit for processing individual files or large recorded datasets.pick this instead when offline scientific analysis, training, or a desktop workflow matters more than a permanent live station.
BirdNET-PiA Raspberry Pi focused real-time BirdNET station built as a multi-service Linux stack.pick this instead when you need documented Pi 3B+ or Zero 2 W support and accept its older, more involved system design.

What people are saying

  1. [github-trending] tphakala/birdnet-go

Sources

  1. BirdNET-Go repository and README
  2. BirdNET-Go 20260823 release
  3. BirdNET-Go installation guide
  4. BirdNET-Go hardware recommendations
  5. Privacy filter speech report
  6. Perch v2 regional model report
  7. AGPL-3.0 relicensing consent thread

More self-hosted reviews

nebula · pansou · arcbox · ConvertX · LiveTalking · TypeWords · the whole board →