Files
youtube_personal/ETAPE15_FIX_QUOTA_LOOP.md
T

30 lines
1.2 KiB
Markdown

# Étape 15 — correctif boucle OAuth / quota YouTube
Le nouveau log montre la vraie cause :
`reason=quotaExceeded`
La boucle venait de l'interaction entre deux morceaux du code :
1. `_loadSubscriptions()` appelait `getAccessToken()`.
2. Sur Android, `getAccessToken()` réécrivait systématiquement `session.value`.
3. Le listener `_onSessionChanged()` voyait cette écriture.
4. Il rappelait immédiatement `_loadSubscriptions()`.
5. La boucle recommençait et envoyait des centaines de requêtes à
YouTube Data API jusqu'à épuiser le quota du projet.
Correctif :
- `getAccessToken()` ne notifie plus `session.value` si le token est inchangé ;
- `_onSessionChanged()` ne relance jamais les abonnements si une requête
est déjà en cours ;
- `_loadSubscriptions()` possède maintenant un verrou anti-réentrance ;
- une connexion initiale continue de charger automatiquement les abonnements.
Important :
le quota actuellement épuisé est un quota du projet YouTube Data API,
pas un bannissement du compte Google/YouTube.
Après remplacement des fichiers, redémarre l'application. Le flot de
centaines de lignes `[YT-ACCOUNT][API-ERROR]` doit disparaître.