10

I want to maintain my book¹ collection database on both my Linux PC and my Android phone, so I'm looking for some book catalogue software on each platform and a way to synchronize between them. I will not upload my catalogue to any server (no account on a site like LibraryThing or GoodReads).

  • Must allow custom fields (original language, shelf, …) in addition to standard ones (author, title, …).
  • Must be able to retrieve book information from common sources (e.g. Amazon) from an ISBN.
    • Linux: I want to be able to submit multiples ISBN in batch without having to type them out in an interactive dialog. Being able to do it from a completely automatic script is a plus but copy-pasting a list of ISBNs into a dialog box is acceptable.
    • Android: must be able to hook up to the camera or to a separate barcode parser app so that I can take a picture of a barcode and add it to the database seamlessly.
  • Must support the occasional ISBN-less book (some books are too old, some are self-published).
  • Must allow searches on any field, e.g. to find a book by title or to find all the books illustrated by a certain person.
  • Must never upload any information about me (unless I deliberately request it).

I want more advanced features on Linux. They'd be nice to have on Android.

  • Must support retrieving book information from common fields (author, title), for books that are too old to have an ISBN.
  • Must allow me to define my own book sources in a reasonable way (Bibliothèque Nationale, ISFDB, …), e.g by writing a retrieval script that takes the ISBN or author/title as argument and prints the retrieved record in a reasonable way.
  • Must support multiple-field AND search, e.g. books whose title contains “mathematics” in the genre “romance”.
  • Must allow extracting the information in a simple way (I can write some simple text processing in Perl or Python).
  • Open source; at least cost-free on Android and without obtrusive ads. On Android, I can install non-Playstore apps.

Nice to have on both (and if it's only present on one, it must not hurt synchronization):

  • Let me manage short story collections: declare a book as a short story collection, search for the book containing a particular short story, …

Requirements on synchronization:

  • I should be able to synchronize my PC and my phone through a USB cable (adb access is enabled, even as root if needed) or a TCP connection (ideally both). If a network connection is involved, it must not involve uploading my information to anyone else's servers; the software would run on my own server.
  • If I only added, modified or removed entries on one side, the synchronization must be automatic.
  • If I've edited the database on both sides, there must be some reasonable way to synchronize (interactively, or by manually editing some text files).

Finally, I'm currently using Tellico on my PC (which suits me fine on its own, but offers no obvious solution to synchronize with Android). I need to be able to import my existing database. I can write some simple text processing script to perform a format conversion if needed.

¹ A book is a physical object containing written or drawn material and usually (but not systematically) produced with a mass printing process. I'm not talking about e-books here.

  • 2
    While waiting for an answer, you might want to check this list of mine for the Android part. I'm not using anything like it, so I cannot tell which one fits your needs; but it's at least a starting point I hope ;) – Izzy Jun 15 '14 at 15:29
  • 3
    And take a look at Calibre, it likely doesn't have all the features you're after, but it's what I use to manage books and papers. – Elliot Reed Jun 16 '14 at 8:10
  • @ElliotReed How is Calibre relevant here? AFAIK it's only about ebooks. – Gilles Jun 16 '14 at 11:42
  • @Gilles With Calibre you don't need the actual ebook versions of books, you can use it as a virtual library / bibliography. If you don't like Calibre though, from memory I used to use Biblatex or Bibtex, with Jabref as a GUI frontend for managing my physical books. It's a pretty standard format so I imagine it would integrate with an Android app.. – Elliot Reed Jun 16 '14 at 12:12
  • @Gilles Oh, I've just checked, it also has remote management capabilities, and a number of apps have been written for various devices that interact with the library. – Elliot Reed Jun 16 '14 at 13:21
2

Calibre

While Calibre is mainly used for managing ebooks, there is no reason you cannot also use it for a catalog of physical paper books.

Requirements Calibre meets

  • "allow custom fields" Calibre has custom columns.

  • "submit multiples ISBN in batch without having to type them out in an interactive dialog" Calibre can batch add ISBNs. This requires querying external services.

Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.

Requirements Calibre does not meet

  • "Bibliothèque Nationale" Calibre does not currently appear to have a plugin for the BnF, but writing Calibre plugins just requires some knowledge of Python scripting.

  • "cost-free on Android" While Calibre is free (gratis), the Calibre Companion app costs $3.99 on Google Play, as of October 26, 2015.

  • "Android: ... take a picture of a barcode and add it to the database seamlessly." Calibre Companion does not appear to support this. However, you could rig something up locally with Calibre on the desktop and other apps like CLZ Barry.

RefMaster

If you are mainly interested in the requirements the Calibre does not meet, RefMaster is an Android app that is cost-free and supports barcode scanning.

I've never used it, so I'm not sure how many of the other requirements it meets.

Discussion and links.

There is related discussion if you are interested:

And here about scanning books for ISBNs with Calibre:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.