Files
youtube_personal/ETAPE17_7_FIX_MPV_GLOBAL_HEADERS.md

1.9 KiB

Étape 17.7 - Correction exacte des headers mpv Windows

L'autre analyse a mis le doigt sur un point important, et la vérification du code/documentation mpv/media_kit confirme deux choses :

  1. Media(..., httpHeaders: ...) couvre bien le média principal.
  2. AudioTrack.uri(...) ne prend pas de httpHeaders.

Il faut donc aussi appliquer les headers globalement à l'instance libmpv avant open(), pour que la piste audio externe les hérite.

Bug dans notre étape 17.6

Notre code utilisait :

options/user-agent
options/http-header-fields

pour NativePlayer.setProperty.

C'était le mauvais niveau de propriété pour cette API runtime.

La 17.7 utilise maintenant directement :

user-agent
http-header-fields

Autre correction

La 17.6 n'envoyait globalement que quelques headers.

La 17.7 transmet maintenant TOUS les headers renvoyés par yt-dlp, sauf User-Agent qui utilise la propriété mpv dédiée.

Les virgules à l'intérieur des valeurs sont échappées avant de construire la string-list http-header-fields.

Lecture

L'ordre reste :

  1. yt-dlp extrait vidéo + audio + headers
  2. headers globaux mpv
  3. Media(videoUrl, httpHeaders: headers)
  4. démarrage et validation de la vidéo HD
  5. réapplication des headers globaux
  6. AudioTrack.uri(audioUrl)
  7. confirmation finale de la résolution

Test

Extraire à la racine puis :

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.

Logs attendus :

[HD-WINDOWS][17.7] extraction directe + headers globaux mpv ...
[HD-WINDOWS][17.7] headers globaux mpv appliqués: UA=true, champs=...
[HD-WINDOWS][17.7] propriétés mpv posées AVANT open()
[HD-WINDOWS] vidéo seule confirmée: 1920x1080
[HD-WINDOWS] lecture confirmée: 1920x1080