Pular para o conteúdo
Entrar Lista de espera
Docs/Guias/Publicar um vídeo ponta a ponta

Publicar um vídeo ponta a ponta

O caminho completo, do arquivo no disco ao item publicado na rede. Cada passo tem a rota na referência.

1. MídiaCria a mídia e envia os bytes (/v1/media).
2. PostUm item por rede, com fila, horário fixo ou rascunho (/v1/posts).
3. PraekoPublica no horário e tenta de novo se a rede falhar.
4. Seu códigoLê o estado do post ou recebe um webhook.
1

Conferir os canais

GET /v1/channels lista os canais conectados e quantos horários cada um tem. Conecte as redes no painel, em Canais; o item com connected: false ainda não foi conectado.

curl
curl https://praeko.app/v1/channels \
  -H "Authorization: Bearer $PRAEKO_KEY" -H "X-Praeko-Contract: en"
2

Subir o vídeo

POST /v1/media cria a mídia. Até 50 MiB, com simple: true, envie o arquivo todo em PUT /v1/media/:id/content. Acima disso, o envio é em partes: veja Enviar mídia.

curl
curl -X POST https://praeko.app/v1/media \
  -H "Authorization: Bearer $PRAEKO_KEY" -H "X-Praeko-Contract: en" \
  -H "Content-Type: application/json" \
  -d '{ "type": "video", "name": "v.mp4", "mime": "video/mp4", "size": 8123456, "simple": true }'
# resposta: { "id": "…", "state": "uploading", … }
curl -X PUT https://praeko.app/v1/media/$MEDIA_ID/content \
  -H "Authorization: Bearer $PRAEKO_KEY" -H "Content-Type: video/mp4" \
  --data-binary @v.mp4
3

Criar o post

Um post tem um item por rede. Cada item usa o próximo horário livre do canal (queue: true), um horário fixo (scheduledFor, em ISO 8601 UTC) ou fica como rascunho (draft: true). O texto de cada rede vai em texts. Com mode você escolhe a visibilidade: YouTube private, scheduled ou public; TikTok draft ou direct; Instagram now.

curl
curl -X POST https://praeko.app/v1/posts \
  -H "Authorization: Bearer $PRAEKO_KEY" -H "X-Praeko-Contract: en" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Meu vídeo",
        "media": { "video": "'$MEDIA_ID'" },
        "texts": { "youtube": { "text": "Descrição" }, "tiktok": { "text": "Legenda" } },
        "items": [
          { "network": "youtube", "queue": true },
          { "network": "tiktok", "scheduledFor": "2026-11-10T20:30:00Z" }
        ] }'

A resposta é 201 com o id do post e um item por rede, cada um com state e scheduledFor.

4

Conferir o resultado

GET /v1/posts/:id devolve o post com os itens. O state de um item é draft, scheduled, sent, private (no YouTube, enviado como privado, esperando você), error ou canceled. Para não ficar perguntando, cadastre um webhook: post.sent avisa quando saiu e post.failed quando o item desistiu.

Depois de criar

Quero Rota
Mudar título, texto, horário ou mover para o rascunho PATCH /v1/posts/:id
Publicar agora um item da fila POST /v1/posts/:id/publish-now
Cancelar os itens pendentes DELETE /v1/posts/:id
Ver o que está agendado e os horários livres GET /v1/calendar
YouTube já enviado e ainda agendadoQuando o Praeko já subiu o vídeo como privado com horário de publicação, o PATCH /v1/posts/:id ainda muda o horário (pelo menos 5 minutos à frente), o título, a descrição e o comentário fixo, conferindo o vídeo ao vivo; a resposta traz itemResults por item. Vídeo já público responde 409 video_not_private; horário que já passou, 409 not_editable. Cancelar com DELETE não segura esse vídeo: o YouTube o publica no horário. Use ?dismiss=true para tirar o horário (ele fica privado) ou ?dismiss=true&delete_video=true para apagá-lo.
Trocar a mídia de um post já agendadoMudar o vídeo de um post que já está agendado responde 409 media_locked; apagar uma mídia usada por um post pendente responde 409 media_in_use.
Reenviar o POST cria outro postMande o cabeçalho Idempotency-Key e a repetição recebe a resposta da primeira vez, sem criar outro post: saiba como. Sem o cabeçalho, mande o seu próprio id (repetido, volta 409 id_exists).
Dúvida ou erro nesta página? contato@praeko.appVer .md

Digite para buscar páginas, rotas e códigos de erro.