Poner marca de agua a un vídeo
Un vídeo sin marca es un vídeo que cualquiera puede volver a subir y atribuirse. Este endpoint incrusta un logo en cada fotograma del clip de forma consistente, para que la autoría viaje con el archivo sin importar dónde termine.
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.
El momento en que un clip deja de estar bajo su control
En cuanto un vídeo se descarga, puede volver a subirse, volver a compartirse y quedar despojado de cualquier contexto que apuntara a su origen: un pie de foto, el nombre de un canal, un campo de descripción son fáciles de borrar. Una marca de agua incrustada directamente en los píxeles es un tipo de marca distinto: quitarla implica editar el vídeo en sí, no solo borrar una línea de texto al lado. video.watermark existe justo para ese escenario, donde el archivo va a viajar más allá de lo que usted pueda rastrear.
Cómo se aplica la superposición
Envíe POST a /video/watermark con el vídeo de origen y la imagen del logo que quiere superponer, y la respuesta llega de inmediato como un task_id mientras el marcado corre en segundo plano. Al terminar, el vídeo marcado llega mediante una llamada de webhook firmada o queda disponible en un enlace firmado válido por 24 horas, según cómo su sistema revise el trabajo terminado.
Por qué tiene que tocar cada fotograma
Una marca de agua aplicada a un solo fotograma o como una capa estática de superposición desaparecería en cuanto alguien recodifique o recorte el vídeo, así que una marca de agua real se compone en cada uno de los fotogramas durante la codificación, pasando a formar parte de los datos del vídeo en sí y no de una capa colocada encima. Es la misma lógica que usan las televisoras desde hace décadas con los logotipos de canal en pantalla: una marca pequeña, persistente y semitransparente en una esquina que sobrevive a la grabación, la recodificación e incluso un recorte moderado. La compensación es deliberada: suficientemente visible para identificar el origen, suficientemente discreta para no competir con el contenido.
Dónde encaja el marcado de agua en un proceso de lanzamiento
Poner marca de agua suele ser uno de los últimos pasos antes de que un vídeo salga a producción: después de recortar, después de redimensionar, una vez que el archivo tiene su forma final y ya no se va a volver a cortar. Como el precio es una tarifa fija por solicitud más una tarifa por minuto sobre el origen, aplicarla una sola vez al final de la cadena, en lugar de a cada versión intermedia, hace que un proceso de lanzamiento por lotes sea más barato y más fácil de planear.
Qué puede hacer con ella
Clips de vista previa antes de licenciar
Un mercado de material audiovisual marca las versiones de vista previa de sus clips para que los compradores evalúen la calidad antes de adquirir el original sin marca.
Distribución con marca a través de socios
Una empresa de medios marca cada clip que sindica a sitios asociados, así su logo viaja con el contenido dondequiera que se vuelva a incrustar.
Protección de contenido generado por usuarios
Una plataforma de creadores marca los vídeos exportados con el usuario del creador para desincentivar la resubida sin crédito en otras plataformas.
Copias de revisión interna
Un estudio de producción marca los cortes preliminares que comparte con revisores externos para poder rastrear cualquier copia filtrada hasta su origen.
Preguntas frecuentes
¿Cómo agrego una marca de agua a un vídeo con la API?
Envíe el vídeo de origen y la imagen del logo por POST a /video/watermark, guarde el task_id devuelto y reciba el archivo marcado por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API de marca de agua en vídeo?
No, no hay plan gratuito ni prueba; cuesta $0.077 por solicitud más $0.0045 por minuto de vídeo, y un trabajo de marcado fallido nunca se cobra.
¿Puedo controlar dónde aparece el logo en el vídeo?
Usted proporciona la imagen del logo a superponer, y el endpoint la aplica de forma consistente en todo el clip, en cada fotograma del vídeo de origen.
¿Poner marca de agua reduce la calidad del vídeo?
La superposición en sí es una adición pequeña y compuesta; cualquier cambio de calidad proviene del paso de codificación, que el endpoint maneja para mantener intacto el resto del fotograma.
¿Se puede quitar una marca de agua recortando el vídeo?
Como la marca se compone en cada fotograma durante la codificación en lugar de agregarse como una capa aparte, un simple recorte o recodificación no la elimina por sí solo.
¿Ya está disponible este endpoint?
Está en despliegue en este momento, así que verifique el estado del endpoint antes de enviar tráfico de producción porque todavía no acepta trabajos.
¿Puedo poner marca de agua a muchos vídeos por lote?
Sí, envíe una tarea asíncrona por vídeo y reciba cada archivo marcado por webhook a medida que termine, algo apto para procesos de lanzamiento por lotes.
¿Se guarda mi vídeo después de aplicar la marca de agua?
No, los archivos de origen y los marcados se eliminan después del período de retención y nunca se usan para entrenamiento.
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/watermark \
-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/watermark", {
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/watermark",
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/watermark", 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/watermark", 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.watermark",
"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. |