Files
youtube_personal/ETAPE17_8_FORCE_TV_CLIENT.md

76 lines
1.8 KiB
Markdown

# É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.