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:

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:
- click on the extention
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.
- 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.
Position | Field | Mandatory? | Notes |
---|---|---|---|
0 | Title | Y | |
1 | Author | Y | |
2 | Genre | ||
3 | url | ||
4 | Format | Y | Must be one of: Physical Ebook Audiobook |
5 | Source | Y | Must be one of: Kindle Audible Scan Search CSV Plex Calibre |
6 | Series | ||
7 | Series Position | Must be numeric | |
8 | isbn | ||
9 | Rating | Numberic between 0 and 10 in half points so 3.5 is valid but 3.4 is not. | |
10 | Review | ||
11 | Date Read | Must 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
- 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.