Files
MatchLiveTv/docs/YOUTUBE_SETUP.md
Emiliano Frascaro 994c1e3c09 Integrazione YouTube Live: OAuth squadra, canale piattaforma Light e UI.
Collegamento da Dettagli squadra e admin per il refresh token Match Live TV; API e app mobile allineate ai piani Light/Full.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 19:36:56 +02:00

90 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 dellapp.
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, 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)
```bash
# Se OAuth non configurato: broadcast finto + relay disattivato
YOUTUBE_MOCK_STREAM_KEY=mock-stream-key
```
---
## 5. Verifica
- Premium Full: 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.