2.2 KiB
2.2 KiB
Étape 17.10 - Relais HTTP local chunké pour Windows
Ce que le test yt-dlp vient de prouver
Le test direct yt-dlp -f 299 --test réussit réellement :
[info] ... Downloading 1 format(s): 299
[download] Destination: ...
[download] 100% of 10.00KiB
Donc :
- le client
mwebfonctionne ; - le PO Token est généré ;
- le serveur
googlevideo.comaccepte le flux ; - l'IP et les headers sont valides ;
- le problème restant est le transport direct libmpv -> googlevideo.
yt-dlp fournit aussi downloader_options.http_chunk_size pour YouTube
(typiquement 10 MiB). La documentation yt-dlp signale que YouTube peut
throttler les requêtes HTTP dont les chunks dépassent 10 MiB.
Nouvelle architecture Windows
yt-dlp
|
| URL vidéo/audio + PO Token + headers + http_chunk_size
v
Relais HTTP local Dart (127.0.0.1 uniquement)
|
| requêtes Range vers googlevideo <= 10 MiB
v
Googlevideo
libmpv/media_kit
|
+----> http://127.0.0.1:<port>/video
+----> http://127.0.0.1:<port>/audio
libmpv ne contacte donc plus directement Google.
Le relais :
- écoute uniquement sur
127.0.0.1; - transmet les headers exacts yt-dlp ;
- force
Accept-Encoding: identity; - respecte les requêtes
Rangede mpv ; - découpe l'upstream en blocs au maximum égaux au chunk yt-dlp ;
- permet le seek ;
- relaie séparément vidéo et audio.
Android n'est pas modifié.
Installation
Extraire ce ZIP à la racine du projet.
Aucune nouvelle dépendance. Aucun nouveau script PowerShell.
cd "D:\07-Logiciels\23-youtube_personal"
flutter clean
flutter run -d windows
Tester 1080p d'abord.
Logs attendus
[HD-WINDOWS][17.10] yt-dlp -> relais local -> libmpv
[HD-WINDOWS][17.9] extraction mweb + PO Token provider local
[HD-WINDOWS][17.10] transport yt-dlp: ... chunk=10485760o ...
[HD-RELAY][17.10] actif sur 127.0.0.1:...
[HD-RELAY] /video GET bytes=...
Succès :
[HD-WINDOWS] vidéo relayée confirmée: 1920x1080
[HD-WINDOWS] lecture confirmée: 1920x1080 (relais local)
Si le relais reçoit un refus upstream, le log affichera directement :
[HD-RELAY] /video échec: googlevideo HTTP 403 ...