Volver a trayectoria

Aplicación Web

Convierte un vídeo público de YouTube en texto con marcas de tiempo para leer, traducir y reutilizar. Una aplicación operativa con código público de frontend y API, sin crear una cuenta.

  1. 01 / ENTRADAUn enlace de YouTube
  2. 02 / PROCESOTexto con marcas de tiempo
  3. 03 / SALIDATu idioma de destino
Descubre cómo está construido

El problema

Revisar un vídeo no debería exigir reproducirlo una y otra vez para encontrar cada frase útil ni copiar subtítulos a mano en un traductor. Transcriber reúne una URL pública de YouTube, texto con marcas de tiempo y una traducción opcional en un mismo flujo de lectura, sin exigir una cuenta.

Ver la demo

Grabación editada de la aplicación real, sin respuestas de API simuladas. Un cursor editorial siempre visible guía el montaje aprobado: su movimiento se reconstruye entre controles verificados, no procede de telemetría del ratón. Los sonidos de teclado siguen la entrada visible de texto, junto a los clics y la música original. Solo se reproduce al pulsar el botón de reproducción. No es un benchmark ni una garantía de latencia. El rótulo original «Sin audio» es anterior a esta banda sonora.
Descargar este vídeo

En el móvil, usa la pantalla completa y gira el teléfono para leer la aplicación con detalle.

  1. Introduce una URL pública de YouTube y elige el idioma de destino.
  2. Sigue las etapas del proceso mientras se prepara la transcripción.
  3. Compara el resultado con marcas de tiempo y su traducción, busca dentro del texto y cambia al modo lectura.
  4. Exporta en TXT, SRT, VTT o Markdown y recupera un resultado desde el historial del navegador.

Decisiones técnicas

Reutilizar subtítulos antes de reconocer voz

La API en Java / Spring Boot utiliza yt-dlp para buscar primero subtítulos existentes. Si no hay subtítulos utilizables, descarga el audio y ejecuta whisper.cpp en el servidor. Así evita transcribir de nuevo cuando ya existe texto; Whisper es una alternativa, no una promesa de reconocimiento perfecto.

Traducir solo cuando cambia el idioma

DeepL recibe el texto para traducirlo. Cuando el idioma de origen y el de destino coinciden, se omite esa traducción. Separar extracción, transcripción y traducción hace explícita la dependencia externa, en lugar de presentar todo el proceso como IA local.

Mostrar etapas en lugar de una espera opaca

El frontend en Astro / React recibe las etapas del proceso mediante Server-Sent Events (SSE). La interfaz puede explicar qué está haciendo la API mientras se procesa la petición, sin afirmar una hora exacta de finalización.

Conservar resultados recientes en el navegador

Los últimos cinco resultados se guardan en el almacenamiento local del navegador para poder revisarlos sin cuenta. Es un historial local acotado, no sincronización entre dispositivos ni una afirmación de que el servidor no almacena nada.

Límites y tratamiento de datos

  • La configuración predeterminada del proyecto admite vídeos de hasta 20 minutos y dos solicitudes de procesamiento simultáneas. El exceso se rechaza, no se encola. Son límites configurables, no valores de producción comprobados ni una afirmación de capacidad; la duración del vídeo es distinta del tiempo de procesamiento.
  • La aplicación depende de la disponibilidad de YouTube y de la extracción mediante yt-dlp. Que un vídeo sea público no garantiza que pueda procesarse ni concede permiso para reutilizar su contenido.
  • Los subtítulos, el reconocimiento de voz y la traducción pueden introducir errores. El idioma de origen indicado corresponde a la transcripción o los subtítulos seleccionados y puede diferir del audio original. Revisa el resultado antes de usarlo como cita, subtítulo o documento de referencia.
  • No es un servicio totalmente local ni libre de almacenamiento: hay peticiones a YouTube, archivos temporales y registros en el servidor, y la traducción envía texto a DeepL. El historial también persiste en el navegador; evita introducir material sensible.
  • El tiempo de procesamiento depende de la duración del vídeo, los subtítulos disponibles, la carga del servidor y los servicios externos. La demo no mide rendimiento.

Un resultado verificable

El entregable es una aplicación web operativa con una API separada: convierte un vídeo público en texto con marcas de tiempo, traducción opcional e historial reciente. La aplicación y ambos repositorios permiten revisar la implementación; no se atribuyen cifras de uso, ahorro de tiempo ni precisión.

Cómo comprobarlo

  1. Abre la aplicación y envía un vídeo público que tengas permiso para procesar; elige el idioma de destino y sigue las etapas indicadas.
  2. Compara varios fragmentos con marcas de tiempo con el vídeo original. Revisa la traducción por separado, sin confundir transcripción y traducción.
  3. Recupera un resultado desde el historial del navegador. Consulta los repositorios Frontend y API para revisar la prioridad de subtítulos, la alternativa Whisper, las etapas SSE y los límites configurados.

Tecnologías