> ## Documentation Index
> Fetch the complete documentation index at: https://typecast.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Shorts generation

Short-form video work usually needs fast iteration: a hook, a few alternate reads, and a final audio file that can be dropped into an editor. The CLI is useful because an agent can turn script drafts into named audio assets without switching tools.

## Recommended flow

<Steps>
  <Step title="Ask the agent for a short script">
    Keep each line short enough for captions and editing.

    ```text
    Write a 25-second Shorts script with:
    - one opening hook
    - three short beats
    - one call to action
    ```
  </Step>
  <Step title="Generate a scratch take">
    ```bash
    cast "This is the fastest way to test a Typecast voice from your terminal." \
      --emotion smart \
      --out shorts-scratch.wav
    ```
  </Step>
  <Step title="Generate alternate hooks">
    ```bash
    cast "Stop scrolling. Your app can speak in one command." \
      --emotion preset --emotion-preset happy --emotion-intensity 1.3 \
      --out hook-a.wav

    cast "Here is a terminal trick for instant AI voiceovers." \
      --emotion smart \
      --out hook-b.wav
    ```
  </Step>
  <Step title="Save final audio">
    ```bash
    cast "$(cat shorts-script.txt)" \
      --voice-id tc_xxx \
      --emotion smart \
      --format mp3 \
      --out shorts-final.mp3
    ```
  </Step>
  <Step title="Generate captions from the same take">
    ```bash
    cast "$(cat shorts-script.txt)" \
      --voice-id tc_xxx \
      --emotion smart \
      --out shorts-final.wav \
      --timestamp-out shorts-final.srt
    ```
  </Step>
</Steps>

## Agent prompt pattern

```text
Create a short-form video voiceover.
Write the script first, then generate:
1. hook-a.wav
2. hook-b.wav
3. final.mp3
4. final.srt

Use the CLI. Keep filenames descriptive, generate captions from the same final script, and do not overwrite approved takes.
```

## Practical tips

| Goal | CLI option |
|------|-----------------|
| Faster delivery | `--tempo 1.08` to `--tempo 1.18` |
| More energetic read | `--emotion preset --emotion-preset happy --emotion-intensity 1.2` |
| More natural context | `--emotion smart --prev-text ... --next-text ...` |
| Editor-friendly output | `--out final.mp3 --format mp3` |
| Subtitle import | `--timestamp-out final.srt` |
| Web preview captions | `--timestamp-out final.vtt --timestamp-format vtt` |
| Custom campaign voice | `cast voices clone sample.wav --name "Campaign Voice"` |

## What to automate

| Shorts task | Recommended CLI feature |
|-------------|------------------------------|
| Opening hook A/B tests | Separate `hook-a.wav`, `hook-b.wav` files |
| Captions for editing | `--timestamp-out final.srt` |
| Browser preview captions | `--timestamp-out final.vtt --timestamp-format vtt` |
| Branded or creator voice | `cast voices clone` then use `--voice-id uc_xxx` |
| Fast review in a room | Run `cast "short sentence"` without `--out` for immediate playback |

<Tip>
  Generate hooks as separate files. It makes it easier for the agent or editor to compare openings without regenerating the full narration.
</Tip>
