205af96c19
Path.read_text()/write_text() default to the platform encoding (cp1252 on Windows), which mangles or crashes on UTF-8 files. yt-dlp's video.info.json is UTF-8 and routinely contains non-ASCII bytes, so on Windows the parse raised UnicodeDecodeError, was swallowed by a bare except, and the /watch report came back missing Title/Uploader. - download.py: read video.info.json as UTF-8; log parse failures to stderr instead of swallowing them silently. - whisper.py, setup.py: same UTF-8 fix on .env reads and writes for symmetry across platforms. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>