Scripted
Scripted redefines the future of interactive media by introducing a highly creative, hands-free video intelligence platform that bridges the gap between static entertainment and agentic user interfaces.
Core trick
Chains Gemini script generation into per-clip Veo 3.1 video calls, then stitches clips with Gemini TTS dubbing.
Description
Scripted redefines the future of interactive media by introducing a highly creative, hands-free video intelligence platform that bridges the gap between static entertainment and agentic user interfaces.
README excerpt
# Scripted
AI-generated talk-show videos. Pick a host, drop a topic, get a watchable monologue with synced lip movement, on-demand dubbing, and a chat panel that knows the script.
Powered end-to-end by the Google Gen AI SDK (`@google/genai`): **Gemini 3.5 Flash** for research + script + chat, **Veo 3.1** for video clips, **Imagen 4** for host portraits, and **Gemini 2.5 Flash TTS** for dubbed audio.
## What it does
1. **Pick a host** — three generic monologue templates (Ava, Marcus, Leo), each with a portrait generated by Imagen. Personality is intentionally adaptive — voice emerges from the topic, not a hardcoded style.
2. **Drop a topic** — free text, news URL, or Hacker News link. Gemini researches it deeply.
3. **Generate** — Gemini writes an N-clip script (`durationSeconds / 8` clips); Veo renders each 8s clip in parallel using the supplied reference image so the host stays the same person across every shot; ffmpeg stitches them into one MP4; served from `/public/files` (or uploaded to Mux when configured).
4. **Watch** — Mux-style player, synced transcript, research context, in-page chat with the show ("ask the host"), and on-demand audio dubbing into Spanish, French, German, Portuguese, or Japanese.
## Stack
- **Next.js 16** (App Router, Turbopack) + React 19 + TypeScript
- **Tailwind CSS 4** with a `liquid-glass` dark theme + boomerang video background (gsap parallax)
- **`@google/genai` 2.6** — single SDK for Gemini / Veo / Imagen / TTS
- **PostgreSQL** via Dri