ut-content

Manual Ir al panel

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.

Instagram

Seis cosas. La primera ya está hecha.

  1. 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.

  2. 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 en universaltelecom.es, que sí es pública.

  3. App de Meta y verificación de empresa

    Una app tipo Business y la verificación de Universal Telecom como empresa.

  4. Permisos revisados por Meta

    instagram_basic, instagram_content_publish y pages_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.

  5. La cuenta, en modo Business o Creator

    Y vinculada a una página de Facebook. Sin eso la API no la ve.

  6. 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:

PalancaEstado
Formato 4:5, que ocupa más pantallahecho
Imagen legible al tamaño de una uñaestá 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 guardafalta — son N imágenes por pieza
Hashtags en el primer comentario, no en el piefalta
Reels: es lo que el algoritmo empujafalta — necesita vídeo

La más rentable de esas cuatro que faltan es la primera: escribir el pie para Instagram en vez de reaprovechar el de LinkedIn. Es una variante del prompt, no una integración.

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:

  1. 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.

  2. 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.

  3. 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.

Sin cuenta conectada la pieza es manual: descargar el vídeo y subirlo desde la app. Detalle en docs/TIKTOK.md.

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.

  1. 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).

  2. 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.

  3. Conectar la cuenta de la empresa

    Conexiones → X → Conectar cuenta. El acceso dura 2 h y ut-content lo renueva solo.

Los vídeos salen sin enlace (el vídeo es el contenido y así cuestan menos); los posts de un artículo, con él. Las métricas no se leen por API porque X también cobra cada lectura.

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:

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

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≈ $/imagenPara qué
google/gemini-2.5-flash-image Nano Banana0,000030~0,039El suelo de precio. Contexto corto.
google/gemini-3.1-flash-lite-image Nano Banana 2 Lite — el que usamos0,000030~0,039Mismo precio y generación más nueva. Buena elección por defecto.
google/gemini-3.1-flash-image Nano Banana 20,000060~0,077El doble de caro; mejor seguimiento del prompt.
google/gemini-3-pro-image Nano Banana Pro0,000120~0,155Texto legible dentro de la imagen. El que hay que usar cuando la pieza lleva rótulo.
openai/gpt-5-image-mini0,000008~0,008–0,033El más barato con diferencia.
openai/gpt-5-image0,000040~0,04–0,17Alternativa a Nano Banana Pro.
openai/gpt-5.4-image-20,000030~0,03–0,12El 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.

Para hacerse una idea: una campaña con 9 piezas y una imagen cada una son unos 0,35 $ con el modelo barato. Con campañas a diario, unos 10 $ al mes en imágenes.

Voz y música

Cuatro modelos devuelven audio. Son los que hacen viable el camino B de YouTube.

Modelo$/token audioPara qué
google/gemini-3.8-flash-tts0,000009La narración desde el 21 oct. 2026 (voz Charon por defecto, por /audio/speech). Céntimos por vídeo.
openai/gpt-audio-mini0,0000024La de antes. Sonaba con eco y con acento latino aunque se le pidiera España.
openai/gpt-audio0,000064Igual que la mini, más cara. Solo la usan los vídeos del manual.
google/lyria-3-pro-previewsin precio publicadoMúsica de fondo.
google/lyria-3-clip-previewsin precio publicadoClips musicales cortos.

El plan

Ordenado por lo que da antes de sí, no por lo llamativo.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. ffmpeg en el contenedor

    Una línea en el Dockerfile. Sin esto no hay camino B.

  6. 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.

  7. 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.