HarnessTube Broadcast Run Manual
Overview
This manual describes the operational workflow used to prepare and run HarnessTube race graphics during a broadcast.
Step 1 – Import Race Cards
1. Open the USTA race card in your browser.
2. Press CTRL + U to open page source.
3. Press CTRL + A then CTRL + C to copy the HTML.
4. Open the USTA Import Tool from the Control Center.
5. Paste the HTML into the importer.
6. Click Import Races.
7. Review the race preview.
8. Click Send Race Card to Google Sheet.
Step 2 – Verify Program
After the printed program becomes available, verify the imported race card.
- Check race conditions
- Verify horse names
- Verify drivers and trainers
- Verify purse values
Correct any discrepancies directly in the Google Sheet.
Step 3 – Publish Track Tab
Each track tab must be published once to generate a CSV feed for the broadcast dashboard.
Google Sheets → File → Share → Publish to Web
Select Track Tab
Format: CSV
Note: This only needs to be done once per track tab.
Step 4 – Map Track (One-Time Setup)
Each new track must be mapped once so the dashboard can load the sheet data.
1. Open the track tab in Google Sheets.
2. Copy the gid from the URL.
3. Open /data/external/import_sheet.php.
4. Add a new entry to the sheet map:
"Track Name" => "GID",
5. Save the file.
Important: This step is only required once per track. The location dropdown in the dashboard updates automatically.
Step 5 – Broadcast Operation
During the broadcast the operator uses the Overlay Dashboard.
- Select track location
- Select race date
- Select race number
- Verify imported race data before broadcast
- Publish Racebug overlay
- Publish Program overlay
- Use Lower Third row-click workflow for horse graphics
- Publish Trackside graphics as needed
- Publish fractional times during race
- Toggle OFFICIAL status when race becomes official
- System automatically saves permanent race results JSON when OFFICIAL is enabled
- Use Advance Race button to prepare dashboard for next race
Emergency Fallback
If a track mapping fails, rename the Google Sheet tab to TEST and load the TEST location in the dashboard.
Infrastructure & Deployment Notes
- Main Website
Public-facing pages such as Results and Stats are hosted on the main HarnessTube website.
- Overlay Data Subdomain
Overlay JSON files, APIs, and live overlay assets are hosted on overlays.harnesstube.com.
- CORS Requirement
Public website pages that fetch overlay JSON data require CORS headers to allow cross-subdomain access.
- Results JSON Storage
Official race results are permanently stored as individual JSON files inside /data/results/.
- Results Page Dependency
Results and Stats pages depend on list_results.php to scan and load all available race result JSON files.
- UTF-8 Encoding
Documentation pages should include <meta charset="utf-8"> to prevent encoding/display issues.
- Single Source of Truth
Saved race result JSON files are the authoritative source for statistics and historical race data.