Production logs showed a job oscillating downloading -> completed -> downloading -> completed -> postprocessing -> completed. Cause: yt-dlp reports status='finished' via progress-hook ticks once per stream when downloading separate video+audio for muxing (video lands, audio is still in flight), and MeTube forwards that through 'updated' Socket.IO events too -- we were mapping any status='finished' to our "completed", regardless of which event carried it. Only the dedicated 'completed' event (and the 'done' bucket of MeTube's /history, for startup reconciliation) is now treated as authoritative for terminal status; a transient 'finished' arriving via 'added'/'updated' (or history's queue/pending) is a no-op for status, matching the progress_percent update it also carries. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| services | ||
| __init__.py | ||
| config.py | ||
| db.py | ||
| main.py | ||