Home

Awesome

kobo-book-downloader

With kobo-book-downloader you can download your purchased Kobo books and remove the Digital Rights Management (DRM) protection from them. The resulting EPUB files can be read with, amongst others, KOReader.

Unlike obok.py, kobo-book-downloader doesn't require any pre-downloading through a Kobo e-reader or application.

kobo-book-downloader is a command line program. It looks like this:

Screenshot

Installation

kobo-book-downloader requires Python 3+. Make sure that you have it installed. You can verify it by running python --version from the terminal.

Use Git to clone this repository or download it as a zip. If you downloaded it as a zip then you have to extract it.

From your terminal enter the directory where kobo-book-downloader is then run pip install -r requirements.txt to install its dependencies.

It has been tested on Linux but it should work on other platforms too.

Usage

To interactively select from your unread books to download:

python kobo-book-downloader pick /dir/

To interactively select from all of your books to download:

python kobo-book-downloader pick /dir/ --all

To list your unread books:

python kobo-book-downloader list

To list all your books:

python kobo-book-downloader list --all

To download a book:

python kobo-book-downloader get /dir/book.epub 01234567-89ab-cdef-0123-456789abcdef

To download a book and name the file automatically:

python kobo-book-downloader get /dir/ 01234567-89ab-cdef-0123-456789abcdef

To download all your books:

python kobo-book-downloader get /dir/ --all

To list all your books from your wish list:

python kobo-book-downloader wishlist

To show the location of the program's configuration file:

python kobo-book-downloader info

Running the program without any arguments will show the help:

python kobo-book-downloader

To get additional help for the list command (it works for get and pick too):

python kobo-book-downloader list --help

Notes

kobo-book-downloader will prompt for your Kobo e-mail address and password. Once it has successfully logged in, it won't ask for them again, it doesn't store them either, from then on it works with access tokens.

The program was made out of frustration with my workflow (purchase book on Kobo, turn on WiFi on the router, exit from KOReader, start Nickel from the Kobo start menu, turn on WiFi on the Kobo e-reader, wait till the downloading and other syncing finishes, turn off the WiFi on the e-reader, turn off the WiFi on the router, connect the e-reader via USB, run obok.py, copy the book to the e-reader, power off the e-reader, start KOReader, and finally start reading).

The DRM removal code is based on Physisticated's obok.py. Thank you!