Importing¶
Information Sources¶
Currently LazyLibrarian supports OpenLibrary, HardCover, GoodReads, GoogleBooks and LibraryThing. Goodreads are in the process of removing/changing their api access, no new api keys are being issued, so unless you already have one of your own you can use the supplied LazyLibrarian key, see below. OpenLibrary or HardCover are probably the best option long-term, but their dataset is not as large. GoogleBooks is less useful as they don't give access to author IDs, so we can't say things like "give me a list of books by the same author as this one", we can only grab books based on author name which does not always give good results due to duplicate names or misspellings.
You can select to use multiple sources for books, in which case the dropdown box chooses the primary source, and all other sources are used to fill in any missing information. Note that because of the googlebooks authorname issue mentioned above you will get duplicated entries if you enable multiple sources that includes googlebooks. Openlibrary and GoodReads work fairly well together. To stop goodreads or googlebooks being used as a source, remove the corresponding api key.
OpenLibrary API¶
This is just a tickbox to enable/disable openlibrary as a source.
HardCover API¶
Access key for HardCover, This starts with Bearer followed by some random numbers and letters.
HardCover sync¶
This lets you sync your reading lists to hardcover (read, to-read, reading, dnf)
You can currently only sync one user to hardcover, the owner of the api key.
There is currently no access to hardcover personal lists or shared public lists
These restrictions are awaiting changes to hardcover login.
GoodReads API¶
Access key for GoodReads, lazylibrarian has its own key, ckvsiSDsuqh7omh74ZZ6Q which is read-only and cannot be used for syncing shelves. At some unspecified date this api key is likely to be disabled by GoodReads.
GoodReads Sync¶
LazyLibrarian default goodreads api key is read-only, and gives access to search functions. Currently GoodReads are not issuing new api keys, check their website for further information. If you want to sync your goodreads bookshelves with lazylibrarian you will need to get your own key and secret from GoodreadsApi. Once you have your own key/secret enter them in lazylibrarian config and save the config. You can then obtain your goodreads oAuth token/secret to get write access to your goodreads account.
You can select whether a book is allowed to be on both shelves. If using the default goodreads to-read/read shelves goodreads will override this and only allow the book on one shelf (you've either read it or you haven't) If using your own shelves they can be used as owned/read instead if you wish, so a book can be on both shelves. For more goodreads sync configuration options see [GoodReads Sync]/config_goodreads_sync/)
Press "Request oAuth1". A new goodreads window will open where you can confirm you want to give access to lazylibrarian. Once confirmed, press "Request oAuth2" to read and store the credentials in lazylibrarian config.
You can now configure the bookshelves to use. You can use existing goodreads shelves or lazylibrarian can create new ones. Lazylibrarian supports two shelves, one for books you want, and another for books you have. You can also define how often the sync should occur. The "Test Authorisation" button will check your credentials are entered correctly.
GoogleBooks API¶
If you have an access key for GoogleBooks, enter it here.
LibraryThing Developer Key¶
If you have one we can use it as another source for downloading covers. All other librarything functions that we use don't need a developer key.
Comicvine API Key¶
API key to download comic meta data. if not entered lazylibrarian will web scrape only and have much less accuracy
Comic Websearch¶
this will webscrape comicvine if api fails. using this could get your api/ip blocked.
File Formats¶
eBooks¶
Comma separated list of file extensions for eBooks. Default epub, mobi, pdf
AudioBooks¶
Comma separated list of file extensions for eBooks. Default mp3 You may find m4a is also useful depending on your audiobooks
Magazines¶
Comma separated list of file extensions for Magazines. Default pdf
Most magazines seem to be pdf
Comics¶
Comma seperated list of file extensions for comics. Default cbz, cbr
Various settings to do with importing books¶
- Ignore books with future publication date
Don't try to download them yet. Authors are rescanned periodically so the book will be un-ignored after the date passes - Ignore books with unknown publication date
Goodreads sometimes has incomplete information, you can choose to ignore these books - Ignore books with no isbn
If you don't ignore these we will try to look up the isbn elsewhere, which can be slow - Add ignored books to database
For any of the above "Ignore" switches, you can add the book to the database marked as Ignored, or not create a database entry at all. - Try google image search as final option for missing book covers
If all else fails, try google image. You will get a cover, but it might not be correct. Google always gives you something even if it can't find the book you want. You can always search for a cover manually. - Delete csv file or wishlist after successful import
Automatic tidy up. The list will not be deleted if any books in it could not be matched. - Blacklist failed downloads in history table
This will allow an automatic retry of a different download. If the failure was a communication problem you might want to retry the same download, but if the failure was a corrupt file or an unwanted format you want to get a different download. Could become automated at a future date. - Blacklist processed downloads in history table
If the download succeeded but you don't like the copy, you can mark the book as wanted again. If this box is not ticked you will probably download the same copy. Tick this box to force a different one.
NOTE: The blacklists use the entries in the history table, so if you clear the history the blacklists will not work.
Language¶
Import Languages¶
Comma separated country shortcodes for languages of books to add to the library:
GoodReads e.g: eng, en-US, spa, ita
GoogleBooks e.g: en, es, it
Default: en, eng, en-US
Try adding "Unknown" to list if GoodReads is missing results, or put "All" if you
don't want to check for language, but beware you could fill the library with lots of
books in languages you can't read, as some of authors are translated into many languages.
When you add an author to the database, LazyLibrarian uses this list to decide whether
to include a book or not. Books that say they are in a language that is not in this list
will be ignored (unless language set to All). At the end of a library scan or adding an
author the log will say how many books were ignored for language reasons. If you have debug
logging on, each book that is ignored will be listed with the language we think it is.
GoodReads and GoogleBooks currently seem to have lots of books with "Unknown" language.
Hopefully this will improve over time. LazyLibrarian tries to match as many as possible to
a language using the book ISBN (if we know it) which reduces the unknown ones. We use LibraryThing
for this. www.librarything.com
Languages for Month Names¶
Comma separated list of language codes. Default: blank
Magazine Issues usually have a month in the title, eg "PC Gamer July 2014"
We use this month name to decide how old the magazine is, and so whether to download it.
English month names are built in. If you want to include French magazines, add fr_FR.utf8
The language name, eg "fr_FR.utf8" needs to exactly match the ones listed in your system locale (try locale -a to get a list of the languages installed on your machine)
Alternatively you can supply a pre-built list of monthnames. Useful if you want magazine monthnames in a locale not available on the machine running lazylibrarian (eg docker containers). Copy the supplied example.monthnames.json to your lazylibrarian data directory (the one containing your database and config.ini) and name it monthnames.json, edit as required. The example file is English and Spanish and looks like this...
[["en_GB.UTF-8", "en_GB.UTF-8", "es_ES.utf8", "es_ES.utf8"], ["january", "jan", "enero", "ene"], ["february", "feb", "febrero", "feb"], ["march", "mar", "marzo", "mar"], ["april", "apr", "abril", "abr"], ["may", "may", "mayo", "may"], ["june", "jun", "junio", "jun"], ["july", "jul", "julio", "jul"], ["august", "aug", "agosto", "ago"], ["september", "sep", "septiembre", "sep"], ["october", "oct", "octubre", "oct"], ["november", "nov", "noviembre", "nov"], ["december", "dec", "diciembre", "dic"]]
Note that each language is listed twice, once with full month name and again with the "short" name, and all month names are lower-case and un-accented
Date Formats¶
- Added Dates - Format for Added Columns Dates when we added a book/magazine to the library
- Issue Dates - Format for Issue Date How to display magazine issue dates. Dates are stored internally in a format useful for sorting, but for display you might want to show something more readable.