Light theme default + yt-dlp search fallback
This commit is contained in:
@@ -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`.
|
||||
Reference in New Issue
Block a user