Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

go-subgen

go-subgen es una herramienta en Go para generar subtítulos automáticamente a archivos multimedia usando whisper.cpp, activada vía webhooks de Radarr, Sonarr y Tautulli.

Ficha actualizada 18 sept 2026, 21:04 · upstream 26 may 2026, 1:16 · release v0.2.0

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es go-subgen

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

go-subgen es una aplicación escrita en Go diseñada para generar subtítulos automáticamente a archivos multimedia almacenados localmente. Utiliza whisper.cpp como motor principal de reconocimiento de voz (ASR), lo que permite un rendimiento eficiente tanto en CPU como con aceleración GPU mediante CLBLAST/CUBLAS cuando está disponible. La herramienta se integra principalmente con ecosistemas de gestión de medios autoalojados como Radarr y Sonarr a través de webhooks, permitiendo la generación de subtítulos justo después de la descarga de episodios o películas.

La arquitectura del software almacena el audio extraído en memoria RAM en lugar de escribirlo temporalmente en el sistema de archivos, lo que reduce la I/O pero incrementa significativamente los requisitos de memoria. Esto es especialmente relevante cuando se utilizan modelos grandes como large_v3 o cuando se procesan archivos multimedia con una duración considerable. El servicio expone un servidor web en el puerto 8095 que acepta peticiones POST para iniciar procesos de transcripción, ya sea a través de integraciones específicas o mediante endpoints genéricos.

El proyecto está actualmente en proceso de reescritura mayor, con ramas v1-dev y v1-dev-web que ofrecen funcionalidades mejoradas pero que aún no son la versión estable principal. La herramienta soporta plantillas Go para personalizar los nombres de los archivos de subtítulos generados, permitiendo incluir metadatos como el nombre del archivo, idioma detectado, tipo de archivo y hash del archivo (basado en imohash). Además, incluye opciones para verificar hashes de modelos descargados, controlar la concurrencia de procesos y ajustar parámetros avanzados de whisper.cpp como velocidad de inferencia y umbrales de tokens.

CASOS DE USO
  • Generación automática de subtítulos para series gestionadas por Sonarr tras su descarga
  • Creación de subtítulos para películas gestionadas por Radarr sin intervención manual
  • Integración con Tautulli para generar subtítulos en películas consumidas por Plex u otros reproductores
  • Transcripción manual de archivos multimedia mediante endpoints REST genéricos
PUNTOS DESTACADOS
  • Soporte nativo para integraciones con Radarr y Sonarr mediante webhooks configurables
  • Uso de whisper.cpp permite modelos desde tiny hasta large_v3 con soporte de GPU vía CLBLAST/CUBLAS
  • Almacenamiento de audio en memoria reduce operaciones de I/O del sistema de archivos
  • Plantillas Go personalizables para nombres de archivo de subtítulos con múltiples metadatos
PRECAUCIONES
  • Requiere soporte AVX2, AVX y SSE3 en el hardware del procesador para ejecutar la imagen precompilada
  • Almacena audio en memoria, por lo que archivos grandes o modelos pesados pueden agotar la RAM disponible (8GB mínimo recomendado)
  • No incluye interfaz web gráfica para gestionar colas de transcripción ni ver estado de tareas en tiempo real
  • La versión estable actual está siendo reescrita; las ramas v1-dev son funcionales pero no oficialmente estables
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA8 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADlownivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Docker detectado

Recomendado usar Docker con imagen ghcr.io/khakers/go-subgen:latest o construir localmente para optimizaciones de hardware específicas. Asegurar que el volumen /models tenga espacio suficiente y permisos correctos. Configurar MODEL_TYPE según capacidad RAM (tiny para <4GB, medium/large para >8GB). Verificar soporte AVX2/AVX/SSE3 en CPU antes de usar imagen precompilada. Para producción, considerar MAX_CONCURRENCY=1 si la RAM es limitada o aumentar si hay suficiente memoria disponible.

✓Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Go
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
8095
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.