manage_multicam
Edits multicam podcast episodes: map camera and mic files to people, sync audio, auto-cut speakers, then render MP4 or export Premiere/FCPXML timelines.
Instructions
Edit a full multicam podcast episode: map every camera and mic file to a person, sync them by audio (with clock-drift correction), auto-cut cameras to whoever is speaking, then render an MP4 or export a Premiere XML / FCPXML timeline that points at the original files. Flow: 'new' (folder or files, people) → check the guessed mapping with 'show' and fix it with 'map' → 'sync' → 'plan' → 'render' or 'export'. 'new' returns the session with guessed roles; calling it again on the same files reopens that edit. 'sync', 'plan' and 'render' start a background job and return job_id: poll job_status, then call 'show'. Mapping fields (people, sources, range_start, range_end, cut_settings, speaker_map, look, removals) apply on 'map', 'sync' and 'plan'; 'render' takes only look and stems. Changing who is in a file or where it sits clears the cut, so run 'plan' again. 'render' skips work when nothing changed and reuses shots it already encoded. Every render checks the finished file (frame count, a full decode, loudness and true peak) and reports outputs.validation; only a broken decode or a picture more than a frame off the cut fails it, the rest are warnings. Other actions: 'list', 'cut' (index, source_id: swap one shot's camera), 'set_cuts' (cuts: replace the whole cut with back-to-back shots), 'activity' (who speaks when, as spans per person), 'previews' (still frames per camera, looks: true adds every color look on every camera), 'preview' (background job: playback proxies, a mic mix and stills, for a browser editor such as podcli cloud), 'delete'. 'cloud' (background job, needs podcli login and Pro: sends previews and the edit to the podcli cloud editor; camera files stay here) and 'pull' (background job: renders the cut made in that editor from the files here). 'export' with review: true writes a review timeline: the whole episode, every camera on its own track under the cut, and each removal left in place, named 'Remove', labelled orange in Premiere and marked with its reason. 'import_timeline' (path) reads an FCP 7 XML timeline edited in Premiere or Resolve back as the cut and removals: deleted stretches become removals, kept ones are restored. With the DaVinci Resolve MCP server connected, import the review timeline into a Resolve project, color the 'Remove' clips, let the editor review, export the timeline as FCP 7 XML, then call 'import_timeline'. Call recordings work too: one file per person becomes a split screen, one gallery recording is split into a camera per tile; Premiere and FCPXML export refuse those layouts for now.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | For 'previews': timeline second to take the stills at | |
| cuts | No | For 'set_cuts': the full cut, shots back to back on the timeline | |
| look | No | Color look used by 'render' | |
| name | No | For 'new': episode name | |
| path | No | For 'import_timeline': an FCP 7 XML timeline exported from Premiere or Resolve | |
| files | No | For 'new': explicit media file paths, alone or with folder | |
| force | No | For 'sync': also re-measure offsets that were set by hand | |
| index | No | For 'cut': 0-based shot index | |
| looks | No | For 'previews': include one still per color look | |
| stems | No | For 'render': also write one WAV per person (default true) | |
| action | Yes | What to do | |
| folder | No | For 'new': folder holding one episode's recordings, scanned recursively | |
| format | No | For 'export': premiere (FCP7 XML, also opens in Resolve) or fcpxml (Final Cut Pro, Resolve) | |
| people | No | For 'new': speaker names, or {name, role} (default Host, Guest; without roles the last one is the guest). For 'map': the full people list, with ids to keep and role host or guest; a guest's long answers are held on their camera | |
| review | No | For 'export': keep the whole episode with every camera on its own track and the removals in place, marked | |
| sources | No | Per-source corrections. An offset set here survives later syncs unless force is true | |
| removals | No | Stretches cut out of the episode on every camera and mic, in timeline seconds; [] restores everything | |
| range_end | No | For 'map'/'plan': episode end on the timeline, null for automatic | |
| source_id | No | For 'cut': camera source id to use for that shot | |
| session_id | No | Session id returned by 'new' (every action except new/list) | |
| range_start | No | For 'map'/'plan': episode start on the timeline, null for automatic | |
| speaker_map | No | For shared-audio shows: diarization label → person id | |
| cut_settings | No |