Herramienta · Claude × Ugly Ads

Ugly ads en serie. Sin abrir Edits.

Le pasás a Claude la promo y el link de una carpeta de Drive con videos. Te propone el copy, elige el clip que mejor acompaña el mensaje, ubica el texto con las burbujas de Instagram donde no tapa la acción y te devuelve el MP4 con música libre de derechos. Lo que antes era una tarde en Edits, ahora es un mensaje.

FB Facundo Barreda · @paidbyfacuSe instala en ~5 minutos
✳ /ugly-ads:crear
🎵 hip-hop-driver.mp3
0

temas de música incluidos, de dominio público y aptos para pauta

0

comandos para crear, cambiar texto, clip, corte, estilo, música o hacer variantes

$0

open source (MIT). Renderiza en tu compu, sin créditos ni suscripciones extra

01 Qué es

Feos a propósito. Y venden.

Un ugly ad es un video vertical que parece un story cualquiera: un clip de fondo (alguien entrenando, el producto, una toma de stock) y encima texto fijo con el fondo de colores de Instagram. Sin animaciones ni diseño de agencia. Funciona porque se mezcla con el contenido orgánico y el mensaje se lee de un vistazo.

El problema es armarlos: elegir el clip, escribir cada burbuja en Edits, acomodarlas para que no tapen la cara, buscar música y exportar. Multiplicalo por las variantes que necesitás para testear y se te va el día. Esta herramienta le da a Claude todo lo necesario para hacerlo solo, con los mismos colores, fuentes y emojis que usarías en Instagram.

El reparto

Vos decidís qué decir. Claude arma el video.

🧑‍💼

Vos

Le contás la promo, le pasás la carpeta de videos y aprobás el copy y el preview.

✳️

Claude

Lee el contexto, escribe el copy, elige el clip, decide dónde va el texto y revisa que se lea.

🎞️

Ugly Ads (MCP)

Dibuja las burbujas, recorta el clip a 9:16, suma la música y exporta el MP4.

Funciona para cualquier marca: cursos, gimnasios, ecommerce, servicios. El estilo sale de lo que le pidas y del contexto de tu proyecto.

🔑

No necesitás API key. La herramienta no llama a ninguna IA por su cuenta: todo lo que piensa (copy, elección del clip, ubicación del texto) lo hace tu propio Claude, con tu cuenta y tu plan. El video se arma en tu compu, así que no gasta créditos ni pasa por ningún servidor. Lo único que consume es uso normal de tu plan, porque Claude mira algunas imágenes (miniaturas y previews) en el proceso.

02 El proceso

Primero el mensaje, después el video

Claude sigue siempre el mismo orden. Nunca arranca a renderizar sin que hayas aprobado lo que dice el anuncio.

1

Contexto

Junta lo que ya sabe: lo que hablaron en el chat, su memoria, los documentos del proyecto (promos vigentes, precios, reglas de marca) y lo que le pases. Si falta algo clave, te pregunta. No inventa precios ni fechas.

2

Copy

Te propone 3 versiones ya divididas en bloques: título, soporte, beneficios, oferta y llamado a la acción, con los cortes de línea y el color de cada burbuja. Elegís o ajustás.

3

Clip

Lee tu carpeta de Drive y mira una hoja con miniaturas numeradas de todos los videos. Elige el que mejor acompaña el mensaje y te dice por qué.

4

Corte

Los videos de gym o de stock suelen tener una previa larga hasta que pasa la acción. Claude recorre el clip entero (fotogramas con su segundo y cuánto movimiento hay en cada momento) y elige desde qué segundo hasta cuál se ve lo interesante: el ejercicio, el movimiento, el producto en uso. Ese tramo define cuánto dura el anuncio y te lo dice antes de seguir.

5

Ubicación

Analiza el clip cuadro por cuadro: dónde hay movimiento, dónde están las caras y qué partes tapa la interfaz de Instagram. Pone el texto en la zona más tranquila, con una sombra suave detrás para que se separe del video sin taparlo.

6

Preview

Genera una imagen del anuncio con las zonas de la interfaz marcadas en rojo y la revisa: que se lea en 2 segundos, que no tape nada importante, que no queden palabras sueltas. Te la muestra.

7

Render + música

Exporta el MP4 en 1080×1920 con un tema aleatorio del estilo que encaje (gym, hip hop, electrónica, épico, chill). ¿No te gusta? Pedís otro y cambia solo la música.

✓

Cambios sin empezar de cero: cada video queda guardado con su configuración. Podés pedir "cambiá el precio", "otro clip", "más arriba" u "otra música" y Claude toca solo eso.

03 Antes de instalar

Tres cosas en tu compu

La herramienta corre en tu computadora (por eso no cobra el render). Necesita estos tres programas, todos gratis:

🟩

Node.js 18 o más

Hace andar la herramienta. Si ya usás Claude Code, probablemente lo tenés.

🎞️

FFmpeg

Es el que arma el archivo de video: recorta, superpone el texto y mezcla la música.

🌐

Chrome o Edge

Se usa en modo invisible para dibujar las burbujas con las fuentes y emojis exactos.

  1. Abrí el menú Inicio, buscá PowerShell y pegá esto (clic derecho pega). Aceptá si te pide permiso.
POWERSHELL
$ winget install OpenJS.NodeJS.LTS
$ winget install Gyan.FFmpeg
  1. Cerrá y volvé a abrir Claude para que encuentre lo que instalaste. Chrome o Edge ya vienen en casi todas las PCs con Windows.
  1. Abrí la Terminal. Si no tenés Homebrew, instalalo primero desde brew.sh. Después:
TERMINAL
$ brew install node ffmpeg
  1. Si no tenés Google Chrome, instalalo desde google.com/chrome. Reiniciá Claude.
04 Instalación

Instalá el MCP en tu Claude

Cada persona lo instala en su propio Claude y lo usa con su cuenta. Elegí dónde usás Claude. Si tenés Claude Code, andá por la primera opción: trae los comandos con /.

  1. Abrí Claude Code (en la terminal o en la app) y pegá estos dos comandos, uno por vez:
CLAUDE CODE
> /plugin marketplace add paidbyfacu/ugly-ads
> /plugin install ugly-ads@paidbyfacu
  1. Reiniciá Claude Code (o escribí /reload-plugins).
  2. Verificá que todo esté bien con /ugly-ads:setup. Te dice si falta FFmpeg o el navegador y cómo instalarlo.
DESDE LA TERMINAL (ALTERNATIVA)
$ claude plugin marketplace add paidbyfacu/ugly-ads
$ claude plugin install ugly-ads@paidbyfacu
  1. En Claude Desktop andá a Settings → Developer → Edit Config. Se abre el archivo claude_desktop_config.json.
  2. Pegá esto (si ya tenías otros MCP, sumá solo el bloque "ugly-ads" adentro de mcpServers):
CLAUDE_DESKTOP_CONFIG.JSON
{
  "mcpServers": {
    "ugly-ads": {
      "command": "npx",
      "args": ["-y", "github:paidbyfacu/ugly-ads"]
    }
  }
}
  1. Guardá, cerrá Claude Desktop del todo y volvé a abrirlo. Los comandos aparecen en el botón + del chat, dentro de Ugly Ads.
  2. En Windows, si no arranca, cambiá "command": "npx" por "command": "cmd" y los args por ["/c", "npx", "-y", "github:paidbyfacu/ugly-ads"].
  1. Si preferís sumar solo el MCP a Claude Code, sin el plugin (no trae los comandos con /ugly-ads:, pero se lo pedís con tus palabras):
TERMINAL
$ claude mcp add ugly-ads -- npx -y github:paidbyfacu/ugly-ads

✳ Sirve igual para cualquier cliente compatible con MCP: el comando es npx -y github:paidbyfacu/ugly-ads por stdio.

claude · ~/promos
/ugly-ads:setup
ugly_setup()
✓ ffmpeg · ✓ Chrome · ✓ fuentes Poppins + Figtree
Carpeta de trabajo: ~/UglyAds
Todo listo. Pasame la promo y el link de la carpeta de Drive con los videos y arrancamos.
escribí tu pedido

✳ Así se ve cuando quedó bien instalado. Recreación ilustrativa de la interfaz.

05 Comandos

Uno para crear, cinco para ajustar

Escribí /ugly-ads y aparecen todos. Después del comando podés agregar lo que quieras con tus palabras. También funciona sin comando: "haceme un ugly ad para..." y Claude usa la herramienta solo.

/ugly-ads:crear [promo + link de Drive]

El flujo completo: contexto, 3 opciones de copy, elección del clip, ubicación del texto, preview y render con música.

/ugly-ads:texto [cambio]

Cambia el copy del último ugly ad. Mantiene clip, colores y música.

/ugly-ads:video [nº, criterio o link]

Otro clip de fondo ("alguien en barras", "el 7"): lo corta en la acción y reacomoda el texto.

/ugly-ads:musica [mood o tema]

Vacío = otro tema al azar. También "hip hop", "épico" o el nombre de un tema.

/ugly-ads:estilo [cambio]

Colores, fuente (Instagram o Poppins), tamaño o posición del texto.

/ugly-ads:variantes [cantidad]

Versiones para test A/B: cambia una variable fuerte por versión (hook, clip o colores).

/ugly-ads:corte [momento o segundos]

Cambia el tramo del video de fondo: "que arranque cuando levanta la pesa" o "del 0:12 al 0:24".

/ugly-ads:setup

Revisa que estén FFmpeg, el navegador y las fuentes, y te dice cómo arreglar lo que falte.

06 Prueba real

Tu primer ugly ad, en 3 pasos

1

Prepará la carpeta de videos

Subí tus clips a una carpeta de Google Drive (pueden estar en subcarpetas). Clic derecho → Compartir → Acceso general: "Cualquier persona con el enlace" como Lector. Copiá el link. Mejor si son verticales, de 5 a 20 segundos y sin texto encima.

2

Pedile el anuncio

Abrí Claude en la carpeta de tu proyecto (así lee los docs de la marca) y escribí:

🎬 Primer ugly ad
/ugly-ads:crear ugly ad para el curso de personal trainer con 30% OFF hasta el domingo, público gente que entrena y quiere vivir de esto. Videos: https://drive.google.com/drive/folders/...
3

Elegí el copy, mirá el preview y listo

Claude te muestra 3 opciones de copy, después el preview con las zonas de Instagram marcadas en rojo (no salen en el video final) y al final te pasa la ruta del MP4. Quedan en ~/UglyAds/fecha/.

claude · ~/marca
/ugly-ads:crear ugly ad para el curso de personal trainer con 30% OFF hasta el domingo. Videos: drive.google.com/drive/folders/…
Ángulo: urgencia por precio. Te dejo 3 opciones: A) "Curso de Personal Trainer" / "100% online + certificado" / "30% OFF solo hasta el domingo 🔥" / "Inscribite hoy". ¿Cuál vamos?
La A, pero que diga "6 cuotas sin interés".
ugly_footage(drive.google.com/…)
18 clips · elijo el #7: entrenador corrigiendo una sentadilla, encaja con "vivir de esto"
ugly_scan(clip 7, 12 s)
El clip dura 41 s: la sentadilla arranca en 0:14. Corto del 0:14 al 0:26
ugly_inspect(0:14 → 0:26)
El sujeto ocupa la mitad de abajo. Texto arriba, centro en 30%
ugly_preview()
✓ Se lee completo, nada en zona roja, sin palabras sueltas
ugly_render(music: gym)
✓ ~/UglyAds/2026-10-11/curso-personal-trainer-30-off.mp4 · 12 s · Hip Hop Driver
Listo. ¿Hago 2 variantes con otro hook para testear?
dale, y una con otro clip

✳ Así es el ida y vuelta. Recreación ilustrativa; los mensajes exactos varían.

💡 ¿No usás Drive? También le podés pasar una carpeta de tu compu: "los videos están en C:\videos\gym".
07 Estilos y colores

Los mismos de Instagram, sin abrir Instagram

Tres tipos de bloque que se combinan de arriba hacia abajo. Las fuentes son Instagram Sans (si la tenés instalada; si no, Figtree, la más parecida) o Poppins, y los emojis salen como en iPhone.

Instructorado de
Calistenia
title

Píldora con degradé. Para el producto o el hook.

Bolsa laboral activa ✅
Videoteca +170
ejercicios
bubble

El fondo de texto clásico, con las líneas fusionadas.

Curso 100% online
Con certificado
plain

Texto sin fondo, con sombra suave. Para zonas tranquilas.

whiteblackmagentapinkredorangeyellowgreenbluepurple#tu-color

Podés pedir los colores de tu marca ("burbujas con el rosa #fe006b"), cambiar el tamaño, mover el bloque, subir o bajar la sombra detrás del texto y elegir formato 9:16 (Reels y Stories), 4:5 o 1:1 (feed).

♪

La música: vienen 25 temas de FreePD (Kevin MacLeod y otros), de dominio público (CC0): se pueden usar en anuncios sin dar créditos. Están recortados en su parte con más energía. Si querés usar los tuyos, poné los mp3 en ~/UglyAds/musica.

08 En el día a día

Prompts listos para copiar

Cambiá lo resaltado por tu caso.

🔥 Promo con fecha
/ugly-ads:crear ugly ad para el cyber monday: 40% OFF en todos los planes hasta el martes. Tono urgente, CTA a WhatsApp. Videos: [link de Drive]
🧪 Tanda para testear
/ugly-ads:variantes 4: una con hook de precio, una con hook de resultado, una con hook de miedo a perderse los cupos y una con otro clip.
🎨 Con mi marca
/ugly-ads:estilo título con degradé #6001e2 → #ea0849, burbujas blancas y una sola burbuja en #fe006b para el precio. Fuente Poppins.
📲 Desde el contexto
/ugly-ads:crear usá la promo vigente que tenés en los docs del proyecto y armá 3 ugly ads, uno por buyer persona. Videos en la carpeta de siempre.
✂️ Ajuste fino
/ugly-ads:texto sacá la línea del certificado, poné el precio en **negrita** y que el CTA diga "Escribinos ahora".
🎵 Otra vibra
/ugly-ads:musica algo más épico y subile un poco el volumen.
09 Si algo falla

Problemas comunes y cómo salir

Primer paso siempre: /ugly-ads:setup. Revisa todo y te dice qué falta.

Falta ffmpeg +
Windows: winget install Gyan.FFmpeg. Mac: brew install ffmpeg. Después cerrá y abrí Claude para que lo encuentre. Si lo instalaste en otro lado, podés indicar la ruta con la variable FFMPEG_PATH.
"La carpeta de Drive no es pública" +
En Drive: clic derecho en la carpeta → Compartir → Acceso general → "Cualquier persona con el enlace" (Lector). Pasale el link de la carpeta, no el de un archivo suelto.
Algunos clips salen "sin miniatura" +
Drive todavía no procesó esos videos (pasa con los recién subidos). Esperá unos minutos o pedile a Claude que los inspeccione igual: los descarga y los mira cuadro por cuadro.
Los colores del video salen lavados o grises +
Pasaba con videos grabados en HDR (iPhone con HDR activado). Desde la versión 0.2.0 se convierten solos a colores normales. Si te pasa, actualizá (pregunta de arriba) y volvé a renderizar.
El texto quedó chico +
Había demasiado texto para la zona segura y se achicó para entrar. Pedile que recorte el copy (lo ideal son hasta 6 bloques y unas 25 palabras) en lugar de achicar la letra.
La fuente no es la de Instagram +
Instagram Sans no se puede incluir en la herramienta, pero si la instalás en tu compu (se descarga gratis desde los recursos de marca de Instagram) se usa sola. Mientras tanto usa Figtree, que es muy parecida.
¿Cómo actualizo a la última versión? +
Las actualizaciones no llegan solas a todos: cada persona actualiza su Claude. En Claude Code: /plugin marketplace update paidbyfacu y reiniciá. Para no tener que hacerlo a mano, en /plugin → Marketplaces → paidbyfacu activá la actualización automática. En Claude Desktop alcanza con cerrar Claude del todo y volver a abrirlo. Para ver qué versión tenés: /plugin → Installed.
¿Cómo lo desinstalo? +
En Claude Code: /plugin uninstall ugly-ads@paidbyfacu. En Claude Desktop: borrá el bloque "ugly-ads" del archivo de configuración. Tus videos quedan en ~/UglyAds; podés borrar esa carpeta si no los necesitás.
¿Qué plan de Claude necesito? +
Cualquier plan que te deje usar Claude Code (Pro o Max) o agregar MCPs locales en Claude Desktop. No hace falta API key ni cuenta de Anthropic Console.
No aparecen los comandos /ugly-ads +
Reiniciá Claude Code o escribí /reload-plugins. Si lo instalaste como "Solo MCP", no hay comandos: pedíselo con tus palabras ("haceme un ugly ad...").
¿Lo probaste?

Contame cómo te fue. Seguime en Instagram.

Si algo no te funciona o se te ocurre una mejora, escribime por DM. Y si te sirvió, seguime: ahí aviso cuando hay herramientas nuevas.