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
+107
View File
@@ -0,0 +1,107 @@
# Étape 17.19 - Vrai prébuffer HD progressif Windows
Oui : c'est désormais exactement l'architecture utilisée.
La 17.18 attendait encore les 378 Mo complets du format 299 avant de basculer.
La 17.19 ne fait plus cela.
## Fonctionnement
```text
clic
↓
360p muxé démarre immédiatement
↓
yt-dlp démarre 1080p 299 + audio 251
↓
on surveille la taille réellement téléchargée
↓
dès qu'on a environ le timestamp courant + 20 s de réserve :
BASCULE HD
↓
yt-dlp continue à télécharger le reste pendant la lecture
```
Exemple avec une reprise autour de 60 secondes :
```text
on ne demande plus 378 Mo
on attend seulement assez d'octets pour couvrir environ 0 -> 80 s
+ une marge de sécurité
```
Avec le débit observé lors du test manuel, cela devrait être beaucoup plus
court que le téléchargement intégral.
## Pourquoi pas `--download-sections`
`yt-dlp --download-sections` passe par ffmpeg pour les plages temporelles.
Pour notre lecteur, on veut au contraire conserver le fichier DASH continu
qui grandit pendant la lecture et laisser mpv faire ses Range/seeks.
## Correction du flash au début
La 17.18 faisait :
```text
open HD au début
puis seek vers 94.8 s
```
La 17.19 utilise directement :
```dart
Media(
hdUrl,
start: switchPosition,
)
```
Donc mpv prépare le nouveau média au timestamp courant avant la première frame
HD rendue.
## Audio
On conserve la paire validée :
```text
1080p60 : 299 AVC
audio : 251 Opus
```
L'audio étant petit, la bascule attend qu'il soit entièrement disponible afin
de ne pas perdre le son.
## Cache
Le cache existant est réutilisé :
```text
%LOCALAPPDATA%\YouTubePersonal\media_cache
```
Si 299 + 251 sont déjà complets, la bascule peut être quasi immédiate.
## Test conseillé
Après extraction :
```powershell
cd "D:\07-Logiciels\23-youtube_personal"
flutter run -d windows
```
Pas besoin de `flutter clean`.
Pour voir le comportement progressif réel, tester aussi UNE AUTRE vidéo qui
n'est pas déjà en cache.
Logs attendus :
```text
[HD-WINDOWS][17.19] lecture immédiate 360p ...
[HD-PROGRESSIVE][17.19] session prête video=STREAM audio=DOWNLOAD
[HD-WINDOWS][17.19] buffer suffisant: video=... ≈...s audio=true
[HD-WINDOWS][17.19] bascule vers HD bufferisée à ... ms
[HD-WINDOWS][17.19] HD progressive confirmée: 1920x1080 audio=251/opus
```