A cross-platform app to access library catalogs and OPACs from your local computer.
VideLibri is an extension of the usual public library web catalogs (OPACs) running on your local device, be it a desktop computer or Android phone. Its primary purpose is to automatically renew your borrowed books and warn of an ending loan period, but it also has all the features of a normal OPAC like searching books or ordering other items. Additionally it has features of a literature management tool, e.g. storing a list of all ever borrowed books and exporting them as BibTeX.
It works by scraping the web page of the library, so before VideLibri can be used with a certain public library, it needs to be configured for that library. There are three levels of configurability:
- 200 German/Swiss/Austrian libraries are pre-configured, and can be chosen from a list. In this case you do not need to configure anything, just pick your library.
- If your library uses aDIS/BMS, Bibliotheca, Bibliotheca+, Libero, Netbiblio, PICA, Primo, SISIS, SRU, Websphere or Zones as OPAC system, it should be sufficient to enter the URL or database parameters of your library in VideLibri in order to connect VideLibri to that library.
- For completely different library systems a new interface template needs to be implemented. One would think this requires a lot of programming, however, VideLibri comes with a webscraping framework to learn the structure of any webpage automatically, so no programming is required to add a new OPAC system. Unless the structure of the webpage changes dynamically and is not always the same, e.g. if the OPAC sometimes displays all lendings on one page and sometimes on multiple pages. Then you need to program a condition to tell it, if it should expect one or multiple pages. In any case no modification of the VideLibri source is required, because the interface templates are plaintext files that are interpreted by VideLibri itself. This also makes VideLibri one of the most simplest open-source projects to contribute to. Most open source projects require one to install a compiler, an IDE, a build system and various other dependencies before you can contribute to them. VideLibri does not need any of this, it is completely self-contained. You can install VideLibri and directly edit the templates (in the directory data/libraries/templates).
The complete tutorial how to create such an interface template is currently only available in German. However, the templates themselves are in English (because they can be used as full programming language for special cases, and most programming languages are in English), so you can just read the templates in the tutorial and in data directory of VideLibri. The details should be self-explaining. Each template consists of two parts, one XML file that contains the addresses of all the webpages of an OPAC and for all those webpages a pattern. The pattern for a webpage is just the webpage, but annotated. E.g. when the webpage contains <b>Mark Twain</b> <i>The Adventures of Tom Sawyer</i>
you replace the title with {$book.title}
, the author with {$book.author}
and put in the pattern <b>{$book.author}</b> <i>{$book.title}</i>
. Then VideLibri knows where the webpages shows a title and where it shows an author, and when the webpage shows a different title/author there, the new title/author is shown in VideLibri. If you write your own template, you can test a pattern for a single page online or with the example programs in directory components/pascal/data/example of the VideLibri source.
XML as well as the HTML used in webpages and patterns are markup languages. Although a markup language and a programming language are completely different things, they are similar enough to make certain people feel uncomfortable. For those people there is a template generator as Greasemonkey-Script for Firefox. Rather than annotating the HTML of a webpage, it allows you to annotate the rendered webpage by selecting title and author in Firefox .
If you want further help to configure VideLibri with your library, you can send a mail or file a ticket (see contact at the bottom of this page). Unfortunately, if you want a template for account access with a new OPAC system, you would need to send me the password for a lending card, since the account page of a library OPAC is password protected and I cannot create a pattern for a webpage that I cannot open in the browser.
On the sourceforge download page you can download Windows, Linux and Android binaries for VideLibri. Since all pre-configured libraries are in German-speaking countries the GUI of VideLibri is currently also in German.
The source is stored in a mercurial repository.
Since the program is written in FreePascal/Lazarus, it should be very easy to compile it. Just open the bookWatch.lpi in Lazarus and select your platform/OS in the project settings. The repository contains also the source of most dependencies, for other dependencies there are excessive comments in the code that tell you where to download them and are shown in Lazarus during the compilation.
You can compile and run it on Windows/Linux/Mac with the gtk/qt/win32/cocoa interfaces. The motto of Lazarus is "Write once, compile anywhere", so VideLibri is supposed to run on any platform and device, although Lazarus does not always delive on that promise.
Hence the Android GUI is implemented separately in Java, and you need the Java SDK and Android SDK/NDK to compile it. First you compile the VideLibri Lazarus project with Lazarus as before (except using the project file android/videlibriandroid.lpi), then you call the standard tool gradle in the android folder.
Since a webscraping framework to automatically learn the structure of a webpage is also useful for other webpages than library OPACs, the framework itself without any pre-configured public libraries has been published as
command line tool Xidel.
For feature requests and bug reports there is an ticketing system on SourceForge. SourceForge allows anonymous ticket filing, so no SourceForge account is required.
For discussions we provide a mailing list videlibri-list.
Autor: Benito van der Zander, benito_NOSPAM_benibela.de, www.benibela.de