Saltar al contenido
← Volver a proyectos
Interfaz verificada localmente

Transcriptor de videos

Aplicación que recibe video o audio, extrae la pista, transcribe localmente y genera un resumen descargable.

Interfaz oscura del transcriptor con zona de carga de video y audio
La vista inicial reduce el flujo a una acción: cargar un archivo y seguir el estado del trabajo.

El reto

Transcribir material audiovisual suele exigir herramientas de escritorio, servicios externos o procesos manuales. El objetivo fue reunir carga, procesamiento, resumen y descarga en un solo flujo web.

Mi contribución

Construí la experiencia web y la arquitectura de procesamiento: frontend Next.js, API en Python, extracción con FFmpeg, transcripción local con Faster Whisper y trabajos distribuidos con Celery y Redis.

Decisiones clave

  • Ejecutar la transcripción localmente para reducir dependencia de terceros y mantener control sobre los archivos.
  • Procesar cada carga como un trabajo en cola para informar progreso y permitir varios usuarios sin bloquear la API.
  • Usar Gemini para el resumen cuando está disponible y conservar un resumen extractivo como respaldo.
  • Permitir descargas en TXT y PDF para que el resultado sea útil fuera de la aplicación.

El producto en uso

Capturas obtenidas al ejecutar el proyecto o recorrer su versión publicada.

Interfaz clara del transcriptor con formatos admitidos
El tema claro conserva la misma jerarquía y explica formatos compatibles sin añadir pasos.

Resultados

  • El flujo admite formatos comunes de video y audio desde una única zona de carga.
  • La separación entre interfaz, API y workers permite escalar procesamiento sin duplicar la aplicación web.
  • La solución conserva una ruta funcional de resumen aun cuando no se configura una clave generativa.

Stack técnico

Next.js 16FastAPIFaster WhisperCeleryRedisFFmpeg