Find a file
2021-08-02 13:57:32 -05:00
.gitignore the script is working correctly, still need to add logins 2021-07-18 19:29:12 -05:00
demo.png CLI output correction 2021-07-22 21:01:58 -05:00
flake.lock password is passed to libgourou SECURELY 2021-07-28 16:54:55 -05:00
flake.nix added meta info to flake 2021-08-02 13:57:32 -05:00
knock relative paths are handled 2021-07-30 18:55:29 -05:00
LICENSE added GPLv3 license 2021-07-22 17:29:58 -05:00
README.md detailed binary usage instructions in readme 2021-07-30 18:40:13 -05:00

Knock

Convert ACSM files to DRM-free EPUB files using one command.

CLI demonstration

This software does not utilize Adobe Digital Editions nor Wine. It is completely free and open-source software written natively for Linux.

Setup and Installation

  1. Create a free Adobe account here if you do not already have one.
  2. Install the software.
    • For NixOS, include this flake in your system flake.nix. Then run knock ~/path/to/my-book.acsm to use.
      inputs.knock.url = github:BentonEdmondson/knock
      outputs = { self, knock }: { /* knock.defaultPackage.x86_64-linux is the package */ }
      
    • For non-NixOS, use the latest release. It is large because it includes all dependencies, allowing it to run on any system with an x86_64 Linux kernel. It was built using nix bundle. Use it by doing the following:
      1. Download knock-version-x8664-linux and open a terminal

      2. Navigate to the folder within which knock-version-x86_64-linux resides (e.g. cd ~/Downloads)

      3. Run mv knock-version-x86_64-linux knock to rename it to knock

      4. Run chmod +x knock to make it executable

      5. Run ./knock ~/path/to/my-book.acsm to convert the ebook

        If you receive an error that says something like ./nix/store/...: not found or ./nix/store/...: No such file or directory then you might not have user namespaces enabled. Try running the following to fix it:

        echo "kernel.unprivileged_userns_clone=1" >> /etc/sysctl.conf
        sudo reboot
        
      6. Enter in your Adobe email and password when prompted

      7. Optionally move the executable to ~/bin (for your user) or /usr/local/bin/ (for all users) to allow it to run from anywhere (might not work on some distributions)

Verified Book Sources

Knock has been verified to work on books provided by the following

  • eBooks.com, as long as the description says

    To download and read this eBook on a PC or Mac:

    • Adobe Digital Editions (This is a free app specially developed for eBooks. It's not the same as Adobe Reader, which you probably already have on your computer.)

The resulting EPUB file can be read with any EPUB reader.

Legality

It's Perfectly Legal to Tell People How to Remove DRM (Gizmodo)

Do not use this software for piracy; this software is not intended for piracy. This software exists to allow readers to legally purchase and then legally and freely read ebooks. I suspect that the significant prevalence of ebook piracy is caused in large part by the restrictions put on legally purchased ebooks. This software exists to incentivize the legal purchase of ebooks by enabling their unrestricted and legal consumption.

The Name

The name comes from the D&D 5e spell for freeing locked items:

Knock

2nd level transmutation
Casting Time: 1 action
Range: 60 feet
Components: V
Duration: Instantaneous
Classes: Bard, Sorcerer, Wizard
Choose an object that you can see within range. The object can be a door, a box, a chest, a set of manacles, a padlock, or another object that contains a mundane or magical means that prevents access. A target that is held shut by a mundane lock or that is stuck or barred becomes unlocked, unstuck, or unbarred. If the object has multiple locks, only one of them is unlocked. If you choose a target that is held shut with arcane lock, that spell is suppressed for 10 minutes, during which time the target can be opened and shut normally. When you cast the spell, a loud knock, audible from as far away as 300 feet, emanates from the target object.

Dependencies

  • libgourou-utils for using the ACSM file to download the corresponding encrypted EPUB file from Adobe's servers
  • inept-epub for decrypting the EPUB file

These are already included in all releases and in the Nix flake of course.

License

This software is licensed under GPLv3 because one of its dependencies is licensed under GPLv3.