# Camera Switch

> Put each cut of a multicam podcast or interview edit on the camera of whoever is speaking, from a transcript with speaker labels. The sound never changes.

Source: https://nodaro.ai/docs/nodes/video/camera-switch

The **Camera Switch** node chooses which camera shows each cut of an edit, by who is speaking. It reads one edit from [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) and a transcript with speaker labels, puts each stretch on the camera of the person who is talking, and hands the switched edit to [Apply EDL](https://nodaro.ai/docs/nodes/video/apply-edl) to render. The sound never changes, and the same edit, transcript and settings always give the same cuts.

- Found in: Video › Cut & Assemble
- API type: `camera-switch`

Camera Switch runs on Nodaro Cloud. On a self-hosted install, [connect the install to Nodaro Cloud](https://nodaro.ai/docs/self-hosting/cloud-connect), under **Integrations › nodaro.ai** or with an API key, and the node relays each run to the cloud. Without a connection, the node saves on the canvas but cannot run.

## When to use it
- Edit a podcast or an interview that was recorded on several cameras.
- Cut to a close-up of each person while they talk, and keep a wide shot for the moments in between.
- Make short clips from a multicam episode, each one switched between cameras.
- Caption a multicam edit with the real names of the speakers.

## Quick start
A typical multicam chain has five nodes. **Audio Sync** lines the recordings up, **Transcribe** labels the speakers, **Edit Plan** writes the edit, **Camera Switch** chooses the cameras, and **Apply EDL** renders the result.

### Prepare the edit and the transcript

Wire every recording into [Audio Sync](https://nodaro.ai/docs/nodes/audio/audio-sync) and into the **Sources** of an [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) node, as described in [Multicam recordings](https://nodaro.ai/docs/nodes/video/edit-plan#multicam-recordings). Transcribe the master recording with a [Transcribe](https://nodaro.ai/docs/nodes/audio/transcribe) node, with **Speaker Diarization** turned on.

### Add the node

Press Tab on the canvas and choose **Video › Cut & Assemble › Camera Switch**.

### Connect the edit and the transcript

Wire the EDL output of Edit Plan into the **Edit (EDL)** input, and the transcript of Transcribe into the **Transcript** input.

### Name the speakers and run

Open the settings panel. Under **Speakers**, give each speaker a name and a camera. The table is filled in order, so a run also works without changes. Click **Run**.

### Render the switched edit

Wire the **Switched edit (EDL)** output into an [Apply EDL](https://nodaro.ai/docs/nodes/video/apply-edl) node and run it. For captions with the speakers' names, wire the **Transcript (named)** output into the **Transcript** input of Apply EDL or [Add Captions](https://nodaro.ai/docs/nodes/video/add-captions).

Workflow: Audio Sync lines the recordings up, Edit Plan writes the edit, Camera Switch puts each cut on the speaker's camera, and Apply EDL renders it.

- Audio Sync → Edit Plan (offsets)
- Edit Plan → Camera Switch (EDL)
- Transcribe → Camera Switch (transcript)
- Camera Switch → Apply EDL (EDL)

The **Multicam Cut** template in the template marketplace is this chain, ready to fill: two close-up cameras, a wide camera and a master audio track. Add or delete camera nodes for 2 to 6 recordings in all, and wire each one into both the Audio Sync node and the **Sources** of Edit Plan.

## Inputs
| Input | Required | What to connect |
| --- | --- | --- |
| **Edit (EDL)** | Yes | One edit from [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan), in **Tighten** or **Clips** mode. In Clips mode, each clip runs Camera Switch on its own. A chapters plan is refused. |
| **Transcript** | Yes | The word transcript with speaker labels, from a [Transcribe](https://nodaro.ai/docs/nodes/audio/transcribe) node with **Speaker Diarization** turned on. |

## Outputs
| Output | What it carries |
| --- | --- |
| **Switched edit (EDL)** | The edit with each cut on the speaker's camera. Wire it into [Apply EDL](https://nodaro.ai/docs/nodes/video/apply-edl). After a Clips-mode plan, it holds one switched edit per clip, and its connection defaults to **Each**, so Apply EDL renders every clip. |
| **Transcript (named)** | The transcript with your speaker names. Wire it into the **Transcript** input of Apply EDL or [Add Captions](https://nodaro.ai/docs/nodes/video/add-captions), so that captions show the names. It is the same for every clip. |

## How it switches

- **A speaker's turn cuts to their camera** a moment before they start, 0.2 seconds by default. The turn must be at least as long as **Shortest shot**, 2.5 seconds by default. A shorter turn, such as a quick "yeah", never causes a cut, and a listener's "mhm" does not interrupt a long answer.
- **Speakers and cameras.** Several speakers can share one camera, for example a two-shot. A speaker set to **No camera of their own**, or a speaker after the last camera, is shown on the wide camera: the source with the **Wide** role in Edit Plan. Without a wide camera, the speaker is shown on any camera that filmed them.
- **Every cut names its speaker.** When the speaker changes but the camera does not, the edit is still split there. Nothing visible changes, and each piece names its own speaker.
- **A camera with no picture.** When the speaker's camera started late or stopped early, that stretch shows the wide camera if it has picture, or else the first camera that does. A stretch that no camera filmed is left out of the edit and listed among its dropped cuts as `no-picture`. A gap of up to half a second right after a camera stops is held on its last frame instead.
- **Wide breaks.** With a wide camera, the edit cuts to the wide after 20 seconds on one camera, for one shortest shot, and then back. **Wide every N cuts** sends every N-th cut to the wide.
- **The sound stays.** Each cut keeps the sound its segment had in the edit, usually the master recording. The soundtrack never switches microphones with the picture.
- **One speaker, or fewer than 2 cameras.** The edit comes back unchanged, with a note in the edit's notes.

## Settings
| Setting | Default | What it does |
| --- | --- | --- |
| **Speakers** | Filled in order | One row per speaker label in the transcript: a display name, up to 80 characters, and a camera or **No camera of their own**. Speaker 1 gets the first camera, speaker 2 the second, and so on. |
| **Shortest shot (s)** | 2.5 | A turn shorter than this never causes a cut. From 0.5 to 60 seconds. |
| **Cut early (s)** | 0.2 | How long before the new speaker starts the cut happens. From 0 to 5 seconds. |
| **Wide break after (s)** | 20 | With a wide camera, cut to it after this long on one camera. 0 turns it off. Up to 600 seconds. |
| **Wide every N cuts** | 0 (off) | With a wide camera, every N-th cut goes to the wide. From 0 to 20. |
| **Layout hints** | Off | When two people talk over each other for more than 1.2 seconds, suggest a side-by-side layout on those cuts, or a stacked layout for a vertical video. |

A value outside its range moves to the nearest limit when you leave the field. The wide break and **Wide every N cuts** need a source with the **Wide** role in Edit Plan.

**Layout hints** are drawn only by [Speaker View](https://nodaro.ai/docs/nodes/video/speaker-view). Apply EDL renders edits with plain cuts and refuses an edit with layout hints. With hints on, the settings panel offers to replace each Apply EDL that the edit goes to with a Speaker View node.

## Credits
Camera Switch costs one flat price per run, whatever the length of the recording or the number of cameras. The **Run** button on the node shows the price.

In Edit Plan's **Clips** mode, Camera Switch runs once per clip, and each run is charged. A plan with 8 clips costs 8 runs.

These are refused before any credits are charged:

- A transcript with no speaker labels at all.
- A missing edit or a missing transcript.
- An edit that is not one edit on the recording's clock: a whole set of clips, a chapters plan, or the EDL of a rendered output.

## Tips
- **Run Audio Sync first.** Camera Switch needs to know where each camera sits on the master's clock to show the right moment. Wire Audio Sync into the **Offsets (Audio Sync)** input of Edit Plan.
- **Mark the wide shot.** Give the wide camera the **Wide** role in Edit Plan's source list. The wide camera becomes the fallback and the break shot.
- **Use real names.** Name the speakers in the settings panel, and wire the **Transcript (named)** output into Add Captions to caption with those names.

## Troubleshooting
| Problem | Cause and fix |
| --- | --- |
| The run is refused because the transcript has no speakers. | The transcript was made without speaker labels. Turn on **Speaker Diarization** in Transcribe, run it again and wire the new transcript. |
| The edit comes back unchanged. | The transcript has only one speaker, or the edit has fewer than 2 cameras. The edit's notes say which. |
| The edit is refused. | The input is not one edit on the recording's clock. Wire Edit Plan's EDL output straight into Camera Switch, not a rendered output's EDL or a chapters plan. |
| The cuts show the wrong moment. | The cameras are not lined up with the master. Measure the offsets with Audio Sync, or check the typed offsets in Edit Plan. |
| The wide break never happens. | No source has the **Wide** role in Edit Plan, or **Wide break after (s)** is 0. |

## From the API
`POST /v1/camera-switch` runs the node from code. Send `edl`, one EDL as an object or a JSON string, and `transcript`, with optional `speakerMap`, `speakerNames`, `minShotMs`, `leadMs`, `maxShotMs`, `wideEvery` and `layoutHints`. `speakerMap` maps a speaker label to an EDL source id, and `""` means no camera of their own.

A set of clips, a chapters plan or the EDL of a rendered output answers `400 invalid_edl`. A transcript with no speaker labels answers `422 no_speakers`, before anything is charged. The finished job's `output_data.json` is the switched EDL, and `output_data.transcript` is the named transcript.

The SDK method is `client.edit.cameraSwitch`, the CLI command is `nodaro edit switch-cameras`, and the MCP tool is `switch_cameras`. See [Run a single node](https://nodaro.ai/docs/developers/api/nodes) and [Jobs](https://nodaro.ai/docs/developers/api/jobs).

## Frequently asked questions

### What does the Camera Switch node do?

Camera Switch reads an edit from Edit Plan and a transcript with speaker labels. It puts each stretch of the edit on the camera of the person who is talking, and returns the switched edit for Apply EDL to render.

### Does Camera Switch change the sound?

No. Every cut keeps the sound its segment already had in the edit, usually the master recording. Only the picture switches between cameras.

### Why does Camera Switch refuse my transcript?

The transcript has no speaker labels. Turn on Speaker Diarization in the Transcribe node, run it again, and wire the new transcript into Camera Switch. The refusal comes before any credits are charged.

### How much does Camera Switch cost?

Camera Switch costs one flat price per run, whatever the length of the recording or the number of cameras. The Run button shows the price. In Edit Plan's Clips mode, the node runs once per clip, and each run is charged.

### Does a short reply like "yeah" cause a cut?

No. A speaker's turn causes a cut only when it is at least as long as Shortest shot, 2.5 seconds by default. A shorter turn keeps the current camera on screen.
