Using bookshelf – a reading list manager

Yesterday I wrote about my latest project — bookshelf. Today, I am going to show you how to use it. This post assumes that you have already downloaded the code and got it up-and-running.

Views

bookshelf has a number of different views to satisfy the different groups using it.

All Books

The main view (Home) is straight list of all your books which can be filtered by author, title, rating, format and source. You can also toggle between showing the date read and the date added.

Books by List

The second view (Lists → Books) presents much less information and is designed to give you a quick snapshot of the books in your various lists. bookshelf comes with two lists (Wants and To Read) but you can remove these and create as many of your own as you like.

The images above also neatly illustrate the light and dark modes, which can be accessed via the purple button in the bottom right-hand corner.

Individual Book Details

Clicking on the title of a book in any view will open up the book details page, allowing you to view and edit the details for a particular book.

Some general points:

  • Author, series and genre all have auto-select enabled so as you type any entries that match will be displayed allowing quick access.
  • You can add multiple genres by adding a comma between each entry.
  • If you add an ISBN-13 number bookshelf will try and pull the cover image from the Open Book Library.

Adding Books to bookshelf

bookshelf supports a number of different import formats but the main ones are as follows:

Both OpenAudible and Kindle Book List Downloader are solutions to get around Amazon’s restrictions and in both cases you may well have to pay to get your data.

Once you have your file go to Add → Import from file on bookshelf and then either drag and drop your file on the grey area or click on it to upload one. At present you can only do one file at a time but I’ll add multiple file support in a future release.

OpenAudible

OpenAudible is a tool that allows you to back up your Audible library, and as part of it, you can export your library as a CSV file, which Bookshelf can import. To do so follow the instructions below:

  • Open OpenAudible
  • Got to the menu:
    • File → Export Book List
  • Set where to save the file.
  • Click Save, and OpenAudible will generate a .csv file containing your metadata.

Kindle Book List Downloader

Kindle Book List Downloader is Chrome browser extension that takes you Amazon Kindle library and exports it as a CSV file. Doing so is simple in that all you need to do is:

  • navigate to read.amazon.co.uk (or you local equivalent)
  • click on the extention
  • Click on the Get books button.

Unfortunately, for reasons only known to the developer, he has chosen to add three lines of useless text at the top and the bottom of the file which makes processing it impossible until they are removed.

Calibre

Calibre is a multi-platform ebook manager and has been around forever. If you keep books here you can also export a CSV file from Calibre and import that into bookshelf too.

  • Open Calibre
  • Go to the menu:
    • Convert books → Create a catalog of the books in your calibre library
    • (or press Shift + T).
  • In the dialog:
    • Under Format, choose CSV.
  • Pick the fields you want (Title, Author, Tags, Series, Publisher, ISBN, etc.).
  • Set where to save the file.
  • Click OK, and Calibre will generate a .csv file containing your metadata.

Generic Format

This is the format to use for everything else and covers all fields that bookshelf supports. The first row must be header labels and the first cell (i.e. A1) must read Title.

If you set a Date Read then the book will automatically be marked as being read.

The format specification is shown below but you can also download a sample file here.

PositionFieldMandatory?Notes
0TitleY
1AuthorY
2Genre
3url
4FormatYMust be one of:

Physical
Ebook
Audiobook
5SourceYMust be one of:

Kindle
Audible
Scan
Search
CSV
Plex
Calibre
6Series
7Series PositionMust be numeric
8isbn
9RatingNumberic between 0 and 10 in half points so 3.5 is valid but 3.4 is not.
10Review
11Date ReadMust be in yyyy-mm-dd format

Statistics

To date, I have been recording my book reading in the inevitable spreadsheet, and that included some statistics that I was keen to replicate in bookshelf. This includes:

  • books read by year
  • top ten authors
  • books read by format by year

For this I used the ever reliable (and free) chart.js.

Search the Kindle Catalogue

I also wanted to be able to search the Amazon catalogue to be able to add directly from there and initially implemented pulling data from the Amazon Product API but whenever I called it I got the following response:

[TooManyRequests] The request was denied due to request throttling. Please verify the number of requests made per second to the Amazon Product Advertising API.

Turns out that Amazon are pretty strict about access to the API and you basically have to have sold a lot of product as an associate before you get API credits.

This seems a bit chicken and egg to me so I found a different approach which was to scrape from an Amazon product page (Add → Search by Amazon Link). Paste in a link and bookshelf will do its best to get the details.

What Next?

As I said yesterday bookshelf is one of the projects that I want to return to adding more functinality so come back and check for updates.

Leave a Reply

Your email address will not be published. Required fields are marked *