Pipeline YouTube con relay, overlay e publisher sync lato backend; fix GL pauseGlDuringRotation su Android per evitare crash in rotazione durante lo streaming Flutter. Co-authored-by: Cursor <cursoragent@cursor.com>
1.9 KiB
1.9 KiB
YouTube Live — verificato ✅ (5 giu 2026)
Test completato automaticamente
Pipeline end-to-end funzionante sul server di produzione:
| Step | Esito |
|---|---|
| Setup broadcast + stream_key | ✅ |
| Overlay ffmpeg con tee RTMPS YouTube | ✅ |
| Copertina / tabellone su YouTube | ✅ |
| RTMP simulato (test pattern) | ✅ |
Broadcast lifecycle=live |
✅ |
Prova visiva: https://www.youtube.com/watch?v=0WmCsW_Luik
(Titolo: Tigers Volley vs Avversario prova — sessione di test, ora terminata)
APK da installare sul telefono
# Sul PC (già compilato):
mobile/build/app/outputs/flutter-apk/app-release.apk
# Versione: 1.2.10+13 — API https://www.matchlivetv.it
Installa sul Redmi (sostituisce versioni precedenti).
Avvio diretta dall’app (2 minuti)
- Partita → YouTube Live → wizard → Camera
- Attendi sul passo rete che compaia il link YouTube (poll automatico, fino a 3 min)
- Avvia: entro ~90s su YouTube compare copertina, poi video con tabellone quando il telefono pubblica RTMP
Test server senza telefono
ssh eminux@192.168.1.146
docker exec infra-rails-1 bin/rails youtube:e2e
docker exec infra-sidekiq-1 pgrep -a ffmpeg # deve contenere rtmps://...youtube.com/live2
Se qualcosa non va
| Sintomo | Cosa fare |
|---|---|
| «YouTube temporaneamente occupato» | Attendi 15–20 min (rate limit Google). Non creare molte sessioni di fila. |
| Pagina YouTube vuota | docker logs infra-sidekiq-1 | grep OverlayRelay — manca stream_key o tee RTMPS |
| App errore avvio diretta | APK 1.2.10+13; controlla rete verso matchlivetv.it |
Fix deployati (server)
- Retry setup broadcast su rate limit (fino a 15 tentativi)
- Un solo job setup per sessione (lock Redis)
- Throttle API YouTube globale
- Riavvio overlay quando arriva
stream_keydopo start senza tee - Activate solo con overlay attivo + broadcast pronta