🎬 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_IDSrotativos. - 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-routery (si se programa) plist martes+viernes 17:00.