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>
3.1 KiB
3.1 KiB
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
- Google Cloud Console → nuovo progetto o progetto esistente.
- API e servizi → Libreria → abilita YouTube Data API v3.
- API e servizi → Credenziali → Crea credenziali → ID client OAuth:
- Tipo: Applicazione web
- URI di reindirizzamento autorizzati:
https://www.matchlivetv.it/api/v1/youtube/callbackhttp://localhost:3000/api/v1/youtube/callback(solo sviluppo)
- 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
- 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.
-
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.
-
Salva in produzione (
/opt/matchlivetv/infra/.env):
YOUTUBE_PLATFORM_REFRESH_TOKEN=1//0e...
- 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)
- Titolare società → login su matchlivetv.it
- Società → squadra → Dettagli → sezione YouTube
- Collega canale YouTube → consenso Google → ritorno al sito
- 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/:id→youtube_connected: true,youtube_selectable: true - Premium Light: con
YOUTUBE_PLATFORM_REFRESH_TOKEN→youtube_selectable: trueanche senza OAuth squadra - Avvia diretta YouTube da app → in admin session compare broadcast ID → link YouTube Studio
6. Produzione
YOUTUBE_REDIRECT_URIdeve 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.