Skip to content

WIP - Fixing the download of books#13

Open
jmvermeulen wants to merge 4 commits into
TnS-hun:masterfrom
jmvermeulen:master
Open

WIP - Fixing the download of books#13
jmvermeulen wants to merge 4 commits into
TnS-hun:masterfrom
jmvermeulen:master

Conversation

@jmvermeulen
Copy link
Copy Markdown

@jmvermeulen jmvermeulen commented Sep 27, 2019

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 jmvermeulen changed the title WIP - Fix downloading books WIP - Fixing the download of books Sep 27, 2019
@philroche
Copy link
Copy Markdown

+1 on functionality. Works for me

@subdavis
Copy link
Copy Markdown

subdavis commented Apr 1, 2020

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants