Files
youtube_personal/ETAPE18_7_1_FIX_RATE_LIMIT_OVERFLOW.md
T

3.0 KiB

É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 :

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 :

AVANT
liste chaîne
→ videos.get(video1)
→ videos.get(video2)
→ videos.get(video3)
→ ...
→ IP rate-limitée

devient :

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 :

[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 :

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 :

--flat-playlist --dump-json
/channel/<id>/videos

Il tente de récupérer en un seul passage :

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 :

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 :

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.