Repository navigation
v0.3.2 — edit plans, finishing tools, clip swaps
From a talking-head rough cut (v0.2) to B-roll, graphics and language-version swaps on a real timeline.
New
Edit plans — apply_plan plan.json: a JSON list of placements and notes, executed in one pass. Dry run first; imports into a bin, snaps every edge to the frame grid, routes B-roll audio to a free track (never A1 by default), refuses to overwrite occupied tracks, then re-reads the timeline and marks each step placed only if it is really there.
Timeline as JSON — get_sequence (frame size, fps, duration, tracks), list_items, list_project_items.
Effect-preserving clip swaps — inspect_items shows what an editor did to each clip (Motion, Opacity, filters, keyframes); replace_clip swaps the media and carries over source range, params, added filters and edge transitions, then verifies the result to within a frame.
Finishing tools — set_scale --fit/--fill/--value, set_fps (interpret footage), add_marker, remove_items (only clips entirely inside the range by default).
Contact sheets — export_frames --at 4,18.5,31.6 --sheet. Frame export now defaults to the sequence size, so vertical sequences stay vertical.
Version handshake — ping reports whether the loaded panel matches the CLI.
Fixed
import_media on Premiere 27.1 (needs a real target bin).
One-frame errors from 60 vs 59.94 interpretation, end-of-media clamping and transition tick rounding.
Security
The broker now refuses WebSocket connections from web pages. Before, any website open in a browser could connect to the local broker while it was running. Requires websockets>=14.
Upgrading from 0.2
pip install -r requirements.txt
In UXP Developer Tool, reload the Agent Bridge panel (the CLI refuses an old panel and says so).
Restart python broker/broker.py.
Headless testing without Premiere: broker/fake_panel.py keeps an in-memory timeline, so you can try apply_plan, list_items, set_scale and remove_items end to end.
Tested on Premiere Pro 26.x–27.1 / Windows 11. Still experimental; see Known limitations in the README.