Thumbnail de vídeo
Gera a thumbnail — a imagem de capa — a partir do próprio vídeo: você envia o arquivo, indica a cena e recebe o quadro como imagem pronta para usar no player, no site ou na lista de episódios. Cada execução processa um vídeo de até 500 MB e custa centavos de dólar.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
A capa decide o clique
Antes de dar o play, todo mundo julga o vídeo pela capa: num catálogo de curso, numa página de produto, numa lista de episódios, a thumbnail é o único argumento visível. Uma capa que mostra a cena certa — o rosto, o produto, o resultado — convida; um quadro aleatório de transição, com olho fechado e imagem borrada, espanta. O problema é que abrir cada vídeo num editor para caçar o quadro bom não escala.
Do vídeo à imagem de capa
A chamada leva o arquivo e o instante desejado — o segundo em que a cena boa acontece — e a tarefa devolve esse quadro como imagem estática, pronta para a web. O fluxo é assíncrono: você recebe um task_id, e o resultado sai na sequência. Quer comparar opções? Rode duas ou três chamadas com instantes diferentes e escolha a melhor capa com a equipe, sem renderizar nada localmente.
Capas em escala, sem designer
O ganho real aparece no volume: uma plataforma com centenas de vídeos, um catálogo que recebe uploads todo dia, um acervo antigo sem capa nenhuma. Integrada ao seu sistema, a tarefa gera a thumbnail de cada vídeo novo automaticamente no momento do upload — o catálogo nunca mais exibe aquele retângulo cinza de vídeo sem capa, e ninguém da equipe para o dia para tirar print de tela.
Preço por vídeo, não por minuto
Aqui a unidade de cobrança é o vídeo: US$ 0,077 pela chamada mais US$ 0,0045 por arquivo — cerca de US$ 0,08 por capa, em dólares, independentemente da duração. Faz sentido: extrair um quadro de um vídeo de 3 minutos ou de 60 dá o mesmo trabalho. A capacidade está em fase de implantação; as execuções abrem em breve com exatamente estas condições.
Casos de uso
Catálogo de curso organizado
Juliana Nascimento mantém dezenas de aulas na plataforma do seu curso. Cada vídeo novo ganha capa automática com a cena de abertura, e a vitrine ficou uniforme sem contratar designer.
Tour de imóvel com boa fachada
Uma imobiliária de Curitiba gera a thumbnail de cada tour em vídeo usando o momento em que a fachada aparece inteira — a lista de imóveis ficou visualmente vendedora.
Vitrine de produtos em vídeo
A Distribuidora Horizonte Verde grava demonstrações de produto e usa o quadro em que o item aparece em destaque como capa na página da loja.
Biblioteca interna sem retângulo cinza
A TecnoSul Soluções Digitais arquiva gravações de treinamento no portal interno. Com capa automática por vídeo, os funcionários acham o conteúdo certo batendo o olho.
Perguntas frequentes
Posso escolher o momento exato do quadro?
Sim — você indica na chamada o instante do vídeo que quer transformar em capa, com precisão de segundos.
Dá para gerar mais de uma opção de capa?
Cada chamada gera uma imagem. Rode algumas com instantes diferentes do mesmo vídeo e compare — a soma continua custando centavos.
Por que o preço é por vídeo e não por minuto?
Porque o trabalho de extrair um quadro não depende da duração do arquivo. O total fica em cerca de US$ 0,08 por capa: US$ 0,077 da chamada mais US$ 0,0045 do vídeo.
Meus vídeos entram em algum banco de imagens?
Não: nem o vídeo enviado nem a capa gerada são publicados por nós. O material circula só dentro da sua tarefa.
Funciona com vídeo vertical de celular?
Funciona — a capa sai no formato do vídeo original, vertical ou horizontal, respeitando o limite de 500 MB por arquivo.
A ferramenta está no ar?
Está em fase de implantação: o preço e o comportamento já estão definidos e publicados, mas o envio de tarefas ainda não foi liberado.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/video/thumbnail \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/video/thumbnail", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/thumbnail",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/thumbnail", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/thumbnail", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.thumbnail",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |