Por qué se desincronizan los subtítulos
Si alguna vez has buscado "emby subtitles out of sync", ya conoces el síntoma: la primera línea aparece más o menos a tiempo y, poco a poco, la diferencia crece hasta que el diálogo va unos segundos por delante o por detrás. La causa habitual no es un archivo de subtítulos defectuoso, sino un subtítulo hecho para una versión distinta del mismo título. Un WEB-DL, un BluRay y un rip HDTV de una misma película rara vez son idénticos: cambian las fuentes, los montajes y, a veces, la tasa de fotogramas. Un subtítulo sincronizado para uno de ellos no encaja en otro.
Rosub es un plugin de Emby que descarga subtítulos en rumano desde subs.ro y OpenSubtitles y elige el subtítulo hecho para el mismo nombre de versión que tu archivo. Después ejecuta una comprobación de sincronía con ffprobe que compara los tiempos del subtítulo con el vídeo y corrige un desfase constante. Tú aportas tus propias claves de API (ambos proveedores tienen niveles gratuitos) y el plugin nunca incluye claves compartidas.
Este tutorial está pensado para quienes alojan Emby en su propio servidor, incluidos espectadores rumanos en Alemania, Francia, España e Italia que mantienen una biblioteca de subtítulos en rumano junto a sus medios. Los pasos siguen la página del producto Rosub y la guía de usuario.
Requisitos previos
- Emby Server 4.10.1 o posterior.
ffprobedisponible para Emby. Viene incluido con Emby en la mayoría de las instalaciones; la comprobación de sincronía depende de él.- Una cuenta de subs.ro y/o una cuenta de OpenSubtitles, para crear tus propias claves de API.
- Un poco de paciencia con la cola pendiente: primero se procesan los elementos nuevos y después el resto de la biblioteca.
Paso 1 — Consigue tus propias claves de API gratuitas
Ambos proveedores tienen niveles gratuitos y Rosub usa únicamente tus claves:
- Crea una cuenta de subs.ro y genera una clave de API. El nivel gratuito es de 300 peticiones/día.
- Opcionalmente, crea una cuenta en opensubtitles.com y genera una clave de API. El nivel gratuito es de 5 descargas/24 h.
Guarda ambas claves en un lugar seguro. Las pegarás en el plugin en el paso siguiente. Como las claves son tuyas, las cuotas se contabilizan por clave y no compites con el uso de nadie más.
Paso 2 — Instala Rosub en Emby
- Inicia sesión en tu cuenta de MediaLab Works, abre Licenses y descarga la DLL del plugin. Está disponible con una suscripción activa, con una licencia de por vida dentro de su ventana de actualizaciones o durante la prueba gratuita de 30 días.
- Copia la DLL en la carpeta de plugins de Emby y reinicia Emby Server:
- Linux (paquete):
/var/lib/emby/plugins/ - Docker: la carpeta
pluginsdentro de tu volumen de configuración de Emby - Windows:
%AppData%\Emby-Server\programdata\plugins\
- Linux (paquete):
- Abre Emby Dashboard → Plugins, haz clic en el plugin, pega tu clave de licencia y guarda. El plugin contacta con el servidor de licencias, vincula la clave a este servidor de Emby y muestra la licencia como Active.
La licencia se comprueba una vez al día y en cada arranque de Emby. Sin internet, el plugin sigue funcionando durante 7 días después de la última comprobación correcta. Si la licencia no es válida, las tareas automáticas se detienen, pero los subtítulos ya descargados permanecen junto a tus archivos y todo se reanuda en cuanto la licencia vuelve a ser válida.
Paso 3 — Configura las claves, las bibliotecas y la cola con prioridades
Abre Dashboard → Plugins → Rosub y completa los ajustes:
| Ajuste | Qué hacer |
|---|---|
| subs.ro API key | Pega la clave de tu cuenta de subs.ro. |
| OpenSubtitles API key | Pega la clave de opensubtitles.com. Es opcional, pero útil como segunda fuente. |
| Libraries | Selecciona qué bibliotecas de Emby vigilar. |
| Automatic download | Activado por defecto. Primero se procesan los elementos nuevos y después la cola pendiente. |
| Sync check | Usa ffprobe para detectar un desfase constante y corregirlo. |
| Overwrite existing | Desactivado por defecto; se conservan los subtítulos en rumano existentes. |
Esa cola con prioridades es la razón por la que un episodio recién añadido recibe su subtítulo en pocos minutos, mientras el resto de la cola pendiente se procesa en segundo plano. Deja Overwrite existing desactivado salvo que quieras reemplazar deliberadamente archivos que ya tienes.
La página del plugin muestra la cola, las descargas recientes y los errores (por ejemplo, haber alcanzado el límite diario de un proveedor), así que es el primer lugar donde mirar cuando algo parece atascado.
Paso 4 — Cómo la coincidencia por versión elige el subtítulo correcto
Cuando Rosub busca un subtítulo, usa el nombre de la versión de tu archivo para encontrar el subtítulo hecho para el mismo grupo de versión y la misma fuente. Un subtítulo etiquetado para un WEB-DL no se elegirá para un archivo BluRay si existe uno que coincida, porque los tiempos no encajarían. Esta es la corrección más eficaz contra la desincronía: el subtítulo correcto para la versión correcta.
Una consecuencia práctica: mantén nombres de archivo informativos. Si tu archivo lleva el nombre de la versión original, la coincidencia tiene con qué trabajar. Si se ha renombrado a algo genérico, puede que el plugin no encuentre una buena coincidencia; el propio consejo de solución de problemas de la guía indica que renombrar al nombre de la versión original ayuda a la coincidencia.
Paso 5 — La comprobación de sincronía: qué corrige y qué no
Con Sync check activado, Rosub usa ffprobe para comparar los tiempos del subtítulo con el vídeo y corrige un desfase constante. Ese es exactamente el patrón en el que todo el subtítulo va uniformemente adelantado o atrasado: una corrección y todo queda alineado.
Lo que no puede corregir es un subtítulo cortado para otro montaje de la película, donde el desfase cambia a mitad. En ese caso, la respuesta honesta es otro archivo de subtítulos: busca manualmente uno que coincida con tu versión.
Paso 6 — Búsqueda manual y diacríticos rumanos
A veces quieres otro subtítulo, o el proceso automático no encontró ninguno que te convenza. Abre el elemento en Emby, ve a Edit subtitles → Search y elige un resultado de Rosub. La búsqueda manual se ejecuta desde el servidor, así que usa las mismas claves y cuotas que las tareas automáticas.
Los subtítulos se guardan como archivos externos normales llamados <video>.ro.srt junto al vídeo, y por eso aparecen en cualquier cliente que muestre subtítulos externos; en producción, Emby los lista como "Romanian (SRT)". Como son archivos .srt UTF-8 sin más, los diacríticos rumanos ș/ț se muestran correctamente siempre que tu reproductor use UTF-8, como hacen los clientes modernos. Si alguna vez ves caracteres corruptos, revisa la codificación del archivo, no el plugin.
Consejos y solución de problemas
- No se encuentra ningún subtítulo. Revisa el nombre de la versión de tu archivo; renombrarlo al nombre de la versión original ayuda a la coincidencia. Comprueba también que estén seleccionadas las bibliotecas correctas.
- Sigue desincronizado. Activa la comprobación de sincronía o busca manualmente un subtítulo que coincida con tu versión. Recuerda que un desfase constante se puede corregir; un montaje distinto, no.
- Límite del proveedor alcanzado. Ambos proveedores tienen límites diarios por clave (subs.ro 250 y OpenSubtitles 5 peticiones por defecto en los presupuestos diarios del plugin), y la cola se reanuda al día siguiente. Consulta el error en la página del plugin.
- Los subtítulos no aparecen en la TV. Los archivos son
.srtnormales junto al vídeo. Si un cliente no los muestra, comprueba que el archivo exista con el sufijo.ro.srty que el cliente muestre subtítulos externos. Las apps nativas individuales no están probadas según las notas de compatibilidad. - Comprobación de privacidad. subs.ro recibe solo el id de IMDb o TMDb y el idioma: ni títulos, ni nombres de archivo, ni nombres de versión, ni hashes. OpenSubtitles recibe los idiomas, el id (o el id de la serie más temporada/episodio) y el hash de OpenSubtitles calculado localmente a partir del tamaño del archivo y los primeros/últimos 64 KB; el contenido nunca se envía. La comprobación de sincronía y la coincidencia por versión se ejecutan localmente con ffprobe.
- Claves en reposo. Tu clave de subs.ro, tu clave de OpenSubtitles y tu contraseña de OpenSubtitles se guardan cifradas en
secrets.enc.jsonen la carpeta de datos del plugin (AES-256-GCM, clave vinculada al id del servidor, archivos con modo 600) y nunca se envían al navegador. - Las series también funcionan. Rosub gestiona películas y series; primero se procesan los elementos nuevos y después el resto de la biblioteca.
- No existe para Jellyfin ni Plex. Rosub es un plugin de Emby. Para Jellyfin hay un plugin aparte, Rosub for Jellyfin; no hay versión para Plex.
Conclusión
La desincronía casi siempre es un problema de versión, no un subtítulo malo. Con Rosub tienes la coincidencia por nombre de versión para elegir el archivo correcto, una comprobación de sincronía con ffprobe para corregir un desfase constante y tus propias claves de API gratuitas para mantener las cuotas bajo tu control. Instálalo, configura las bibliotecas y la cola con prioridades, y deja que la cola pendiente se vacíe sola.
Empieza en la página del producto Rosub, sigue la guía de usuario para ver los ajustes exactos y consulta el changelog para estar al día. Tienes más material sobre autoalojamiento en nuestra base de conocimiento, y puedes contactarnos a través de contacto o de las preguntas frecuentes.