Remove silences and filler words
remove_silencesPaid: 3 credits per kept minute, plus 4 per kept minute with burnCaptions (same as burn_captions). Removes silences and filler words from a talking video and returns the cut MP4, retimed SRT/VTT/JSON captions, and stats (sourceSeconds, keptSeconds, removedSeconds, cuts, fillersRemoved). Needs a transcript: pass transcriptionJobId (from transcribe or caption_video) or subtitles. Silences: gaps between words over silenceGapSeconds (default 0.5 s) are cut, keeping paddingSeconds (default 0.08 s) on each side; ffmpeg silencedetect (silenceNoiseDb, default -35) also cuts long pauses inside word timings (detectSilences:false to skip). Fillers (default fillerMode 'clear'): uh, um, er, ah, eh, ehm, em, hmm, mm, and Spanish 'este' only when said on its own. fillerMode 'aggressive' also cuts like, you know, I mean, basically, kind of, sort of, o sea, bueno, pues, digamos, tipo, como que, a ver, only when they stand alone (comma or pause). fillers adds words or phrases; keepFillers keeps some; removeFillers:false keeps all. Every cut gets a short audio fade so joins do not click. burnCaptions:true burns the retimed captions in the same job with preset/brandPresetId/platform/autoFit (same renderer as burn_captions). Billed on the kept duration.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | ||
| preset | No | With burnCaptions: preset id or name (or custom:cp_...). Default Clarity. | |
| autoFit | No | ||
| fillers | No | Extra fillers to always cut, words or phrases. | |
| mediaUrl | No | ||
| platform | No | With burnCaptions: tiktok, reels, shorts, ... for safe zones. | |
| faceAvoid | No | true = move captions off faces (samples faces at 2 fps, same price; result.faceAvoid.faceLayout). Shortcut for styleOverrides.faceAvoid. | |
| quoteOnly | No | Free: return the price for durationSeconds without starting a job or charging (upper bound: every second kept). | |
| subtitles | No | ||
| fillerMode | No | ||
| maxCredits | No | ||
| keepFillers | No | Fillers to keep, e.g. ['like']. | |
| burnCaptions | No | Burn the retimed captions in the same job. | |
| brandPresetId | No | ||
| removeFillers | No | ||
| detectSilences | No | Default true: ffmpeg silencedetect also cuts long pauses. | |
| highlightColor | No | #RRGGBB for highlightWords. Default #FACC15. | |
| highlightWords | No | Shortcut: words or phrases to color in every caption (accent/case-insensitive), e.g. ["AwesomeVideo", "gratis"]. Maps to styleOverrides.wordHighlights rule {id:"custom", words, color}. Same price. | |
| paddingSeconds | No | Kept on each side of a cut. Default 0.08. | |
| silenceNoiseDb | No | Silence threshold in dB. Default -35. | |
| styleOverrides | No | Per-call style changes deep-merged onto the preset (same fields as list_presets style; null removes a field), validated with the renderer schema and bundled fonts. Example {"fontSize":72,"maxWordsPerCaption":2,"wordEntrance":"bounce"}. Same price. No need to save_custom_preset. Every field with examples: get_style_reference. | |
| durationSeconds | No | Source length for quoteOnly. | |
| silenceGapSeconds | No | Cut pauses longer than this. Default 0.5. | |
| transcriptionJobId | No |