Skip to content

Commit c51bfd9

Browse files
committed
release: v1.5.0 — 9 new core modules, UXP panel, CLI, NLP commands
New features: repeated take detection, YouTube chapter generation, footage search index, post-production deliverables (VFX/ADR/music cue), color match, multicam auto-switching, auto zoom keyframes, loudness match, NLP command parser. 4 new route blueprints (timeline, search, deliverables, nlp). Full UXP panel for Premiere Pro 25.6+. 8 new MCP tools. 8 CLI commands. 84 new tests. 6 new social presets (13 total).
1 parent aad18a1 commit c51bfd9

43 files changed

Lines changed: 11638 additions & 31 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
# Changelog
22

3+
## [1.5.0] - 2026-03-23
4+
5+
### Added
6+
- **Repeated Take Detection** — Jaccard similarity sliding-window to find and remove fumbled/repeated takes from transcriptions
7+
- **YouTube Chapter Generation** — LLM-powered (Ollama/OpenAI/Anthropic) topic detection and chapter timestamp generation
8+
- **Footage Search** — Index media library by spoken content; search by keyword or phrase across all clips
9+
- **Post-Production Deliverables** — Generate VFX sheets, ADR lists, music cue sheets, and asset lists as CSV from sequence data
10+
- **Color Match** — YCbCr histogram matching to match color profile of one clip to a reference clip
11+
- **Multicam Auto-Switching** — Diarization-driven cut generation for podcast multicam editing
12+
- **Auto Zoom Keyframes** — Face-detected keyframe generation for dynamic push-in zoom effect
13+
- **Loudness Match** — FFmpeg two-pass LUFS normalization to match loudness across multiple clips
14+
- **NLP Command Parser** — Natural language command dispatch via keyword matching and LLM
15+
- **Timeline Write-Back** — Apply cuts, markers, and keyframes directly to the active Premiere Pro sequence via ExtendScript
16+
- **Beat Markers** — Sync detected beat timestamps as sequence markers in Premiere Pro
17+
- **Batch Rename** — Rename project panel clips with find/replace pattern support
18+
- **Smart Bins** — Auto-sort project items into bins by rule (name contains, type, duration)
19+
- **SRT to Native Captions** — Import SRT files as native Premiere Pro caption tracks
20+
- **Batch Export from Markers** — Export individual clips defined by sequence markers
21+
- **UXP Panel** — New parallel panel for Premiere Pro 25.6+ using modern UXP APIs (com.opencut.uxp)
22+
- **Timeline Tab** — New CEP panel tab with all timeline write-back operations
23+
- **Search & NLP Tab** — New CEP panel tab with footage search and AI command input
24+
- **Deliverables Section** — Post-production document generation in the Export tab
25+
26+
### Fixed
27+
- Improved progress callback support in color match, auto zoom, and loudness match operations
28+
- LLMConfig now properly instantiated as dataclass object across all routes
29+
330
## v1.2.0 (2026-03-15)
431

532
### New Features

CLAUDE.md

Lines changed: 78 additions & 17 deletions
Large diffs are not rendered by default.

DEVELOPMENT.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,59 @@ Use the sync script to update all at once:
7474
```bash
7575
python scripts/sync_version.py --set 1.3.0
7676
```
77+
78+
## UXP Panel Development
79+
80+
The UXP panel at `extension/com.opencut.uxp/` targets Premiere Pro 25.6+.
81+
82+
### Setup
83+
1. Install Adobe UXP Developer Tool from the Creative Cloud app
84+
2. In UXP Developer Tool: Add Plugin → select `extension/com.opencut.uxp/`
85+
3. Click "Load" to sideload the panel into Premiere Pro
86+
4. The UXP panel connects to the same Python backend on port 5679
87+
88+
### Key differences from CEP panel
89+
- Uses modern ES modules (`import`/`export`) — no ES3 restrictions
90+
- Direct `fetch()` API — no HTTP bridge needed
91+
- Timeline write-back uses `premierepro` UXP module (Premiere 25.6+)
92+
- CEP panel handles write-back for older versions
93+
94+
### Manifests
95+
- CEP manifest: `extension/com.opencut.panel/CSXS/manifest.xml`
96+
- UXP manifest: `extension/com.opencut.uxp/manifest.json`
97+
- Both must be kept in sync for version numbers
98+
99+
## New Optional Dependency Groups (v1.5.0+)
100+
101+
Install groups individually as needed:
102+
103+
```bash
104+
# LLM features (chapters, NLP commands)
105+
pip install openai>=1.0.0 # for OpenAI provider
106+
pip install anthropic>=0.20.0 # for Anthropic provider
107+
# Ollama: install from https://ollama.ai (no pip needed)
108+
109+
# Color matching (OpenCV required)
110+
pip install opencv-python-headless>=4.8.0
111+
112+
# Auto-zoom face detection (OpenCV required)
113+
pip install opencv-python-headless>=4.8.0
114+
115+
# Footage search (stdlib only — no pip required)
116+
117+
# Deliverables (stdlib csv only — no pip required)
118+
119+
# Loudness matching (FFmpeg required — external tool)
120+
# Download from https://ffmpeg.org/download.html
121+
```
122+
123+
## Version Sync
124+
125+
When releasing a new version, update these files:
126+
- `opencut/__init__.py``__version__`
127+
- `pyproject.toml``version`
128+
- `extension/com.opencut.panel/CSXS/manifest.xml``ExtensionBundleVersion` and `Version`
129+
- `extension/com.opencut.uxp/manifest.json``version`
130+
- `extension/com.opencut.uxp/main.js``VERSION` constant
131+
- `README.md` — version badge
132+
- `CHANGELOG.md` — new section

README.md

Lines changed: 91 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# OpenCut
22

3-
![Version](https://img.shields.io/badge/version-1.3.0-blue)
3+
![Version](https://img.shields.io/badge/version-1.5.0-blue)
44
![License](https://img.shields.io/badge/license-MIT-green)
55
![Platform](https://img.shields.io/badge/platform-Windows%2010%2F11-0078D4)
66
![Python](https://img.shields.io/badge/Python-3.9+-3776AB?logo=python&logoColor=white)
@@ -47,7 +47,7 @@ Clone the repo and run `Install.bat` as Administrator. It handles FFmpeg check,
4747

4848
## Features
4949

50-
OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs**, and covers every major video editing automation task.
50+
OpenCut v1.5.0 includes **142 API routes**, **7 panel tabs** with **50+ sub-tabs**, and covers every major video editing automation task — now with ~20 new capabilities including Timeline Integration, AI-powered NLP commands, footage search, post-production deliverables, and a UXP panel for Premiere Pro 25.6+.
5151

5252
### Cut & Clean
5353

@@ -58,6 +58,7 @@ OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs*
5858
| Waveform Preview | Visual waveform with draggable threshold line synced to slider | FFmpeg PCM + Canvas |
5959
| Trim Tool | Set in/out points to extract a clip portion (stream copy or re-encode) | FFmpeg |
6060
| Full Pipeline | Combined silence + filler removal in one pass | Multi-stage |
61+
| Repeated Take Detection | Automatically detects when speakers restart a sentence or fumble a phrase. Removes the earlier attempt using transcript similarity analysis (Jaccard overlap) | WhisperX |
6162

6263
### Captions & Transcription
6364

@@ -72,6 +73,8 @@ OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs*
7273
| Translation | Translate captions to 50+ languages | deep-translator |
7374
| Karaoke Mode | Word-by-word highlight sync for lyrics/captions | Pillow renderer |
7475
| Transcript Editor | Edit segments in-panel with undo/redo and search | Built-in |
76+
| YouTube Chapter Generation | Analyze transcript with local (Ollama) or cloud (OpenAI, Anthropic) LLM to identify topic changes. Outputs ready-to-paste chapter timestamps for YouTube descriptions | Ollama / OpenAI / Anthropic |
77+
| SRT to Native Captions | Import any SRT file as a native Premiere Pro caption track | ExtendScript |
7578

7679
### Audio Processing
7780

@@ -87,6 +90,8 @@ OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs*
8790
| SFX Generator | Procedural tones, sweeps, impacts, noise | NumPy synthesis |
8891
| AI Music Generation | Text-to-music from prompts | MusicGen (AudioCraft) |
8992
| Audio Preview Player | Floating player to preview generated audio before importing | Built-in |
93+
| Loudness Match | FFmpeg two-pass LUFS normalization across multiple clips. Ensures consistent audio levels throughout a sequence | FFmpeg loudnorm |
94+
| Beat Markers | Export detected beat timestamps as Premiere Pro sequence markers for manual snap-to-beat editing | librosa + ExtendScript |
9095

9196
### Video Effects & Processing
9297

@@ -111,6 +116,7 @@ OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs*
111116
| Merge / Concatenate | Join multiple clips (fast stream copy or re-encoded) | FFmpeg concat |
112117
| Side-by-Side Preview | Before/after frame comparison modal for effects | FFmpeg + base64 |
113118
| Watermark Removal | Remove logos via delogo or LaMA AI inpainting | FFmpeg / LaMA |
119+
| Color Match | Match the color profile of one clip to a reference clip using YCbCr histogram matching | OpenCV |
114120

115121
### AI & ML Tools
116122

@@ -122,12 +128,14 @@ OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs*
122128
| Face Swap | Replace faces with reference image | InsightFace |
123129
| Style Transfer | Neural artistic style transfer | PyTorch models |
124130
| Auto Thumbnails | AI-scored frame extraction for thumbnails | OpenCV scoring |
131+
| Auto Zoom Keyframes | Face-detected push-in zoom for talking-head content. Returns keyframes for the Premiere Pro Motion effect | OpenCV + ExtendScript |
132+
| Multicam Auto-Switching | Speaker diarization → camera cut list. Maps speakers to track indices and generates multicam edits | pyannote.audio + ExtendScript |
125133

126134
### Export & Batch
127135

128136
| Feature | Description | Engine |
129137
|---------|-------------|--------|
130-
| Platform Presets | YouTube, TikTok, Instagram, Twitter/X, LinkedIn, Podcast | FFmpeg encode |
138+
| Platform Presets | YouTube, TikTok, Instagram, Twitter/X, LinkedIn, Podcast, Snapchat Story, Facebook Reel, Facebook Post, YouTube Long Form, Pinterest Video, Podcast MP3 | FFmpeg encode |
131139
| Social Quick Export | One-click export optimized per platform's format and limits | FFmpeg |
132140
| Batch Processing | Process multiple clips in parallel | ThreadPool |
133141
| Transcript Export | SRT, VTT, ASS, plain text, timestamped | Built-in |
@@ -172,6 +180,60 @@ OpenCut v1.3.0 includes **142 API routes**, **6 panel tabs** with **43 sub-tabs*
172180

173181
---
174182

183+
## Timeline Integration
184+
185+
OpenCut v1.5.0 adds direct write-back to the active Premiere Pro sequence via ExtendScript:
186+
187+
| Feature | Description |
188+
|---------|-------------|
189+
| Apply Cuts | Remove silences, repeated takes, or custom ranges directly from the timeline |
190+
| Beat Markers | Add detected beats as sequence markers at the click of a button |
191+
| Multicam Cuts | Apply speaker-driven cuts directly to the open sequence |
192+
| Clip Keyframes | Write scale/position keyframes to Motion effect for auto-zoom |
193+
| Batch Rename | Rename project panel clips with find/replace patterns |
194+
| Smart Bins | Auto-sort project items into bins by rule (name, type, duration) |
195+
| Export from Markers | Batch-export clip ranges defined by sequence markers |
196+
| Native Captions | Import SRT as a native Premiere Pro caption track |
197+
198+
---
199+
200+
## Search & AI Commands
201+
202+
### Footage Search
203+
204+
Index your entire media library by spoken content. Search across all clips by keyword or phrase. Results include clip path, timestamp, and matched text snippet.
205+
206+
### Natural Language Commands
207+
208+
Type commands in plain English — OpenCut maps them to API routes using keyword matching or LLM analysis:
209+
- *"remove silence from this clip"*`/captions/silence`
210+
- *"add captions in Spanish"*`/captions/transcribe` with language=Spanish
211+
- *"generate YouTube chapters"*`/captions/chapters`
212+
213+
### Post-Production Deliverables
214+
215+
Generate professional post-production documents from sequence data:
216+
- **VFX Sheet** — Shot list with effects for the VFX supervisor
217+
- **ADR List** — Dialogue list for re-recording sessions
218+
- **Music Cue Sheet** — Music usage log for licensing/clearance
219+
- **Asset List** — Complete media inventory with usage counts
220+
221+
---
222+
223+
## UXP Panel
224+
225+
A parallel panel (`com.opencut.uxp`) is available for Premiere Pro 25.6+ using Adobe's modern UXP platform:
226+
227+
- **Modern JavaScript** — ES modules, async/await, native `fetch()`
228+
- **Same Python backend** — Connects to the same local server on port 5679
229+
- **Auto port detection** — Scans ports 5679–5689 automatically
230+
- **7 tabs** — Cut & Clean, Captions, Audio, Video, Timeline, Search, Deliverables
231+
- **Timeline API** — Uses the `premierepro` UXP module for direct sequence access (where available)
232+
233+
> **Note:** The CEP panel (`com.opencut.panel`) remains the primary panel and supports Premiere Pro 2019+. The UXP panel is the future-facing option for 25.6+.
234+
235+
---
236+
175237
## Architecture
176238

177239
```
@@ -235,6 +297,32 @@ pip install torch torchvision torchaudio --index-url https://download.pytorch.or
235297
| `OPENCUT_OUTPUT_DIR` | Source file dir | Default output directory |
236298
| `WHISPER_MODELS_DIR` | `~/.cache` | Whisper model cache |
237299

300+
## CLI Usage
301+
302+
```bash
303+
# Generate YouTube chapters
304+
opencut chapters interview.mp4 --provider ollama --model llama3
305+
306+
# Detect repeated takes
307+
opencut repeat-detect recording.mp4 --threshold 0.6
308+
309+
# Search footage library
310+
opencut search index *.mp4
311+
opencut search query "camera lens focal length"
312+
313+
# Match colors to reference
314+
opencut color-match source.mp4 reference.mp4
315+
316+
# Normalize loudness
317+
opencut loudness-match clip1.mp4 clip2.mp4 --target-lufs -14
318+
319+
# Generate post-production documents
320+
opencut deliverables --sequence-json sequence.json --type all
321+
322+
# Natural language editing
323+
opencut nlp "remove silence and add captions in Spanish" --file video.mp4
324+
```
325+
238326
## FAQ
239327

240328
**Q: The panel says "Server offline"**

extension/com.opencut.panel/CSXS/manifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<ExtensionManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33
Version="7.0"
44
ExtensionBundleId="com.opencut.panel"
5-
ExtensionBundleVersion="1.4.0"
5+
ExtensionBundleVersion="1.5.0"
66
ExtensionBundleName="OpenCut">
77

88
<ExtensionList>
9-
<Extension Id="com.opencut.panel.main" Version="1.4.0" />
9+
<Extension Id="com.opencut.panel.main" Version="1.5.0" />
1010
</ExtensionList>
1111

1212
<ExecutionEnvironment>

0 commit comments

Comments
 (0)