Files
claude-video/CHANGELOG.md
T
bradautomates c333c2289e Release v0.1.3
- #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>
2026-05-09 08:41:59 +10:00

2.3 KiB

Changelog

All notable changes to /watch are documented here.

[0.1.3] — 2026-05-09

Fixed

  • Windows: video.info.json is read as UTF-8 (#4). Previously Path.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 .env reads/writes in whisper.py and setup.py.
  • download.py now 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 tightened is_url to reject --prefixed sources and require a non-empty netloc. Resolved video/audio paths to absolute via Path.resolve() before passing to ffmpeg/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.py now prints winget / pip install commands on Windows instead of "unsupported platform" — matches what the README already promised.

Changed

  • SKILL.md notes that on Windows the scripts must be invoked with python, not python3 (the latter is the Microsoft Store stub on Windows).

[0.1.1] — 2026-04-24

Fixed

  • Added commands/watch.md shim so /watch is 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.sh now strips commands/ from the claude.ai .skill bundle alongside hooks/ 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 / --end focused mode with denser frame budget and transcript range filtering.
  • Whisper fallback (Groq preferred, OpenAI secondary) for videos without captions.
  • setup.py preflight: silent --check, structured --json, and installer that auto-runs brew install on macOS.
  • Session-start hook that prints a one-line status on first run / partial config.
  • .skill bundle packaging for claude.ai upload via scripts/build-skill.sh.