- download.py: insert `--` before URL in yt-dlp argv so a `-`-prefixed
string can never be parsed as a flag (e.g. --exec, --config-location).
Tighten is_url to reject `-`-prefixed sources and require non-empty
netloc.
- frames.py, whisper.py: resolve video/audio paths to absolute via
Path.resolve() before passing to ffmpeg/ffprobe (which don't honor
`--` as end-of-options), so a relative path starting with `-` can
never be misinterpreted as a flag.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Give Claude the ability to watch any video — yt-dlp download, ffmpeg
frame extraction with auto-scaled fps, native-caption transcript with
Whisper (Groq/OpenAI) fallback.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>