Files
youtube_personal/ETAPE17_21_STRICT_4K_AVAILABILITY.md

87 lines
2.2 KiB
Markdown

# Étape 17.21 - Qualités 1440p / 4K strictes sous Windows
Le log explique exactement pourquoi le bouton 4K restait en 1080p.
Lors du clic 4K :
```text
[HD] changement qualité -> 2160p (4K)
[HD-WINDOWS][17.14] extraction web_embedded cible=2160
[HD-WINDOWS][17.14] paire embedded: 1920x1080 ... video=303/vp9
```
Puis la lecture était confirmée en :
```text
1920x1080
```
Même chose pour 1440p : l'extracteur renvoyait encore 1920x1080.
Cela signifie que, pour cette vidéo/session web_embedded, la liste yt-dlp
utilisée par l'application ne contient pas 1440p/2160p. L'ancien code
acceptait silencieusement la meilleure qualité inférieure, donc 1080p.
## Correction 17.21
Sur Windows, pour 1440p et 2160p :
1. l'application vérifie d'abord les formats web_embedded sans interrompre
la vidéo en cours ;
2. si la résolution demandée existe, le passage de qualité continue ;
3. si elle n'existe pas, le Player actuel reste intact ;
4. une notification explique la résolution maximale disponible ;
5. la qualité absente est ensuite désactivée dans le menu pour cette vidéo.
Exemple :
```text
2160p (4K) n'est pas disponible pour cette vidéo.
Cette vidéo est disponible ici jusqu'à 1080p.
```
Et dans le menu :
```text
1440p • indisponible
2160p (4K) • indisponible
```
## Important
Ce correctif ne bloque PAS la vraie 4K.
Si web_embedded expose réellement 2160p pour une vidéo, `_selectVideo`
sélectionne toujours la résolution la plus haute <= cible. Le chemin
progressif 17.19 continuera alors avec le flux 2160p réel.
Le service journalise maintenant aussi la liste réelle :
```text
[HD-WINDOWS][17.21] cible 2160p absente pour web_embedded;
disponibles=[360, 480, 720, 1080]
```
## Test
Extraire le ZIP à la racine puis :
```powershell
cd "D:\07-Logiciels\23-youtube_personal"
flutter run -d windows
```
Pas besoin de `flutter clean`.
Tester d'abord la même vidéo. Le clic 4K ne doit plus faire :
1080p -> 360p -> 1080p.
Ensuite tester une vidéo dont la source est réellement disponible en 4K.
Si yt-dlp expose 2160p, les logs doivent montrer :
```text
paire embedded: 3840x2160 ...
flux progressif: 3840x2160 ...
HD progressive confirmée: 3840x2160 ...
```