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.
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
- 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.
- 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
inotifywaitpara monitorear el directorio de descargas. - Persistencia: usar un sistema de archivos con soporte de enlaces duros (por ejemplo, ext4) y habilitar la opción
--keep-archiveen Calibre Web Automated si está disponible. Si no, se debe añadir la línea--no-deleteen el comando de ingestión. - 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
rsynccon 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.
