API de Publicação em Redes Sociais

June 14, 2026

API de Publicação em Redes Sociais

Use a API de Publicação em Redes Sociais para conectar contas de redes sociais e publicar clipes do WayinVideo diretamente nessas contas.

Esta API foi criada para clipes exportados gerados por Clipping com IA e Buscar Momentos. Crie os clipes com uma dessas APIs primeiro e garanta que o projeto original tenha sido enviado com enable_export = true. Depois, use o project_id e o idx do clipe ao criar a tarefa de publicação.

Fluxo típico:

  1. Crie uma URL de autorização OAuth para a plataforma que deseja conectar.
  2. Abra o auth_url retornado em um navegador e conclua a autorização.
  3. Chame o endpoint de contas para confirmar a conta conectada e copiar seu id.
  4. Crie uma tarefa de publicação com o clipe de destino e as configurações específicas da conta.

Todos os endpoints exigem:

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

Cobrança: Durante o período promocional por tempo limitado, conectar com sucesso uma conta de rede social consome atualmente 10 API Units. Se a autorização não for concluída com sucesso, nenhuma API Unit será descontada.


Endpoints

MétodoCaminhoDescrição
POST/api/v2/social-media/oauth/{platform}Cria uma URL OAuth de uso único para uma plataforma de rede social
GET/api/v2/social-media/accountsLista contas de redes sociais conectadas
POST/api/v2/social-media/publishCria uma tarefa para publicar um clipe em uma ou mais contas conectadas

Conectar uma Conta de Rede Social

Crie uma URL de autorização OAuth para a plataforma que deseja conectar.

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

Parâmetros de Caminho

ParâmetroTipoObrigatórioDescrição
platformstringSimPlataforma de rede social. Valores permitidos: youtube, tiktok, twitter, instagram, facebook, linkedin.

Corpo da Requisição

Nenhum corpo de requisição é necessário.

Exemplo de Requisição

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

Exemplo de Resposta

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

Campos da Resposta

CampoTipoDescrição
auth_urlstringURL da página OAuth de terceiros. Abra esta URL em um navegador para autorizar a conta.
statestringIdentificador de estado da autorização.

Observações

  • Cada auth_url pode ser usado apenas uma vez. Se a autorização falhar ou a URL expirar, chame este endpoint novamente para criar uma nova URL.
  • Após a autorização ser concluída com sucesso, chame Listar Contas de Redes Sociais para confirmar que a conta está disponível para publicação.
  • Você pode conectar várias contas na mesma plataforma. Por exemplo, chame o endpoint OAuth do YouTube várias vezes para conectar vários canais do YouTube.
  • Se a conta não for conectada com sucesso, nenhuma API Unit será descontada.

Listar Contas de Redes Sociais

Obtenha todas as contas de redes sociais conectadas ao proprietário da API key atual. Use este endpoint antes de publicar para encontrar os valores de id usados em publish_configs.

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

Parâmetros de Consulta

ParâmetroTipoObrigatórioPadrãoDescrição
active_onlybooleanNãofalseQuando true, retorna apenas contas com tokens válidos.

Exemplo de Requisição

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"

Resposta Quando Nenhuma Conta Está Conectada

{
  "data": []
}

Se data estiver vazio, chame Conectar uma Conta de Rede Social primeiro.

Resposta Quando Há Contas Conectadas

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

Campos da Resposta

CampoTipoDescrição
idstringID único da conta social. Use-o como chave em publish_configs ao chamar /publish. Não use o nome da plataforma como chave.
platformstringIdentificador da plataforma. Veja Valores de Plataforma.
platform_usernamestringNome de usuário, nome do canal ou nome da conta na plataforma.
platform_avatarstring | nullURL da imagem de avatar da conta.
token_validbooleantrue significa que o token de autorização é válido e a conta pode ser usada para publicação.
token_expiring_soonbooleantrue significa que o token de autorização expirará em breve. Peça ao usuário para reconectar a conta.

Uso Recomendado

  • Antes de criar uma tarefa de publicação, confirme que a conta de destino tem token_valid: true.

Criar uma Tarefa de Publicação

Publique um clipe em uma ou mais contas de redes sociais conectadas. Identifique o clipe enviando o ID do projeto e o índice do clipe.

Obrigatório: O project_id deve vir de uma tarefa de Clipping com IA ou Buscar Momentos enviada com enable_export = true. A publicação social exige um vídeo de clipe exportado; projetos criados sem exportação ativada não podem ser publicados com este endpoint.

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

Campos da Requisição

CampoTipoObrigatórioDescrição
project_idstringSimID do projeto.
idxintegerSimÍndice do clipe dentro do projeto.
resolutionstringNãoResolução de exportação usada pelo clipe exportado, como 1080p ou 720p.
publish_configsobjectSimConfigurações de publicação indexadas pelo ID da conta social retornado pelo endpoint de contas.
scheduled_atinteger | nullNãoTimestamp em milissegundos para publicação agendada. Use null ou omita este campo para publicar agora.

Como gerar um valor scheduled_at

scheduled_at é um timestamp Unix em milissegundos. Ele deve estar pelo menos 5 minutos no futuro e no máximo 30 dias no futuro.

Para agendar uma publicação para 10 minutos a partir de agora em JavaScript:

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

Para agendar em um horário específico:

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

Configuração de Publicação da Plataforma

Cada valor em publish_configs é um objeto de configuração de publicação específico da plataforma.

CampoTipoObrigatórioDescrição
titlestringCondicionalmente obrigatórioTítulo do vídeo. Obrigatório para YouTube.
descriptionstringCondicionalmente obrigatórioDescrição do vídeo ou texto do post. Obrigatório para TikTok.
tagsstring[]NãoLista de tags.
visibilitystringNãoVisibilidade: public, private ou unlisted. O suporte varia por plataforma.
thumbnail_urlstringNãoURL da imagem de thumbnail personalizada.
categorystringNãoCategoria de vídeo específica da plataforma.
allow_commentbooleanNãoSe comentários são permitidos.
allow_duetbooleanNãoSe duetos são permitidos. Apenas TikTok.
allow_stitchbooleanNãoSe stitches são permitidos. Apenas TikTok.
disclose_contentbooleanNãoSe conteúdo promocional ou publicitário deve ser declarado. Apenas TikTok.

Importante: As chaves dentro de publish_configs devem ser IDs de conta retornados por /api/v2/social-media/accounts, como smacct06ixxxxxxx. Não use youtube, tiktok ou outros nomes de plataforma como chaves.

Exemplo de Requisição

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
  }'

Exemplo de Resposta

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

Campos da Resposta

CampoTipoDescrição
task_idstringID único da tarefa de publicação.
statusstringStatus da tarefa de publicação. Veja Valores de Status de Publicação.
created_atintegerTimestamp de criação da tarefa em milissegundos.
schedule_idstring | nullID do agendamento. Retornado quando scheduled_at é informado.
scheduled_atinteger | nullTimestamp de publicação agendada em milissegundos.

Você pode ver agendamentos de publicação e resultados em tempo real na agenda do WayinVideo.


Valores de Plataforma

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

Valores de Status de Publicação

ValorDescrição
PENDINGA tarefa foi criada e está aguardando agendamento.
SCHEDULEDA tarefa foi agendada e está aguardando o horário programado.
PROCESSINGA publicação está em andamento, incluindo upload do vídeo e processamento da plataforma.
DONEA publicação foi concluída com sucesso.
PARTIAL_DONEAlgumas contas tiveram sucesso e outras falharam. Só é possível ao publicar em várias contas.
ERRORA publicação falhou.
CANCELLEDA publicação foi cancelada.

Exemplo de Fluxo Completo

Etapa 1: Criar uma URL OAuth do 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 ''

Abra o auth_url retornado em um navegador e conclua a autorização.

Etapa 2: Listar Contas Disponíveis

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"

Copie o id da conta em que deseja publicar.

Etapa 3: Publicar um Clipe

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
  }'

Observações

  1. As chaves de publish_configs são IDs de conta, não nomes de plataforma.
  2. Para agendar uma publicação, envie scheduled_at como um timestamp futuro em milissegundos.
  3. O mesmo clipe pode ser publicado várias vezes em contas diferentes. Publicar o mesmo clipe na mesma conta novamente cria uma tarefa independente.
  4. A publicação social exige um vídeo de clipe exportado. Use o project_id de uma tarefa de Clipping com IA ou Buscar Momentos criada com enable_export = true.
  5. Se a publicação retornar um erro de token da conta, reconecte essa conta de rede social e tente novamente.