auto-editor-effects
Adds creative effects like speed changes, volume fades, zooms, spinning, logos and animations to specific parts of your video.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
SKILL.mdShow the author's original SKILL.md
--- name: auto-editor-effects description: Apply actions and animations to sections of a video/audio with auto-editor — change speed, duck or fade volume, de-ess, zoom/Ken Burns, rotate/spin, draw boxes, overlay logos or picture-in-picture, and animate any of these with ramps and easing. Use when someone wants creative effects or per-section behavior rather than plain silence-cutting. --- # Actions & animations Instead of just cutting, give each section an **action** with `--when-active` (`-w:1`, loud) and `--when-inactive` (`-w:0`, silent). Defaults: `-w:1 nil` (keep), `-w:0 cut`. Chain actions with commas; they apply in order. ```bash auto-editor video.mp4 -w:0 speed:8 # fast-forward through silence (pitch preserved) auto-editor video.mp4 -w:0 speed:3,volume:0.5 # speed up AND halve volume of silent parts ``` `-w:0`/`-w:1` are the silent (label 0) and active (label 1) classes. You can define more classes with `--edit:N`/`-e:N` and act on them with `--when:N`/`-w:N` (N = 2–255) — see the **auto-editor** skill's "Labels" section. Every action below works as the value of any `-w:N`. ## Actions | Action | What it does | Form / range | |---|---|---| | `nil` | keep unchanged | — | | `cut` | remove section | — | | `speed` | time-stretch, **pitch preserved** | `speed:8`, `speed:0.5` | | `varispeed` | speed via pitch shift (tape/vinyl) | `varispeed:2` (0.2–100) | | `pitch` | shift pitch only, **duration preserved** | `pitch:12` (octave up), `pitch:-7` (−24–24 semitones) | | `volume` | scale volume (1=normal, 0.5=−6dB) | `volume:0.2` | | `deesser` | reduce sibilance | `deesser:intensity[:max[:freq]]` (each 0–1) | | `highpass` | cut lows: rumble, wind (12 dB/oct) | `highpass` (80 Hz), `highpass:120` (10–20000) | | `lowpass` | cut highs: hiss (12 dB/oct) | `lowpass` (10000 Hz), `lowpass:8000` (10–20000) | | `dehum` | notch out mains hum and harmonics | `dehum` (60 Hz, 4 harmonics), `dehum:50:8` | | `tone` | wave from a MIDI note (`add:` generator) | `add:tone:69`, `add:tone:36:saw` | | `invert` | invert pixels | — | | `zoom` | zoom factor (1=none) | `zoom:2`, `zoom:0.5` (>0–100) | | `rotate` | fixed clockwise rotation, expands so nothing clips | `rotate:90` (pair with `--resolution`) | | `spin` | continuous spin `deg/rate` (deg per sec) | `spin:0/120`, `spin:90/-45` | | `drawbox` | filled rectangle | `drawbox:x:y:w:h:color` | | `pos` | place an overlay clip `x:y[:scale]` | mainly used inside `add` / v3 | | `add` | overlay a layer: every stream the file holds | `add:path[:x:y:scale]` | ```bash auto-editor video.mp4 -w:1 deesser:0.8:0.7:0.4 auto-editor video.mp4 -w:1 rotate:90 --resolution 1080,1920 # landscape → portrait auto-editor video.mp4 -w:1 drawbox:0:0:1920:200:#000000 # redact a strip ``` ### Overlays — `add` `add` is **virtual**: it adds an overlay layer rather than a per-frame effect. Still images hold for the whole section; PNG alpha is preserved. Omit placement to scale-to-fit and center. Actions chained **after** an `add` apply to that new overlay, not the base. `add` brings **every stream** the file holds: a video with sound gets a video layer plus its audio layers (mixed in, not a second stream), an audio-only file adds sound with no picture, an image adds picture with no sound. In place of a file it takes a **generator** action: `confetti`/`drawbox` paint a video layer, `tone` synthesizes an audio one (so `add:tone` layers stack into a chord). ```bash auto-editor video.mp4 -w:1 add:./logo.png # centered, fit to canvas auto-editor video.mp4 -w:1 add:./pip.mp4:900:60:0.25 # PiP in the corner, audio included auto-editor video.mp4 -w:1 add:./pip.mp4:900:60:0.25,volume:0.3 # ...tucked under the base auto-editor video.mp4 -w:1 add:./music.mp3,volume:0.4 # background music, no picture added auto-editor video.mp4 -w:1 add:./logo.png,spin:0/-30 # the logo spins, not the base video auto-editor song.mp3 -bg white -w:1 add:./cover.png # audio + image → video auto-editor video.mp4 -w:1 add:tone:69 # 440 Hz tone over the audio auto-editor video.mp4 -w:0 nil,add:tone:81 # beep the silence, don't cut it auto-editor video.mp4 -w:1 add:tone:60,volume:1..0:ease=out # a plucked, decaying note auto-editor video.mp4 -w:1 add:tone:36:saw # buzzy bass (sine|saw|square|triangle) ``` Overlays appear only where their section is kept, so for silent sections use `-w:0 nil,add:...` (keep + overlay). With `--set-action` the range is kept automatically. ## Animations — ramps `from..to` `zoom`, `opacity`, `blur`, `brightness`, `volume`, and each `pos` and `pixelate` field accept a ramp. The value interpolates across the section, reaching `to` on its last frame. More than two points = keyframes, spread evenly. ```bash auto-editor video.mp4 -w:1 zoom:1..1.5 # Ken Burns auto-editor video.mp4 -w:1 opacity:0..1 # fade in auto-editor video.mp4 -w:1 volume:0..1 # audio fade in auto-editor video.mp4 -w:1 zoom:1..1.5..1 # zoom in then out (keyframes) auto-editor video.mp4 -w:1 pixelate:1..64 # dissolve into coarser blocks auto-editor video.mp4 -w:1 add:./logo.png,pos:0..1200:40:1..0.5 # slide + shrink overlay ``` Easing — `:ease=curve[:duration]`, curve ∈ `linear|in|out|inout`. A standalone `ease:` token sets the curve for every animated action after it. `rotate`/`spin` are **not** affected by easing. ```bash auto-editor video.mp4 -w:1 zoom:1..1.5:ease=inout auto-editor video.mp4 -w:1 opacity:0..1:ease=in:2sec # ease over 2s, then hold auto-editor video.mp4 -w:1 ease:out,zoom:1..1.3,brightness:0..0.3 ``` Timed keyframes — `value@time` puts a keyframe at a time from the section's start: a bare frame count, `sec`, or `%` of the section. The value holds before the first and after the last; an untimed keyframe among timed ones sits evenly between its neighbors. An ease curve then eases each step between keyframes (no ease duration with timed keyframes). ```bash auto-editor video.mp4 -w:1 zoom:1@0..2@1.5sec..1@100% # in by 1.5s, out by the end auto-editor video.mp4 -w:1 volume:0@0..0@2sec..1@4sec # silent 2s, then fade in auto-editor video.mp4 -w:1 opacity:1@80%..0:ease=in # fade out over the last 20% ``` ## Target a time range — `--set-action` `--set-action ACTION,START,END` overrides defaults for a range (range syntax; `sec`, `start`/`end`, negatives all work). The range is force-kept. ```bash auto-editor video.mp4 --set-action nil,0,5sec auto-editor video.mp4 --set-action speed:1.5,varispeed:1.5,30sec,end auto-editor video.mp4 --set-action add:./logo.png:600:300:1.0,1sec,2sec ``` ## Recipes ```bash auto-editor :mic -w:1 deesser:0.8:0.7:0.4 # record, then clean up speech auto-editor podcast.wav -w:1 highpass,dehum:50 # drop rumble and 50 Hz hum auto-editor podcast.mp3 -w:0 cut -w:1 speed:1.15 # cut silence, tighten speech auto-editor video.mp4 -w:0 volume:0.3 # duck (not cut) the silence auto-editor video.mp4 -w:1 varispeed:1.25 # nightcore (speed + pitch up) auto-editor video.mp4 -w:0 pitch:12 # chipmunk the silence, same length auto-editor video.mp4 -w:0 speed:6,volume:0.4 # fast, quiet silent sections ``` With `:mic`, press Ctrl-C to finish capture; actions are applied afterward. Full reference: <https://auto-editor.com/ref/actions.md>. For plain cutting / pace / edit methods, see the **auto-editor** skill. For transitions between sections (dissolves, wipes, crossfades), see the **auto-editor-transitions** skill.
Mirrored from the author's public source. Install counts from the open skills registry.