Files
MatchLiveTv/docs/APP_YOUTUBE_LIVE.md
Emiliano Frascaro 566104aff4 Billing upgrade/downgrade, inviti in app e diretta YouTube da mobile.
Upgrade Stripe con addebito immediato; downgrade programmato a fine periodo.
UX billing più sobria con box info; icone piani. API inviti e OAuth YouTube
per staff trasmissione; deep link join; scelta partita programmata o nuova.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 22:15:27 +02:00

2.3 KiB
Raw Blame History

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.

Prerequisiti (società)

  • Piano Premium Full attivo
  • YOUTUBE_CLIENT_ID / YOUTUBE_CLIENT_SECRET configurati sul server
  • Partita programmata per la squadra

1. Invito

  1. Il titolare società → Responsabili trasmissione → invita tua@email.it
  2. Linvitato apre il link (web o Apri invito nellapp)
  3. Registrazione / login con la stessa email dellinvito
  4. Lapp accetta linvito automaticamente dopo il login

API: GET /api/v1/invitations/:token, POST /api/v1/invitations/:token/accept

2. Collega canale YouTube (tuo)

  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»

Il token OAuth è salvato sulla squadra; chi collega deve essere can_stream (responsabile trasmissione o titolare).

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

  1. Nel wizard, seleziona YouTube Live (dopo il collegamento canale)
  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

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/TOKEN oppure 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 Full + collegamento canale
«Collega canale» Tocca YouTube Live per OAuth da app
OAuth «app non verificata» Utente di test Google + Avanzate
Live non su YouTube Verifica relay ffmpeg / stream_key in sessione