# Étape 18.7.1 - Fix blocage / rate-limit / overflow Le log a révélé deux problèmes différents. ## 1. Rate limit YouTube Erreur : ```text RequestLimitExceededException Failed to perform an HTTP request to YouTube because of rate limiting. ``` La cause venait de la 18.7 : pour une chaîne de 30 vidéos, elle lançait `videos.get()` sur chaque vidéo, par lots. Cela crée une rafale de requêtes vers les pages watch YouTube. Correction : ```text AVANT liste chaîne → videos.get(video1) → videos.get(video2) → videos.get(video3) → ... → IP rate-limitée ``` devient : ```text MAINTENANT 1 requête catalogue de chaîne + 1 processus yt-dlp flat-playlist Windows → métadonnées groupées ``` Le chemin par vidéo a été supprimé. Log attendu : ```text [CHANNEL-VIDEOS][18.7.1] ... mode=NO_PER_VIDEO_WATCH_REQUESTS [CHANNEL-CATALOG][18.7.1] bulk start ... [CHANNEL-CATALOG][18.7.1] bulk ready ... videos=... ``` ## 2. Le lecteur faisait aussi une requête de trop À l'ouverture d'une vidéo, la page avait déjà un `VideoItem` issu du Radar, de la recherche ou de la chaîne, mais faisait quand même un nouveau `videos.get(videoId)` uniquement pour récupérer description/statistiques. Cette requête supplémentaire est supprimée. La page utilise maintenant immédiatement `widget.video`. ## 3. Tri En fallback public, changer : ```text Plus récentes Plus vues Plus anciennes ``` relance maintenant l'ordre natif de la chaîne. Donc même si certaines métadonnées de vue sont absentes, le tri n'est plus un simple tri local de valeurs nulles/0. `Plus aimées` reste un tri local quand des likes sont réellement disponibles. ## 4. Métadonnées groupées Windows Un nouveau service utilise le yt-dlp déjà fourni : ```text --flat-playlist --dump-json /channel//videos ``` Il tente de récupérer en un seul passage : ```text durée vues likes si exposés commentaires si exposés date description si exposée ``` Puis fusionne ces données avec les cartes déjà visibles. Si yt-dlp ne fournit pas une valeur, la page ne montre plus un faux `0 vues`. ## 5. Overflow accueil Erreur : ```text A RenderFlex overflowed by 5.1 pixels on the bottom ``` La barre de défilement horizontale prenait quelques pixels sur la hauteur des cartes ordinaires. La hauteur du rail a été augmentée pour laisser la place. ## Important Le rate-limit est imposé côté YouTube. Ce correctif arrête d'en créer de nouveaux, mais un blocage déjà actif peut mettre un peu de temps à disparaître côté YouTube. Le chemin HD yt-dlp n'a pas été modifié. ## Test Extraire le ZIP puis : ```powershell cd "D:\07-Logiciels\23-youtube_personal" flutter run -d windows ``` Pas besoin de `flutter clean`. Ensuite : 1. ouvrir `Chaînes` ; 2. ouvrir Gamerawi ; 3. vérifier les logs `18.7.1` ; 4. changer `Plus récentes` → `Plus vues` → `Plus anciennes` ; 5. ouvrir ensuite une vidéo et vérifier que le log ne produit plus une rafale de `RequestLimitExceededException`.