# UGC Clips

> Split a UGC video script into clips, one per take, choose the creator's voice, and see what the clips and the steps after them will cost before they render.

Source: https://nodaro.ai/docs/nodes/video/ugc-clips

The **UGC Clips** node splits a UGC video script into clips, one per take. It takes the script from [UGC Script](https://nodaro.ai/docs/nodes/video/ugc-script) and the creator from [UGC Creator](https://nodaro.ai/docs/nodes/video/ugc-creator), and checks the script again. Each clip goes to [UGC Clip](https://nodaro.ai/docs/nodes/video/ugc-clip), which renders it.

- Found in: Video › UGC Video
- API type: `ugc-clips`

How many clips a video has depends on its length and its lines. The node shows the clips and the length of each one. Run on its own, it also shows what the clips and the steps after them will cost.

UGC Clips runs on Nodaro Cloud only. On any other install, every UGC node fails before anything is reserved, with "UGC videos are a Nodaro Cloud feature and are not served on this deployment."

## When to use it
- You have a script from UGC Script and a creator from UGC Creator, and you want to render the video.
- You want to see what the clips will cost before any clip renders.
- You want to choose the voice the creator speaks with.

## Quick start
### Add the node

Press Tab on the canvas and choose **Video › UGC Video › UGC Clips**.

### Connect the script and the creator

Wire the **Script** output of UGC Script into **Script**. Wire the **Creator** output of UGC Creator into **Creator**.

### Connect the outputs

Wire **Clips** into the **Clip** input of UGC Clip. Wire **Script (sized)** and **Transcript** into the inputs of the same name on [UGC Cards](https://nodaro.ai/docs/nodes/video/ugc-cards). Wire **Script (sized)** into the **Script** input of [UGC Finish](https://nodaro.ai/docs/nodes/video/ugc-finish-clips) too.

### Run it

Press the node's own run button to see the clips and what they will cost. Or run the whole workflow, which goes on to render the clips.

Workflow: UGC Clips splits the script into clips. UGC Clip runs once per clip, and UGC Cards receives the script with its clips marked.

- UGC Script → UGC Clips (script)
- UGC Creator → UGC Clips (creator)
- UGC Clips → UGC Clip (clip)
- UGC Clips → UGC Cards (script (sized))

## Inputs
| Input | Required | What to connect |
| --- | --- | --- |
| **Script** | Yes | The **Script** output of UGC Script. Without it, the node fails with "Connect the Script output of UGC Script." |
| **Creator** | Yes | The **Creator** output of UGC Creator. While UGC Creator has no creator, the node fails with "UGC Creator has no creator yet. Run it, or pick one of its options." That happens when UGC Creator has not run, or when its options wait for your pick. |

## Outputs
| Output | What it carries |
| --- | --- |
| **Clips** | The clips, one per take. A connection from **Clips** is in **Each** mode by default, so UGC Clip runs once per clip. A video of one clip hands UGC Clip that one clip. |
| **Script (sized)** | The script with its clips marked, as JSON, for the **Script** input of UGC Cards and of [UGC Finish](https://nodaro.ai/docs/nodes/video/ugc-finish-clips). One value. |
| **Transcript** | Plain text: every word the clips say, in order, for the **Transcript** input of UGC Cards. One value. |

Only **Clips** fans out. The other two outputs pass one value, whatever mode their connections use. See [Connection modes](https://nodaro.ai/docs/concepts/nodes-and-connections#connection-modes).

## Settings
| Setting | What it does |
| --- | --- |
| **Voice** | The voice the creator speaks with. **Default voice** picks a voice to suit the creator. You can also choose any voice from the voice browser. |

### The script is checked again

UGC Clips checks the script against the video rules again. A script can break a rule only after you edit its lines on UGC Script. Such a script fails UGC Clips before any clip is paid for, with "The script needs changes:", followed by each problem and its fix.

### A Hebrew script

A Hebrew script is first recorded as one speech with the chosen voice. Its words are timed, and it is split at its pauses. UGC Clips then hands on one clip per piece, each up to 7 seconds. These three steps are charged at their own prices.

The recording may hold at most 1.2 times the video's length, and never more than 21 seconds. A longer recording stops the run at the split, with "SPEECH_TOO_LONG … Shorten the script." The split's charge is refunded. The speech and its word timings stay charged. [UGC Script](https://nodaro.ai/docs/nodes/video/ugc-script) already rewrites a Hebrew script that is too long for the video's length, counted at 2.5 words a second: 45 words for a 15-second video, and 52 words at most.

The Hebrew voices are Maya and Shira (woman), and Itai and Omer (man).

Before any clip of a Hebrew video renders, UGC Clips prices the clips that the split handed on, with the steps after them. Each clip is priced at what it holds while it renders. UGC Clips compares that price with what your balance was checked against before the run started: the most clips that any accepted recording of the video can be cut into. When the clips would hold more, the run stops here, before any clip renders. The speech, its word timings and its split stay charged. The node fails with "The clips for this recording would cost more than this run was checked for, so none was rendered. Run UGC Clips again to record the speech again." The check itself is free.

A Hebrew video needs [UGC Finish](https://nodaro.ai/docs/nodes/video/ugc-finish-clips) after UGC Clip, with the **Script (sized)** output of UGC Clips wired into it. Without it, UGC Clips fails before anything is spent, with "Add a UGC Finish node after UGC Clip, and connect UGC Clips' Script (sized) output to it."

### What the clips will cost

When you run UGC Clips with its own run button, the node shows what its clips will cost:

- **Clip lines:** one line for each clip, with its length.
- **Step lines:** one line for each step after the clips. The steps are finishing the clips on a Hebrew video, joining the clips when there are several, the word timings, the speech check, the screenshot cards when there are any, and the captions.
- **Expected:** what the video is expected to cost.
- **Held while clips render:** what the run holds while the clips render, about twice the price of the clips.

Run the UGC nodes one at a time this way to see the figure before any clip renders. A run of the whole workflow goes straight on to the clips, and UGC Clips shows no figure. The price of such a run is shown before it starts: see [Prices in the editor](https://nodaro.ai/docs/nodes/video/ugc-clip#prices-in-the-editor).

## Credits
UGC Clips is free. The figures it shows are what UGC Clip and the steps after it will cost. See [UGC Clip credits](https://nodaro.ai/docs/nodes/video/ugc-clip#credits).

## Tips
- **See the price first.** Run UGC Script, UGC Creator and UGC Clips one at a time, each with its own run button, to see what the clips will cost before they render.
- **Check the clip lengths before you render.** A longer video makes more clips.
- **Keep the default connection modes.** **Clips** is in **Each** mode so that UGC Clip runs once per clip.

## Troubleshooting
| Message or problem | Cause and fix |
| --- | --- |
| "Connect the Script output of UGC Script." | Nothing is wired into **Script**. Wire the **Script** output of UGC Script. |
| "UGC Creator has no creator yet. Run it, or pick one of its options." | Run UGC Creator, or press **Use this one** on one of its options. |
| "The script needs changes:" | An edited line breaks a video rule. Fix each problem the message names on UGC Script, or run UGC Script again. |
| "Add a UGC Finish node after UGC Clip, and connect UGC Clips' Script (sized) output to it." | The script is in Hebrew, and no UGC Finish takes the **Script (sized)** output. Add [UGC Finish](https://nodaro.ai/docs/nodes/video/ugc-finish-clips) after UGC Clip and wire it. Nothing was spent. |
| "SPEECH_TOO_LONG … Shorten the script." | The Hebrew recording is longer than 1.2 times the video's length, or longer than 21 seconds. Shorten the script on UGC Script, or run UGC Script again. The split's charge is refunded. |
| "The clips for this recording would cost more than this run was checked for, so none was rendered. Run UGC Clips again to record the speech again." | The Hebrew recording was cut into clips that would hold more than the run was checked for. Run UGC Clips again to record the speech again. No clip was rendered. |
| UGC Clip renders only one clip. | The connection from **Clips** is not in **Each** mode. Set it back to **Each**. |

## From the API
UGC Clips calls `POST /v1/ugc/clips` when it runs. The request and answer shapes of the UGC routes belong to the nodes and may change between versions. To make a UGC video from code, run a workflow or a published app that holds the UGC nodes. See [Workflows](https://nodaro.ai/docs/developers/api/workflows#run-a-workflow-with-new-input-values).

`POST /v1/ugc/quote` prices a UGC video. It is free, nothing is reserved, and it accepts 30 calls a minute. It has two forms:

- **Tickets:** `{ "tickets": [ … ], "hasCards": true }` prices the 1 to 11 clips that UGC Clips handed on, as UGC Clip and the steps after it will be. This is the figure UGC Clips shows.
- **Estimate:** `{ "estimate": { "targetDurationSec": 15, "screenshotCount": 3, "source": "sampled" } }` prices a whole video before anything runs, the script and the creator included. `targetDurationSec` is 4 to 300. `screenshotCount` is 0 to 8, and 1 or 2 price as none. `source` is `sampled` (an AI creator) or `photo`. The optional `rendersEveryCandidate` prices every creator option, as an editor run draws them.

The tickets form takes two optional fields:

- `finishes: true` says that the clips go through the UGC Finish job, as on a Hebrew video. The answer then has a "Finish the clips" line (key `finish`), charged once. The join line (key `join`) is priced as the template's join node is charged: with its settings, and each clip at the standard 8-second length of Combine Videos, because the clips reach it as one list without clip lengths.
- `runEstimate` is the estimate input of the video that the clips belong to (`targetDurationSec`, `screenshotCount`, `source` and `language`). The answer then also has `runHold`: the most that the video's estimate holds for its clips and the steps after them, priced with the same `hasCards` and `finishes`.

Both forms answer `lines` (each with an English `label`, its `credits` and a stable `key`), `expected`, `ceiling` (what the video holds while its clips render), `parts` and `holdParts`. The estimate also answers `range`, the expected price at 0.8× and 1.2× the length, and `worstCase`. An item that cannot be priced answers `422 unpriceable`. Where the UGC routes are not served, the route answers `503 not_available`.

For a Hebrew video (`language: "he"` in the estimate), the recorded speech decides how many clips there are, so the estimate has no 0.8× and 1.2× runs. `expected` and `ceiling` are the clips the speech is expected to need, and `range` runs to the most clips that such a speech usually needs. `worstCase` holds the most expensive way that any accepted recording can be cut, every clip at twice its price. A recording holds at most 1.2 times the target length and never more than 21 seconds: 18 seconds for a 15-second video, and 21 seconds from a 17.5-second video up. So the worst case grows with the target length, up to six clips of up to 7 seconds. The speech, its word timings, its split and the finish are lines of their own, each charged once.

Before the clips of a Hebrew video render, UGC Clips asks the tickets form, with `runEstimate`, to price the clips that the split handed on. This happens in the editor, in a published app and in an API run alike. When their `ceiling` is over `runHold`, or no figure can be had, the run stops at UGC Clips before any clip renders.

## Frequently asked questions

### What does the UGC Clips node do?

UGC Clips takes the script from UGC Script and the creator from UGC Creator, checks the script again, and splits it into clips, one per take. UGC Clip then renders each clip.

### Does UGC Clips cost credits?

No. UGC Clips is free. The figures it shows are what UGC Clip and the steps after it will cost.

### How do I see what a UGC video costs before it renders?

Run UGC Script, UGC Creator and UGC Clips one at a time, each with its own run button. UGC Clips then shows a line for each clip and each later step, the Expected total and what is Held while clips render.

### How many clips does a UGC video have?

It depends on the video's length and its lines. UGC Clips shows the clips and the length of each one. A longer video makes more clips.

### How long can a Hebrew UGC recording be?

A Hebrew script is recorded as one speech. The recording may hold at most 1.2 times the video's length, and never more than 21 seconds. A longer recording stops the run with "SPEECH_TOO_LONG", and the split's charge is refunded.

### Which voice does the creator speak with?

Default voice picks a voice to suit the creator. You can also choose any voice from the voice browser in the settings panel.
