Files
youtube_personal/ETAPE17_11_AUDIO_RANGE_FIX.md
T

77 lines
1.8 KiB
Markdown

# Étape 17.11 - Son + stabilité du relais Range Windows
## Diagnostic du log 17.10
La vidéo fonctionne réellement en 1920x1080 :
```text
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 :
```text
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 :
```text
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 :
```powershell
cd "D:\07-Logiciels\23-youtube_personal"
flutter clean
flutter run -d windows
```
Tester uniquement le 1080p avec le son.
Logs importants :
```text
[HD-WINDOWS][17.11] GVS: videoClient=MWEB videoPOT=true audioClient=MWEB audioPOT=true
[HD-RELAY][17.11] upstream OK ...
```
Puis :
```text
[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é.