BookinglyTech News
Software

Automatizar la ingestión de audiobooks y ebooks con Audiobookshelf y Calibre Web

El usuario necesita mover torrents categorizados en "mam-book" y "mam-audiobook" a bibliotecas automáticas, pero Calibre Web Automated destruye los archivos de entrada.

2 min de lecturar/selfhosted0 vistas

Contexto

El problema surge al usar myanonymouse para clasificar torrents en dos categorías: mam-book (ebooks) y mam-audiobook (audiobooks). El objetivo es que los archivos lleguen a dos sistemas de gestión de contenidos: Audiobookshelf para los audiobooks y Calibre Web Automated para los ebooks.

Obstáculos actuales

  • Calibre Web Automated elimina el archivo del ingest folder una vez procesado. Esto impide usar enlaces duros (hard‑links) para mantener una copia única en disco.
  • Audiobookshelf acepta enlaces duros, pero el proceso de ingestión aún debe ocurrir para que la librería se actualice.
  • El usuario ya ha probado Shelfmark sin éxito, por lo que busca una alternativa más fiable.

Solución propuesta

  1. Separar los flujos: crear dos contenedores o dos procesos independientes.
    • Mam‑audiobook: copiar el torrent a la carpeta de ingestión de Audiobookshelf, usar un enlace duro y dejar que el proceso interno de Audiobookshelf añada el libro a la base de datos.
    • Mam‑book: mover el torrent a un watch folder que apunte a la carpeta de origen de Calibre Web Automated, pero sin borrarlo. Se puede lograr con un script que copie el archivo a la carpeta de ingestión y luego lo elimine del origen.
  2. Script de gestión: un pequeño script en Bash o Python que se active al detectar nuevos torrents, determine la categoría y ejecute el flujo adecuado. El script puede usar inotifywait para monitorear el directorio de descargas.
  3. Persistencia: usar un sistema de archivos con soporte de enlaces duros (por ejemplo, ext4) y habilitar la opción --keep-archive en Calibre Web Automated si está disponible. Si no, se debe añadir la línea --no-delete en el comando de ingestión.
  4. Pruebas y ajustes: iniciar con una cantidad limitada de archivos, verificar que los enlaces duros funcionan y que los metadatos se importan correctamente en ambas plataformas.

Herramientas y comandos

# Ejemplo de script simple
inotifywait -m -e create /ruta/descargas |
while read path action file; do
  if [[ $file == *.torrent ]]; then
    cat $path$file | grep -q "mam-audiobook" && \
      cp $path$file /ruta/audiobookshelf/ingest && \
      ln -s /ruta/audiobookshelf/ingest/$file /ruta/audiobookshelf/library/
    cat $path$file | grep -q "mam-book" && \
      cp $path$file /ruta/calibreweb/ingest && \
      rm $path$file
  fi
done

Qué sigue

  • Validar que Calibre Web Automated no borre el archivo tras la copia.
  • Ajustar el script para manejar errores y logs.
  • Considerar el uso de rsync con la opción -l (preserve hard links) si se migran grandes bibliotecas.

Con esta configuración, el usuario puede mantener una única copia de cada archivo, aprovechar la ingestión automática de ambos sistemas y evitar pérdidas de datos.