Skip to content

About

ScoreSight is a powerful scoreboard OCR software for live broadcasts

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

150 stars

Watchers

8 watching

Forks

Latest commit

 

History

568 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScoreSight

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.

CI Release build Latest release Downloads Docs License: MIT

Download · Documentation · Quickstart · Ask a question · Report a bug

Watch: ScoreSight in 3 minutes (2:20)

Why ScoreSight

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.

Features

  • 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}} or Q{{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 --profile and --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 and outputs

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

Install

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.

Quickstart

  1. 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.
  2. Straighten the picture (optional): rotate, crop, or click 4-corner and the four corners of the scoreboard.
  3. 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.
  4. 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.
  5. 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.

Video tutorials

A short series on the current version, from the first source to your graphics:

Video 1: ScoreSight in 3 minutes (2:20) Video 2: Install ScoreSight and connect your camera, NDI, RTSP stream or screen (4:06) Video 3: Straighten the scoreboard picture: rotate, crop, 4-corner, stabilize (3:08) Video 4: Place boxes over every score and clock (3:06) Video 5: Rock-solid readings: models, formats and filters (3:46) Video 6: Game day: Live layout, Pause outputs and Hold value (3:06) Video 7: Template fields: combine scores and clock in one line (3:05) Video 8: Outputs: the built-in HTTP server, JSON and text files (3:23) Video 9: Free scoreboard browser overlays for OBS, vMix and more (3:07) Video 10: Live scoreboard scores in OBS Studio (2:44) Video 12: overlays.uno and Singular.live scoreboards, updated live (3:29) Video 13: Scoreboard data for CasparCG, Chyron, Vizrt and TriCaster (3:15) Video 14: Two cameras, backups and troubleshooting (3:58) Video 16: What's new: Auto crop and Auto layout with AI (2:04)

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.

Documentation

The full documentation is at royshil.github.io/scoresight:

What's new: see the CHANGELOG.

Build from source

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.py

Windows 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.

Contributing

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.

License

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.

About

ScoreSight is a powerful scoreboard OCR software for live broadcasts

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

150 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages