---
name: lower-thirds
description: Animated lower thirds (name / title straps) in eight designs - bar, pill, split, underline, news with a tag, glass, neon, minimal - burned into a Kenerate video at chosen times or exported as transparent .mov overlays for any editor. Brand colours, free or brand fonts, several straps per video, still showcase of every design first. Use when the user wants name titles, speaker labels, interview straps, a news-style banner, captions for who is talking, or lower-third graphics for YouTube, podcasts, webinars or ads.
compatibility: Python 3.9+ with Pillow and ffmpeg.
metadata:
  author: kenerate
  version: "1.1"
  kenerate-tools: "talking_avatar generate_video wait_for_generation"
---

# Lower thirds

`scripts/lowerthirds.py` draws and animates the straps locally (only the in / out frames are rendered one by one).
Rules: [references/KENERATE.md](references/KENERATE.md) (models and voices: [references/MODELS.md](references/MODELS.md), or the free `pick_model` / `pick_voice` tools).

## Ask the user
Each strap's name and role, when it appears (seconds) and for how long (4-6 s), the brand colour, the font (brand file,
or a free one by name: `--font-family "Inter"`), side (left / right), and whether they want it burned in or as
overlays for their own editor.

## 1. Pick a design (free)
```
python <skill-dir>/scripts/lowerthirds.py --showcase --name "Maya Lin" --role "Head Roaster" --video "<clip url>" --accent "#FF5A1F"
```
`lower_thirds_showcase.jpg` shows all eight designs over a frame of the video. Show it and ask.

## 2. Burn in, or export overlays
```
python <skill-dir>/scripts/lowerthirds.py --video "<clip url>" --style bar --accent "#FF5A1F" \
  --item "Maya Lin|Head Roaster@1-6" --item "Brew & Bloom|Since 2014@9-14" --font-family "Inter"
python <skill-dir>/scripts/lowerthirds.py --item "Maya Lin|Head Roaster" --style glass --duration 5 --aspect 16:9   # .mov overlays only
```
- `--item "Name|Role@start-end"` repeats; times default to 1 s in, 4.5 s long. `--tag LIVE` for the news design;
  `--color2` for the split design's second block; `--alpha` adds a transparent .mov per strap when burning in too.
- Output: the burned video plus `*_preview.jpg` (each strap fully in), or one `.mov` per strap. Show the preview.

## Progress and output
Steps: inputs → animate straps → encode (percent) → done. `RESULT_JSON` has `output`, `preview`, `alpha_movs`.

## If something fails
Long names shrink nothing: keep names under ~28 characters or use two straps. Overlapping times: the later strap
cuts the earlier one short.

## Limits
Static text per strap (no live data). Right-to-left scripts are not shaped.
