stabilize_clip
Apply video stabilization to reduce camera shake in Adobe Premiere Pro clips using warp or subspace methods with adjustable smoothness.
Instructions
Applies video stabilization to reduce camera shake.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | The ID of the clip to stabilize | |
| method | No | Stabilization method | |
| smoothness | No | Stabilization smoothness (0-100) |
Implementation Reference
- src/tools/index.ts:380-387 (registration)Tool registration in getAvailableTools() method, including name, description, and input schema.name: 'stabilize_clip', description: 'Applies video stabilization to reduce camera shake.', inputSchema: z.object({ clipId: z.string().describe('The ID of the clip to stabilize'), method: z.enum(['warp', 'subspace']).optional().describe('Stabilization method'), smoothness: z.number().optional().describe('Stabilization smoothness (0-100)') }) },
- src/tools/index.ts:516-517 (registration)Switch case in executeTool() that routes to the stabilizeClip handler.case 'stabilize_clip': return await this.stabilizeClip(args.clipId, args.method, args.smoothness);
- src/tools/index.ts:1934-1979 (handler)The core handler implementation that executes a Premiere Pro ExtendScript to apply the Warp Stabilizer effect to the specified clip, with optional method and smoothness parameters.private async stabilizeClip(clipId: string, method = 'warp', smoothness = 50): Promise<any> { const script = ` try { var clip = app.project.getClipByID("${clipId}"); if (!clip) { JSON.stringify({ success: false, error: "Clip not found" }); return; } var stabilizationEffect = clip.addEffect("Warp Stabilizer"); if (!stabilizationEffect) { JSON.stringify({ success: false, error: "Failed to add stabilization effect" }); return; } // Configure stabilization settings try { stabilizationEffect.properties["Smoothness"].setValue(${smoothness / 100}); stabilizationEffect.properties["Method"].setValue("${method}"); } catch (e) { // Some properties might not be available } JSON.stringify({ success: true, message: "Video stabilization applied successfully", clipId: "${clipId}", method: "${method}", smoothness: ${smoothness} }); } catch (e) { JSON.stringify({ success: false, error: e.toString() }); } `; return await this.bridge.executeScript(script); }
- src/tools/index.ts:382-386 (schema)Zod input schema defining parameters: clipId (required), method (optional enum), smoothness (optional number).inputSchema: z.object({ clipId: z.string().describe('The ID of the clip to stabilize'), method: z.enum(['warp', 'subspace']).optional().describe('Stabilization method'), smoothness: z.number().optional().describe('Stabilization smoothness (0-100)') })