Plataformas y generadores
Qué falta exactamente para publicar solos en Instagram y en YouTube, qué generadores hay disponibles hoy, lo que cuestan, y en qué orden conviene hacerlo.
Seis cosas. La primera ya está hecha.
-
Una imagen por pieza hecho
Instagram no admite publicar texto solo, y ut-content solo generaba una portada por artículo. Ahora cada pieza tiene su botón Generar imagen, en el formato de su red — 4:5 vertical para Instagram, que es el que más alto ocupa en el feed, y en un scroll vertical la altura es el tiempo que te miran. Opcionalmente con un rótulo corto encima.
-
Que esa imagen tenga una URL pública
La API de Instagram no acepta que le subas un fichero: le pasas una URL y va a buscarla. Las imágenes de ut-content se sirven en
/api/campaigns/…/asset/…, que está detrás de la sesión, así que Instagram no las vería. La salida limpia es la que ya usamos para las portadas: que la imagen viaje al CMS con el artículo y quede publicada enuniversaltelecom.es, que sí es pública. -
App de Meta y verificación de empresa
Una app tipo Business y la verificación de Universal Telecom como empresa.
-
Permisos revisados por Meta
instagram_basic,instagram_content_publishypages_show_list. Es App Review: el mismo trámite que lleva semanas parado en LinkedIn. Es el camino crítico — todo lo demás se puede hacer mientras tanto. -
La cuenta, en modo Business o Creator
Y vinculada a una página de Facebook. Sin eso la API no la ve.
-
El publicador
Dos llamadas: crear el contenedor con la URL de la imagen y el pie, y publicarlo. Es el módulo más pequeño de los tres que faltan. El tope es de 100 publicaciones cada 24 horas por cuenta, muy por encima de lo que generamos.
Sobre «que sea viral»
Nadie puede prometer eso, pero sí hay cosas que se sabe que mueven la aguja y que hoy ut-content no hace:
| Palanca | Estado |
|---|---|
| Formato 4:5, que ocupa más pantalla | hecho |
| Imagen legible al tamaño de una uña | está en el prompt |
| Gancho en la primera línea del pie — solo se ven ~125 caracteres antes del «más» | el texto se escribe para LinkedIn |
| Carrusel en vez de imagen suelta: es lo que más se guarda | falta — son N imágenes por pieza |
| Hashtags en el primer comentario, no en el pie | falta |
| Reels: es lo que el algoritmo empuja | falta — necesita vídeo |
TikTok
Construido con la Content Posting API (Direct Post). La
pieza de TikTok es el reel de la campaña con su pie; ut-content lo sube por
FILE_UPLOAD (no hace falta verificar el dominio) y espera a que
TikTok lo procese. Lo que falta es un trámite, no código:
- App en TikTok for Developers falta
Login Kit + Content Posting API con Direct Post, y la URL de retorno de ut-content. Client key y secret en Conexiones → TikTok.
- Conectar la cuenta de la empresa falta
Autoriza quien tenga la cuenta. Token de 24 h con refresco de 365 días; ut-content lo renueva solo.
- Auditoría de TikTok camino crítico
Hasta pasarla, todo sale en privado (
SELF_ONLY) y cinco cuentas como mucho en 24 h. Se pide con un vídeo de demostración del flujo.
X
Construido con la API v2 de X: posts de texto (280 caracteres, con imagen y enlace) y vídeos subidos por trozos. Es la red con menos trámite: X no revisa la app.
- App en console.x.com falta
OAuth 2.0 activado, tipo «Web App», permisos de lectura y escritura, y la URL de retorno de ut-content. Client ID y secret en Operador → Apps de plataforma → X (una para todas las empresas).
- Crédito en la consola falta
X cobra por uso desde 2026: en octubre, unos 0,015 $ por post y 0,20 $ si el post lleva enlace. Sin crédito, X responde 402 y el post espera.
- Conectar la cuenta de la empresa
Conexiones → X → Conectar cuenta. El acceso dura 2 h y ut-content lo renueva solo.
YouTube
Dato comprobado hoy contra el catálogo de OpenRouter: de sus 431 modelos, ninguno genera vídeo. 431 devuelven texto, 11 devuelven imagen y 4 devuelven audio. Por ahí no hay vídeo, ni caro ni barato.
Así que hay dos caminos, y no son igual de buenos.
Camino A — un generador de vídeo por su cuenta
Veo, Sora, Runway, Kling. Integración directa con cada uno, fuera de OpenRouter, con su credencial y su facturación aparte. Generan planos de segundos, no un explicativo de tres minutos: habría que encadenar tomas y seguiría sin haber una voz que explique nada. Caro y no resuelve el problema.
Camino B — vídeo narrado sobre imágenes recomendado
Un explicativo de dos a cinco minutos no necesita un modelo de vídeo. Necesita un guion, una voz y unas imágenes que cambien cuando toca. Las tres cosas están al alcance:
- El guion — ya lo escribe ut-content.
- La voz —
openai/gpt-audio-mini, que está en OpenRouter y ya tenemos conectado. - Las imágenes — el mismo generador que acabamos de enchufar, en 16:9.
- El montaje — ffmpeg. Hay que añadirlo a la imagen del contenedor: hoy no está.
Sale un vídeo de verdad, con subtítulos generados del propio guion —que es lo que YouTube indexa— y en los cuatro idiomas sin rehacer nada más que la voz.
Y para subirlo
- Proyecto en Google Cloud con YouTube Data API v3.
- Pantalla de consentimiento y verificación de Google:
youtube.uploades un scope sensible y lleva auditoría. - Cuota: 10.000 unidades al día y una subida cuesta unas 1.600 → seis vídeos diarios. De sobra.
Generadores de imagen
Los once modelos de OpenRouter que devuelven imagen, quitando los dos enrutadores automáticos. El precio por token de salida es exacto —sale de su API—; el precio por imagen es una estimación, porque depende de cuántos tokens ocupe cada imagen (unos 1.290 en los de Google a 1K).
| Modelo | $/token salida | ≈ $/imagen | Para qué |
|---|---|---|---|
google/gemini-2.5-flash-image Nano Banana | 0,000030 | ~0,039 | El suelo de precio. Contexto corto. |
google/gemini-3.1-flash-lite-image Nano Banana 2 Lite — el que usamos | 0,000030 | ~0,039 | Mismo precio y generación más nueva. Buena elección por defecto. |
google/gemini-3.1-flash-image Nano Banana 2 | 0,000060 | ~0,077 | El doble de caro; mejor seguimiento del prompt. |
google/gemini-3-pro-image Nano Banana Pro | 0,000120 | ~0,155 | Texto legible dentro de la imagen. El que hay que usar cuando la pieza lleva rótulo. |
openai/gpt-5-image-mini | 0,000008 | ~0,008–0,033 | El más barato con diferencia. |
openai/gpt-5-image | 0,000040 | ~0,04–0,17 | Alternativa a Nano Banana Pro. |
openai/gpt-5.4-image-2 | 0,000030 | ~0,03–0,12 | El más reciente de OpenAI. |
Recomendación. Dejar gemini-3.1-flash-lite-image
para las imágenes sin texto —que son la mayoría— y usar
gemini-3-pro-image solo cuando la pieza lleva rótulo. Cuatro
veces más caro, pero es la diferencia entre un rótulo legible y letras
inventadas, y son pocas piezas.
Voz y música
Cuatro modelos devuelven audio. Son los que hacen viable el camino B de YouTube.
| Modelo | $/token audio | Para qué |
|---|---|---|
google/gemini-3.8-flash-tts | 0,000009 | La narración desde el 21 oct. 2026 (voz Charon por defecto, por /audio/speech). Céntimos por vídeo. |
openai/gpt-audio-mini | 0,0000024 | La de antes. Sonaba con eco y con acento latino aunque se le pidiera España. |
openai/gpt-audio | 0,000064 | Igual que la mini, más cara. Solo la usan los vídeos del manual. |
google/lyria-3-pro-preview | sin precio publicado | Música de fondo. |
google/lyria-3-clip-preview | sin precio publicado | Clips musicales cortos. |
El plan
Ordenado por lo que da antes de sí, no por lo llamativo.
-
Pedir los permisos hoy bloqueante
App Review de Meta y verificación de Google. Tardan semanas y no dependen de nosotros; todo lo demás sí. Si solo se hace una cosa de esta lista, que sea esta, y hoy.
-
Un pie escrito para Instagram
Una variante del prompt con el gancho en los primeros 125 caracteres y los hashtags al final. No es una integración, es un fichero. Es la palanca de alcance más barata de la lista.
-
La imagen de la pieza al CMS
Para que tenga URL pública. Sirve para Instagram, para Facebook y para las tarjetas de enlace de todas las demás. Se apoya en el camino que ya recorren las portadas.
-
Facebook primero, Instagram después
Comparten app de Meta. Facebook es una sola llamada y no exige imagen, así que sirve para probar toda la cadena de credenciales con el publicador más simple. Con eso funcionando, Instagram son dos llamadas más.
-
ffmpeg en el contenedor
Una línea en el Dockerfile. Sin esto no hay camino B.
-
El vídeo narrado
Guion → voz con
gpt-audio-mini→ imágenes 16:9 → montaje con ffmpeg → subtítulos del propio guion. Es el paso más largo, y el que convierte el canal de YouTube en algo que existe. -
Carrusel y primer comentario
Las dos palancas de Instagram que quedan. Tienen sentido cuando ya publica solo y se puede medir si sirven.
Nada de esto arregla lo que de verdad falta para saber si funciona: ut-content publica pero no mide. Sin métricas de vuelta, «viral» es una opinión. Cuando haya dos redes publicando solas, lo siguiente debería ser leer sus números, no añadir una tercera.