# Apply EDL

> Render an edit decision list into one finished video or audio file, with cuts and crossfades, and remap a transcript so captions follow the finished cut.

Source: https://nodaro.ai/docs/nodes/video/apply-edl

The **Apply EDL** node renders an edit decision list (EDL) into one finished video or audio file. An EDL is a small JSON description of an edit: the media it draws from, and an ordered list of segments that say which part of which source plays next. An [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) node, an AI agent or you decide what the edit is, and Apply EDL turns that decision into picture and sound.

- Found in: Video › Cut & Assemble
- Output: video
- API type: `apply-edl`

When you wire a transcript into the node, it also outputs that transcript remapped through the cut. Words in removed parts are dropped, and a word that crosses a cut is shortened to the kept part, so captions built from it stay in sync with the finished edit. Apply EDL runs no AI model.

## When to use it
- Render a tightened version of a long recording, planned from its transcript.
- Assemble a set of clip ranges into one deliverable from a single edit description.
- Produce an audio-only cut, for example a podcast episode, on the same timeline as the video version.
- Output a transcript that matches the cut, for [Add Captions](https://nodaro.ai/docs/nodes/video/add-captions).

## Quick start
### Add the node

Press Tab on the canvas and choose **Video › Cut & Assemble › Apply EDL**.

### Connect the EDL

Wire the **Edit plan (EDL)** output of an [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) node into the **EDL** input. You can also wire a text or JSON node that holds an EDL. The media is fetched from the URL of each source in the EDL.

### Connect the transcript (optional)

Wire the transcript of a [Transcribe](https://nodaro.ai/docs/nodes/audio/transcribe) node into the **Transcript** input to receive it remapped through the cut.

### Choose the output and the quality

Open the settings panel. Set **Output** to **Video** or **Audio only**, and **Quality** to **Proxy (720p review)** while you review or **Final (full quality)** for delivery.

### Run it

Click **Run** on the node. The finished cut appears on the node.

Workflow: Edit Plan plans a tightened cut from the transcript, Apply EDL renders it with the transcript remapped, and Add Captions burns in captions that follow the cut.

- Upload Video → Transcribe (audio)
- Transcribe → Edit Plan (transcript)
- Upload Video → Edit Plan (sources)
- Edit Plan → Apply EDL (EDL)
- Transcribe → Apply EDL (transcript)
- Apply EDL → Add Captions (video)

## Inputs
| Input | Accepts | What it does |
| --- | --- | --- |
| **EDL** | JSON, such as the output of Edit Plan, or a text node that holds JSON | The edit decision list. Required. |
| **Transcript** | JSON transcripts, such as the output of Transcribe | A transcript to remap through the cut. Optional. |
| **Sources** | Video and audio nodes | Optional replacements for the media URLs in the EDL, applied by position in connection order. Use it only when the media cannot be reached by the URL in the EDL. |

## Outputs
| Output | What it carries |
| --- | --- |
| **Video** or **Audio** | The rendered cut. The name and the type follow the **Output** setting. |
| **Transcript** | The wired transcript remapped through the cut. Empty when no transcript is wired. |

## Settings
| Setting | What it does |
| --- | --- |
| **Output** | **Video**, the default, renders picture and sound. **Audio only** renders the sound. |
| **Quality** | **Final (full quality)**, the default, is for delivery. **Proxy (720p review)** is a fast render for review. |
| **Default crossfade (ms)** | A crossfade applied at every join that has no transition of its own in the EDL. The default, 0, gives hard cuts. At each join, the crossfade is limited to 90% of the shorter neighboring segment, so it never over-blends a short segment. |

## What an EDL contains

An EDL has two parts:

- **Sources** are the media the edit draws from. Each source has a URL, and it can have a role.
- **Segments** are the pieces of the edit, in playing order. Each segment names a source and a time window, in milliseconds, on the edit's master clock.

The joins between segments are hard cuts or crossfades. A video render needs a picture source on every segment. The [MCP tools](https://nodaro.ai/docs/mcp/tools) page describes the `apply_edl` tool, which takes the same EDL.

## How the edit is rendered

- **Segment order is the timeline.** The node never sorts segments. An edit may go back to earlier parts of a source, for example to switch between cameras or to reorder clips.
- **Cuts and crossfades.** At a cut, two segments meet end to end. At a crossfade, they overlap, so the finished cut is shorter than the sum of the segments by the total crossfade time.
- **Master audio.** When a source has the role `master-audio`, every segment takes its sound from that source, so a camera switch never changes the sound. Otherwise each segment uses its own sound. A role must be `master-audio`, `camera`, `wide` or `screen`. An unknown role, for example a misspelled one, is refused.
- **Checks before the render.** The EDL is checked before any rendering starts. A missing or unreachable source, or a video edit with a segment that has no picture, is reported at once, and the message names the segment or source.
- **Segments must fit their sources.** After the sources are downloaded, each segment is checked against the real end of the track it reads. A segment that runs past its media fails the run at once, names the segment, the source and the track, and refunds the credits. A reach of up to 1 second past the end counts as rounding: the last frame holds and the sound continues as silence, so the cut keeps its exact length.
- **Long edits have no gaps.** A long edit is rendered in pieces that are joined frame-exact and sample-exact, so there is no gap or click at any join.

### What Apply EDL refuses

Apply EDL renders one source per segment, full frame, with cuts or crossfades. It refuses the rest of what an EDL can describe, instead of dropping it silently:

- **Layouts with several sources.** A layout mode other than `single`, a layout with more than one slot, or a slot that names a different source than its segment is refused.
- **Layout effects.** A layout emphasis other than `none`, or a layout transition other than `cut`, such as `pan` or `zoom`, is refused.
- **Crops.** A region crop on a segment, a slot or a source is refused.
- **Early segments.** A segment that starts before the start of its source is refused.

### The 180-minute limit

One render produces at most 180 minutes of output, measured on the finished cut after crossfades. A longer edit is refused before anything is charged, and the message names the edit's length and the limit. Split a longer programme into parts of at most 180 minutes and render each part on its own.

### Long renders in a workflow

A final-quality render of a long episode can take hours. Inside a workflow, Apply EDL gets a time budget sized from its own edit, instead of the standard 90 minutes per node. The workflow's overall limit, normally 120 minutes, grows by the same amount. If the service restarts during a render, the resumed run reconnects to the render that is still in progress. Cancelling the run stops the render at its next piece.

## Credits
Apply EDL costs 10 credits per started minute of rendered output, with a minimum of 1 minute. The length is measured on the finished cut, after crossfades shorten it.

| Rendered length | Minutes billed | Credits |
| --- | --- | --- |
| 40 seconds | 1 | 10 |
| 3 minutes 10 seconds | 4 | 40 |
| 12 minutes | 12 | 120 |

### The estimate before you run

The cost on the node, on the **Run** button and in the run confirmation is an estimate on the high side. You are always charged for the length of the cut that is actually rendered, computed from its EDL.

- **The estimate is exact** when the cut already exists: when the EDL is set on the node itself, or when you run only this node, which renders the plan already on the canvas.
- **An Edit Plan that plans again in the same run** is estimated from the recording, because the new cut does not exist yet. **Tighten** is priced at the full length of the episode. **Clips** is priced at twice the target clip length for each clip, times the number of clips. Without a target length, 90 seconds is assumed, and without a clip count, 8 clips. Nodes fed from the render with an **Each** connection, such as Add Captions, are counted once per clip.
- **An EDL from any other node that runs again** is priced at the 180-minute ceiling.

The balance check before a run compares your balance with this estimate. See [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) for how the plan itself is estimated.

## Tips
- **Keep hard cuts for speech.** Leave **Default crossfade (ms)** at 0 for talking-head and podcast edits. The EDL can still ask for a crossfade at any single join.
- **Review with a proxy.** Render with **Proxy (720p review)** while you check the edit, then switch to **Final (full quality)** for delivery.
- **Use word-level transcripts for captions.** Add Captions needs the transcript's words. Run Transcribe on [ElevenLabs STT](https://nodaro.ai/docs/models/audio/elevenlabs-stt) or [Incredibly Fast Whisper](https://nodaro.ai/docs/models/audio/incredibly-fast-whisper), which return word timestamps. A [Whisper](https://nodaro.ai/docs/models/audio/whisper) transcript has phrases only, and Add Captions refuses it before the run, with nothing billed.

## Frequently asked questions

### What is an edit decision list?

An edit decision list, or EDL, is a small JSON description of an edit. It lists the media the edit draws from and an ordered list of segments, each naming which part of which source plays next.

### How much does Apply EDL cost?

10 credits per started minute of rendered output, with a minimum of 10 credits. The length is measured on the finished cut, after crossfades shorten it.

### How long can one Apply EDL render be?

Up to 180 minutes of finished output. A longer edit is refused before any credits are charged. Split a longer programme into parts and render each part on its own.

### How do I keep captions in sync with the edited video?

Wire a Transcribe node's transcript into the Transcript input. Apply EDL outputs the transcript remapped through the cut, and Add Captions can use that transcript directly.

### Can Apply EDL render only the sound?

Yes. Set Output to Audio only. The audio cut follows the same timeline as the video version of the edit, which suits podcast episodes.
