CALIBRE: Organizador y servidor de ebooks

Hace tiempo que quería montar un servicio interno/externo para facilitar la gestión y el acceso al ingente fondo bibliográfico con que contamos en el Colegio, compuesto principalmente por ebooks de licencia libre y complementado con el material que generan tanto alumnos como profesores.

home-feature

Para los que no lo conozcan aún, Calibre es posiblemente el software de gestión de libros electrónicos más completo del mercado y que cuenta con dos características que lo hacen aún más valioso y destacable frente a la competencia: es software libre y funciona en diversas plataformas.

Entre sus numerosas funcionalidades hay una poco conocida pero muy útil si se le sabe sacar provecho: un servidor de contenidos accesible tanto vía web como a través de clientes ODPS y a través del cual es muy sencillo acceder tanto a los libros como a la meta-información que los acompañe.

El servidor incluye un navegador simple y elegante para que el usuario  busque y descargue libros de la biblioteca. Además es compatible con dispositivos móviles, por lo que hace fácil descargar libros directamente en un lector electrónico – incluso en los que sólo tienen un navegador básico.

Por ejemplo, el navegador de Calibre trabaja con el Kindle Touch, que puede descargar libros directamente a pesar de que el dispositivo sólo tiene una pantalla de tinta electrónica y un navegador experimental.

En este tutorial vamos a ver cómo instalar, configurar y usar Calibre como un servidor en Linux Ubuntu 14.04. También echaremos un vistazo a cómo utilizar el comando calibredb para crear, personalizar y mantener la base de datos de libros electrónicos desde el servidor.

 [1]  Instalación de paquetes dependientes

El primer paso es instalar los paquetes de software necesario para que Calibre funcione adecuadamente. Para ello, abrimos una sesión de terminal y ejecutamos los siguientes comandos:

sudo apt-get update

sudo apt-get -y install  xdg-utils  imagemagick python-imaging  python-mechanize  python-lxml python-dateutil  python-cssutils  python-beautifulsoup  python-dnspython  python-poppler libpodofo-utils  libwmf-bin  python-chm  xvfb

 [2]  Instalación de Calibre

A continuación se lanza la instalación de Calibre, que no se realiza con un paquete .deb, sino descargándolo directamente del sitio web oficial. Este es uno de los pocos casos en que es recomendable hacerlo así. Ejecutamos el siguiente comando:

sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Error en descarga\n'); exec(sys.stdin.read()); main()"

…y se siguen las instrucciones en pantalla. Recomiendo aceptar los valores por defecto que el instalador nos proponga, sobre todo en lo referente al directorio de instalación (/opt).

Notas:

  • conviene revisar la página de descarga oficial para contar siempre con la última versión del comando.
  • Se producirán algunas advertencias sobre fallos en la integración de escritorio, pero se pueden ignorar.
  • Para actualizar el programa ha de hacerse repitiendo el mismo procedimiento.

 [3]  Crear la biblioteca a compartir

En primer lugar vamos a crear un directorio para nuestra biblioteca Calibre. Este ejemplo crea el directorio en el directorio /home del equipo, aunque se puede colocar en cualquier lugar en el servidor:

sudo mkdir -p /home/biblioteca/nuevos

Con ello creamos dos directorios: el primero,  /home/biblioteca es en el que Calibre organizará los libros automáticamente, mientras el directorio /home/biblioteca/nuevos  permitirá añadir libros manualmente. Más tarde veremos como  automatizar este proceso.

Ya estamos casi listos para comenzar a ejecutar el servidor, pero primero tenemos que conseguir algunos libros para servir. También podemos tener ya nuestra propia biblioteca personal de libros electrónicos que podríamos utilizar. Luego tenemos estas posibilidades no excluyentes:

  1. Añadir directamente libros electrónicos descargados
  2. Importar una biblioteca existente; muy útil si ya estábamos ejecutando la versión de escritorio de Calibre

Descarga de libros

Para este tutorial vamos a descargar el paquete de libros libres que nos proporciona ya recopilados la empresa española BQ de la que tenemos varios lectores electrónicos:

cd /home/biblioteca/nuevos
wget http://booq.s3.amazonaws.com/Clasicos_en_Espanol.zip
unzip -jn Clasicos_en_Espanol.zip *.pdf *.epub
rm Clasicos_en_Español.zip

Notas:

  • Las opciones «-jn» del comando unzip extraen todos los documentos en el mismo directorio evitando que se sobreescriban.
  • Al final del artículo encontrarás enlaces a varios sitios donde obtener ebooks libres de forma gratuita y legal.

Incorporación de los libros a la base de datos

Ahora tenemos que añadir estos libros a la base de datos Calibre utilizando el comando calibredb. Como este programa depende de una interfaz gráfica vamos a hacerlo a través de la pantalla virtual XVFB que instalamos previamente:

xvfb-run calibredb add /home/biblioteca/nuevos/* --library-path /home/biblioteca

El asterisco significa que Calibre agregará todos los libros que se encuentran en el directorio «nuevos» a «biblioteca», generando sus fichas en la base de datos. Es posible que aparezcan advertencias al no encontrarse las imágenes de las cubiertas o al procesar estas, pero deberíamos ver al final la confirmación de que se añadieron los libros a la base de datos de Calibre.

u1

Notas:

  • Puedes eliminar todos los archivos de la carpeta «nuevos» al finalizar el proceso. Calibre ya hizo copias de los mismos en «biblioteca».

Iniciando el servidor

Ejecuta el siguiente comando para probar el servidor:

calibre-server --with-library /home/biblioteca

El comando no producirá salida y parecerá que se bloquea en la terminal. Esto nos vale por ahora; luego lo convertiremos en un «demonio» del sistema). Ahora abre un navegador (prueba desde otro equipo o dispositivo):

http://ip_de_tu_servidor:8080

…y deberías ver la página principal de la biblioteca:

 u2

Ahora prueba a buscar algún libro, como «Quijote». De la lista de resultados puedes pulsar sobre el botón «Obtener» para descargarlo en PDF o EPUB.

u3

Cargar una biblioteca existente

Si ya estabas ejecutando la versión de escritorio de Calibre y tienes tu biblioteca configurado, puedes importarla al servidor con facilidad.

Comprueba si en la carpeta de tu biblioteca actual existe un archivo llamado metadata.db. Si es así, sólo tienes que copiar esa carpeta completa al servidor. A continuación, ejecuta el comando:

calibre-server --with-library /ruta_a_la_carpeta

 [4]  Habilitar Calibre como servicio

No es práctico tener que recurrir a una consola para iniciar manualmente el servidor de Calibre. Aunque podríamos añadir la opción «–daemonize» al comando hay mejores maneras de hacerlo. Lo ideal es configurarlo para que se inicie automáticamente en el reinicio del sistema y para que podamos arrancar, detener o reiniciar el proceso con facilidad.

Hasta hace poco, la manera de lograrlo era escribir complejos scripts  y ponerlos en el directorio /etc/init.d/. En las nuevas versiones de Ubuntu 14 el método que se recomienda es utilizar un script mucho más simple basaso en «Upstart«, que es un archivo .conf colocado en el directorio /etc/init/.

Nota: Si el servidor se sigue ejecutando desde el paso anterior, pulsa [CTRL + C] en la terminal para detenerlo.

Crea un nuevo archivo de configuración llamado «/etc/init/calibre-server.conf» y añade la secuencia de Upstart, asegurándote de sustituir las variables marcadas en negrita por los valores apropiados:

description "Servidor Calibre (gestor de ebooks)"

start on runlevel [2345]
stop on runlevel [^2345]

respawn

env USER='usuarioweb'
env PASSWORD='claveweb'
env LIBRARY_PATH='/home/biblioteca'
env MAX_COVER='300x400'
env PORT='8080'

script
 exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \
 --max-cover $MAX_COVER --port $PORT \
 --username $USER --password $PASSWORD
end script
  • La primera línea es sólo una descripción para ayudarte (u a otros) a saber lo que hace el script
  • Las siguientes dos líneas definen en qué nivel deseas que el guión se  inicicie y en cuales se detenga. (a partir del nivel 2 la red y todo lo que necesitamos estará en funcionamiento)
  • respawn significa que si se detiene el servicio de forma inesperada, se va a tratar de reiniciarlo automáticamente.

Las siguientes líneas son variables que pasamos al comando calibre-server. Antes, sólo utilizamos  la opción –with-library, pero ahora podemos ajustar más su funcionamiento:

  • Nombre de usuario y la contraseña para acceder a la biblioteca de la web (puedes dejarlos en blanco)
  • Ruta local de la Biblioteca, como antes
  • Tamaño máximo de la imagen de la cubierta del libro (esto es útil para hacer que la carga de la página más rápidamente)
  • Número de puerto del servicio
  • Por último, corremos el comando principal usando exec, y se pasan todas nuestras variables.

Una vez que hayas guardado el guión y cerrado el editor, puedes controlar el proceso del servidor:

sudo start calibre-server

Ahora el servidor puede pararse, iniciarse o reiniciarse con los siguientes comandos:

sudo service calibre-server stop
sudo service calibre-server start
sudo service calibre-server restart

 [5]  Añadir nuevos ebook automáticamente

Para terminar vamos programar un trabajo de cron para la revisión periódica del directorio «/home/biblioteca/nuevos» de manera que se añadan los libros ahí contenidos a la base de datos automáticamente cada hora.

Esto significa que podemos transferir archivos de libros a través de scp , ssh , etc. a este directorio desde otra máquina, o simplemente descargarlos directamente en el directorio «/home/biblioteca/nuevos«, y entonces  se añadirán automáticamente a tu base de datos de Calibre y estarán disponibles para su descarga desde la biblioteca.

Para crear una tarea programada , ejecuta:

crontab -e

Nota: Puede que tengas que seleccionar de una lista tu editor de texto preferido.

Al final del archivo añade la línea:

0 * * * * xvfb-run calibredb add /home/biblioteca/nuevos/ -r --with-library /home/biblioteca && rm -rf /home/biblioteca/nuevos/*

  [6] Descargar ebooks gratis de forma legal

Entre paréntesis os indicamos los idiomas de los ebooks que podéis encontrar en cada plataforma.  (ES) español, (EN) inglés y (ES/EN) en español y en inglés.

Sitios sin ánimo de lucro para descargar ebooks

En este apartado mostraremos sitios sin ánimo de lucro donde descargar libros de todo tipo desde clásicos, a ensayos, pasando por novelas o libros para niños.

Los grandes proyectos

  • Proyecto Gutenberg (ES/EN) Clásico entre los clásicos cuando se habla de proyectos que ofrecen obras libres de derechos. El mayor archivo de libros de dominio público del mundo.
  • Archive.org (ES/EN) Otro archivo de millones de libros digitalizados de dominio público. Ofrece pdf.
    • – Open Library (ES/EN) Un proyecto de Internet Archive que pretende crear una página web por cada libro que existe. Aunque no permite descargas desde las fichas o páginas de los libros enlaza a Gutenberg, Archive o la fuente donde esté disponible si es de dominio público.
  • Wikisource en español y si quieres libros en otro idioma Wikisource. Se trata de una biblioteca online de textos originales de dominio público o bajo licencia GFDL es un proyecto de Wikimedia permite la descarga en pdf.
  • Wikilibros (ES) Otro proyecto de Wikimedia que tiene por objetivo poner a disposición de cualquier persona libros de texto, manuales, tutoriales u otros textos pedagógicos de contenido libre y acceso gratuito.
  • iBiblio (EN) Inmensa biblioteca y archivo digital.
  • Biblioteca digital hispánica (ES) Portal libre y gratuito de los libros digitalizados de la biblioteca nacional.
  • Biblioteca Virtual Miguel de Cervantes (ES) Se trata de un fondo virtual de obras clásicas en lenguas hispánicas.
  • Red Municipal de bibliotecas de Sevilla (ES) Catálogo digital de la red municipal de bibliotecas de Sevilla.
  • Europeana (ES/EN) Es el punto de acceso a miles de recursos digitales de Europa.
  • University of Adelaide (EN) Biblioteca online de la universidad de Adelaide en Australia, nos permite leer online, o desacargar las obras en varios formatos.

Proyectos personales

  • Ganso y Pulpo (ES) Una de las iniciativas sin ánimo de lucro con más calidad en sus publicaciones. Ganso y Pulpo es un proyecto editorial independiente sin ánimo de lucro que busca reeditar texto de difícil acceso u olvidados y que ya están libres de derechos.
  • Cuentos para Algernon (ES) Excelente iniciativa que publica relatos de fantasía, ciencia ficción y terror inéditos en español. Otro proyecto personal sin ánimo de lucro que nos trae relatos de autores de primera línea que no llegan a publicarse en español. Ganadora de un Ignotus 2013, si te gusta la ciencia ficción es un imprescindible.
  • Ediciones del Cruciforme (ES) Pequeña editorial independiente sin ánimo de lucro ganadora de un Ignotus en 2013 nos ofrece ebooks gratuitos junto con otros de tirada limitada que una vez finaliza pasan a ser de dominio público.
  • Book Camping (ES) Se definen como una bibilioteca digital colaborativa. Se dedican a enlazar obras con licencias abiertas. Enlaza mucho a recursos sobre temas políticos, sociales y de comunicación.
  • Qomun (ES/EN) Directorio y plataforma de distribución de cultura libre.
  • 1 libro 1€ (ES) El único proyecto de toda la lista que no ofrece libros gratis, pero la causa merece la pena. A cambio de una donación a Save the Children te puedes descargar todos los libros que quieras, aunque sugieren que pagues 1€ por libro para ayudar a los niños.
  • Libros digitales (ES/EN/FR) Recopilación de obras hecha por Ignacio Fernández Galván.

Otros

  • The Metropolitan Museum of Art (EN) El museo de Arte Metropolitan de Nueva York, nos ofrece una gran cantidad de publicaciones en formato PDF que giran alrededor del mundo del arte.
  • Digital Comic Museum (EN) Una colección de cómics clásicos de la edad de oro con más de  15.000 cómics de dominio público para descargar gratis.
  • Biblioteca Online de Tecnología Educativa (ES) Se trata de una recopilación e libros y revistas digitales en PDF realizada por el profesor Diego F. Craig, alrededor del campo de la Tecnología educativa, y siendo todos documentos de dominio público o con licencias que permiten ser compartidos.
  • Boe – Legislación (ES) Compilaciones de las principales normas vigentes del ordenamiento jurídico actualizaeas constantemente y en formato pfd y epub. Está presentadas por ramas del Derecho.

Proyectos comerciales con ebooks gratis

  • Amazon Kindle (ES/EN) El gigante de los ebooks, nos ofrece una gran cantidad de ebooks gratis en todos los idiomas.
    • Public Domain en Amazon (ES/EN) Búsqueda de libros de Amazon con licencia de Dominio Público.
    • – Free Book Sifter (ES/EN)  Buscador basado en los libros de Amazon para facilitarnos la caza de los ebooks gratis para nuestro Kindle, hay libros en español aunque lo que más abunda son los libros en inglés.
    • – Hundred Zeros (ES) Otro buscador basado en Amazon. Nos muestra libros en español.
    • – Freebooksy  (EN) Este proyecto se basa en ofrecer los libros gratuitos de Amazon, Barnes and Nobles  y Kobo y nos los presenta en un formato blog.
  • Casa del libro (ES/EN) Una de las grandes librerías de España, entre su extensísimo catálogo comercial incluye obras gratuitas o a coste cero.
  • Google Books (ES/EN) Funciona como un índice de libros donde podemos encontrar una gran cantidad de libros disponibles para leer online aunque no para descargar.
  • Play Store (ES/EN) La tienda online de Google, donde podemos encontrar muchos libros gratuitos para leer desde nuestro Smarphone o Tablet.
  • Dominio Público (ES) Proyecto similar a un directorio donde se encargan de difundir y recopilar obras que han pasado a ser de dominio público.
  • BiblioEteca (ES) Iniciativa que te permite descargar los libros gratis y pagar después de haberlos leído lo que consideres justo, una nueva forma de monetización de las obras. Requiere registro.
  • Libro Virtual (ES) Portal donde se une a autores clásicos con obras de dominio público a escritores noveles que suben sus obras para que sean distribuidas.
  • BQ Readers (ES) Selección de clásicos con los que la empresa BQ carga los libros de sus ereaders. Nos dejan un archivo zip para descargar.
  • Libroteca (ES/EN) Portal que ofrece una gran cantidad de ebooks.
  • Feedbooks  (ES) Librería electrónica que nos ofrece una selección de obras de dominio público.
  • Manybooks (EN) Proyecto que se nutre de Gutenbeberg y proyecto Genoma hay audiolibros.
  • eBooksgo (EN) Directorio de libros basado en Gutenberg.
  • Planeta Libro(ES) Ofrece libros de dominio público.
  • Open Culture Free ebooks (EN) Lista con más de 700 libros para diversos dispositivos, ereaders, iphones, iphdss, smartphones, etc
  • Ediciones Dyskolo (ES) Editorial en la que todas las obras que edita son bajo licencia Creative Commons
  • Bubok (ES) La gran plataforma de autoedición, dispone de una gran cantidad e libros gratis.
  • 24 Symbols (ES) Se trata de una plataforma de lectura online, una tarifa plana para leer libros online, pero nos deja diferentes volúmenes para leerlos gratis.
  • Kobo (EN) El gigante Kobo, dispone de ebooks gratis entre su catálogo al igual que Amazon.
  • Barnes & Noble (EN /ES) El tercero en discordia junto con Kobo y Amazon, dispone de volúmenes gratuitos para su descarga.
  • Smashwords (EN/ES) Distribuidor de libros indies, con una gran cantidad de ebooks gratis.
  • Ebook Mall (EN) Ebooks digitales para ereaders, iphones, smartphones, tablets, ipads, pc y mac
  • Sportula (ES) Editorial de género que nos deleita con algunas de sus obras gratis
  • Lektu (ES) la gran plataforma cultural española, donde podremos encontrar ebooks, audiolibros y podcasts ya sean de pago, gratis, con descarga mediante pago social o con lo modalidad de paga si te gusta.
  • Librodot (ES) Más de 10.000 libros disponibles para descarga. Aunque es gratuito, necesitamos registrarnos en la web para bajarlos.
  • Traficantes de sueños (ES) Esta editorial centrada en los ensayos enfoca su negocio vendiendo libros en papel pero nos deja varias obras bajo licencia Creative Commons ( CC BY-NC ,  CC BY-NC-SA ,  CC BY-NC-ND  )
  • Books on my phone (EN) Ebooks editados para que se puedan leer en cualquier teléfono o dispositivo que tenga instalado Java
  • ebook Junkie (EN) Plataforma para autores noveles e independientes
  • Bibliotastic (EN) Otra editorial de autores indepdendientes

Sitios para descargar ebooks técnicos

  • Open Libra (ES/EN) La gran biblioteca online de ebooks técnicos. Sin duda un proyecto interesantísimo que recopila y nos ofrece una gran cantidad de ebooks técnicos y gratis. Preparados para descargar.
  • Microsofot Technet (EN) Microsofot nos deja algunos ebooks de tecnología y software gratis para descargar en formato pdf o para leer online.
  • Nasa ebooks (EN) Libros de tecnología de la NASA sobre temas aeronáuticos. Muy interesante.
  • Libros CSIC (ES) Una gran cantidad de publicaciones gratuitas del Consejo Superior de Investigaciones Científicas. Toca todas las ramas de la ciencia.
  • In Tech (EN) Interesantísimo catálogo de temas tecnológicos y científicos que funciona con Open Access.
  • Free Tech Books (EN) Libros de ingeniería y programación gratuitos y libres de derechos.
  • O’Really OpenBooks (EN) La editorial O’Really nos deja sus Open Books. No se pueden descargar pero si leer online, unos recursos interesantísimos.
  • Free Programming Books (EN) Posiblemente el mejor listado que he encontrado, una recopilación magnífica, brutal, que se mantiene al día a través de Github. Con este enlace el resto de enlaces técnicos casi dejan de tener sentido. Además de Github lo encontramos en  reSRC en un formato web más amigable
  • Online Programming Books (EN) Recopilación d obras sobre programación, ciencia de la computación, ingeniería del sofwtware, desarrollo web, desarrollo de apps, bases de datos, redes, etc.