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

90 lines
3.1 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: 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.