Concordance sincroniza el punto de lectura entre ebook y audiolibro
Un proyecto en alpha temprana encadena KOReader, Calibre-Web-Automated y Audiobookshelf para replicar el Whispersync de Amazon sin pasar por Amazon.
Concordance es un proyecto autoalojado que replica el Whispersync de Amazon sin pasar por Amazon: sincroniza el punto de lectura entre un ebook y su audiolibro. Su autor lo ha publicado en alpha temprana y con licencia MIT, y avisa de que solo lo ha probado contra su propia biblioteca, en su propio hardware.
El problema que resuelve es concreto. Quien lee en un Kobo y escucha en el coche pierde el hilo entre ambos formatos, y la función de Amazon solo sirve si compras todo allí. Concordance encaja KOReader con el plugin de sincronización de Calibre-Web-Automated para el texto y Audiobookshelf para el audio.
Por qué no basta un porcentaje
Un porcentaje único por libro no aguanta: la velocidad de narración deriva y al final de una novela acumulas minutos de desfase. La herramienta trabaja por capas. Empareja los ficheros internos del ebook con los capítulos del audiolibro comparando proporciones, lo que absorbe prólogos, pistas de créditos y capítulos partidos en varios ficheros. KOReader informa del carácter exacto en el que estás, no de un tanto por ciento, así que el sistema sabe cuánto llevas dentro del capítulo. De noche, un contenedor de alineación forzada marca el tiempo de cada palabra de los capítulos que vienen, y una posición se traduce a la palabra aproximada.
Cada posición recibe un nivel según la precisión con que se calculó. Solo se escriben las exactas; las burdas se reportan y se ignoran. Las escrituras hacia el audiolibro van 2,5 minutos por delante a propósito, porque saltar adelante en audio es fácil y rebobinar a ciegas es un castigo.
Lo que hace falta y lo que duele
Requiere Calibre-Web-Automated con los ebooks, KOReader con su plugin de sync, Audiobookshelf con los audiolibros y una máquina Linux con Docker y Python 3.11 o superior. La alineación es solo CPU y lenta: unos 22 minutos de CPU por cada hora de audio, con picos de 3 GB de RAM. Solo alinea los capítulos inmediatos, así que una pasada nocturna suele bastar, y no arranca trabajo si no hay memoria libre. En un servidor ya cargado de noche, se va a notar.
El arranque es prudente: se clona, se instala con pip, se rellena un .env con la contraseña de CWA y la clave de API de ABS, y se ejecuta con --progress-only, que imprime emparejamientos y posiciones sin escribir nada. No sale nada a la red. Solo se escribe cuando se añade el id de Calibre de un libro a una lista blanca, de uno en uno.
Los avisos del autor son honestos. Solo KOReader; el lector nativo de Kobo no vale. El emparejamiento de capítulos se equivoca a veces, y conviene mirar la confianza que reporta antes de autorizar un libro. Hay una herramienta para reconstruir marcas de capítulo rotas en ABS, pensada para ediciones que traen diez blobs de 70 minutos llamados «Chapter 4». Un tramo puede salir mal dentro de una alineación correcta: esos puntos se rechazan, así que la cobertura es más irregular de lo que sugiere la etiqueta de «libro alineado».
El modelo de alineación por defecto es CC-BY-NC, válido para tu estantería y no para uso comercial. Un usuario de CWA y uno de ABS por configuración. Y el desarrollo va contra el fork Calibre-Web NextGen, no contra el CWA original: saber si funciona con este último es una de las preguntas abiertas. El autor pide justamente eso, bibliotecas ajenas y PRs.