Skip to content

Video Editor

Produces a clean version of the recording: trims the connection glitch at the very start, and the dead air at the beginning and end. Optional, and on its own branch of the pipeline.

At a glance

Needs The downloaded recording
Produces A cleaned copy of the recording, plus a map of what was cut
Waits when The recording hasn't been downloaded yet
Re-running Safe — skips if the cleaned cut already exists

What it does

Makes a new file — the raw recording is never edited in place — with three trims: a fixed head trim for the connection artefact every meeting recording starts with, plus leading and trailing silence.

Pacing inside the conversation is deliberately left alone. Cutting pauses and filler out of a long-form conversation makes it feel wrong; that kind of aggressive editing belongs to short clips, which are a separate concern and not something IRIS does.

Alongside the cut it writes an edit map: a record of how time in the cleaned version relates to time in the original. That's the reason this is its own step rather than something folded into the downloader or the uploader — timestamps, chapter marks and deep links into the conversation are all recorded against the original recording, and the edit map is what keeps them pointing at the right moment after the trim.

YouTube Video Upload prefers the cleaned cut whenever it exists, and falls back to the raw recording otherwise — so adding or removing this step from a journey needs no other changes. It also shifts any chapter timestamps in the description onto the cleaned timeline so they don't drift.

How it behaves

  • It never publishes an empty video. If the trim plan would remove the entire recording — whole-file silence, or a head trim longer than the recording — it logs a warning and falls back to publishing the recording unchanged.
  • Nothing to cut means no re-encode. If the plan removes nothing, the file is copied through rather than re-rendered, so quality is untouched and it's fast.
  • It won't redo work. If the cleaned cut is already there, the step skips.

Settings

Set on the step: the head-trim length, the silence-detection threshold and minimum silence length, whether to trim leading and trailing silence, and the tolerance at the edges. An invalid combination fails the step immediately rather than waiting — the error names the problem.

Troubleshooting

Symptom Likely cause What to do
Waiting with no error The recording isn't downloaded yet Normal. Check the Recording Downloader step.
Error about configuration An invalid combination of trim settings Correct the step settings, then re-run
The cut is much shorter than expected Long silences at the edges, or an over-long head trim Check the trim settings; the edit map on the step inspector shows what was removed
Whole recording is silent, output is the full original The empty-cut guard fired deliberately Expected behaviour — the raw recording is published rather than an empty file
Uploaded video is the raw recording, not the cut The cleaned file was missing when the upload ran Re-run this step, then reset the upload step so it picks up the cut
Old cut files left behind after a re-run Re-running writes a new derived file Harmless; an administrator can clean up orphaned derived files

Technical reference

Step type video_editor
Runs after realtimekit_downloader
Feeds youtube_video_upload (prefers the cleaned cut when its file exists)
Reads config["iris.downloads"]["recording"]; step settings head_trim_ms, silence_noise_db, min_silence_ms, trim_leading_silence, trim_trailing_silence, edge_tolerance_ms
Writes config["iris.downloads"]["edited_recording"], config["iris.downloads"]["edit_map"]
Needs on the server ffmpeg, ffprobe

Derived files are written beside the raw recording with an edited_ prefix, so archiving and cleanup treat them like any other downloaded artefact. Both the read and write paths are checked to stay inside the media root — this step both creates and deletes files.