Giter Club home page Giter Club logo

knock's Introduction

Knock

Perform the following conversions with one command:

  • ACSM → EPUB
  • ACSM → PDF
  • (Soon: AAX → M4B)

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

  • For NixOS users, 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-x86_64-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. 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)

Recommended Workflows

Before buying your ebook/audiobook, check if it is available for free on Project Gutenberg (ebooks) or LibriVox (audiobooks).

If you're looking for an ebook reader or audiobook player, I recommend Foliate for the former and Cozy for the latter.

Verified Book Sources

Knock should work on any ACSM file, but it has been specifically verified to work on ACSM files from the following:

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 for using the ACSM file to download the corresponding encrypted EPUB/PDF file from Adobe's servers
  • rmdrm for decrypting the Adobe ADEPT-encrypted EPUB/PDF files
  • Audible for fetching the Audible decryption key used to decrypt AAX files
  • ffmpeg for converting AAX files to M4B files using the Audible decryption key

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

License

This software is licensed under GPLv3.

knock's People

Contributors

bentonedmondson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.