Convert ACSM files to DRM-free EPUB files with one command on Linux

Overview

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:

        > /etc/sysctl.conf sudo reboot ">
        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 should work on any ACSM file, but it has been specifically verified to work on ACSM EPUB files from the following:

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.

You might also like...
Spotify Offline is a command line tool that allows one to download Spotify playlists in MP3 format.

Spotify Offline v0.0.2 listen to your favorite spotify songs, offline Overview Spotify Offline (spotifyoffline) is a command line tool that allows one

A cd command that learns - easily navigate directories from the command line

NAME autojump - a faster way to navigate your filesystem DESCRIPTION autojump is a faster way to navigate your filesystem. It works by maintaining a d

A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Stream your favorite shows straight from the command line.

A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

AML Command Transfer. A lightweight tool to transfer any command line to Azure Machine Learning Services

AML Command Transfer (ACT) ACT is a lightweight tool to transfer any command from the local machine to AML or ITP, both of which are Azure Machine Lea

Ros command - Unifying the ROS command line tools
Ros command - Unifying the ROS command line tools

Unifying the ROS command line tools One impairment to ROS 2 adoption is that all

A Python-based command prompt concept which includes windows command emulation.

PythonCMD A Python-based command prompt concept which includes windows command emulation. Current features: echo: Input your message and it will be cl

QueraToCSV is a simple python CLI project to convert the Quera results file into CSV files.

Quera is an Iranian Learning management system (LMS) that has an online judge for programming languages. Some Iranian universities use it to automate the evaluation of programming assignments.

bsp_tool provides a Command Line Interface for analysing .bsp files

bsp_tool Python library for analysing .bsp files bsp_tool provides a Command Line Interface for analysing .bsp files Current development is focused on

A simple command line tool for changing the icons of folders or files on MacOS.

Mac OS File Icon Changer Description A small and simple script to quickly change large amounts or a few files and folders icons to easily customize th

Releases(1.3.1)
Owner
Benton Edmondson
Benton Edmondson
[WIP]An ani-cli like cli tool for movies and webseries

mov-cli A cli to browse and watch movies. Installation This project is a work in progress. However, you can try it out python git clone https://github

166 Dec 30, 2022
A simple automation script that logs into your kra account and files your taxes with one command

EASY_TAX A simple automation script that logs into your kra account and files your taxes with one command Currently works for Chrome users. Will creat

leon koech 13 Sep 23, 2021
telescope.nvim is a highly extendable fuzzy finder over lists.

telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core. Telescope is centered around modularity, allowing for easy customization.

nvim-telescope 8.4k Jan 05, 2023
Bad Apple printed out on the console with Python!

Bad Apple printed out on the console with Python!

CalvinLoke 186 Dec 01, 2022
Vsm - A manager for the under-utilized mksession command in vim

Vim Session Manager A manager for the under-utilized `mksession` command in vim

Matt Williams 3 Oct 12, 2022
Lsp Plugin for working with Python virtual environments

py_lsp.nvim What is py_lsp? py_lsp.nvim is a neovim plugin that helps with using the lsp feature for python development. It tackles the problem about

Patrick Haller 55 Dec 27, 2022
asciinema - Terminal session recorder 📹

asciinema - Terminal session recorder 📹

asciinema 11.1k Dec 27, 2022
Rdwcli - Car list cli app with python

Rdwcli - Car list cli app with python

Arie Twigt 1 Feb 02, 2022
Professor Wordlist is a free open source command line tool written in python

Professor Wordlist is a free open source command line tool written in python, With the aim of generating custom wordlists with a variety of unique parameters and functions providing many possibilitie

オークO A K Z E H オーク 1 Oct 28, 2021
A CLI for creating styled-components for React projects quickly

new-component Ian Cleary (iancleary) Description Welcome! This is a CLI for creating styled-components for React projects quickly. Note: I've rewrote

Ian Cleary (he/him/his) 1 Feb 15, 2022
A Multipurpose bot with many Commands made using Pycord

This repo has all of the commands you will ever need in a discord bot. a Multipurpose discord bot

Pogrammar 42 Dec 18, 2022
Dynamically Generate GitHub Stats as like Terminal Interface

GitHub Stats Terminal Style Dynamically Generate GitHub Stats as like Terminal Interface Usage Create a New Repository using this Template or click he

YOGESHWARAN R 63 Jan 03, 2023
Simple CLI for managing Postgres databases in Flask.

Overview Simple CLI that provides the following commands: flask psql create flask psql init flask psql drop flask psql setup: create → init flask psql

Daniel Reeves 21 Oct 03, 2022
Seamlessly run Python code in IPython from Vim

Seamlessly run Python code from Vim in IPython, including executing individual code cells similar to Jupyter notebooks and MATLAB. This plugin also supports other languages and REPLs such as Julia.

Hans Chen 269 Dec 20, 2022
Chat with Rem in Terminal!

Chat with Rem in Terminal!

bariscodefx 1 Dec 19, 2021
gget is a free and open-source command-line tool and Python package that enables efficient querying of genomic databases.

gget is a free and open-source command-line tool and Python package that enables efficient querying of genomic databases. gget consists of a collection of separate but interoperable modules, each des

Pachter Lab 570 Dec 29, 2022
Output Analyzer for you terminal commands

Output analyzer (OZER) You can specify a few words inside config.yaml file and specify the color you want to be used. installing: Install command usin

Ehsan Shirzadi 1 Oct 21, 2021
Command-line tool for downloading and extending the RedCaps dataset.

Command-line tool for downloading and extending the RedCaps dataset.

RedCaps dataset 33 Dec 14, 2022
lfb (light file browser) is a terminal file browser

lfb (light file browser) is a terminal file browser. The whole program is a mess as of now. In the feature I will remove the need for external dependencies, tidy up the code, make an actual readme, a

2 Apr 09, 2022
organize your books on the command line

organize your books on the command line

Ben Winston 19 Jan 21, 2022