← Volver al catálogo

🎬 Reel Generator

Archivo: /Users/user/rifai-agents/agentes/content/reel-generator.ts · Plist: ninguno encontrado en cron/ · Horario: comentado como "martes y viernes 17:00" en el código, pero NO hay plist cargado → hoy NO corre solo (solo manual)

> No existe com.rifai.reel-generator.plist ni ninguna referencia a este archivo en cron/. Para automatizarlo habría que crear un plist con StartCalendarInterval para martes y viernes a las 17:00.

Qué hace

Convierte la foto de un producto Shopify en un reel vertical 9:16 de ~5 segundos usando fal.ai (kling-video, image-to-video) — sin ffmpeg local — y lo auto-publica como FB Reel e IG Reel. Genera con el LLM el prompt de movimiento cinemático y la caption (hook + beneficios + CTA + hashtags). Rota entre los productos top del catálogo.

Cómo funciona

1. Carga .env y estado (data/reel-generator-state.json), elige producto de TOP_PRODUCT_IDS por índice rotativo.

2. Descarga el producto vía Shopify REST; aborta si no tiene foto.

3. gemini-cli (sonnet) genera JSON con motion_prompt (inglés, movimiento sutil), caption (español) y hashtags.

4. imageToVideo(): envía la foto hero a fal.ai kling-video/v2.1/standard/image-to-video (duration 5, aspect 9:16) y hace polling hasta COMPLETED (puede tardar 2-4 min).

5. Construye la caption final con link al producto.

6. Publica FB Reel: sesión de upload (video_reels?upload_phase=start → upload por file_url → espera "ready" → upload_phase=finish PUBLISHED).

7. Publica IG Reel: /media media_type=REELS con video_url → poll status_code=FINISHED/media_publish.

8. Guarda histórico y notifica vía router (creative_video_ready).

Datos/APIs

  • Shopify Admin REST (/admin/api/2024-10). Vars: SHOPIFY_STORE, SHOPIFY_ACCESS_TOKEN.
  • fal.ai (kling-video/v2.1/standard/image-to-video, modelo de vídeo CARO). Var: FAL_API_KEY.
  • Meta Graph API v21.0 (FB video_reels, IG REELS). Vars: META_PAGE_ID, META_PAGE_TOKEN/META_ACCESS_TOKEN, INSTAGRAM_BUSINESS_ID (default 17841401185807202).
  • LLM local tools/gemini-cli (sonnet).
  • Notificaciones: tools/notify-router.ts (Mario creative).

Cómo probarlo

cd /Users/user/rifai-agents && npx tsx agentes/content/reel-generator.ts

Espera: producto elegido, plan (motion + caption), generación de vídeo (espera larga, 2-4 min), publicación FB Reel e IG Reel. Publica de verdad y consume crédito fal.ai de vídeo (caro) — usar con cautela.

Si se rompe / recuperar

No tiene plist, así que no hay nada que recargar; si se quiere automatizar, crear ~/Library/LaunchAgents/com.rifai.reel-generator.plist (martes/viernes 17:00) y cargarlo con launchctl load. No tiene log dedicado por no estar programado; en ejecución manual la salida va a stdout. Fallos típicos: kling-video tarda/FAILED, token Meta caducado, producto sin foto.

Cómo replicarlo

  • Lector .env + TOP_PRODUCT_IDS rotativos.
  • Shopify REST para foto hero.
  • LLM local para motion_prompt + caption.
  • fal.ai kling-video image-to-video con polling largo.
  • Cliente Meta Graph: FB video_reels (start/upload/finish) e IG REELS (container + publish con poll).
  • notify-router y (si se programa) plist martes+viernes 17:00.