Clip3
Your kids grow up fast, and you want to be there for every game.
Core trick
Tracks players with YOLO, ranks them on seven motion and pose signals, and auto-crops to a 9:16 camera that follows the top scorer.
Description
Your kids grow up fast, and you want to be there for every game. But recording youth sports today means holding a phone the entire time, trying to spot your kid, and later digging through hours of footage.
Try out deployed app!
https://scorevision-ai-834154229436.us-west1.run.app/
Clip3 lets parents stay present. One camera records the full game while the app automatically detects scoring moments and turns them into highlights. Those highlights are then filtered down to just your kid using jersey color and jersey number.
No filming. No scrubbing. Just the moments that matter.
Watch the game. We’ll save the highlights.
README excerpt
# Highlight Generator
Auto-generate basketball highlight reels with AI narration.
## What It Does
1. **Upload** a basketball video
2. **YOLO tracking** identifies all players and scores them using 7 signals (motion, acceleration, jumps, size, centrality, persistence, pose dynamism)
3. **Auto-crops** to 9:16 vertical format following the highest-scoring player with a smooth broadcast-style camera
4. **Add Narration** (optional) — uses Gemini to describe the video, GPT to write a sports commentary script, and OpenAI TTS to generate audio, then muxes it onto the video
## Tech Stack
- **Backend**: FastAPI, YOLO11n (ultralytics), OpenCV, supervision, google-genai, openai
- **Frontend**: Next.js 15, React 19, TailwindCSS
## Project Structure
```
highlightGenerator/
├── backend/
│ ├── main.py # FastAPI app entry point
│ ├── config.py # Pydantic settings (loads .env)
│ ├── models.py # Request/response models
│ ├── routers/
│ │ ├── upload.py # POST /api/upload
│ │ ├── analyze.py # POST /api/analyze/{videoId}
│ │ ├── clips.py # GET/POST /api/clips/{videoId}
│ │ └── narration.py # POST /api/narrate/{videoId}
│ ├── services/
│ │ ├── auto_highlight.py # YOLO tracking + scoring + rendering
│ │ ├── storage.py # Local file storage management
│ │ └── narration.py # Gemini + OpenAI TTS pipeline
│ ├── data/ # Video/clip storage (giti