kobo-book-downloader icon indicating copy to clipboard operation
kobo-book-downloader copied to clipboard

WIP - Fixing the download of books

Open jmvermeulen opened this issue 5 years ago • 2 comments

I've fixed the GetAllBooks downloads, but I cannot get the DRM decryption to work again. Kobo made some small response changes in their API that I corrected.

In the process I found another DRM type called SocialDrm. In this case the e-book can be used on all my devices, but its 'watermarked'. For me this is not a issue (and even preferred), I don't want to use the tool for piracy but only to have the e-books in a DRM-free format.

This SocialDrm download url is not supplied when the client identifies its-self as Android client as seen in Kobo.__GetContentAccessBook().

Only in the book listing call as in Globals.Kobo.GetMyBookList(). This response contains DownloadUrls of much more DRM types. Due inconsistencies in the Kobo API response types its hard (for me in Python) to create a generic method that handles both scenario's.

Maybe someone can help me out here? In my view, when available, a book 'protected' by SocialDrm should have the first choice. If not available other DRM types could be downloaded and decrypted. Im not able to get this last part done.

jmvermeulen avatar Sep 27 '19 19:09 jmvermeulen

+1 on functionality. Works for me

philroche avatar Mar 25 '20 11:03 philroche

This repository has been abandoned. I have forked the project at https://github.com/subdavis/kobo-book-downloader - please give that project a try and open an issue there if you have trouble.

@jmvermeulen I'd like to make sure my fork works with this social DRM type. Could you either give it a try to maybe link me to a cheap book that you know uses this type?

I ran into the exact same issue as you: URL isn't identified by call to GetContentAccessBook(), but I fixed it by simply _always_calling GetMyBookList(). This was needed to get audiobooks as well, so 2 birds one stone.

My fork adds some new features:

  • audiobook support
  • support for other DRM types.
  • multi-user support; fetch books for multiple accounts.
  • web interface; adds new browser gui (with flask)
  • docker image
  • pypi package

Please don't reply to this issue, open an issue on my fork instead

subdavis avatar Apr 01 '20 00:04 subdavis