Clipcutter: visión por computadora local para recortar fotos y videos en lote
Clipcutter es una herramienta local con dos módulos: uno detecta, endereza y recorta en lote las fotos digitalizadas juntas en páginas A4; el otro corta varios fragmentos de un video con FFmpeg. Todo corre en la máquina del usuario — ningún archivo sale de la computadora.
Cliente y contexto
Digitalizar álbumes familiares o archivos produce PDFs con varias fotos torcidas por página, y separar cada una a mano lleva horas. Cortar fragmentos de video suele exigir editores pesados o servicios en línea.
El problema
“Tengo decenas de páginas con varias fotos cada una y quiero cada foto separada, derecha y del mismo tamaño — sin subir nada a internet.”
Restricciones
- Nada puede salir de la máquina.
- Sin Electron y sin paso de build en el front-end.
- Los errores de FFmpeg deben aparecer tal como son, no como un mensaje genérico.
Decisiones y concesiones
Interfaz en el navegador + servidor local (FastAPI)
Por qué: Aprovecha el navegador que la persona ya tiene, sin el peso de una app Electron; el único tráfico es entre la pestaña y localhost.
Detección con OpenCV ajustable en pantalla
Por qué: Páginas renderizadas a 300 DPI; el tamaño mínimo, el desenfoque y la separación son controles en la interfaz, y la detección se rehace sola.
Dos modos de corte de video
Por qué: Corte rápido (copia de stream, casi instantáneo) o preciso (recodifica, exacto al cuadro), con el costo de cada uno explicado en pantalla.
Lo que se construyó
- Extractor de fotos: detección, corrección de inclinación, recorte, redimensionamiento y exportación en ZIP.
- Corrección manual: borrar falsos positivos y dibujar regiones que el detector no encontró.
- Cortador de video: varios fragmentos en la línea de tiempo, exportación con progreso por fragmento.
- Pruebas automatizadas para los dos servicios.
Resultados
- 300 DPIde renderizado de cada página antes de la detecciónFuente: README del proyecto
- 0archivos enviados fuera de la máquinaFuente: Arquitectura del proyecto
El azulejo de este caso
Líneas no vacías de código en cada capa del proyecto.
| Líneas de código de Clipcutter por capa | líneas |
|---|---|
| Interfaz (JS, CSS, HTML) | 1,329 |
| Rutas HTTP | 394 |
| Servicios (visión y video) | 303 |
| Pruebas | 151 |
| Modelos de datos | 82 |
Fuente: Repositorio de Clipcutter · 2026-10-13
Tecnologías
¿Quiere algo de este nivel?
Envíe el problema, no la especificación.