Genera shorts de marketing vertical (9:16) para productos de Línea Directa. Invoca con /remotion-short-ld "producto" [--headline "texto"]
Genera un vídeo MP4 vertical (1080×1920) de marketing para un producto de Línea Directa.
El usuario pasa un producto y opcionalmente un headline:
/remotion-short-ld "seguro de coche"/remotion-short-ld "seguro de mascotas" --headline "Desde 9€/mes"--headline "texto" override del headline auto-generado.seguro-coche.shorts/[slug]/.Lanza en paralelo:
lineadirecta.com busca la página del producto para extraer beneficios, precios y coberturas.Si el scraping falla, pide al usuario los datos del producto manualmente (precio, beneficios, coberturas).
Con los datos del producto, genera:
Además, define un brief editorial mínimo:
Antes de generar el config.json, presenta la escaleta completa al usuario para su aprobación.
Genera un bloque de texto con este formato y preséntalo usando AskUserQuestion:
## Script: [nombre del producto]
**Escena 1 — hero ([duración]s)**
Producto: [nombre]
Headline: "[headline]"
**Escena 2 — benefits ([duración]s)**
Título: "[título]"
• [emoji] [texto beneficio 1]
• [emoji] [texto beneficio 2]
• [emoji] [texto beneficio 3]
**Escena 3 — pricing ([duración]s)**
Precio: [precio]
Periodo: [periodo]
Variante: [light/dark]
**Escena 4 — cta ([duración]s)**
CTA: "[texto]"
URL: [url]
Duración total: ~[total]s
Debajo de cada escena añade también:
Y para hero / cta añade:
Usa AskUserQuestion con dos opciones:
El bucle no tiene límite de iteraciones. Repite hasta que el usuario apruebe.
Con la escaleta aprobada, escribe shorts/[slug]/config.json válido según src/compositions/ProductShort/schema.ts.
Incluye ya:
brieftiming / beats si la escaleta ya los deja clarosSi el short lleva locución:
voiceover.provider: "elevenlabs" cuando se busque más control expresivovoiceover.elevenlabs para afinar modelId, voiceSettings, speed, seed, applyTextNormalization o continuidad entre clipsprompt oculto separado del copy; el tono debe quedar trazable en el JSONhero (3-5s): nombre del producto + headline en fondo rojobenefits (5-8s): lista de beneficios con iconospricing (3-5s): precio destacado (variant "dark" para impacto)cta (3-4s): call to action + URLPhoneMascot (SVG del teléfono con ruedas). Animations: "entry" (intro), "idle" (breathing), "dial" (terminal), "ring" (attention)Invoca la skill remotion-director antes del render final.
La skill debe:
timing y beats cuando faltenSi el usuario decide omitirla, avísalo antes del render.
npx tsx scripts/render.ts shorts/[slug]/config.json
Si falla con error de Chromium:
npx remotion browser ensure
npx tsx scripts/render.ts shorts/[slug]/config.json
Informa al usuario:
shorts/[slug]/output.mp4useCurrentFrame() via spring() o interpolate().config.json es el source of truth. Si el usuario quiere ajustes, edita el JSON y re-renderiza.shorts/[slug]/output.mp4 (gitignored). Los config.json sí se commitean.schema.ts (import type { HeroSceneProps } from "../schema") — no uses Extract<...>useThemeTokens() para todos los colores — nunca hardcodees #CC3333, #FFFFFF, system-ui etc.useSlideIn() de hooks/useSlideIn.tstokens.primary (#CC3333), tokens.primaryForeground (#FFFFFF), tokens.secondary (#225050), tokens.fontFamily (Arial)PhoneMascot acepta prop darkBg para outlines claros sobre fondos oscuros