{"id":20507292,"url":"https://github.com/tphakala/birdnet-go","last_synced_at":"2026-01-12T06:05:29.268Z","repository":{"id":202628045,"uuid":"707764474","full_name":"tphakala/birdnet-go","owner":"tphakala","description":"Realtime BirdNET soundscape analyzer","archived":false,"fork":false,"pushed_at":"2025-05-11T13:39:14.000Z","size":140889,"stargazers_count":322,"open_issues_count":52,"forks_count":31,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-05-11T14:25:48.716Z","etag":null,"topics":["alpinejs","artificial-intelligence","audio","bioacoustics","birdnet","birdnet-pi","birds","birdweather","contributions-welcome","first-issue","go","golang","help-wanted","htmx","linux","raspberry-pi","raspberrypi","tailwindcss","tensorflow","wildlife"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tphakala.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support.sh","governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"tphakala"}},"created_at":"2023-10-20T15:51:19.000Z","updated_at":"2025-05-10T14:33:38.000Z","dependencies_parsed_at":"2024-11-30T05:06:24.790Z","dependency_job_id":"5c74d4be-a4e9-43f6-a751-7560be4a4a18","html_url":"https://github.com/tphakala/birdnet-go","commit_stats":{"total_commits":190,"total_committers":1,"mean_commits":190.0,"dds":0.0,"last_synced_commit":"98ee32ddc55f88a8d91c75fb61f0b5bc6072ac1e"},"previous_names":["tphakala/go-birdnet","tphakala/birdnet-go"],"tags_count":69,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tphakala%2Fbirdnet-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tphakala%2Fbirdnet-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tphakala%2Fbirdnet-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tphakala%2Fbirdnet-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tphakala","download_url":"https://codeload.github.com/tphakala/birdnet-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518383,"owners_count":22084374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpinejs","artificial-intelligence","audio","bioacoustics","birdnet","birdnet-pi","birds","birdweather","contributions-welcome","first-issue","go","golang","help-wanted","htmx","linux","raspberry-pi","raspberrypi","tailwindcss","tensorflow","wildlife"],"created_at":"2024-11-15T20:13:11.068Z","updated_at":"2026-01-12T06:05:29.263Z","avatar_url":"https://github.com/tphakala.png","language":"Go","funding_links":["https://github.com/sponsors/tphakala"],"categories":["Table of Contents","Biosphere"],"sub_categories":["Software","Bioacoustics and Acoustic Data Analysis"],"readme":"# BirdNET-Go\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/BirdNET-Go-logo.webp\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003c!-- Project Status --\u003e\n  \u003ca href=\"https://github.com/tphakala/birdnet-go/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/tphakala/birdnet-go?include_prereleases\u0026style=flat-square\u0026color=blue\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\n    \u003cimg src=\"https://badgen.net/badge/License/CC-BY-NC-SA%204.0/green\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://badgen.net/badge/OS/Linux%2C%20Windows%2C%20macOS/blue\"\u003e\n\n  \u003cbr\u003e\n\n  \u003c!-- Code Quality --\u003e\n  \u003ca href=\"https://golang.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Built%20with-Go-teal?style=flat-square\u0026logo=go\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/tphakala/birdnet-go\"\u003e\n    \u003cimg src=\"https://goreportcard.com/badge/github.com/tphakala/birdnet-go?style=flat-square\"\u003e\n  \u003c/a\u003e\n\n  \u003cbr\u003e\n\n  \u003c!-- Community --\u003e\n  \u003ca href=\"https://github.com/tphakala/birdnet-go/network/members\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/tphakala/birdnet-go?style=flat-square\u0026color=purple\"\u003e\n  \u003ca href=\"https://github.com/tphakala/birdnet-go/graphs/contributors\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/tphakala/birdnet-go?style=flat-square\u0026color=orange\"\u003e\n  \u003c/a\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/tphakala/birdnet-go/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/tphakala/birdnet-go?style=flat-square\u0026color=red\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/gcSCFGUtsd\"\u003e\n    \u003cimg src=\"https://img.shields.io/discord/1298738918239100939?style=flat-square\u0026logo=discord\u0026color=5865F2\u0026label=Discord\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://coderabbit.ai\"\u003e\n    \u003cimg src=\"https://img.shields.io/coderabbit/prs/github/tphakala/birdnet-go?utm_source=oss\u0026utm_medium=github\u0026utm_campaign=tphakala%2Fbirdnet-go\u0026labelColor=171717\u0026color=FF570A\u0026link=https%3A%2F%2Fcoderabbit.ai\u0026label=CodeRabbit+Reviews\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nBirdNET-Go is an AI solution for continuous avian monitoring and identification\n\n- 24/7 realtime bird song analysis of soundcard capture, analysis output to log file, SQLite or MySQL\n- Utilizes BirdNET AI model trained with more than 6500 bird species\n- Local processing, Internet connectivity not required\n- Easy to use Web user interface for data visualisation\n- Supports over 40 languages for species names\n- Advanced features like [Deep Detection](doc/wiki/guide.md#deep-detection) for improved accuracy and [Live Audio Streaming](doc/wiki/guide.md#live-audio-streaming).\n- BirdWeather.com API integration\n- Realtime log file output can be used as overlay in OBS for bird feeder streams etc.\n- Minimal runtime dependencies, BirdNET Tensorflow Lite model is embedded in compiled binary\n- Provides endpoint for Prometheus data scraping\n- Runs on Windows, Linux and macOS\n- Low resource usage, works on Raspberry Pi 3 and equivalent 64-bit single board computers\n\n## Installation\n\nQuick install script for Debian, Ubuntu and Raspberry Pi OS based systems:\n\n```bash\ncurl -fsSL https://github.com/tphakala/birdnet-go/raw/main/install.sh -o install.sh\nbash ./install.sh\n```\n\n## Development Setup\n\nFor developers who want to contribute or build from source:\n\n\u003e See [CONTRIBUTING.md](CONTRIBUTING.md#step-1-install-task-runner) for more details.\n\n```bash\n# Clone the repository\ngit clone https://github.com/tphakala/birdnet-go.git\ncd birdnet-go\n\n# Install Task (if not already installed)\n# Linux: sh -c \"$(curl --location https://taskfile.dev/install.sh)\" -- -d -b /usr/local/bin\n# macOS: brew install go-task (assumes Homebrew is installed)\n\n# Setup development environment (Linux apt-based or macOS with homebrew)\ntask setup-dev\n\n# Build the project\ntask\n\n# Start development server with hot reload\ntask dev_server # or \"air realtime\"\n```\n\nThe `setup-dev` task will automatically install:\n\n- Go 1.25\n- Node.js LTS\n- Build tools (gcc, git, wget, etc.)\n- golangci-lint (Go linter)\n- air (hot reload for Go)\n- Frontend dependencies and Playwright browsers\n\n## Web Dashboard\n\n\u003cimg src=\"doc/BirdNET-Go-dashboard.webp\" /\u003e\n\nFor detailed installation instructions, see the [installation documentation](doc/wiki/installation.md). For securing your BirdNET-Go installation, see the [security documentation](doc/wiki/security.md). See [recommended hardware](doc/wiki/hardware.md) for optimal performance.\n\nThere is more detailed usage documentation at [Wiki](doc/wiki/guide.md)\n\n## Community\n\nJoin our [Discord server](https://discord.gg/gcSCFGUtsd) for support, discussions, and updates about BirdNET-Go!\n\n## Related Projects\n\n### Core \u0026 Extensions\n\n- [BirdNET-Analyzer](https://github.com/birdnet-team/BirdNET-Analyzer) - Upstream project providing the BirdNET AI model for bird sound identification\n- [BirdNET-Go Classifiers](https://github.com/tphakala/birdnet-go-classifiers) - Enhanced BirdNET classifiers including additional species\n\n### System Integration\n\n- [Cockpit BirdNET-Go](https://github.com/tphakala/cockpit-birdnet-go) - Web-based system management plugin for BirdNET-Go using Cockpit framework\n\n### Migration Tools\n\n- [BirdNET-Pi2Go](https://github.com/tphakala/birdnet-pi2go) - Database conversion tool for migrating from BirdNET-Pi to BirdNET-Go\n\n### Hardware Solutions\n\n- [BirdNET-Go ESP32 RTSP Microphone](https://github.com/Sukecz/birdnetgo-esp32-rtsp-mic) - ESP32-based RTSP streaming microphone for remote audio capture\n- [ESP32 Audio Streamer](https://github.com/jpmurray/esp32-audio-streamer) - Alternative ESP32 RTSP streaming solution for BirdNET-Go audio input\n\n## Contributing\n\n**Want to contribute?** We welcome contributions from the community! 🎉\n\nFor comprehensive contributing guidelines, development setup, and workflow documentation, see [**CONTRIBUTING.md**](CONTRIBUTING.md).\n\n### Quick Start for Contributors\n\n**Experienced developers** can get started in 5 minutes:\n\n```bash\ngit clone https://github.com/tphakala/birdnet-go.git \u0026\u0026 cd birdnet-go\ntask setup-dev  # One command installs everything (Go, Node.js, tools, git hooks)\nair realtime    # Start developing with hot reload\n```\n\n**New to the project?** The [contributing guide](CONTRIBUTING.md) includes:\n\n- 📋 [TL;DR Quick Start](CONTRIBUTING.md#tldr---quick-start-for-experienced-developers) - 5-minute setup\n- 🔧 [Automated Environment Setup](CONTRIBUTING.md#development-environment-setup) - `task setup-dev` handles everything\n- 📖 [Development Workflow](CONTRIBUTING.md#development-workflow) - Hot reload, git hooks, testing\n- ⚖️ [License \u0026 Privacy](CONTRIBUTING.md#license-and-legal) - CC BY-NC-SA 4.0, privacy-by-design\n- 💬 [Discord Community](https://discord.gg/gcSCFGUtsd) - Get help and discuss features\n\nAll contributions must follow:\n\n- ✅ Privacy-by-design principles\n- ✅ Code quality standards (automated via git hooks)\n- ✅ CC BY-NC-SA 4.0 license terms\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for complete details.\n\n## Data Sources\n\n### Taxonomy Data\n\nBirdNET-Go includes embedded taxonomy data derived from the eBird/Clements Checklist:\n\n- **Source**: [eBird API v2](https://api.ebird.org/v2/ref/taxonomy/ebird)\n- **Copyright**: © Cornell Lab of Ornithology\n- **License**: Used under eBird API Terms of Use for non-commercial purposes\n- **Attribution**: Taxonomy data powered by [eBird.org](https://ebird.org)\n- **Purpose**: Provides fast local genus/family lookups without requiring API calls\n- **Coverage**: 2,374 genera, 254 families, 11,145 species\n\nFor more information about eBird's taxonomy, visit [eBird Taxonomy](https://ebird.org/science/use-ebird-data/the-ebird-taxonomy).\n\n## License\n\nCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International\n\n## Authors\n\nTomi P. Hakala\n\nContributions by Hampus Carlsson, Jan Vrska, @twt--, @aster1sk, @hoover67\n\nPlease let me know if you are missing from contributors list!\n\nBirdNET AI model by the K. Lisa Yang Center for Conservation Bioacoustics at the Cornell Lab of Ornithology in collaboration with Chemnitz University of Technology. Stefan Kahl, Connor Wood, Maximilian Eibl, Holger Klinck.\n\nBirdNET label translations by Patrick Levin for BirdNET-Pi project by Patrick McGuire.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftphakala%2Fbirdnet-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftphakala%2Fbirdnet-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftphakala%2Fbirdnet-go/lists"}