1. About This Service
The EvoSports Automated Streaming System is a business-to-business (B2B) service that provides automated YouTube live streaming for billiards venues. We currently serve approximately 40–50 pool hall venues across the United States.
Pool hall owners authorize our system once via Google OAuth. After authorization, the system operates fully automatically — creating live broadcasts, managing streams, and updating video metadata without manual intervention.
There is no public-facing user interface. Viewers watch live streams directly on YouTube through each venue's own channel.
2. Google / YouTube Data Accessed
Our system accesses the following YouTube data through the YouTube Data API and YouTube Live Streaming API:
Data we access:
- Broadcast metadata (title, description, categoryId, tags) — read before updates to preserve existing content, then written with chapter timestamps during tournaments.
- RTMP stream details (ingestion address and stream key) — retrieved so that the venue's streaming encoder can push video to YouTube.
- List of upcoming broadcasts — queried to identify and clean up stale broadcasts created by our system.
Data we do NOT access:
- YouTube user profile information
- Subscriber lists or counts
- Channel analytics or reporting data
- Video comments
- Viewer data or watch history
- Channel identity beyond what is required for broadcast creation
3. How We Use YouTube Data
We use YouTube API data exclusively for the following purposes:
- Create live broadcasts for billiards matches on venue YouTube channels (
liveBroadcasts.insert) - Create and retrieve RTMP stream credentials so the venue's streaming encoder can ingest video (
liveStreams.insert,liveStreams.list) - Bind streams to broadcasts to connect video input to the live broadcast (
liveBroadcasts.bind) - Append chapter timestamps to tournament broadcast descriptions so viewers can navigate between matches (
videos.listto read current description,videos.updateto append chapter lines) - Transition broadcasts to complete when matches end (
liveBroadcasts.transition) - Clean up stale broadcasts — only those containing "| EvoSports" in the title are eligible for deletion (
liveBroadcasts.list,liveBroadcasts.delete) - Add public broadcasts to venue playlists when configured (
playlistItems.insert)
4. Data Sharing
Discord webhook: When a new public broadcast starts, a Firebase Cloud Function sends the public YouTube watch URL and match description text to a Discord webhook. This is the only third-party data disclosure.
What is NOT shared with any third party:
- OAuth tokens or refresh tokens
- RTMP stream keys or ingestion URLs
- Google account credentials or personal data
- Any YouTube API data beyond the public watch URL and match description
We do not sell, license, or share YouTube data with advertisers or data brokers.
5. Data Storage and Security
| Data | Storage Location | Access Control |
|---|---|---|
| OAuth tokens (access + refresh) | Google Cloud Firestore | Restricted to GCP service account |
| Stream keys | Firestore subcollection (tables/{tableId}) | Restricted to GCP service account |
| Service account credentials | GCP Secret Manager (production) | IAM-restricted |
| OAuth client ID and secret | Environment variables on GCP Compute Engine | Instance-level access only |
| In-memory token cache | Application memory (5-minute TTL) | Process-level isolation |
Transport security:
- All YouTube API calls are made over HTTPS
- All Firestore communication uses TLS
- The
youtube.force-sslscope enforces HTTPS for stream operations
6. Data Retention and Deletion
- OAuth tokens persist in Firestore until the venue account is removed or the venue revokes access.
- Broadcast IDs (
currentBroadcastId) are cleared from Firestore when a stream ends. - Stream keys are cached in Firestore for reuse across streams and can be deleted on request.
- In-memory token cache entries expire automatically after 5 minutes.
To request deletion of your data, contact support@evosports.live. Deletion requests are fulfilled within 30 days.
You can also revoke our access to your YouTube account at any time through your Google Account permissions page: myaccount.google.com/permissions.
7. Changes to This Policy
We may update this policy from time to time. When we make material changes, we will notify affected venue operators via email. The "Last updated" date at the top of this document reflects the most recent revision.
Contact: support@evosports.live