La ruta en cinco pasos
- Sube el MP4 una sola vez a Media Storage con
POST /medias/upload-file. Según la documentación, los videos aceptan hasta 500 MB. La respuesta trae la URL del archivo. - Confirma la URL. Pídela y verifica que responda como
video/mp4y que pese lo mismo que tu archivo. Es un minuto y evita publicar un video roto en seis redes. - Crea una publicación por red con
POST /social-media-posting/:locationId/posts: una llamada por cuenta conectada, cada una con suaccountIds, el texto ensummary, el video enmediay, para las cuentas conectadas por OAuth, eluserId. - Configura cada red por separado (abajo).
- Consulta hasta ver
published. Un 201 solo significa que HighLevel aceptó la publicación. El estado real llega después, y pasa porin_progress.
Puedes hacerlo con la API directa o con el MCP oficial de HighLevel desde Claude Code. La lógica es la misma.
Configuración que cambia en cada red
- Instagram: publícalo como
reel, con el tipo de reel dentro deinstagramPostDetailsy la opción de mostrarlo también en el feed. - TikTok: define el
privacyLevelexplícitamente entiktokPostDetails. En nuestra publicación pública dejamos la audiencia en "Todos" y activamos la divulgación de contenido de marca. - YouTube: usa
youtubePostDetailscon título, tipo (Short o video normal) y privacidad. Para un video horizontal 16:9 normal, el tipo de la publicación espost. - Pinterest: exige el tablero en
pinterestPostDetails.boardIds. Sin tablero no hay pin. - Threads y Bluesky: solo el texto y el video, pero respeta sus límites.
Límites oficiales por red (video)
| Red | Peso máximo | Duración | Texto |
|---|---|---|---|
| Instagram Reels | 300 MB | 3 s a 15 min | 2.200 caracteres |
| TikTok | 1 GB | 3 s a 180 s (personal) o 600 s (negocio) | 150 (personal) o 2.200 (negocio) |
| YouTube Shorts | no listado | hasta 60 s, vertical 9:16 | 5.000 caracteres |
| 2 GB | 4 s a 5 min | título 100, descripción 500 | |
| Threads | 1 GB | hasta 5 min | 500 caracteres |
| Bluesky | 50 MB | hasta 3 min | 300 caracteres |
Bluesky es la que más tropieza: un video de 80 MB que sirve para las otras cinco no entra, y un texto largo se rechaza. Prepara una variante corta del caption para esa red.
Cuánto tarda de verdad
Estos tiempos son nuestras mediciones, no una promesa de HighLevel: YouTube unos 12 segundos, Threads, Bluesky y Pinterest entre uno y dos minutos, Instagram y TikTok alrededor de cinco. Mientras una publicación esté en progreso, no la reenvíes: duplicas el post.
Las trampas que encontramos
- Un 201 no es publicación. Verifica cada red con la lista de publicaciones (
get-postsen el MCP) hasta verpublishedy su enlace. Si quedafailed, el error viene en la fila. - Google Business Profile no acepta este video. Es una red conectable en Social Planner, pero no para este formato.
- YouTube privado a público: hazlo en YouTube Studio. Nosotros publicamos primero en privado para probar y lo hicimos público desde Studio, no por API, para no crear una publicación duplicada. Al hacerlo, mira que no quede marcada la casilla de estreno instantáneo (Premiere): en nuestro caso quedó justo debajo de donde estaba la opción Público.
- El texto que escribes en el chat no obliga a la herramienta. Si automatizas con un agente, las reglas (cuentas permitidas, límites, tono) van dentro del prompt o del código, no en una conversación aparte.
Antes de automatizarlo
Muestra una vista previa con las cuentas, los textos y la configuración, y espera un sí humano antes de publicar. Publicar es lo único de este flujo que no se puede deshacer limpiamente.