Real-time scoreboard OCR for live production. Free, open source, cross-platform.
Point a camera, capture card, NDI feed, RTSP stream, screen or video file at any scoreboard.
ScoreSight reads the scores, clocks and periods many times per second and sends them to OBS, vMix, overlays.uno, browsers, files and your own apps.
Download · Documentation · Quickstart · Ask a question · Report a bug
Our goal is simple: to be the best scoreboard-reading software on the planet, and to keep it free and open for everyone who produces live sports, from community leagues to stadium broadcasts.
- Free and open source: MIT licensed. No watermark, no paid tier, no account.
- Runs on your machine: Windows, macOS (Apple Silicon and Intel) and Linux. No cloud, no internet required.
- Real time: up to 15 readings per second for every box, with outputs that never stall the app.
- Built for scoreboards: OCR models trained on LED, LCD and 7-segment scoreboard digits, plus per-box image processing and validation rules that keep wrong numbers off air.
- Plugs into your production: OBS, vMix, overlays.uno, browser overlays, text files and any HTTP endpoint, all at the same time.
- Any source: USB cameras and capture cards, NDI®, RTSP/HTTP streams, screen or window capture, and video files (with x1–x32 fast-forward for tuning on recordings).
- Picture correction: 4-corner perspective correction, crop, 90° rotation and stabilization against camera bumps and drift.
- Unlimited boxes: seven standard fields (scores, time, period, fouls, shot clock) plus any number of custom fields.
- Per-box tuning: field type (number/time/text), format presets and custom regular expressions, confidence threshold, global/local/adaptive binarization, cleanup, dilate, skew, vertical scale, auto-crop, rescale, invert, output averaging, leading-zero removal, ordinals (1st, 2nd...) and more.
- Dot counter: count indicator lights such as balls/strikes/outs, possession arrows or bonus lights.
- Template fields: combine fields and text, for example
{{Home Score}} - {{Away Score}}orQ{{Period}}. - Game & sports: choose the sport (basketball, soccer, futsal, ice hockey, American football, volleyball) and ScoreSight follows the game: each score, the start and end of each period, the clock, the final buzzer and the points of each period, with misreads filtered out, at
/game. - OCR models: PaddleOCR's PP-OCRv6 recognition models (automatic, accurate and fast: about 95% of real scoreboard values read right), four bundled Tesseract models (General Scoreboard, General Scoreboard Large, Daktronics, General Fonts) or your own
.traineddata. - Training tools: collect OCR samples from your own scoreboard and annotate them in the built-in Training Dojo.
- Multiple instances: run several ScoreSight windows side by side with
--profileand--port, for example one per camera. - 13 languages: English, French, Spanish, German, Italian, Japanese, Korean, Dutch, Polish, Portuguese (Brazil and Portugal), Russian and Chinese (Simplified), with System/Light/Dark appearance.
| Sources | Windows | macOS | Linux |
|---|---|---|---|
| USB camera / capture card | ✔ | ✔ | ✔ |
| NDI® | ✔ | ✔ | ✔ |
| URL: RTSP / HTTP stream | ✔ | ✔ | ✔ |
| Screen / window capture | ✔ | ✔ | ✘ |
Video file (.mp4, .avi, .mov) |
✔ | ✔ | ✔ |
| Outputs | How | Guide |
|---|---|---|
| Text files | <Box Name>.txt, results.csv, results.xml (atomic writes) |
Text files |
| Built-in HTTP server | HTML, JSON, XML and CSV on port 18099 | HTTP API |
| OBS Studio | OBS WebSocket v5, updates text sources | OBS |
| vMix | vMix Web API (port 8088), SetText on title fields |
vMix |
| overlays.uno | UNO control app API, including Essentials | UNO |
| Browser overlays | Transparent scorebug, lower third and clock pages, pushed live | Browser overlays |
| Your own endpoint | HTTP POST/PUT/GET with JSON, XML or CSV | Outbound API |
| TCP / UDP | Text lines from a template, with presets for CasparCG, Chyron PRIME, Vizrt and more, or JSON messages to your own WebSocket server | TCP / UDP |
| Wirecast, XSplit, TriCaster, CasparCG, Chyron, XPression, Vizrt, CharacterWorks, NewBlue... | through the outputs above: 33 products, with a guide for each | Works With… |
| Streamlabs, Home Assistant, Node-RED, spreadsheets... | via text files or the HTTP server | Other software |
Download the latest version for your system from the Releases page (<version> is the release number, for example 0.2.0):
| System | File |
|---|---|
| Windows 10 (1809 or newer) / 11, 64-bit | scoresight-<version>-windows-x64-setup.exe (installer) or scoresight-<version>-windows-x64-portable.zip |
| macOS 15 or newer, Apple Silicon (M1 and later) | scoresight-<version>-macos-arm64.dmg |
| macOS 15 or newer, Intel | scoresight-<version>-macos-x64.dmg |
| Linux x86_64 with glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+) | scoresight-<version>-linux-x64.tar.gz (extract and run scoresight/scoresight) |
Every release includes SHA256SUMS.txt so you can verify your download. Download ScoreSight only from GitHub: the project's former website domain (scoresight[.]live) is no longer controlled by the project. The installation guide covers SmartScreen, the portable version, macOS permissions and Linux details.
- Open a source: pick your camera, NDI feed, URL, screen or video file in the Source drop-down, or with the buttons of the first-run card in the viewer.
- Straighten the picture (optional): rotate, crop, or click 4-corner and the four corners of the scoreboard.
- Add boxes: select Home Score in the field list, click Place on picture, and drag the box over the digits. Repeat for the other values, or click + for custom fields.
- Check the readings: each box's label shows ✓ for a new value, = for an unchanged one, ! when a filter rejected it and ∅ when nothing was read. Use Binary View, the box Type and a Format preset to make readings solid.
- Send them out: open http://localhost:18099/json?pivot in a browser, or turn on Text files, OBS, vMix, UNO or HTTP API in the Outputs list, which shows whether each output works.
The full walkthrough is in the Quickstart guide.
A short series on the current version, from the first source to your graphics:
Older videos, about earlier versions of ScoreSight: ScoreSight with vMix (vMix now uses port 8088; see the vMix guide), ScoreSight with NewBlue Captivate and collecting OCR training data.
The full documentation is at royshil.github.io/scoresight:
- Getting started: Installation, Quickstart
- Guides: Video Sources, Viewer & Image Tools, Boxes & Templates, Recognition Tuning, Performance Tuning, Multiple Instances & Profiles, OCR Training Data, Game & Sports
- Outputs: overview, Text files, HTTP API, OBS, vMix, UNO, Outbound API, TCP / UDP, Browser overlays
- Works With…: 33 broadcast, streaming and graphics products, with a setup guide for each
- Reference: Per-Box Settings, Settings, Files & Command Line, Keyboard & Mouse
- Help: Troubleshooting, FAQ
- Development: Developer Guide
- Data: Scoreboard Fields on Hugging Face, 291 photos of real scoreboards with every field boxed and named (home and away score, clock, period, other) and each board's corners marked
What's new: see the CHANGELOG.
ScoreSight is a Python 3.13 app built with PySide6 (Qt 6), OpenCV, onnxruntime (PP-OCR) and Tesseract. In short:
git clone https://github.com/royshil/scoresight.git
cd scoresight
uv venv --python 3.13 && source .venv/bin/activate # Windows: .venv\Scripts\activate
uv pip install -r requirements-dev.txt -r requirements-mac.txt # or -r requirements-win.txt on Windows; nothing extra on Linux
python scripts/compile_ui.py
python scripts/fetch_models.py # the PP-OCR models (not in git)
python src/main.pyWindows needs one extra step, building the camera enumerator: uv pip install -r requirements-build.txt and then python src/win32DeviceEnum/setup.py build_ext --inplace. The Developer Guide covers platform details, tests, packaging with PyInstaller and the release process.
Contributions are very welcome: bug reports, documentation, translations, scoreboard samples and code. Read CONTRIBUTING.md to get started, and follow our Code of Conduct.
- Questions, ideas and your setups: Discussions. We'd love to hear what you broadcast with ScoreSight.
- Bugs: GitHub Issues (please attach your logs)
- Security issues: see SECURITY.md
If ScoreSight helps your productions, you can support its development through GitHub Sponsors or Patreon.
ScoreSight is released under the MIT License.
It builds on great open-source projects, each under its own license, including Qt for Python (PySide6) (LGPLv3), OpenCV (Apache 2.0), PaddleOCR's PP-OCRv6 models (Apache 2.0) and ONNX Runtime (MIT), Tesseract OCR and tesserocr, cyndilib, FastAPI and obsws-python.
NDI® is a registered trademark of Vizrt NDI AB. vMix, OBS Studio, overlays.uno, NewBlue and other product names are trademarks of their respective owners. ScoreSight is not affiliated with or endorsed by them.













