Skip to content

release: v0.7.0 — smart zoom, short metadata, frame descriptions#3

Merged
JRemitz merged 1 commit intomainfrom
release/v0.7.0
Mar 24, 2026
Merged

release: v0.7.0 — smart zoom, short metadata, frame descriptions#3
JRemitz merged 1 commit intomainfrom
release/v0.7.0

Conversation

@JRemitz
Copy link
Copy Markdown
Contributor

@JRemitz JRemitz commented Mar 24, 2026

Summary

v0.7.0 adds three vision-powered capabilities to the OpenAI plugin:

  • Smart zoom — analyze extracted video frames via OpenAI vision API to identify action areas for dynamic crop panning (zoom.py, ON_FRAMES_EXTRACTED hook)
  • Short metadata — LLM-generated titles and descriptions for short video uploads (short_metadata.py, frames.py, POST_RENDER hook), with frame descriptions fed as {{frame_summary}} context
  • Player context — player name, assists, event type, and team level passed from hook data to short metadata prompts ({{player}}, {{assists}}, {{event}}, {{team_level}})

New modules: zoom.py, frames.py, short_metadata.py
New hooks: ON_FRAMES_EXTRACTED, POST_RENDER
New config fields: smart_zoom_enabled, smart_zoom_model, short_metadata_enabled, frame_description_enabled, frame_description_model

Test plan

  • make check passes — lint, mypy, 226 tests, 100% line + branch coverage
  • Tag v0.7.0 triggers PyPI release via GitHub Actions
  • Manual: install into reeln-cli venv, verify smart zoom, frame descriptions, and short metadata with player context

🤖 Generated with Claude Code

… context

Add OpenAI vision-powered features for video analysis and metadata
generation across three new capabilities:

**Smart zoom** — analyze extracted video frames via OpenAI vision API
to identify action areas for dynamic crop panning. Per-frame fallback
to center on API failure; no shared write when all frames fail.

**Short metadata** — LLM-generated titles and descriptions for short
video uploads via POST_RENDER hook. Frame descriptions from vision API
are cached on plugin instance and fed as context to short metadata
prompts. Writes to context.shared["uploads"]["google"] for Google
plugin consumption.

**Player context** — player name, assists, event type, and team level
extracted from hook data and passed to short metadata prompts for
richer AI-generated titles and descriptions.

New modules: zoom.py, frames.py, short_metadata.py
New config fields: smart_zoom_enabled, smart_zoom_model,
  short_metadata_enabled, frame_description_enabled,
  frame_description_model
New prompt templates: smart_zoom_detect, frame_describe,
  short_title, short_description
New hooks: ON_FRAMES_EXTRACTED, POST_RENDER

100% line + branch coverage (226 tests)

Co-Authored-By: Claude <noreply@anthropic.com>
@JRemitz JRemitz changed the title release: v0.5.0, v0.6.0, v0.7.0 release: v0.7.0 — smart zoom, short metadata, frame descriptions Mar 24, 2026
@JRemitz JRemitz self-assigned this Mar 24, 2026
@JRemitz JRemitz merged commit d41da27 into main Mar 24, 2026
6 checks passed
@JRemitz JRemitz deleted the release/v0.7.0 branch March 24, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant