76 lines
1.8 KiB
Markdown
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.
|