Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LCP DRM removal information #18

Open
noDRM opened this issue Jan 11, 2022 · 10 comments
Open

LCP DRM removal information #18

noDRM opened this issue Jan 11, 2022 · 10 comments

Comments

@noDRM
Copy link
Owner

noDRM commented Jan 11, 2022

On January 4th, Readium has issued a DMCA takedown request for this repository and its forks, because it contained, by their definition, code to "illegally access ebooks protected by copyright". Even though I don't think that that's true (in order to access books using this plugin you need to have legal access credentials and keys ...), I had to comply with this request in order to be able to keep this repository and to prevent legal issues.

This means:

  • The LCP DRM removal code is no longer available in this GitHub repository, and I will no longer be providing the "old" version of the lcpdedrm.py file, or any other part of the LCP circumvention code.
  • Git history has been rewritten as of commit a44b50d (which used to contain the first version of the LCP DRM removal code), so if you have any forks you will need to re-base them on this commit.
  • The lcpdedrm.py file in this repository (SHA256sum 830624873b836a95b2c7902c71d4f6712f92835c6e2fb2ae44f96ee8de2e77db) has been replaced with one that just prints an error message upon encountering an LCP-protected book.
  • The release ZIP files for v10.0.0, v10.0.1 and v10.0.2 have been replaced with updated ones that also contain this modified lcpdedrm.py file.

GitHub and Readium are now reviewing this repository again to see if they are happy with the current state - I don't expect there to be any issues, as I've implemented all the changes they suggested, so I hope that this repository will now stay available.

@noDRM noDRM changed the title <placeholder> LCP DRM removal information Jan 11, 2022
@noDRM noDRM pinned this issue Jan 11, 2022
@j-howell
Copy link

Thank you for your hard work.

@mizuOda
Copy link

mizuOda commented Jan 11, 2022

Thank you! Really appreciate your time, energy and willingness to continue development and maintenance of these tools ❤️

@DB99
Copy link

DB99 commented Jan 12, 2022

Same here. Thank you.

@Powersource
Copy link

That's a shame :/ Ran into issues because of this now.

@cweiske
Copy link

cweiske commented Jan 31, 2022

The takedown says:

The LCP encryption profile 1.0, its algorithm and associated keys are not posted online, nor open in any manner.

The LCP 1.0 spec defines the "Basic Encryption Profile 1.0" in section 6.3:
https://readium.org/lcp-specs/releases/lcp/latest#63-basic-encryption-profile-10

The readium profile registry at https://readium.org/lcp-specs/registries/profiles lists two profiles: Basic and Production.

Am I right that code that only implements the basic profile - but not the production profile - would be fine?

@noDRM
Copy link
Owner Author

noDRM commented Feb 1, 2022

It probably would be fine. Though, given that I only got one chance to remove the offending content and get access to this repository back, I decided to play it safe and remove all the code. If I had left the "basic" variant code online and Readium would have claimed I didn't remove everything I need to remove, Github would have banned my repository completely.

I don't think it would be a good idea for me to go contact Readium and be like "Hey I'm the guy who you issued a DMCA request against, are you okay with me publishing code to crack your basic profile?". Maybe someone else wants to do that.

I mean, in theory the applications that implement this DRM (= Thorium Reader) is licensed under a BSD 3-Clause License. This means that redistributions in source and binary form should be allowed - so considering that the binary form of Thorium contains machine code to parse the "production" LCP DRM, that should also mean that I'm allowed, under that license, to take that code and adopt it for the plugin (if I add the necessary copyright headers), including both the basic and the production profile.

Readium seems to not agree with that, which means that they are using an incorrect license for their project. They are claiming that Thorium would be under BSD-3-license, while they claim in the DMCA request that it'd be closed-source.

If Readium writes a public statement or actively confirms that removing DRM from books protected with their "test" profile basic-profile does not violate their copyright (considering that I implemented the removal code myself, they shouldn't have any ...), I will add back that support. But hey, they also falsely claimed that my implementation of their DRM would violate their "copyright" on the encryption profile, so I doubt they'd do that.

@FrankGusto
Copy link

Unfortunate that things had to be resolved in this fashion, but given the potential of no more noDRM. I would say it is better than the alternative.

given that I only got one chance to remove the offending content and get access to this repository back, I decided to play it safe and remove all the code. If I had left the "basic" variant code online and Readium would have claimed I didn't remove everything I need to remove, Github would have banned my repository completely

Also rather unfortunate that GitHub is not flexible with resolving take-down requests. Perhaps you should contact Github and ask about this?

I am not familiar with Readium what is the difference between the profiles?

Thank you

@Manu99it
Copy link

Manu99it commented Apr 8, 2022

So what's the purpose of fight DRM, if an DCMA request is sufficent to counterfight? To me that doesn't make sense: the code here isn't for doing piracy (for example seeing the code I noted that you could remove amazon drm even for kindle unlimited ebooks but that's not done because would be piracy [download 10000 books in a month for 9,99€ and keep them]) but for removing drm in bought books for convenience

@FrankGusto
Copy link

So what's the purpose of fight DRM, if an DCMA request is sufficent to counterfight?

Just being removed from this repository does not mean the code is gone forever.

@pgfiore
Copy link

pgfiore commented Apr 12, 2022

Just being removed from this repository does not mean the code is gone forever.

I heard a story about a lost child and breadcrumbs to mark a trail long ago. It should be nice to get hints that enable us to lead back home successfully... ;-)

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

No branches or pull requests

9 participants