mirror of
https://github.com/alexta69/metube.git
synced 2026-09-21 13:35:01 +00:00
327e1eb4b8
yt-dlp documents 'filename' as always present in a progress hook, so the update_status branch that stats it ran on every forwarded tick: throttled to one every 0.5s per download, times MAX_CONCURRENT_DOWNLOADS. Those are blocking syscalls on the event loop, and when the filesystem is slow each one freezes every other request the server is serving -- which is what a bare GET timing out at >10s looks like from outside. The call was also useless while it was expensive. Until the download finishes the bytes live in tmpfilename; 'filename' is the destination, which does not exist yet, so os.path.exists() returned False and size stayed None. It only yields a real value on a terminal status, and the Downloading table has no size column, so nothing displayed it before completion either way. Stat only when the status is 'finished'. That covers both moments a file genuinely exists at that path: yt-dlp's own finished status, and the MoveFiles postprocessor reporting the final merged name. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>