Version 1.0 — Native macOS app for displaying live YakkerTech baseball sensor data on ProScoreboard video boards.
Yakker Stream connects to YakkerTech sensors via WebSocket, aggregates real-time pitch and hit data, and serves it over HTTP so ProPresenter's ProScoreboard can pull it onto your video board.
- Captures live sensor data — exit velocity, launch angle, pitch velocity, spin rate, hit distance, hang time
- Serves a ProScoreboard data link at
http://localhost:PORT/livedata.xml - Shows a live web dashboard at
http://localhost:PORTfor in-browser monitoring - Filters stale and low-quality readings with configurable timeout and minimum exit velocity
- Optionally imports player rosters from a Sidearm Sports XML feed
- Stores credentials securely in the macOS Keychain
| Requirement | Minimum |
|---|---|
| macOS | 13.0 (Ventura) or later |
| Python | 3.7 or higher |
| pip3 | Required for dependency install |
| Internet | Required for live Yakker data |
Python is pre-installed on most modern Macs. To verify: python3 --version
- Go to the Releases page
- Download the latest
YakkerStreamApp.zip - Unzip and move
YakkerStreamApp.appto your Applications folder
macOS will block the app on first launch since it's not from the App Store.
Recommended — Right-click to open:
- Right-click (or Control-click)
YakkerStreamApp.app - Select Open
- Click Open in the confirmation dialog
- You won't need to do this again
Alternative — System Settings:
- Try to open the app; macOS will block it
- Open System Settings → Privacy & Security
- Find the blocked app message and click Open Anyway
Advanced — Terminal:
xattr -cr /path/to/YakkerStreamApp.app- Launch the app — settings expand automatically on first run
- Click "How to Get Credentials" for step-by-step instructions
- Enter your Yakker Domain (e.g.,
yourdomain.yakkertech.com) - Enter your Authorization Key (e.g.,
Basic YOUR_AUTH_TOKEN) - Settings save automatically
Your authorization key is stored encrypted in the macOS Keychain, not in plain text.
- Click Start Stream — the backend launches and connects to YakkerTech
- Watch the terminal output panel for live connection logs
- The status indicator shows your connection state:
| Indicator | Meaning |
|---|---|
| ● Green | Connected and streaming |
| ● Yellow | Connecting… |
| ● Gray | Stopped |
| ● Red | Error |
- Click Copy URL to copy the ProScoreboard data link to your clipboard
- Click Stop Stream when you're done
Open the gear icon (⚙) to configure. Settings are disabled while the stream is running.
| Setting | Default | Description |
|---|---|---|
| Yakker Domain | — | Your YakkerTech subdomain (e.g., yourteam.yakkertech.com) |
| Authorization Key | — | Base64 auth header from browser dev tools |
| HTTP Port | 8000 | Port for the local data server |
| Stale Timeout | 10s | Seconds before a metric is considered expired and cleared |
| Min Exit Velocity Filter | On / 65 mph | Ignores soft throws (e.g., catcher throwbacks) below the threshold |
Yakker Stream can import your player roster from a Sidearm Sports XML feed to enrich the data display. Configure a URL (fetched every 30 seconds) or a local file path under the Player Info section in settings.
- Open ProPresenter and navigate to your Scoreboard
- Click the Edit (pencil) icon → Settings
- Enable Data Link
- Set the URL to:
http://localhost:8000/livedata.xml(Replace8000with your configured port if you changed it) - Click Turn Data On
Yakker data will now feed your video board in real time.
ProScoreboard expects standard baseball stat fields in its XML. Since we're displaying sensor data rather than game stats, Yakker Stream maps each metric to an available field:
| Yakker Metric | ProScoreboard Field | XML Attribute |
|---|---|---|
| Exit Velocity (mph) | Visitor Hits | <hitting h=""> |
| Launch Angle (°) | Visitor RBI | <hitting rbi=""> |
| Hit Distance (ft) | Visitor Doubles | <hitting double=""> |
| Hang Time (sec) | Visitor Triples | <hitting triple=""> |
| Pitch Velocity (mph) | Visitor Earned Runs | <pitching er=""> |
| Spin Rate (rpm) | Visitor Pitches | <pitching pitches=""> |
Customize your ProScoreboard layout to label and position these fields however you like on the video board.
While the stream is running (default port 8000):
| URL | Description |
|---|---|
http://localhost:8000 |
Live web dashboard with all metrics |
http://localhost:8000/livedata.xml |
ProScoreboard data link (baseball XML format) |
http://localhost:8000/data.xml |
Simple XML feed |
See Step 2 above.
- Python 3 is not installed or not in PATH → Download Python
- pip3 is missing → install via
python3 -m ensurepip - Script permissions issue → run
chmod +xon the app's support scripts
- Verify your internet connection
- Confirm the Yakker domain is reachable in a browser
- Authorization keys can expire — re-extract a fresh key from your browser's Network tab in developer tools
- Confirm the app shows ● Green status
- Open
http://localhost:8000/livedata.xmlin a browser — if data appears there, the issue is in ProScoreboard's Data Link config - Verify Turn Data On is enabled and the URL matches exactly
The app automatically attempts to free the configured port on startup. If it can't:
- Change the HTTP Port in settings to an unused port (e.g.,
8001)
Adjust the Stale Timeout in settings. Lower values clear stale readings faster; higher values keep the last reading displayed longer between pitches.
Enable the Min Exit Velocity Filter in settings and set the threshold (default 65 mph). Readings below the threshold are ignored.
git clone <this repo>
cd yakkerstream-app/YakkerStreamApp
./build.shThe compiled app will be at ./build/Build/Products/Release/YakkerStreamApp.app.
To verify system requirements before building:
./check-system.shFor detailed development documentation, see YakkerStreamApp/README.md.
- YAKKER_METRICS.md — Full reference of all available Yakker data points and the six metrics mapped in Version 1.0
- YakkerStreamApp/UI_OVERVIEW.md — UI component documentation
- YakkerStreamApp/VISUAL_GUIDE.md — Architecture and file structure diagrams
- Six core metrics: Exit Velocity, Launch Angle, Pitch Velocity, Spin Rate, Hit Distance, Hang Time
- Native macOS SwiftUI app (macOS 13.0+)
- Configurable HTTP port, stale timeout, and minimum exit velocity filter
- Optional Sidearm Sports XML player roster integration
- Secure authorization key storage in macOS Keychain
- Live terminal output panel with 200-line scrollback
- Copy-to-clipboard for ProScoreboard data link URL
- Auto-expands settings on first launch when credentials are missing
- Interactive web dashboard at
http://localhost:PORT
Custom software for displaying YakkerTech sensor data on ProScoreboard video boards.