Calculadora de tempo de download
Calcule quanto tempo um arquivo leva para ser transferido: 10 MB numa conexão de 10 Mbps levam 8 segundos, e não 1, porque a velocidade é medida em bits e o arquivo em bytes. Aceita unidades decimais e binárias. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Tamanho
- 10
- Unidade de tamanho
- MB
- Velocidade
- 10
- Unidade de velocidade
- Mbps
- Segundos
- 8
- Horas
- 0
- Minutos
- 0
- Segundos restantes
- 8
grátis online
Por que bits e bytes mudam a resposta
As velocidades de conexão costumam ser anunciadas em bits por segundo, enquanto os arquivos são medidos em bytes, e misturar as duas coisas é o motivo mais comum de uma estimativa errada. Um byte tem oito bits, então velocidades em bits por segundo, como bps, Kbps, Mbps ou Gbps, são divididas por oito para virar bytes por segundo, e as que já estão em bytes por segundo são usadas como estão. É por isso que 10 MB numa conexão de 10 Mbps levam 8 segundos, e não um: 10 megabytes são 80 megabits. Se você não mudar nada, o tamanho é lido em MB e a velocidade em Mbps, como as conexões residenciais costumam ser anunciadas.
As unidades de arquivo e como ler o resultado
Os tamanhos de arquivo vêm em duas famílias. As unidades decimais KB, MB, GB e TB crescem em potências de 1000, então um MB tem 1.000.000 de bytes. As binárias KiB, MiB, GiB e TiB crescem em potências de 1024, então um MiB tem 1.048.576 bytes. O resultado traz o tempo total em segundos, arredondado para três casas decimais, esse mesmo tempo em horas, minutos e segundos, e um rótulo curto como 1h 5m 3s, ou só 8s quando é rápido. Também mostra o tamanho em bytes e a velocidade em bytes por segundo para conferir a conversão. Use antes de começar um backup ou para comparar planos antes de mudar.
De segundos a uma duração legível
Ela divide o total em horas e minutos inteiros e um valor fracionário secs, propagando o excedente corretamente, de modo que um secs que atinge 60 avança para os minutos e um minutes que atinge 60 avança para as horas.
O campo human é montado a partir dessas partes: mostra horas apenas quando presentes (por exemplo 1h 5m 3s), minutos e segundos quando abaixo de uma hora, e apenas segundos para transferências curtas, exatamente como o exemplo de referência transforma 10 MB a 10 Mbps em seconds 8 e human 8s. Isso lhe dá tanto uma duração numérica precisa para cálculos adicionais quanto um rótulo compacto pronto para exibir em uma interface ou linha de log, sem qualquer formatação específica de locale.
Casos de uso
Dimensionar uma transferência
Estime quanto tempo um backup, ISO ou arquivo de mídia levará em uma dada conexão antes de iniciá-lo, usando as unidades em que sua banda é anunciada.
Planejamento de banda
Compare durações entre faixas de Mbps ou links em bytes por segundo para justificar um upgrade, lendo os bytes por segundo resolvidos para conferir a conta.
Perguntas frequentes
Por que 10 MB a 10 Mbps leva 8 segundos, e não 1?
Mbps é megabits por segundo; a ferramenta divide velocidades baseadas em bits por 8. 10 MB são 80 megabits, então a 10 Mbps são 8 segundos.
O que é o campo human?
Uma cadeia de duração legível como 8s ou 1h 5m 3s, montada a partir da divisão em horas, minutos e secs com propagação correta.
Ela considera sobrecarga ou latência?
Não. Ela modela apenas a vazão ideal, então transferências reais podem ser mais lentas. As entradas são validadas e os resultados são determinísticos.
Qual a diferença entre MB e MiB no tamanho de um arquivo?
MB é uma unidade decimal de 1.000.000 de bytes, enquanto MiB é binária e vale 1.048.576 bytes. Escolha a unidade em que o tamanho do arquivo aparece de verdade, porque usar a outra desloca a estimativa.
Como comparo o tempo de download entre planos de internet?
Mantenha o mesmo tamanho de arquivo e mude só a velocidade, por exemplo entre planos em Mbps. A ferramenta também mostra o tamanho em bytes e a velocidade em bytes por segundo, para você conferir a conversão de cada estimativa.
Ferramentas relacionadas
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/dev/download-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"size":10,"speed":10}'const res = await fetch("https://api.kit.forhosting.com/dev/download-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"size": 10,
"speed": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/download-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"size": 10,
"speed": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/download-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"size":10,"speed":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"size":10,"speed":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/download-time", 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
{
"size": 10,
"speed": 10
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.download_time",
"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.
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. |
Notas técnicas
Estima quanto tempo uma transferência leva convertendo o tamanho (com size_unit) para bytes e a velocidade (com speed_unit) para bytes por segundo, dividindo para obter os segundos e devolvendo uma divisão em h/m/s mais uma cadeia legível por humanos.
Unidades: decimais, binárias, bits e bytes
É por isso que 10 MB em uma linha de 10 Mbps não é um segundo, e sim oito: 10 MB são 80 megabits. O tamanho é lido com size_unit, que aceita as unidades decimais B, KB, MB, GB e TB (potências de 1000), bem como as unidades binárias KiB, MiB, GiB e TiB (potências de 1024), de modo que um MB são 1.000.000 de bytes, enquanto um MiB são 1.048.576. A velocidade é lida com speed_unit e trata a distinção entre bit e byte que atrapalha a maioria das estimativas: as unidades de bit por segundo bps, Kbps, Mbps e Gbps são divididas por 8 para chegar a bytes por segundo, enquanto as unidades de byte por segundo Bps, KBps, MBps e GBps são usadas diretamente. Os padrões são MB para tamanho e Mbps para velocidade, condizentes com a forma como a banda larga de consumo costuma ser anunciada, e a saída informa o size_bytes e o speed_bytes_per_sec resolvidos para que você possa verificar a conversão.
De segundos a uma duração legível
Após converter, a ferramenta calcula size_bytes dividido por speed_bytes_per_sec para obter os segundos brutos e então arredonda isso para três casas decimais como o campo seconds.
Validação, arredondamento e determinismo
Tanto o tamanho quanto a velocidade devem ser números finitos estritamente maiores que zero, e size_unit e speed_unit devem ser uma das chaves enumeradas; uma unidade desconhecida ou um número não positivo lança um erro invalid_input tipado que nomeia o problema, e uma velocidade efetiva de zero é protegida contra a divisão por zero. O cálculo é um modelo puro de vazão ideal, sem sobrecarga de protocolo, latência, congestionamento ou aceleração inicial, o que o mantém totalmente determinístico: entradas idênticas sempre produzem JSON idêntico.
Casos de integração
Estimativas no app via API
Chame o endpoint para mostrar aos usuários uma estimativa ao vivo no estilo 'cerca de 8s', alimentando o campo human diretamente na interface.
Perguntas técnicas
Ela suporta unidades binárias como MiB e GiB?
Sim. size_unit aceita decimais B/KB/MB/GB/TB (x1000) e binárias KiB/MiB/GiB/TiB (x1024); speed_unit cobre de bps a Gbps e de Bps a GBps.
A ferramenta do navegador é gratuita?
Sim, o widget é gratuito (tier A). A API funciona com saldo KIT pré-pago a partir de US$ 0,002, cobrando apenas tarefas bem-sucedidas.