CourtScribe
A computer-vision and speech-recognition experiment that tries to turn a single-camera game recording into an NBA-style box score for every player.
- Question
- Can player-level statistics be extracted from an amateur basketball game video without anyone keeping score by hand?
- Status
- Prototype
- Started
- June 2026
- Tools
- YOLOv8
- ByteTrack
- EasyOCR
- faster-whisper
- Google Colab
- Claude
The problem
In amateur and youth basketball, statistics are often not kept at all, or kept by hand and incompletely. My goal was simple to state: feed in a game video and get back a per-player table of points, shooting, rebounds, assists, steals, blocks, turnovers and fouls.
How I built it
- YOLOv8 to detect players and the ball,
- ByteTrack to follow each player from frame to frame,
- EasyOCR to read jersey numbers,
- faster-whisper to transcribe the commentator and pick up events such as rebounds, assists and fouls.
I built it on Google Colab, with each version focused on solving one specific problem. It is currently on version 14.
What worked
- A two-pass architecture that separates player tracking from ball detection became the stable foundation.
- Moving to a larger speech model made transcripts of Turkish basketball commentary noticeably cleaner.
- Building the correction dictionary from errors in real transcripts, rather than from assumptions, paid off. Here, knowing basketball mattered more than knowing code.