Il relay verso YouTube ora gestisce _air senza traccia audio, ritenta activate_broadcast finché l'ingest è active e riduce la finestra scheduledStartTime a ~20s. Co-authored-by: Cursor <cursoragent@cursor.com>
3.1 KiB
3.1 KiB
Diretta YouTube dall’app (invito staff)
Percorso per il responsabile trasmissione invitato via email: accede in app e avvia la live su YouTube.
Prerequisiti (società)
- Piano Premium Light o Premium Full attivo
YOUTUBE_CLIENT_ID/YOUTUBE_CLIENT_SECRETconfigurati 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 (pagina società → sezione YouTube Live) o in futuro da app; finché non c’è OAuth, l’app trasmette sul canale piattaforma.
1. Invito
- Il titolare società → Responsabili trasmissione → invita
tua@email.it - L’invitato apre il link (web o Apri invito nell’app)
- Registrazione / login con la stessa email dell’invito
- L’app accetta l’invito automaticamente dopo il login
API: GET /api/v1/invitations/:token, POST /api/v1/invitations/:token/accept
2. Collega canale YouTube (opzionale, Premium Full)
Solo se la società vuole il proprio canale invece di Match Live TV:
- Sul sito: pagina società (
/clubs/:id) → Collega il canale YouTube della società - Oppure (se abilitato) OAuth da app al tocco YouTube quando non c’è ancora canale piattaforma
3. Scegli la partita
Nella home app (Partite):
- Partita programmata — scegli dal calendario una gara già inserita (sito o app)
- Nuova partita — programma data/ora oppure Avvia subito senza orario
Poi tocca la card o conferma dal foglio: si apre il wizard (Partita → Trasmissione → …).
4. Avvia diretta
- Nel wizard, seleziona YouTube Live (se il piano lo consente e il canale è pronto)
- Completa i passi → Camera
- Il telefono invia RTMP a MediaMTX; il server inoltra su YouTube
Sviluppo locale
- App:
flutter run --dart-define=API_BASE_URL=http://10.0.2.2:3000(emulatore) o IP LAN del PC (telefono) - Invito deep link:
matchlivetv://join/TOKENoppure incolla token aprendo/login?invite=TOKEN - OAuth: utente in Utenti di test Google Cloud
Troubleshooting
| Problema | Soluzione |
|---|---|
| Nessuna squadra in app | Accetta invito con email corretta |
| 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 |
| YouTube «tra X minuti» / COPERTINA | Relay ffmpeg verso YouTube non attivo o ingest inactive. Dopo deploy, riavvia la diretta dall’app; la live dovrebbe partire entro ~30s con segnale su _air. |
| YouTube resta in «waiting» | Verifica su server log/youtube_relay_<session_id>.log nel container sidekiq; attendi che streamStatus diventi active (il job ritenta l’attivazione per ~6 min). |