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:
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.
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
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!