set_keyframes
Animates one clip property. property: opacity | volume | positionX | positionY | scaleX | scaleY | rotationDeg | pitch | yaw | anchorX | anchorY | cropLeft | cropTop | cropRight | cropBottom | cropSoftness. Keyframes are stamped in SOURCE frames (frames into the media, i.e. timelineFrame - startFrame + trimStartFrame), so they survive moves and trims. action 'set' (default) upserts the given keyframes; 'remove' deletes at the given frames; 'clear' removes the property's animation (or ALL animation when property is omitted). easing is how the value LEAVES a keyframe: linear | hold | smooth.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| param | No | The effect param key to animate (e.g. 'exposure'). | |
| token | Yes | The session token `connect` returned. Pass it on every call — it says which browser to drive. | |
| action | No | set | remove | clear (default set). | |
| clipId | Yes | Clip to animate. | |
| effectId | No | Animate an EFFECT param instead of a clip property: the effect instance id (from manage_effects add / get_timeline). Use with `param`; `property` is then ignored. | |
| property | No | Animatable property (see description). | |
| keyframes | No | For 'set': keyframes to add or replace. | |
| projectId | Yes | Project id from get_projects. | |
| timelineId | Yes | Timeline containing the clip. | |
| atSourceFrames | No | For 'remove': source frames whose keyframes to delete. |