Light theme default + yt-dlp search fallback

This commit is contained in:
iliasmouhcine
2026-08-22 13:02:32 +01:00
commit 7704cae4a0
282 changed files with 52324 additions and 0 deletions
+139
View File
@@ -0,0 +1,139 @@
# É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/<id>/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`.