Files
MatchLiveTv/docs/YOUTUBE_SETUP.md
Emiliano Frascaro 1f273f849d Aggiunge modulo Replay, Garage dev e YouTube a livello società.
Pipeline registrazione/upload con storage S3, archivio web e app, proxy replay
per il browser, OAuth YouTube sulla pagina club (Premium Full) e footer legale.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 07:53:11 +02:00

3.1 KiB
Raw Blame History

Integrazione YouTube Live

Match Live TV supporta due modalità YouTube, legate al piano società:

Piano Modalità Dove va la diretta
Premium Light matchlivetv_light Canale YouTube Match Live TV (gestito da te)
Premium Full team Canale YouTube della società (OAuth del club)

Flusso tecnico: telefono → RTMP MediaMTX → (relay ffmpeg) → YouTube Live.


1. Google Cloud Console

  1. Google Cloud Console → nuovo progetto o progetto esistente.
  2. API e servizi → Libreria → abilita YouTube Data API v3.
  3. API e servizi → CredenzialiCrea credenziali → ID client OAuth:
    • Tipo: Applicazione web
    • URI di reindirizzamento autorizzati:
      • https://www.matchlivetv.it/api/v1/youtube/callback
      • http://localhost:3000/api/v1/youtube/callback (solo sviluppo)
  4. Copia Client ID e Client Secret in infra/.env:
YOUTUBE_CLIENT_ID=....apps.googleusercontent.com
YOUTUBE_CLIENT_SECRET=GOCSPX-...
YOUTUBE_REDIRECT_URI=https://www.matchlivetv.it/api/v1/youtube/callback
  1. Schermata di consenso OAuth: stato di pubblicazione o utenti di test con gli account Google che collegheranno i canali.

2. Canale Match Live TV (Premium Light)

Serve un refresh token del canale YouTube ufficiale Match Live TV.

  1. Una tantum: apri (da browser loggato sul canale Match Live TV):

    https://www.matchlivetv.it/admin/youtube/platform

    (solo admin tecnico) oppure usa lo script OAuth di Google con gli stessi scope dellapp.

  2. Salva in produzione (/opt/matchlivetv/infra/.env):

YOUTUBE_PLATFORM_REFRESH_TOKEN=1//0e...
  1. Riavvia Rails. Le società Premium Light potranno scegliere «YouTube» in app senza collegare un canale proprio.

Se manca, lapp userà solo Match Live TV (HLS) e mostrerà YouTube disabilitato per Light.


3. Canale società (Premium Full)

  1. Titolare società → login su matchlivetv.it
  2. Società → squadra → Dettagli → sezione YouTube
  3. Collega canale YouTube → consenso Google → ritorno al sito
  4. Da app mobile: wizard trasmissione → piattaforma YouTube Live

Revoca: pulsante Scollega canale nella stessa sezione.


4. Variabili opzionali (sviluppo)

# Se OAuth non configurato: broadcast finto + relay disattivato
YOUTUBE_MOCK_STREAM_KEY=mock-stream-key

5. Verifica

  • Premium Full: collegamento OAuth dalla pagina società (/clubs/:id); credenziali uniche per club. Dopo collegamento, GET /api/v1/teams/:idyoutube_connected: true, youtube_selectable: true
  • Premium Light: con YOUTUBE_PLATFORM_REFRESH_TOKENyoutube_selectable: true anche senza OAuth squadra
  • Avvia diretta YouTube da app → in admin session compare broadcast ID → link YouTube Studio

6. Produzione

  • YOUTUBE_REDIRECT_URI deve essere esattamente quello registrato in Google (HTTPS, dominio pubblico).
  • Il relay ffmpeg gira nel container MediaMTX (runOnReady).
  • Apri RTMP 1935 sul router verso il server.