# 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](https://console.cloud.google.com/) → nuovo progetto o progetto esistente. 2. **API e servizi → Libreria** → abilita **YouTube Data API v3**. 3. **API e servizi → Credenziali** → **Crea 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`: ```bash YOUTUBE_CLIENT_ID=....apps.googleusercontent.com YOUTUBE_CLIENT_SECRET=GOCSPX-... YOUTUBE_REDIRECT_URI=https://www.matchlivetv.it/api/v1/youtube/callback ``` 5. **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 dell’app. 2. Salva in produzione (`/opt/matchlivetv/infra/.env`): ```bash YOUTUBE_PLATFORM_REFRESH_TOKEN=1//0e... ``` 3. Riavvia Rails. Le società **Premium Light** potranno scegliere «YouTube» in app senza collegare un canale proprio. Se manca, l’app 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) ```bash # 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/:id` → `youtube_connected: true`, `youtube_selectable: true` - Premium Light: con `YOUTUBE_PLATFORM_REFRESH_TOKEN` → `youtube_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.