Títulos, tags, privacidad y Shorts: upload YouTube video through API

Un solo POST autenticado te permite upload YouTube video through API con un título, hasta 20 tags, un estado de privacidad y el id de una playlist existente adjuntos. Aquí YouTube es solo video (nada de posts de Comunidad, ni de imagen ni de texto), así que el payload es pequeño y las reglas son estrictas.

Un payload de POST /social-posts con un objeto youtubeConfigs que contiene videoTitle, tags, privacyStatus y playlistId

La Confianza de Creadores y Equipos

Descubre cómo creadores, marketers y pequeñas empresas usan AdaptlyPost para mantenerse constantes y ahorrar horas cada semana.

Soy ingeniero de software, no marketero. Mi pareja lleva una página de TikTok, así que le echo una mano programando sus publicaciones, preparo todo de una vez y dejo que la IA se encargue de los textos. Ahora me lleva unos 20 minutos a la semana.

Denys Zinych
Denys Zinych

Ingeniero de Software

Manejo mi página de nail art y una marca personal. Programar ambas desde un solo panel lo cambió todo, ahora publico de manera constante y mi engagement subió bastante en un mes.

Irena
Irena

Creadora de Contenido

Soy SWE y, la verdad, pésimo para publicar de forma constante. Simplemente organizo una semana de publicaciones para mi marca personal cuando tengo un rato libre, y la IA redacta los textos por plataforma para que no tenga que reescribir lo mismo de cinco maneras diferentes.

Dorian Opacki
Dorian Opacki

Ingeniero de Software

Soy ingeniero de software, no marketero. Mi pareja lleva una página de TikTok, así que le echo una mano programando sus publicaciones, preparo todo de una vez y dejo que la IA se encargue de los textos. Ahora me lleva unos 20 minutos a la semana.

Denys Zinych
Denys Zinych

Ingeniero de Software

Manejo mi página de nail art y una marca personal. Programar ambas desde un solo panel lo cambió todo, ahora publico de manera constante y mi engagement subió bastante en un mes.

Irena
Irena

Creadora de Contenido

Soy SWE y, la verdad, pésimo para publicar de forma constante. Simplemente organizo una semana de publicaciones para mi marca personal cuando tengo un rato libre, y la IA redacta los textos por plataforma para que no tenga que reescribir lo mismo de cinco maneras diferentes.

Dorian Opacki
Dorian Opacki

Ingeniero de Software

Soy ingeniero de software, no marketero. Mi pareja lleva una página de TikTok, así que le echo una mano programando sus publicaciones, preparo todo de una vez y dejo que la IA se encargue de los textos. Ahora me lleva unos 20 minutos a la semana.

Denys Zinych
Denys Zinych

Ingeniero de Software

Manejo mi página de nail art y una marca personal. Programar ambas desde un solo panel lo cambió todo, ahora publico de manera constante y mi engagement subió bastante en un mes.

Irena
Irena

Creadora de Contenido

Soy SWE y, la verdad, pésimo para publicar de forma constante. Simplemente organizo una semana de publicaciones para mi marca personal cuando tengo un rato libre, y la IA redacta los textos por plataforma para que no tenga que reescribir lo mismo de cinco maneras diferentes.

Dorian Opacki
Dorian Opacki

Ingeniero de Software

No soy persona de redes sociales pero necesito publicar mi trabajo en algún lado. El escritor IA redacta algo decente, lo ajusto un poco, lo programo, listo. Pasé de publicar una vez al mes a tres veces por semana.

Denys Kholin
Denys Kholin

Diseñador Freelance

Conectamos nuestro agente OpenClaw a AdaptlyPost y ahora nuestra IA publica actualizaciones de producto en todos los canales automáticamente. Suena futurista pero honestamente simplemente funciona. La integración API fue directa.

Taras Shynkarenko
Taras Shynkarenko

Fundador de Startup

No soy persona de redes sociales pero necesito publicar mi trabajo en algún lado. El escritor IA redacta algo decente, lo ajusto un poco, lo programo, listo. Pasé de publicar una vez al mes a tres veces por semana.

Denys Kholin
Denys Kholin

Diseñador Freelance

Conectamos nuestro agente OpenClaw a AdaptlyPost y ahora nuestra IA publica actualizaciones de producto en todos los canales automáticamente. Suena futurista pero honestamente simplemente funciona. La integración API fue directa.

Taras Shynkarenko
Taras Shynkarenko

Fundador de Startup

No soy persona de redes sociales pero necesito publicar mi trabajo en algún lado. El escritor IA redacta algo decente, lo ajusto un poco, lo programo, listo. Pasé de publicar una vez al mes a tres veces por semana.

Denys Kholin
Denys Kholin

Diseñador Freelance

Conectamos nuestro agente OpenClaw a AdaptlyPost y ahora nuestra IA publica actualizaciones de producto en todos los canales automáticamente. Suena futurista pero honestamente simplemente funciona. La integración API fue directa.

Taras Shynkarenko
Taras Shynkarenko

Fundador de Startup

De la terminal vacía a la subida publicada

Paso 1

Crea una key y luego busca el canal

Las keys se emiten en el panel, en Settings > API Tokens, y empiezan por adaptly_. Envíalas como `Authorization: Bearer <key>` contra https://post.adaptlypost.com/post/api/v1. El canal se conecta por OAuth en el panel (no hay ningún endpoint que conecte, desconecte o compruebe el estado de un canal de YouTube) y después `GET /social-accounts` devuelve su id, platform y displayName para referenciarlo en el post. Una llamada apunta a un canal de YouTube: un segundo canal es una segunda llamada, y enviar dos cuentas de YouTube en un mismo payload se rechaza con un 400.

Paso 2

Sube el archivo y luego haz POST /social-posts con youtubeConfigs

Solo se aceptan video/mp4 y video/quicktime, y `POST /upload-urls` rechaza de plano cualquier otro tipo mime, así que pide ahí URLs prefirmadas (1-20 archivos, válidas una hora), haz PUT del archivo y crea el post con `text`, `platforms: ["YOUTUBE"]`, `timezone` (IANA, p. ej. "Europe/Berlin"), `contentType: "VIDEO"` y un objeto `youtubeConfigs`. La lista de tipos de contenido soportados de YouTube es VIDEO y su máximo de imágenes por post es 0, así que un post IMAGE o TEXT que incluya YouTube nunca llega al canal. El cuerpo de la petición se valida de forma síncrona: un `videoTitle` de más de 100 caracteres, más de 20 `tags`, un campo obligatorio ausente o un tipo de contenido no soportado vuelven como un 400 en la propia llamada de creación, sin que se escriba ningún registro del post y sin nada que reintentar. `postType: "SHORTS"` requiere un archivo 9:16 de 60 segundos o menos, así que comprueba la relación de aspecto y la duración antes de llamar. Añade `scheduledAt` para programar en lugar de publicar de inmediato.

Paso 3

Lee platformPostId, o corrige y reintenta

`GET /social-posts/:id/results` devuelve la entrada de YouTube con `status`, `publishedAt`, `errorMessage` y `platformPostId`: el id de video de YouTube en bruto. Nunca se devuelve una URL de reproducción, así que construye tú el enlace a partir de ese id. Este endpoint reporta lo que hizo YouTube después de que aceptáramos y despacháramos la subida, no si el payload estaba bien formado: los payloads mal formados nunca llegan hasta aquí, porque fallaron con un 400 en la creación. Lo que aparece en `errorMessage` es del lado del canal: un `playlistId` que no existe en el canal conectado, una concesión de OAuth que el dueño del canal revocó, o una subida que YouTube rechazó o limitó durante su propio procesado. Corrige la causa de fondo y llama a `POST /social-posts/:id/retry` con los `platformIds` fallidos en vez de recrear el post. No hay sandbox en ninguna parte de la API, así que lo más parecido a una prueba en seco es publicar con `privacyStatus: "PRIVATE"` y cambiarlo después en YouTube Studio.

Precios simples y transparentes

Elige el plan perfecto para ti

Creator

Perfecto para individuos y emprendedores

$19

/mes

  • 30 cuentas sociales conectadas

  • Posts programados ilimitados

  • 1 miembro de equipo

  • 3 espacios de trabajo

  • 150 créditos/mes

  • Captions IA

  • Estudio de imágenes IA

  • Acceso API e integración OpenClaw

  • Posts de imagen, video y carrusel

Más popular

Pro

Para profesionales y equipos en crecimiento

$39

/mes

  • 60 cuentas sociales conectadas

  • Posts programados ilimitados

  • 5 miembros de equipo

  • 15 espacios de trabajo

  • 400 créditos/mes

  • Captions IA

  • Estudio de imágenes IA

  • Acceso API e integración OpenClaw

  • Posts de imagen, video y carrusel

Enterprise

Para agencias y empresas listas para escalar

$89

/mes

  • 100 cuentas sociales conectadas

  • Posts programados ilimitados

  • 20 miembros de equipo

  • 50 espacios de trabajo

  • 1000 créditos/mes

  • Captions IA

  • Estudio de imágenes IA

  • Acceso API e integración OpenClaw

  • Posts de imagen, video y carrusel

Todos los planes incluyen 7 días gratis

¿Quieres ver la comparación completa de funciones? Ver página de precios

Qué puedes configurar de verdad en una subida a YouTube

Subidas de formato largo con metadatos incluidos

`postType: "VIDEO"` publica una subida estándar. `videoTitle` define el título con un techo de 100 caracteres, `tags` acepta hasta 20 cadenas, `categoryId` toma el id numérico de categoría de YouTube, y el `text` del post viaja con el video como su texto descriptivo. Nada más allá de ese objeto es configurable: en esta API no hay campos de miniatura, capítulos, pantalla final, subtítulos ni estreno.

Shorts en el mismo endpoint

Cambia `postType` a `"SHORTS"` para subir YouTube Shorts vía API: mismo endpoint, mismo youtubeConfigs, misma tubería de upload-urls. La restricción decisiva son los medios, no el flag: un Short requiere una relación de aspecto 9:16 y una duración de 60 segundos o menos, así que valida dimensiones y duración antes de llamar, no después.

Privacidad, notificaciones y el flag de público

`privacyStatus` acepta PUBLIC, UNLISTED o PRIVATE. `notifySubscribers` decide si se avisa a los suscriptores del canal, `allowEmbedding` fija el permiso de incrustación, `madeForKids` lleva la designación de público, y `license` establece la licencia del video. Todos son por post, así que un lote de subidas de archivo puede salir en privado y sin ruido mientras un video de lanzamiento sale público y notifica.

Añadir la subida a una playlist existente

Define `playlistId` en youtubeConfigs y la subida terminada se archiva en esa playlist. Tiene que existir ya (la API puede añadir a una playlist, pero no crear, renombrar, reordenar ni listar ninguna), así que copia el id desde YouTube Studio (el valor `list=` de la URL de la playlist) y guárdalo en tu propia config. Si el id es incorrecto, eso aparece en la entrada de YouTube que devuelve `/results`.

Monta tu primera subida a YouTube

Crea una key en Settings > API Tokens, importa GET /openapi.json en tu cliente HTTP, en Make o en n8n, y la primera subida está a un POST de distancia. Prueba con privacyStatus PRIVATE antes de salir en público.