API de Publicación en Redes Sociales

June 14, 2026

API de Publicación en Redes Sociales

Usa la API de Publicación en Redes Sociales para conectar cuentas de redes sociales y publicar clips de WayinVideo directamente en esas cuentas.

Esta API está diseñada para clips exportados generados por Clipping con IA y Buscar Momentos. Primero crea clips con una de esas APIs y asegúrate de que el proyecto original se haya enviado con enable_export = true. Después usa el project_id resultante y el idx del clip al crear una tarea de publicación.

Flujo típico:

  1. Crea una URL de autorización OAuth para la plataforma que quieres conectar.
  2. Abre el auth_url devuelto en un navegador y completa la autorización.
  3. Llama al endpoint de cuentas para confirmar la cuenta conectada y copiar su id.
  4. Crea una tarea de publicación con el clip de destino y la configuración específica de la cuenta.

Todos los endpoints requieren:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
x-wayinvideo-api-version: v2

Facturación: Durante el periodo promocional por tiempo limitado, conectar correctamente una cuenta de red social consume actualmente 10 API Units. Si la autorización no se completa correctamente, no se descuentan API Units.


Endpoints

MétodoRutaDescripción
POST/api/v2/social-media/oauth/{platform}Crea una URL OAuth de un solo uso para una plataforma de red social
GET/api/v2/social-media/accountsLista las cuentas de redes sociales conectadas
POST/api/v2/social-media/publishCrea una tarea para publicar un clip en una o más cuentas conectadas

Conectar una Cuenta de Red Social

Crea una URL de autorización OAuth para la plataforma que quieres conectar.

POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/{platform}

Parámetros de Ruta

ParámetroTipoObligatorioDescripción
platformstringPlataforma de red social. Valores permitidos: youtube, tiktok, twitter, instagram, facebook, linkedin.

Cuerpo de la Solicitud

No se requiere cuerpo de solicitud.

Ejemplo de Solicitud

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/youtube \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  --data ''

Ejemplo de Respuesta

{
  "data": {
    "auth_url": "https://example.com/oauth2/auth?xxxxxx",
    "state": "a49bc736-xxxxx"
  }
}

Campos de Respuesta

CampoTipoDescripción
auth_urlstringURL de la página OAuth de terceros. Abre esta URL en un navegador para autorizar la cuenta.
statestringIdentificador de estado de autorización.

Notas

  • Cada auth_url solo puede usarse una vez. Si la autorización falla o la URL caduca, llama de nuevo a este endpoint para crear una URL nueva.
  • Cuando la autorización se complete correctamente, llama a Listar Cuentas de Redes Sociales para confirmar que la cuenta está disponible para publicar.
  • Puedes conectar varias cuentas en la misma plataforma. Por ejemplo, llama varias veces al endpoint OAuth de YouTube para conectar varios canales de YouTube.
  • Si la cuenta no se conecta correctamente, no se descuentan API Units.

Listar Cuentas de Redes Sociales

Obtén todas las cuentas de redes sociales conectadas al propietario de la API key actual. Usa este endpoint antes de publicar para encontrar los valores de id que se usan en publish_configs.

GET https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only={active_only}

Parámetros de Consulta

ParámetroTipoObligatorioPredeterminadoDescripción
active_onlybooleanNofalseCuando es true, solo devuelve cuentas con tokens válidos.

Ejemplo de Solicitud

curl -X GET "https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2"

Respuesta Cuando No Hay Ninguna Cuenta Conectada

{
  "data": []
}

Si data está vacío, llama primero a Conectar una Cuenta de Red Social.

Respuesta Cuando Hay Cuentas Conectadas

{
  "data": [
    {
      "id": "smaccxxx",
      "platform": "youtube",
      "platform_username": "MyChannel",
      "platform_avatar": "https://example.com/avatar.jpg",
      "token_valid": true,
      "token_expiring_soon": false
    }
  ]
}

Campos de Respuesta

CampoTipoDescripción
idstringID único de la cuenta social. Úsalo como clave en publish_configs al llamar a /publish. No uses el nombre de la plataforma.
platformstringIdentificador de plataforma. Consulta Valores de Plataforma.
platform_usernamestringNombre de usuario, canal o cuenta en la plataforma.
platform_avatarstring | nullURL de la imagen de avatar de la cuenta.
token_validbooleantrue significa que el token de autorización es válido y la cuenta puede usarse para publicar.
token_expiring_soonbooleantrue significa que el token de autorización caducará pronto. Pide al usuario que vuelva a conectar la cuenta.

Uso Recomendado

  • Antes de crear una tarea de publicación, confirma que la cuenta de destino tenga token_valid: true.

Crear una Tarea de Publicación

Publica un clip en una o más cuentas de redes sociales conectadas. Identifica el clip enviando el ID del proyecto y el índice del clip.

Obligatorio: El project_id debe provenir de una tarea de Clipping con IA o Buscar Momentos enviada con enable_export = true. La publicación social requiere un video de clip exportado; los proyectos creados sin exportación habilitada no se pueden publicar con este endpoint.

POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish

Campos de Solicitud

CampoTipoObligatorioDescripción
project_idstringID del proyecto.
idxintegerÍndice del clip dentro del proyecto.
resolutionstringNoResolución de exportación usada por el clip exportado, como 1080p o 720p.
publish_configsobjectConfiguración de publicación indexada por el ID de cuenta social devuelto por el endpoint de cuentas.
scheduled_atinteger | nullNoTimestamp en milisegundos para publicación programada. Usa null u omite este campo para publicar ahora.

Cómo generar un valor scheduled_at

scheduled_at es un timestamp Unix en milisegundos. Debe estar al menos 5 minutos en el futuro y no más de 30 días en el futuro.

Para programar la publicación 10 minutos desde ahora en JavaScript:

const scheduledAt = Date.now() + 10 * 60 * 1000;

Para programar una hora específica:

const scheduledAt = new Date('2026-06-15T10:00:00Z').getTime();

Configuración de Publicación de Plataforma

Cada valor dentro de publish_configs es un objeto de configuración de publicación específico de la plataforma.

CampoTipoObligatorioDescripción
titlestringCondicionalmente obligatorioTítulo del video. Obligatorio para YouTube.
descriptionstringCondicionalmente obligatorioDescripción del video o texto de la publicación. Obligatorio para TikTok.
tagsstring[]NoLista de etiquetas.
visibilitystringNoVisibilidad: public, private o unlisted. El soporte varía por plataforma.
thumbnail_urlstringNoURL de imagen de miniatura personalizada.
categorystringNoCategoría de video específica de la plataforma.
allow_commentbooleanNoSi se permiten comentarios.
allow_duetbooleanNoSi se permiten duetos. Solo TikTok.
allow_stitchbooleanNoSi se permiten stitches. Solo TikTok.
disclose_contentbooleanNoSi se debe declarar contenido promocional o publicitario. Solo TikTok.

Importante: Las claves dentro de publish_configs deben ser IDs de cuenta devueltos por /api/v2/social-media/accounts, como smacct06ixxxxxxx. No uses youtube, tiktok ni otros nombres de plataforma como claves.

Ejemplo de Solicitud

curl -sS -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "project_id": "prj06ixxxxxxx",
    "idx": 0,
    "resolution": "1080p",
    "publish_configs": {
      "smacct06ixxxxxxx": {
        "title": "API Test Video",
        "description": "Posted by curl test",
        "tags": ["api", "test"],
        "visibility": "public"
      }
    },
    "scheduled_at": null
  }'

Ejemplo de Respuesta

{
  "data": {
    "task_id": "pubtask06ixxxxxxx",
    "status": "PENDING",
    "created_at": 1781251687210
  }
}

Campos de Respuesta

CampoTipoDescripción
task_idstringID único de la tarea de publicación.
statusstringEstado de la tarea de publicación. Consulta Valores de Estado de Publicación.
created_atintegerTimestamp de creación de la tarea en milisegundos.
schedule_idstring | nullID de programación. Se devuelve cuando se proporciona scheduled_at.
scheduled_atinteger | nullTimestamp de publicación programada en milisegundos.

Puedes ver las programaciones de publicación y los resultados en tiempo real en el calendario de WayinVideo.


Valores de Plataforma

ValorPlataformaSitio
youtubeYouTubehttps://youtube.com
tiktokTikTokhttps://tiktok.com
twitterTwitter / Xhttps://twitter.com
instagramInstagramhttps://instagram.com
facebookFacebookhttps://facebook.com
linkedinLinkedInhttps://linkedin.com

Valores de Estado de Publicación

ValorDescripción
PENDINGLa tarea se creó y está esperando ser programada.
SCHEDULEDLa tarea fue programada y está esperando la hora programada.
PROCESSINGLa publicación está en curso, incluido el upload del video y el procesamiento de la plataforma.
DONELa publicación se completó correctamente.
PARTIAL_DONEAlgunas cuentas tuvieron éxito y otras fallaron. Solo es posible al publicar en varias cuentas.
ERRORLa publicación falló.
CANCELLEDLa publicación fue cancelada.

Ejemplo de Flujo Completo

Paso 1: Crear una URL OAuth de YouTube

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/youtube \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  --data ''

Abre el auth_url devuelto en un navegador y completa la autorización.

Paso 2: Listar Cuentas Disponibles

curl -X GET "https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2"

Copia el id de la cuenta en la que quieres publicar.

Paso 3: Publicar un Clip

curl -sS -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "project_id": "prj06ixxxxxxx",
    "idx": 0,
    "resolution": "1080p",
    "publish_configs": {
      "smacct06ixxxxxxx": {
        "title": "API Test Video",
        "description": "Posted by curl test",
        "tags": ["api", "test"],
        "visibility": "public"
      }
    },
    "scheduled_at": null
  }'

Notas

  1. Las claves de publish_configs son IDs de cuenta, no nombres de plataforma.
  2. Para programar una publicación, envía scheduled_at como un timestamp futuro en milisegundos.
  3. El mismo clip puede publicarse varias veces en diferentes cuentas. Publicar de nuevo el mismo clip en la misma cuenta crea una tarea independiente.
  4. La publicación social requiere un video de clip exportado. Usa el project_id de una tarea de Clipping con IA o Buscar Momentos creada con enable_export = true.
  5. Si la publicación devuelve un error de token de cuenta, vuelve a conectar esa cuenta de red social e inténtalo de nuevo.