# Étape 17.8 - Forcer le client YouTube TV dans yt-dlp Le log 17.7 a donné une information décisive : l'URL HD sélectionnée contenait : ```text c=ANDROID_VR ``` Les headers sont désormais bien appliqués à libmpv, mais l'URL issue de ce client échoue encore à l'ouverture. ## Changement 17.8 yt-dlp est maintenant lancé avec : ```text --extractor-args youtube:player_client=tv ``` L'objectif est d'éviter complètement le client `ANDROID_VR`. Tous les correctifs 17.7 sont conservés : - extraction locale yt-dlp ; - Deno ; - URLs vidéo/audio séparées ; - `Media.httpHeaders` pour la vidéo ; - `user-agent` global mpv ; - `http-header-fields` global mpv ; - réapplication des headers avant `AudioTrack.uri`. ## Diagnostic supplémentaire Le code lit maintenant le paramètre `c=` de l'URL sélectionnée sans afficher l'URL signée complète. Log attendu : ```text [HD-WINDOWS][17.8] client yt-dlp forcé: tv [HD-WINDOWS] flux sélectionné: 1920x1080 ... client=TV ``` La valeur exacte peut être `TV` ou une variante utilisée par YouTube, mais elle ne doit plus être `ANDROID_VR`. ## Installation Extraire ce ZIP à la racine du projet puis : ```powershell cd "D:\07-Logiciels\23-youtube_personal" flutter clean flutter run -d windows ``` Pas besoin de relancer `PREPARER_HD_WINDOWS.ps1`. Pas besoin de `flutter pub get`. Tester d'abord 1080p. Succès attendu : ```text [HD-WINDOWS][17.8] client yt-dlp forcé: tv [HD-WINDOWS] flux sélectionné: 1920x1080 ... client=TV [HD-WINDOWS] vidéo seule confirmée: 1920x1080 [HD-WINDOWS] lecture confirmée: 1920x1080 ``` Si le client indiqué reste `ANDROID_VR`, le paramètre `extractor-args` n'a pas été pris en compte. Si le client est `TV` mais l'ouverture échoue encore, le prochain log permettra de séparer clairement un blocage serveur d'un problème libmpv.