Unifica admin società/squadre e YouTube Full con fallback MLTV.

Premium Full senza canale società usa il canale piattaforma come Light;
in app restano solo Match Live TV e YouTube Live.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 22:38:28 +02:00
parent 82ff1972a0
commit 9b40deeb61
14 changed files with 125 additions and 144 deletions

View File

@@ -1,13 +1,23 @@
# Diretta YouTube dallapp (invito staff)
Percorso per il **responsabile trasmissione** invitato via email: accede in app, collega **il proprio** canale YouTube e avvia la live.
Percorso per il **responsabile trasmissione** invitato via email: accede in app e avvia la live su YouTube.
## Prerequisiti (società)
- Piano **Premium Full** attivo
- Piano **Premium Light** o **Premium Full** attivo
- `YOUTUBE_CLIENT_ID` / `YOUTUBE_CLIENT_SECRET` configurati sul server
- Partita programmata per la squadra
### Canale usato
| Piano | Canale YouTube in diretta |
|-------|--------------------------|
| Premium Light | Sempre **Match Live TV** (nessun OAuth società) |
| Premium Full, canale collegato | Canale **della società** |
| Premium Full, canale non collegato | **Match Live TV** (default, come Light) |
Il collegamento del canale società è **opzionale** su Full: si fa dal sito (dettaglio squadra) o in futuro da app; finché non cè OAuth, lapp trasmette sul canale piattaforma.
## 1. Invito
1. Il titolare società → **Responsabili trasmissione** → invita `tua@email.it`
@@ -17,15 +27,12 @@ Percorso per il **responsabile trasmissione** invitato via email: accede in app,
API: `GET /api/v1/invitations/:token`, `POST /api/v1/invitations/:token/accept`
## 2. Collega canale YouTube (tuo)
## 2. Collega canale YouTube (opzionale, Premium Full)
1. Nellapp: nuova diretta → passo **Piattaforma**
2. Tocca **YouTube Live** → si apre Google OAuth
3. **Avanzate** → continua (se app OAuth in verifica)
4. Scegli laccount del **tuo** canale → Consenti
5. Torna allapp → messaggio «Canale collegato»
Solo se la società vuole il **proprio** canale invece di Match Live TV:
Il token OAuth è salvato sulla **squadra**; chi collega deve essere `can_stream` (responsabile trasmissione o titolare).
1. Sul sito: dettaglio squadra → **Collega il tuo canale YouTube**
2. Oppure (se abilitato) OAuth da app al tocco YouTube quando non cè ancora canale piattaforma
## 3. Scegli la partita
@@ -38,9 +45,9 @@ Poi tocca la card o conferma dal foglio: si apre il wizard (Partita → Trasmiss
## 4. Avvia diretta
1. Nel wizard, seleziona **YouTube Live** (dopo il collegamento canale)
1. Nel wizard, seleziona **YouTube Live** (se il piano lo consente e il canale è pronto)
2. Completa i passi → **Camera**
3. Il telefono invia RTMP a MediaMTX; il server inolvia su YouTube con la stream key della live creata via API
3. Il telefono invia RTMP a MediaMTX; il server inoltra su YouTube
## Sviluppo locale
@@ -53,7 +60,7 @@ Poi tocca la card o conferma dal foglio: si apre il wizard (Partita → Trasmiss
| Problema | Soluzione |
|----------|-----------|
| Nessuna squadra in app | Accetta invito con email corretta |
| YouTube disabilitato | Premium Full + collegamento canale |
| «Collega canale» | Tocca YouTube Live per OAuth da app |
| YouTube disabilitato | Premium Light o Full |
| YouTube non selezionabile | Token canale Match Live TV sul server (`admin` → YouTube piattaforma) |
| OAuth «app non verificata» | Utente di test Google + Avanzate |
| Live non su YouTube | Verifica relay ffmpeg / `stream_key` in sessione |