Comprimir un vídeo
Un video técnicamente correcto pero demasiado pesado sigue siendo un problema: páginas lentas, subidas que fallan, facturas de almacenamiento que crecen sin ninguna ganancia visual. Este endpoint comprime un video hasta un peso que realmente se ajusta a su destino, cambiando bytes invisibles por un archivo que carga y se reproduce como debería.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
De dónde viene el peso extra
Las cámaras y los teléfonos suelen grabar con ajustes pensados para la captura, no para la entrega: bitrates altos, compresión mínima, a veces formatos pensados para edición y no para reproducción. Nada de eso está mal al momento de grabar, pero enviar ese mismo archivo directo a un sitio web, una app o un adjunto de correo significa pagar —en tiempo de carga, en ancho de banda, en costo de almacenamiento— por márgenes de calidad que nadie viendo desde la pantalla de un teléfono va a percibir jamás.
Qué hace el endpoint con el archivo
Se envía el video a POST /video/compress y se recibe un task_id mientras la tarea entra en cola. El servicio recodifica el video para reducir su peso, equilibrando bitrate y ajustes de codificación contra la calidad visual para que el resultado siga siendo claramente reproducible mientras se elimina el peso que la entrega no necesita. Al terminar, se avisa y el archivo comprimido queda listo para descargar.
Comprimir es un balance, no un truco
La compresión de video funciona descartando información que estadísticamente el espectador no va a notar: gradientes de color sutiles, movimiento entre fotogramas que se puede predecir en lugar de almacenar tal cual, un principio refinado desde los primeros códecs de la era de la transmisión y la razón por la que los formatos modernos pueden reducir archivos de forma drástica sin una pérdida evidente de nitidez percibida. Llevarlo demasiado lejos hace que el recorte se vuelva visible como bloques o desenfoque; el objetivo de un paso de compresión dedicado es aterrizar en el rango donde el archivo es pequeño pero la baja de calidad no es algo que un espectador señale.
Quién necesita esto, de forma rutinaria
No es una solución de una sola vez, es una necesidad recurrente para cualquiera con un flujo que termina en la web: un CMS que acepta video subido por usuarios y no puede dejar que el almacenamiento se dispare, una app con límites de tamaño de subida que el material crudo de cámara supera sin problema, una herramienta de email marketing que no puede adjuntar nada pesado, un sitio cuyo tiempo de carga afecta directamente su posicionamiento. Cada uno de esos casos es la misma tarea repetida a escala, exactamente para lo que sirve un endpoint de API.
Estado real, sin adornos
Este endpoint está completando su fase final de despliegue. La ruta, el precio y el comportamiento aquí descritos son la versión definitiva; una vez abierto, las compresiones fallidas se reintentan automáticamente y nunca se cobran si siguen sin tener éxito.
Qué puede hacer con ella
Video generado por usuarios en un CMS o app
Una plataforma que acepta videos subidos por usuarios los comprime automáticamente al recibirlos, manteniendo predecibles los costos de almacenamiento y ancho de banda sin importar qué dispositivo grabó el original.
Páginas de marketing y aterrizaje más rápidas
Un equipo web comprime videos de portada y de producto antes de publicarlos para que el tiempo de carga se mantenga bajo, apoyando directamente tanto la experiencia de usuario como el posicionamiento en buscadores.
Adjuntos de correo y mensajería
Un equipo de ventas o soporte comprime videos de demostración grabados para que quepan dentro de los límites de tamaño de adjuntos de correo y mensajería, sin recurrir a un enlace de archivo compartido aparte.
Costos de almacenamiento en archivo y respaldo
Una empresa comprime material grabado más antiguo antes de guardarlo en almacenamiento de archivo a largo plazo, reduciendo el costo de recursos que se conservan como referencia y no para edición activa.
Preguntas frecuentes
¿Cuánto reduce el peso esta api comprimir video?
Depende del origen: el material grabado con un bitrate alto y poco comprimido suele reducirse más, mientras que un archivo ya comprimido tiene menos margen para bajar más sin pérdida visible de calidad.
¿Comprimir hará que mi video se vea peor?
La compresión apunta a bytes que difícilmente se van a extrañar visualmente, así que un archivo bien comprimido se mantiene claramente reproducible; llevado al extremo, cualquier códec empieza a mostrar desenfoque o bloques, por eso importa un ajuste equilibrado.
¿Existe un plan gratuito para la api comprimir video?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cómo recibo el archivo comprimido?
A través de un webhook firmado cuando la tarea se completa, o mediante un enlace firmado que permanece válido por 24 horas tras terminar la compresión.
¿Puedo comprimir un lote grande de videos en un mismo flujo?
Sí, cada solicitud de compresión es una tarea asíncrona independiente con su propio task_id, así que procesar toda una biblioteca es cuestión de repetir la llamada, no un modo especial de lote.
¿Qué pasa si la compresión falla en un archivo?
La tarea se reintenta automáticamente hasta tres veces, y si sigue fallando se recibe un error claro sin ningún cobro por ese intento.
¿Comprimir cambia el formato del video?
La compresión reduce el peso del archivo dentro del mismo formato; si además se necesita otro contenedor o códec, conviene combinarlo con el endpoint de convertir video.
¿Este endpoint ya está aceptando tareas?
Está en su despliegue final; el endpoint, el precio y el comportamiento aquí documentados son definitivos y pronto abrirá para recibir solicitudes.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/video/compress \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/video/compress", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/compress",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/compress", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/compress", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"audio": "https://ejemplo.com/audio.mp3"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.compress",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |