# Étape 17.15 - Cache progressif yt-dlp web_embedded ## Diagnostic confirmé Le test manuel complet a réussi : ```text format 299 361.06 MiB 100 % 24 secondes ``` Le format audio 251 avait déjà réussi intégralement : ```text 10.88 MiB 100 % ``` Cela prouve que le téléchargement `web_embedded` fonctionne réellement pour les deux pistes avec yt-dlp nightly. En revanche, le log 17.14 montre que libmpv échoue dès qu'on lui donne directement l'URL googlevideo. ## Architecture 17.15 On ne donne donc plus aucune URL googlevideo `web_embedded` à libmpv. ```text yt-dlp nightly web_embedded ↓ fichier vidéo temporaire qui grandit fichier audio temporaire qui grandit ↓ serveur 127.0.0.1 intégré ↓ media_kit / libmpv ``` Les deux téléchargements yt-dlp démarrent en parallèle. Le lecteur n'attend pas forcément le téléchargement complet : le serveur local lit les fichiers pendant qu'ils grandissent. Si mpv demande une zone située plus loin lors d'un seek, le serveur attend simplement que yt-dlp ait téléchargé cette zone. ## Formats Pour la vidéo de validation : ```text 1080p60 : vidéo 299 AVC + audio 251 Opus 1440p60 : vidéo 308 VP9 + audio 251 Opus 2160p60 : vidéo 315 VP9 + audio 251 Opus ``` ## Test Extraire le ZIP à la racine puis : ```powershell cd "D:\07-Logiciels\23-youtube_personal" flutter clean flutter run -d windows ``` Tester 1080p + son. Logs attendus : ```text [HD-WINDOWS][17.15] priorité web_embedded via cache yt-dlp progressif [HD-CACHE][17.15] lancement yt-dlp video format=299 [HD-CACHE][17.15] lancement yt-dlp audio format=251 [HD-CACHE][17.15] actif sur 127.0.0.1:... [HD-WINDOWS][17.15] vidéo cache confirmée: 1920x1080 [HD-WINDOWS][17.15] audio cache attaché: format=251 codec=opus [HD-WINDOWS][17.15] lecture AV cache confirmée: 1920x1080 ``` Le téléchargement peut démarrer avec quelques secondes d'attente imposées par YouTube/yt-dlp, comme dans le test manuel où yt-dlp a affiché : ```text Sleeping 6.00 seconds as required by the site... ``` Une fois le 1080p + son validé, tester le 2160p.