Check ffprobe output before encoding — empty/N/A duration means the
file is corrupt or truncated; skip with a clear message rather than
passing a bad input to ffmpeg.
https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
Scans all *-temp.mp4 files under a backup root regardless of directory
structure, infers camera name from path, uses season_info.py for correct
movement sizing, writes finals to MOVIES_DIR. Handles messy nested paths
(south/south/, movies/south/, etc.) and deduplicates via EXISTS check.
https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ