About
Scanner is a radio scanner that listens to public safety trunked radio and publishes what it hears: live audio by talkgroup, a searchable archive of recordings, and automatic transcripts of each call.
Everything on this site was received over the air with ordinary receivers. Nothing here comes from the agencies themselves, and they neither run nor endorse this site.
How to use it
- Listen live picks a system, a group or a single talkgroup and plays each new call as it finishes. Leave auto-play on and it keeps going.
- Archive searches the transcripts. Quote a phrase to match it exactly; filter by group, talkgroup and time.
- Each call page has the recording, the transcript with timestamps, and which radios keyed up.
Transcripts are produced by speech recognition software without human review. They are often wrong about names, numbers and addresses. Listen to the recording before relying on anything you read here.
Contact
Questions, corrections and removal requests go to the site operator.
Open-source software this site is built on
Scanner runs on scanner-hub, free software released under the GNU General Public License, version 3 (GPL-3.0). It would not exist without these projects, each used under its own licence.
| OP25 (boatbod fork) GPL-3.0 | P25 Phase I and II decoding, trunking and demodulation. scanner-hub runs as plugins inside OP25's multi_rx. |
| GNU Radio GPL-3.0 | The signal processing framework OP25 is built on. |
| gr-osmosdr GPL-3.0 | Connects SDR hardware to GNU Radio. |
| librtlsdr (Osmocom) GPL-2.0 | The RTL-SDR driver. |
| rtl-sdr-blog driver GPL-2.0 | RTL-SDR driver fork with RTL-SDR Blog V4 support, installed by the setup script. |
| trunk-recorder GPL-3.0 | scanner-hub writes call metadata in trunk-recorder's JSON format and copies its upload conventions, so tools built for it work here too. |
| Whisper MIT | The speech recognition models behind the transcripts. |
| faster-whisper MIT | Whisper inference on CPU, through CTranslate2 (MIT). |
| whisper.cpp MIT | Alternative Whisper backend. |
| FFmpeg LGPL-2.1 / GPL-2.0 | Encodes recordings to AAC for upload and playback. |
| FastAPI MIT | The web framework for the admin on the radio box. |
| Cloudflare Workers, D1 and R2 Service | This site runs as a Worker; calls are indexed and searched in D1 (SQLite) and audio is stored in R2. |
| Requests Apache-2.0 | HTTP uploads and alert delivery. |
| NumPy BSD-3-Clause | Frequency offset measurement and calibration. |
| SQLite Public domain | Every database, including full-text search of transcripts (FTS5). |
| Python PSF-2.0 | The language the radio side is written in. |