Files
youtube_personal/ETAPE17_11_AUDIO_RANGE_FIX.md
T

1.8 KiB

Étape 17.11 - Son + stabilité du relais Range Windows

Diagnostic du log 17.10

La vidéo fonctionne réellement en 1920x1080 :

1920 1080
[HD-WINDOWS] vidéo relayée confirmée: 1920x1080

Le son manque parce que la toute première requête audio reçoit :

googlevideo HTTP 403 pour bytes=0-10485759

La vidéo finit elle aussi par recevoir un 403 exactement sur des requêtes de 10 MiB.

Cause importante

Notre relais 17.10 envoyait systématiquement des chunks de :

10485760 octets = 10 MiB

Le downloader HTTP officiel de yt-dlp ne fait pas cela. Lorsqu'un http_chunk_size est configuré, il randomise chaque nouvelle requête entre 95 % et 100 % de la taille cible.

La FAQ yt-dlp avertit également que YouTube peut throttler/refuser des requêtes dont la taille dépasse 10 MB.

Correctif 17.11

Le relais :

  • plafonne maintenant les requêtes à 9 900 000 octets ;
  • randomise chaque Range entre 95 % et 100 % ;
  • force une nouvelle connexion logique par Range ;
  • en cas de 403/429, retente jusqu'à 4 fois en divisant progressivement le chunk ;
  • flush le downstream après chaque Range pour éviter le gros buffering lors d'un seek ;
  • journalise séparément le client et la présence du pot= pour vidéo/audio.

Test

Extraire le ZIP à la racine puis :

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

Tester uniquement le 1080p avec le son.

Logs importants :

[HD-WINDOWS][17.11] GVS: videoClient=MWEB videoPOT=true audioClient=MWEB audioPOT=true
[HD-RELAY][17.11] upstream OK ...

Puis :

[HD-WINDOWS] vidéo relayée confirmée: 1920x1080
[HD-WINDOWS] lecture confirmée: 1920x1080

Si un 403 survient encore, la 17.11 affichera désormais les retries et la taille exacte du chunk qui a été refusé.