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:
- Crie uma URL de autorização OAuth para a plataforma que deseja conectar.
- Abra o
auth_urlretornado em um navegador e conclua a autorização. - Chame o endpoint de contas para confirmar a conta conectada e copiar seu
id. - 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étodo | Caminho | Descriçã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/accounts | Lista contas de redes sociais conectadas |
POST | /api/v2/social-media/publish | Cria 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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
platform | string | Sim | Plataforma 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
| Campo | Tipo | Descrição |
|---|---|---|
auth_url | string | URL da página OAuth de terceiros. Abra esta URL em um navegador para autorizar a conta. |
state | string | Identificador de estado da autorização. |
Observações
- Cada
auth_urlpode 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âmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
active_only | boolean | Não | false | Quando 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
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID único da conta social. Use-o como chave em publish_configs ao chamar /publish. Não use o nome da plataforma como chave. |
platform | string | Identificador da plataforma. Veja Valores de Plataforma. |
platform_username | string | Nome de usuário, nome do canal ou nome da conta na plataforma. |
platform_avatar | string | null | URL da imagem de avatar da conta. |
token_valid | boolean | true significa que o token de autorização é válido e a conta pode ser usada para publicação. |
token_expiring_soon | boolean | true 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_iddeve vir de uma tarefa de Clipping com IA ou Buscar Momentos enviada comenable_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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
project_id | string | Sim | ID do projeto. |
idx | integer | Sim | Índice do clipe dentro do projeto. |
resolution | string | Não | Resolução de exportação usada pelo clipe exportado, como 1080p ou 720p. |
publish_configs | object | Sim | Configurações de publicação indexadas pelo ID da conta social retornado pelo endpoint de contas. |
scheduled_at | integer | null | Não | Timestamp 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.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | string | Condicionalmente obrigatório | Título do vídeo. Obrigatório para YouTube. |
description | string | Condicionalmente obrigatório | Descrição do vídeo ou texto do post. Obrigatório para TikTok. |
tags | string[] | Não | Lista de tags. |
visibility | string | Não | Visibilidade: public, private ou unlisted. O suporte varia por plataforma. |
thumbnail_url | string | Não | URL da imagem de thumbnail personalizada. |
category | string | Não | Categoria de vídeo específica da plataforma. |
allow_comment | boolean | Não | Se comentários são permitidos. |
allow_duet | boolean | Não | Se duetos são permitidos. Apenas TikTok. |
allow_stitch | boolean | Não | Se stitches são permitidos. Apenas TikTok. |
disclose_content | boolean | Não | Se conteúdo promocional ou publicitário deve ser declarado. Apenas TikTok. |
Importante: As chaves dentro de
publish_configsdevem ser IDs de conta retornados por/api/v2/social-media/accounts, comosmacct06ixxxxxxx. Não useyoutube,tiktokou 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
| Campo | Tipo | Descrição |
|---|---|---|
task_id | string | ID único da tarefa de publicação. |
status | string | Status da tarefa de publicação. Veja Valores de Status de Publicação. |
created_at | integer | Timestamp de criação da tarefa em milissegundos. |
schedule_id | string | null | ID do agendamento. Retornado quando scheduled_at é informado. |
scheduled_at | integer | null | Timestamp 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
| Valor | Plataforma | Site |
|---|---|---|
youtube | YouTube | https://youtube.com |
tiktok | TikTok | https://tiktok.com |
twitter | Twitter / X | https://twitter.com |
instagram | https://instagram.com | |
facebook | https://facebook.com | |
linkedin | https://linkedin.com |
Valores de Status de Publicação
| Valor | Descrição |
|---|---|
PENDING | A tarefa foi criada e está aguardando agendamento. |
SCHEDULED | A tarefa foi agendada e está aguardando o horário programado. |
PROCESSING | A publicação está em andamento, incluindo upload do vídeo e processamento da plataforma. |
DONE | A publicação foi concluída com sucesso. |
PARTIAL_DONE | Algumas contas tiveram sucesso e outras falharam. Só é possível ao publicar em várias contas. |
ERROR | A publicação falhou. |
CANCELLED | A 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
- As chaves de
publish_configssão IDs de conta, não nomes de plataforma. - Para agendar uma publicação, envie
scheduled_atcomo um timestamp futuro em milissegundos. - O mesmo clipe pode ser publicado várias vezes em contas diferentes. Publicar o mesmo clipe na mesma conta novamente cria uma tarefa independente.
- A publicação social exige um vídeo de clipe exportado. Use o
project_idde uma tarefa de Clipping com IA ou Buscar Momentos criada comenable_export = true. - Se a publicação retornar um erro de token da conta, reconecte essa conta de rede social e tente novamente.