Para programadores e SaaS
Adiciona vídeo com IA ao teu produto em poucas chamadas
Uma API REST, um servidor MCP e webhooks: o teu produto cria vídeos explicativos e corta vídeos longos em shorts, sem que os teus utilizadores precisem de abrir o ClipOnIt.
Desde o plano gratuito (3 vídeos por mês com marca de água) · a chave cria-se em Definições → Integrações
Duas formas de a usar
Os dois produtos de ClipOnIt, chamados a partir do teu código ou por um agente.
AI Explainer
Uma ferramenta de formação: um vídeo explicativo por lição
O teu produto envia o título ou o texto da lição; o ClipOnIt escreve as cenas, ilustra-as, acrescenta a voz e as legendas, e depois gera um MP4 vertical que mostras ao lado do curso.
POST /api/agent/produceMCP
Um agente de IA que controla o ClipOnIt
O teu agente (Claude, Cursor, VS Code ou o teu próprio) liga-se ao servidor MCP: importa um vídeo, escolhe os clips, lança um vídeo explicativo e aguarda o resultado com ferramentas já descritas.
POST /mcp
Sempre o mesmo fluxo
Um vídeo demora minutos, não milissegundos: crias uma tarefa, acompanhas o estado e recuperas o ficheiro.
- Criar a tarefa
Um POST com o assunto ou o link do vídeo. Resposta imediata com um identificador.
- Acompanhar o estado
Um GET a cada 10 s, aproximadamente: etapa, percentagem, tempo restante. Para o Explainer, um webhook pode avisar-te em vez disso.
- Obter o vídeo
Quando terminar, o URL do MP4 está na resposta. Descarrega-o ou mostra-o no teu produto.
AI Explainer
Um vídeo explicativo a partir de um tema
POST /api/agent/produce recebe um tema (ou um guião, ou uma gravação de áudio) e inicia a escrita e depois a renderização. GET /api/jobs/{id} devolve status, step, percent e, quando o vídeo estiver pronto, url.
- duration_s15 a 180 segundos
- style24 estilos visuais, e o teu : GET /api/explainer/styles
- voiceuma voz do catálogo, pelo nome ou identificador
- dry_runtrue: verifica a quota e o custo sem lançar nada
curl -s -X POST https://cliponit.app/api/agent/produce \
-H "Authorization: Bearer $CLIPONIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"topic": "La photosynthèse en 3 étapes", "duration_s": 45}'
curl -s https://cliponit.app/api/jobs/JOB_ID \
-H "Authorization: Bearer $CLIPONIT_API_KEY"
curl -s -o lecon.mp4 "URL_DU_JOB"const API = "https://cliponit.app";
const headers = {
Authorization: `Bearer ${process.env.CLIPONIT_API_KEY}`,
"Content-Type": "application/json",
};
async function call(method, path, body) {
const res = await fetch(API + path, { method, headers, body: body && JSON.stringify(body) });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
return res.json();
}
let { job } = await call("POST", "/api/agent/produce", { topic: "La photosynthèse en 3 étapes", duration_s: 45 });
while (!["done", "failed", "canceled"].includes(job.status)) {
await new Promise((r) => setTimeout(r, 10_000));
job = await call("GET", `/api/jobs/${job.id}`);
}
console.log(job.status === "done" ? job.url : job.error);import json, os, time, urllib.request
API = "https://cliponit.app"
KEY = os.environ["CLIPONIT_API_KEY"]
def call(method, path, body=None):
req = urllib.request.Request(API + path, method=method,
data=None if body is None else json.dumps(body).encode(),
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"})
with urllib.request.urlopen(req) as r:
return json.load(r)
job = call("POST", "/api/agent/produce", {"topic": "La photosynthèse en 3 étapes", "duration_s": 45})["job"]
while job["status"] not in ("done", "failed", "canceled"):
time.sleep(10)
job = call("GET", f"/api/jobs/{job['id']}")
if job["status"] == "done":
urllib.request.urlretrieve(job["url"], "lecon.mp4")
else:
print(job["error"])MCP
Um servidor MCP para agentes
Endereço único https://cliponit.app/mcp, em HTTP « streamable ». As ferramentas cobrem os dois produtos: importar, aguardar, criar e exportar clips, produzir um vídeo explicativo e aguardar o seu fim. As que modificam algo estão anotadas para que o agente peça confirmação antes.
Claude Desktop e Claude.ai: Definições → Conectores → Adicionar um conector personalizado, com o endereço acima. A ligação é feita por OAuth, sem chave para copiar; o ChatGPT funciona da mesma forma. Passo a passo
claude mcp add --transport http cliponit https://cliponit.app/mcp \
--header "Authorization: Bearer $CLIPONIT_API_KEY"{
"mcpServers": {
"cliponit": {
"url": "https://cliponit.app/mcp",
"headers": { "Authorization": "Bearer ${env:CLIPONIT_API_KEY}" }
}
}
}{
"inputs": [
{ "type": "promptString", "id": "cliponit-key", "description": "ClipOnIt API key", "password": true }
],
"servers": {
"cliponit": {
"type": "http",
"url": "https://cliponit.app/mcp",
"headers": { "Authorization": "Bearer ${input:cliponit-key}" }
}
}
}curl -s -X POST https://cliponit.app/mcp \
-H "Authorization: Bearer $CLIPONIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_quota", "arguments": {}}}'Ser avisado em vez de pedir
Em Definições → Integrações, adiciona até 3 URL https. Quando uma produção Explainer termina, ClipOnIt envia-lhe job.done ou job.failed, com o mesmo objeto que GET /api/jobs/{id}. Seis tentativas em caso de falha, durante cerca de 8 horas.
Para os clips do Smart Clipper, ainda não há webhook: acompanha o estado com GET.
import hashlib, hmac, time
def verify(secret: str, header: str, body: bytes, tolerance: int = 300) -> bool:
"""header = X-ClipOnIt-Signature, body = raw request bytes."""
parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
if abs(time.time() - int(parts.get("t", 0))) > tolerance:
return False
mac = hmac.new(secret.encode(), parts["t"].encode() + b"." + body, hashlib.sha256).hexdigest()
return hmac.compare_digest(mac, parts.get("v1", ""))Limites e quotas por plano
As chamadas à API contam como na interface: mesmas quotas, mesma conta. Ver os preços
| Grátis | Starter | Pro | Business | |
|---|---|---|---|---|
| API e MCP | — | ✓ | ✓ | ✓ |
| Vídeos Explainer por mês | — | 15 | 30 | 100 |
| Produções Explainer em simultâneo | — | 2 | 2 | 2 |
| Chaves de API por conta | — | 10 | 10 | 10 |
| Webhooks por conta | — | 3 | 3 | 3 |
Segurança
Chama o ClipOnIt a partir do teu servidor, nunca a partir do navegador dos teus utilizadores.
Política de privacidade- A chave fica no teu servidor.Dá acesso à conta ClipOnIt inteira: nunca no navegador, numa app móvel ou num repositório Git. Guarda-a numa variável de ambiente e chama ClipOnIt a partir do teu backend.
- Uma chave por utilização, com o seu âmbito.Âmbito «leitura» (consultar, verificar) ou «produção» (criar vídeos). Cada chave tem um nome, uma data da última utilização e revoga-se com um clique: surte efeito 401 logo na chamada seguinte.
- O segredo só é mostrado uma vez.O ClipOnIt guarda apenas a impressão digital (SHA-256). Se perderes uma chave, substitui-a; não é possível recuperá-la.
- Webhooks assinados.Cada envio inclui X-ClipOnIt-Signature (HMAC-SHA256 do corpo e do carimbo temporal); recusa qualquer envio com mais de 5 minutos. Os URL de receção são em https e verificados a cada envio.
- Alojado na União Europeia.Servidores Hetzner na UE; subcontratantes listados na política de privacidade.
Perguntas frequentes
SDK, widget, prazos, quotas e volume.
Que plano é necessário para a API?
O plano gratuito chega para começar: a chave cria-se e o servidor MCP responde, para 3 vídeos Explainer por mês com marca de água, nos 8 estilos gratuitos. Os planos pagos acrescentam mais vídeos (15, 30 ou 100 por mês), sem marca de água, os 24 estilos, a tua voz ao microfone e o Realizador IA. As quotas da API são as da conta, como na interface.
Há um SDK?
Ainda não há SDK oficial. A API é em HTTP e JSON, descrita em OpenAPI 3.1 (/openapi.json): os exemplos desta página ocupam apenas algumas linhas de fetch ou de Python standard, e podes gerar um cliente a partir do ficheiro OpenAPI.
Posso integrar um leitor ou um editor do ClipOnIt no meu site?
Não, não há widget incorporável. Recebes o ficheiro MP4 e mostras-o no teu próprio leitor, ou alojas-o em casa.
Quanto tempo demora um vídeo?
Um vídeo explicativo: alguns minutos (escrita e depois renderização, cerca de 4 min para a renderização). Clips: cerca de 1 a 5 minutos para 20 minutos de vídeo, depois a exportação de cada clip. A API devolve a etapa, a percentagem e uma estimativa do tempo restante.
O que acontece quando uma quota é atingida?
A API responde 402 com uma mensagem clara (quota do mês ou orçamento de IA), 403 se a função não estiver no plano, 429 se já houver duas produções Explainer em curso. Para o Explainer, « dry_run »: true verifica tudo antes de lançar, sem criar nem faturar nada.
Quero ligar o ClipOnIt a todos os meus utilizadores.
Une clé agit sur un seul compte ClipOnIt : les vidéos et les quotas sont ceux de ce compte. Pour un usage à plus grande échelle, écris-nous à contact@cliponit.app avec ton volume et ton cas d'usage.
O teu primeiro vídeo pela API, hoje
Crée une clé, copie un exemple, lance-le. Une question sur ton intégration : contact@cliponit.app.