The Kobo Utilities Plugin adds extra function to calibre for working with Kobo e-ink ereaders. This will allow changes on the ereades that either cannot be done or will make them easier to do. The current functions of the plugin are:
The plugin supports the WiFi, Touch, Glo, Mini, Aura HD and Aura. When a WiFi is being used, the options are limited options it supports. The plugin will probably work with the original Kobo eReader, but this has not been tested.
Known problems:
Almost all function of this plugin directly update the database on the Kobo device. If anything goes wrong, the database could get corrupted. It shouldn't happen, but it could. Before using any function of the plugin, it is recommended that you backup the database.
The plugin has been created by reverse engineering the function of the Kobo ereaders. This has been done by examining the database on the Touch and Glo and experimenting with it and the interface. There is a good chance that my conclusions from this are wrong. This is unlikely to damage the device, but it could result in the need to reset it. Again, if you cannot accept this, please do not try this plugin.
A large chunk of the code is borrowed from the plugins written by kiwidude.
A few people have tried the beta version of the plugin. Their reports and suggestions have been important in getting it working.
The current version of the plugin is 1.4.1.
Changes in this plugin include:
The plugin is installed through the calibre prefences dialog. During the installation, you will be prompted on which toolbar or menu to put the plugin button. As there is no available function when no devices are connected, put it on the "Main toolbar when a device is connected" or "The menubar when a device is connected". After the plugin is installed, restart calibre before attempting to use it.
To use the plugin, it needs to be configured. This can be done throught the calibre preferences, or from the "Customise plugin" option on the plugins menu. There are two areas that need to be configured: the columns to be used by the plugin and the action to be taken when the plugin button is pressed.
The plugin can use several columns to store the current reading position of epubs on the ereader. If you do not want to use this part of the plugin, they do not need to be configured.
The columns and types needed are:
To add a custom column to calibre:
Once you have created the columns and restarted calibre, you can set the columns to be used by the plugin. To do this:
The following section details each function available and how to use them. Some functions are only available for the library list, some only on the device list and some work for both. Most functions act on the books that are selected in the current list.
For most of the functions available, the way to use them are:
When the reader settings are changed in the device, they are stored for that book and for any future book opened. This allows the user to change these setting for one or more books. And, for some of the settings, it allows finer grade options than the device settings dialg.
This option works the same for both the library list and the device list.
The options on the dialog are:
Once the settings are how you want them, press the OK button to save the settings and update the database on the device.
The new home screen on the Aura HD and Glo uses as set of tiles to display recent activities. These can be pressed to do the same activity or dismissed. The tiles displayed change over time as different as the device is used.
This function is available for both the library and device lists.
When "Dismiss Tiles from Home Screen" is selected, a dialog is displayed. This has:
When you have selected the options, press the OK button. This updates the device and displays a message when finished.
Notes:
The reader settings are stored in a database for each book. This option removes the settings for all books selected. It will prompt you to continue by pressing "Yes" or stop by pressing "No".
This function is available for both the library and device lists. It will work for all book types that store the settings.
The metadata displayed on the device is read from sideloaded books the first time the device sees them. If the book and metadata is changed and sideloaded again, the metadata is not reread. There is also some standard metadata that is not read from epubs.
For kepubs synced from the Kobo server, the metadata is populated from the server. It might get changed at later syncs.
This option only works from the library list.
The options on the dialog are:
This allows the reading status of books in the device that are not in the calibre library to be changed. An intended use is to reset an accidently opened book to unread. It can also be used to mark books as finished after a factory reset or other reason for relaoding books.
The function on dialog is shared with the "Reading Status" section of the "Update metadata in device library" function.
Note: When the OK button is pressed, the changes are made on the device. But, the reading status options are not save. The next time the dialogs is opened, all options will be reset. This is deliberate. If this function is used, the decision of what changes to make must be made each time.
This allows you to change the series information for books already on the device. It allows you to set the series name and number for books that you do not have in your calibre. This can change the series information for kepubs.
The interface and most of the function has been taken from the "Manage Series" plugin written by kiwidude. If you are familiar with that plugin, this works in a very similar way, but is restricted to books on the device. If you want to manage series for books in your calibre library, please use the "Manage Series" plugin. The Kobo Touch driver can update the device with this information.
If you find a problem with the "Manage Series" function of the Kobo Utilities plugin, report it to the developer of the Kobo Utilities plugin. DO NOT report it as a bug in the original "Manage Series" plugin.
To manage series on the device, from the device list:
This allows the current reading position in an epub to be stored in the calibre library. This can then be sent back to the device or another Kobo device to restore the reading position. As well, the rating set on the device can also be stored and restored.
The device store the reading position in the database on the device. This is stored in several parts:
These can all be retrieved from the device and stored in custom columns in the calibre library.
This is only available in the library list.
To use this function, you need to:
The options on the dialog are:
With this, you can change the cover on the device to the current cover in the calibre library.
To use it, select the books that you want to change the cover for, and choose the desired options. Then press the OK button to upload the covers.
The options on the dialog are:
This will remove saved covers for the selected books from the device. This will allow the device to regenerate covers for these books when they are next needed.
To use it, select the books that you want to change the cover for, and choose the desired options. Then press the OK button to remove the covers.
The options on the dialog are:
This function is available for both the library and device lists. It will work for all book types that store the settings.
This looks at the images directory on the device and looks for any cover images that are not for books currently in the device database. The cover images can be removed or simply listed.
To use it, select the menu option and choose the desired options. Then press the OK button to check and clean the images directory. The clean is run as a background job.
The options on the dialog are:
When the job is finished, how many extra cover image files were found and deleted is displayed. Pressing the "Show Details" button will list the extra cover image files that were found.
Using the KoboTouch driver, shelves can be created for each book series on the device. The books are then added to the shelf. But, there is no way to sort these shelves into the series order. This option allows uses the "Date Added" sort to show the books in the series order.
To use it, select the menu option. A dialog with the list of series shelves will be displayed. The shelves listed are those that have the same name as for series that are on the device. The number of books on each shelf will be displayed.
Select the options and press the OK button to order the shelves. The options on the dialog are:
When the shelves are ordered, a message box will be displayed with the number of shelves whose order was set. If the shelf only had one book on it, the shelf order will not be changed.
To see the books in the series order, select "Date Added" when viewing the shelf on the device.
A few notes about the ordering:
This function is available for both the library and device lists.
This will retrieve any annotations for the selected books and display them in a dialog. The annotations can be copied and save elsewhere. The annotations are retrieve using the same code as the "Fetch annotations".
Annotations for ePubs are stored on the device in two places: the internal database and files. The files have type "ANNOT" and are stored within the directory Digital Editions\Annotations. These files are contain XML that define the annotations. They can be copied to another Kobo device, or with a little fiddling, used with ADE.
Selecting this option will prompt for a directory to copy the files to. Either enter the directory name, or press the "..." button to select a directory. When the directory has been entered, press the OK button to copy the files.
There are several cirumstances where calibre will think a book is on the device, but it is not in the device database. This usually means the book has been sent to the device by calibre, but the book has not been processed yet.
When selected, a list of books is displayed in a separate window. This is simply a list of the books and has no function other than to display the books.
Note: This does not show any books that are on the device and calibre does not know about and are not in the device database. If books have been sideloaded in some other way and are not in the device database, they will not be displayed.
This function is only available when viewing the device list.
When this is used, the books on the device will be reread. This is done in the same way as when the device is first connected. The main use for this is it will cause any changes for shelves an series information to be sent to the device.
Due to some errors with syncing to the Kobo server, the shelves occasionally appear to be duplicated. There are several things that can happen, but in one case old shelves that have been deleted are recreated.
To use it, select the menu option. A list of all shelves with the following information is displayed:
To fix the duplicates, choose the options and press the OK button. The options are:
When the OK button is pressed, the duplicate shelves will be marked for deletion. The version of each shelve that is kept will be the one with either the newest or oldest date, depending on the options. After this is done, you should disconnect the device and sync to the Kobo server. This should remove all the duplicates from the server and should solve the problem.
If the Purge duplicate shelves option is selected, the duplicates will be deleted from the device database. If this is done and a sync to the Kobo server is then done, it is possible that the server will send all the shelves to the device again. But, if you don't sync the shelves in the future, this probably isn't important.
This function is available for both the library and device lists.
The Kobo devices collect information about actions taken on the device. This is stored in a database table called "AnalyticsEvents". There is evidence that this information is sent to Kobo during a sync. It is unknown how Kobo store or use this.
To use it, select the menu option and choose the desired options. Then press the OK button. The entries already in the AnalyticsEvents table will be deleted and a database trigger installed to prevent further entries from being created.
The options on the dialog are:
This function is available for both the library and device lists.
Unfortunately, there are circumstances where the database on the device can become corrupted. When this happens, the database usually has to be replaced. This means loss of annotations and reading status for any sideloaded books. With this option, the status of the database can be checked.
One of the signs of a corrupt database is an error from calibre when the device is connected. This error is "DatabaseError: database disk image is malformed". When using the device, the symptoms can include things like the loss of reading position or the same books being processed multiple times.
Selecting this option will run PRAGMA integrity_check against the database and display the output in a window. If there are no problems with the database, "ok" will be displayed in the window. If the database is corrupt, the errors found in the database will be displayed.
As books are added or removed from the device, their details are added or removed from the device database. This causes the size of the database file to increase. This option will compress the database file to clear unused space.
Selecting this option will run VACUUM against the database. When finished the uncompressed and compressed sizes of the database are displayed. If there is an error, the error message will be displayed.
It is recommended that you backup the device database before compressing it.
This will copy the device database to somewhere on your computer. This will allow it to be
If you problems, you can find me on the MobileRead forums. My profile is davidfor. Visit there and send me a private message explaining what the problem is. When describing the problem, please give as much information as possible. In general, there is no such thing as to much information when trying to debug remotely.
If you send me a message, I will respond as quickly as I can. But, remember, it will take time to read the report, think about what could be going on and then write a response. And I am probably in a different timezone to you. Plus, this is done in my spare time. I work, have a family and like to use my Kobo devices for their intended purpose, reading.
After hearing of a problem, I might ask you to run calibre in debugging mode and send me the output produced. If I do, these are the steps: