# 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.
