c333c2289e
- #2: harden subprocess argv against option injection - #4: read/write config files as UTF-8 on Windows Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Changelog
All notable changes to /watch are documented here.
[0.1.3] — 2026-05-09
Fixed
- Windows:
video.info.jsonis read as UTF-8 (#4). PreviouslyPath.read_text()defaulted to cp1252 on Windows and crashed on yt-dlp's UTF-8 output, silently dropping Title/Uploader from the report. Same fix applied to.envreads/writes inwhisper.pyandsetup.py. download.pynow logs info.json parse failures to stderr instead of swallowing them.
Security
- Hardened subprocess argv against option injection (#2): inserted
--before the URL in the yt-dlp argv, and tightenedis_urlto reject--prefixed sources and require a non-empty netloc. Resolved video/audio paths to absolute viaPath.resolve()before passing toffmpeg/ffprobe, so a relative path starting with-can't be misinterpreted as a flag.
[0.1.2] — 2026-04-24
Fixed
- Windows console crash: removed the emoji from the long-video warning in
watch.py; cp1252 consoles couldn't encode it. setup.pynow printswinget/pipinstall commands on Windows instead of "unsupported platform" — matches what the README already promised.
Changed
SKILL.mdnotes that on Windows the scripts must be invoked withpython, notpython3(the latter is the Microsoft Store stub on Windows).
[0.1.1] — 2026-04-24
Fixed
- Added
commands/watch.mdshim so/watchis callable when installed as a Claude Code plugin. Without it, the plugin loaded but the skill wasn't exposed as a slash command. scripts/build-skill.shnow stripscommands/from the claude.ai.skillbundle alongsidehooks/and.claude-plugin/.
[0.1.0] — 2026-04-24
Initial marketplace release.
Added
/watch <url-or-path> [question]slash command.- yt-dlp download with native caption extraction (manual + auto-subs).
- ffmpeg frame extraction with auto-scaled fps (≤2 fps, ≤100 frames, duration-aware budget).
--start/--endfocused mode with denser frame budget and transcript range filtering.- Whisper fallback (Groq preferred, OpenAI secondary) for videos without captions.
setup.pypreflight: silent--check, structured--json, and installer that auto-runsbrew installon macOS.- Session-start hook that prints a one-line status on first run / partial config.
.skillbundle packaging for claude.ai upload viascripts/build-skill.sh.