Files
youtube_personal/ETAPE17_15_WEB_EMBEDDED_GROWING_CACHE.md
T

2.1 KiB

Étape 17.15 - Cache progressif yt-dlp web_embedded

Diagnostic confirmé

Le test manuel complet a réussi :

format 299
361.06 MiB
100 %
24 secondes

Le format audio 251 avait déjà réussi intégralement :

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.

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 :

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 :

cd "D:\07-Logiciels\23-youtube_personal"
flutter clean
flutter run -d windows

Tester 1080p + son.

Logs attendus :

[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é :

Sleeping 6.00 seconds as required by the site...

Une fois le 1080p + son validé, tester le 2160p.