A abordagem: loop, upload, fila
A ideia e simples. Voce pega uma lista de arquivos de video, faz um loop neles e envia cada um para a API de redes sociais. Para evitar inundar seu publico com 50 posts de uma vez, voce usa o sistema de fila para que eles sejam distribuidos ao longo da semana nos melhores horarios.
Existem tres formas de fazer isso, dependendo do seu nivel tecnico:
- A Python or Bash script para controle total
- n8n com Google Drive para um workflow visual, sem codigo
- Make.com para automacao similar com uma interface diferente
Vamos ver os três.
Método 1: Script Python para upload em lote
Esta e a opcao mais flexivel. Voce aponta o script para uma pasta de videos e ele faz upload de cada um com a fila habilitada. Instale o SDK primeiro:
pip install upload-post Depois execute este script:
import os
import glob
from upload_post import UploadPostClient
client = UploadPostClient(api_key="your-api-key-here")
video_folder = "/path/to/your/videos"
videos = glob.glob(os.path.join(video_folder, "*.mp4"))
print(f"Encontrados {len(videos)} vídeos para fazer upload")
for i, video_path in enumerate(videos):
filename = os.path.basename(video_path)
title = filename.replace(".mp4", "").replace("-", " ").replace("_", " ")
try:
response = client.upload_video(
video_path=video_path,
title=title,
user="mybrand",
platforms=["tiktok", "instagram", "youtube"],
add_to_queue=True,
async_upload=True
)
job_id = response.get("job_id", "async")
print(f"[{i+1}/{len(videos)}] Queued: {filename} (Job: {job_id})")
except Exception as e:
print(f"[{i+1}/{len(videos)}] Failed: {filename} - {e}")
print("Todos os vídeos na fila!")
Algumas coisas importantes sobre esse script. A flag add_to_queue=True significa que cada video e atribuido ao proximo slot disponivel na sua agenda de fila. E async_upload=True faz cada chamada retornar imediatamente em vez de esperar todas as plataformas terminarem o processamento. Isso e importante para operacoes em massa porque um upload sincrono que demora mais de 59 segundos vai mudar automaticamente para assincrono.
Método 1b: Script Bash com cURL
Se voce prefere a linha de comando e nao quer instalar Python, um loop Bash simples faz a mesma coisa:
#!/bin/bash
API_KEY="your-api-key-here"
VIDEO_DIR="/path/to/your/videos"
for video in "$VIDEO_DIR"/*.mp4; do
filename=$(basename "$video" .mp4)
echo "Uploading: $filename"
curl -s -X POST https://api.upload-post.com/api/upload \
-H "Autorização: Apikey $API_KEY" \
-F "video=@$video" \
-F "user=mybrand" \
-F "title=$filename" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "add_to_queue=true" \
-F "async_upload=true"
echo ""
done
echo "Pronto! Todos os vídeos na fila." Método 2: n8n com Google Drive (sem código)
Esta e a melhor opcao se voce quer um workflow visual que roda automaticamente sempre que novos videos aparecem em uma pasta. O fluxo e: Google Drive detecta um novo arquivo, faz download, envia para o Upload-Post e enfileira para publicacao.
Temos um template pronto para Google Drive para redes sociais que voce pode importar na sua instancia do n8n com um clique. Tambem existe uma versao mais avancada que usa descricoes geradas por IA e rastreamento via Airtable.
Se quiser construir do zero, confira o guia de integracao com n8n para o passo a passo. O segredo e configurar o node HTTP Request com multipart form data e passar o arquivo binario do node do Google Drive.
Para conteudo com IA, existe ate um template que publica videos automaticamente com legendas geradas por IA em massa.
Método 3: Automação com Make.com
O Make.com (antigo Integromat) funciona de forma similar. Voce cria um cenario com um trigger do Google Drive ou Dropbox, conecta a um modulo HTTP configurado para a API do Upload-Post, e define para rodar em um cronograma ou sempre que novos arquivos forem detectados.
O modulo HTTP precisa ser configurado com tipo de conteudo multipart/form-data, com sua chave de API como header personalizado. Navegue pelos nossos templates Make.com para cenarios prontos.
Processing videos before upload
As vezes seus videos de origem nao estao no formato certo. Talvez sejam muito longos, na proporcao errada ou codificados em um codec que o TikTok nao aceita. Em vez de processa-los localmente, voce pode usar a API FFmpeg do Upload-Post para transformar videos na nuvem antes de publicar.
Por exemplo, voce pode cortar um video paisagem para vertical 9:16, aparar para 60 segundos para YouTube Shorts ou re-encodar para H.264 para maxima compatibilidade:
curl -X POST https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/upload \
-H "Autorização: Apikey sua-api-key-aqui" \
-F "[email protected]" \
-F 'full_command=ffmpeg -i {input} -vf "crop=ih*9/16:ih,scale=1080:1920" -c:v libx264 -preset medium -t 60 {output}' \
-F "output_extension=mp4" A API FFmpeg esta inclusa em todos os planos (30 minutos gratuitos por mes no plano free, ate 10.000 minutos no Business).
Monitorando seus uploads em massa
Quando voce esta fazendo upload de dezenas de videos, precisa acompanhar o que passou e o que falhou. Existem duas formas:
Consultando o endpoint de status
curl https://api.upload-post.com/api/uploadposts/status?request_id=abc123 \
-H "Autorização: Apikey sua-api-key-aqui"
A resposta inclui contagens de completed e total para que voce possa ver o progresso em tempo real.
Setting up webhooks
Para uma abordagem hands-off, configure uma URL de webhook e o Upload-Post vai notificar seu servidor toda vez que um upload em uma plataforma terminar. Cada notificacao inclui a plataforma, URL do post e status de sucesso/erro.
Histórico de uploads
Voce tambem pode revisar tudo que foi enviado com o endpoint de historico:
curl "https://api.upload-post.com/api/uploadposts/history?page=1&limit=50" \
-H "Autorização: Apikey sua-api-key-aqui" Cada entrada mostra a plataforma, timestamp, status de sucesso, URL do post, tamanho do arquivo e mensagens de erro. Otimo para gerar relatorios ou auditar seus uploads.
Dicas para upload em massa em escala
- Sempre use
async_upload=truepara operacoes em massa. Uploads sincronos funcionam bem para posts individuais, mas voce nao quer esperar 10 plataformas processarem antes de enviar o proximo arquivo. - Use uma fila em vez de datas fixas a menos que voce tenha requisitos especificos de timing. A fila distribui conteudo de forma uniforme e respeita os limites diarios das plataformas.
- Fique de olho nos limites diários. O TikTok permite 15 uploads por dia por conta, o YouTube permite 10. Se voce enfileirar 50 videos do TikTok, eles serao distribuidos automaticamente ao longo de varios dias.
- Nomeie seus arquivos de forma descritiva. Se voce usa o nome do arquivo como titulo do post (como nos scripts acima), "colecao-verao-lookbook.mp4" fica muito melhor que "VID_20250615_001.mp4".
- Use títulos específicos por plataforma quando as legendas precisam ser diferentes. Defina
tiktok_titlepara uma legenda mais curta eyoutube_descriptionpara uma mais longa com palavras-chave de SEO.
Perguntas frequentes
Existe um limite de quantos vídeos posso enviar de uma vez?
Nao ha limite fixo de quantas requisicoes de API voce pode enviar. Porem, cada plataforma tem limites diarios de upload (15 para TikTok, 10 para YouTube, etc.). O sistema de fila lida com isso automaticamente distribuindo os posts ao longo dos dias.
Posso fazer upload de vídeos a partir de uma URL em vez de um arquivo local?
Sim. Em vez de passar um arquivo com -F "[email protected]", voce pode passar uma URL publica como parametro de video. O Upload-Post vai fazer o download e processar para voce.
Qual é o tamanho máximo do arquivo?
Depende da plataforma. O YouTube aceita ate 256GB, o TikTok ate 4GB e o Instagram ate 300MB. Confira a pagina de requisitos de video para o detalhamento completo.