Privacy & Data Policy

Last updated: April 2026

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:

  1. Create live broadcasts for billiards matches on venue YouTube channels (liveBroadcasts.insert)
  2. Create and retrieve RTMP stream credentials so the venue's streaming encoder can ingest video (liveStreams.insert, liveStreams.list)
  3. Bind streams to broadcasts to connect video input to the live broadcast (liveBroadcasts.bind)
  4. Append chapter timestamps to tournament broadcast descriptions so viewers can navigate between matches (videos.list to read current description, videos.update to append chapter lines)
  5. Transition broadcasts to complete when matches end (liveBroadcasts.transition)
  6. Clean up stale broadcasts — only those containing "| EvoSports" in the title are eligible for deletion (liveBroadcasts.list, liveBroadcasts.delete)
  7. 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

DataStorage LocationAccess Control
OAuth tokens (access + refresh)Google Cloud FirestoreRestricted to GCP service account
Stream keysFirestore subcollection (tables/{tableId})Restricted to GCP service account
Service account credentialsGCP Secret Manager (production)IAM-restricted
OAuth client ID and secretEnvironment variables on GCP Compute EngineInstance-level access only
In-memory token cacheApplication 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-ssl scope 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