interSubs es una extensión avanzada para el reproductor multimedia mpv que convierte los subtítulos convencionales en elementos interactivos. Orientado principalmente a la adquisición de nuevos idiomas, este módulo permite a los usuarios obtener traducciones instantáneas de vocabulario o frases completas simplemente interactuando con el cursor sobre el texto. Su arquitectura soporta la integración con diversos servicios de traducción y diccionarios en la nube, ofreciendo un alto grado de personalización mediante archivos de configuración.
Requisitos del sistema
Para garantizar el funcionamiento óptimo del plugin, el entorno debe contar con las siguientes herramientas y bibliotecas:
- Reproductor:
mpv(versión 0.27 o superior). - Entorno de ejecución:
python(versión 3.6 o superior) ylua. - Paquetes de Python:
pyqt5,numpy,beautifulsoup4,requests,lxml,httpx. - Utilidades del sistema:
socat,pkill,xdotool.
Proceso de instalación automatizado
En lugar de transferir los archivos manualmente, se puede implementar un script en Bash para clonar el repositorio, preparar el entorno y desplegar los componentes necesarios en el directorio de configuración de mpv.
#!/bin/bash
# Script de despliegue automatizado para interSubs
REPO_URL="https://github.com/oltodosel/interSubs.git"
MPV_SCRIPTS_DIR="$HOME/.config/mpv/scripts"
TEMP_BUILD_DIR="/tmp/interSubs_build"
# Obtener el código fuente desde el repositorio
git clone "$REPO_URL" "$TEMP_BUILD_DIR"
# Preparar el directorio de destino si no existe
mkdir -p "$MPV_SCRIPTS_DIR"
# Copiar los módulos lógicos de Python y Lua con permisos adecuados
install -m 644 "$TEMP_BUILD_DIR/interSubs.py" "$MPV_SCRIPTS_DIR/"
install -m 644 "$TEMP_BUILD_DIR/interSubs.lua" "$MPV_SCRIPTS_DIR/"
install -m 644 "$TEMP_BUILD_DIR/interSubs_config.py" "$MPV_SCRIPTS_DIR/"
# Limpieza de archivos temporales
rm -rf "$TEMP_BUILD_DIR"
echo "Despliegue finalizado. Proceda a ajustar sus preferencias en $MPV_SCRIPTS_DIR/interSubs_config.py"
Ejecución y flujo de trabajo
Para iniciar una sesión de estudio, se debe cargar el archivo de video junto con su pista de subtítulos correspondiente. El siguiente script envuelve el comando de ejecución para validar los parámetros de entrada y crear un socket IPC:
#!/bin/bash
# Lanzador de sesión con validación de argumentos
MEDIA_FILE=$1
SUB_TRACK=$2
if [[ -z "$MEDIA_FILE" || -z "$SUB_TRACK" ]]; then
echo "Sintaxis incorrecta. Uso: $0 [archivo_video] [archivo_subtitulos]"
exit 1
fi
# Iniciar mpv con los parámetros de red configurados para el plugin
mpv "$MEDIA_FILE" --sub-file="$SUB_TRACK" --input-ipc-server=/tmp/mpv_interSubs_socket
Una vez que el video esté en reproducción, la extensión se controla mediante atajos de teclado y el ratón:
- Presionar la tecla
F5para alternar el estado del plugin (activar o desactivar el servicio). - Posicionar el puntero sobre cualquier línea de texto en los subtítulos para invocar la interfaz gráfica de traducción, la cual está construida sobre PyQt5.
Casos de uso y optimización
Inmersión lingüística
El plugin elimina la fricción de buscar palabras desconocidas en un navegador externo. Al consultar el léxico directamente sobre el contexto audiovisual, se acelera la retención semántica y la comprensión auditiva del idioma objetivo.
Adaptación de motores de traducción
El archivo interSubs_config.py actúa como el núcleo lógico del sistema. Aquí se pueden intercambiar las APIs de traducción predeterminadas, establecer límites de tiempo (timeouts) para las peticiones HTTP, y modificar el comportamiento estético de la ventana emergente, incluyendo tipografías, paleta de colores y niveles de opacidad.
Integración con el ecosistema
Arquitectura basada en mpv
interSubs se comunica con el reproductor a través de sockets IPC (Inter-Process Communication). Este mecanismo le permite al script de Python extraer los metadatos de la pista de subtítulos actual y sincronizar la aparición de las ventanas emergentes con el tiempo de reproducción exacto del frame.
Soporte sin conexión mediante pyglossary
Para entornos sin conectividad a internet o para minimizar la latencia de las APIs web, se puede vincular el plugin con pyglossary. Esta utilidad externa permite compilar y transformar bases de datos de diccionarios en formatos locales que el backend de interSubs puede consultar directamente.
Composición gráfica con xcompmgr
Dado que el plugin dibuja ventanas flotantes directamente sobre la superficie del reproductor, los sistemas con gestores de ventanas X11 antiguos pueden presentar parpadeos visuales o fondos completamente opacos. La ejecución de un compositor ligero como xcompmgr o picom en segundo plano garantiza el renderizado adecuado de los canales alfa (transparencias) en la interfaz gráfica de traducción.