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
Tncli - TON smart contract command line interface

Tncli TON smart contract command line interface State Not working, in active dev

Disintar IO 100 Dec 18, 2022
The easiest way to create beautiful CLI for your programs.

The Yandere is a program written in Python3, allowing you to create your own beautiful CLI tool.

Billy 31 Dec 20, 2022
A CLI framework based on asyncio

asynccli A CLI framework based on asyncio. Note This is still in active development. Things will change. For now, the basic framework is operational.

Adam Hopkins 6 Nov 13, 2022
A command line tool to hide and reveal information inside images (works for both PNGs and JPGs)

ImgReRite A command line tool to hide and reveal information inside images (work

Jigyasu 10 Jul 27, 2022
Objexplore is an interactive Python object explorer for the terminal.

Objexplore is an interactive Python object explorer for the terminal. Use it while debugging, or exploring a new library, or whatever! 9D1FAC73-B2A5-4

kylepollina 249 Dec 23, 2022
eBay's TSV Utilities: Command line tools for large, tabular data files. Filtering, statistics, sampling, joins and more.

Command line utilities for tabular data files This is a set of command line utilities for manipulating large tabular data files. Files of numeric and

eBay 1.4k Jan 09, 2023
The Pythone Script will generate a (.)sh file with reverse shell codes then you can execute the script on the target

Pythone Script will generate a (.)sh file with reverse shell codes then you can execute the script on the targetPythone Script will generate a (.)sh file with reverse shell codes then you can execute

Boy From Future 15 Sep 16, 2022
As easy as /aitch-tee-tee-pie/ πŸ₯§ Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie

HTTPie: human-friendly CLI HTTP client for the API era HTTPie (pronounced aitch-tee-tee-pie) is a command-line HTTP client. Its goal is to make CLI in

HTTPie 25.4k Dec 30, 2022
A command-line utility that, given a markdown file, checks whether all its links work.

A command-line utility written in Python that checks validity of links in a markdown file.

Teclado 2 Dec 08, 2021
A Hikari command handler for people who love ducks.

duckari A Hikari command handler made with love by ducks. Currently Duckari is work in progress. Documentation is WIP. The wiki is no longer used as d

2 Oct 09, 2022
grungegirl is the hacker's drug encyclopedia. programmed in python for maximum modularity and ease of configuration.

grungegirl. cli-based drug search for girls. welcome. grungegirl is aiming to be the premier drug culture application. it is the hacker's encyclopedia

Eristava 10 Oct 02, 2022
CLI to show end-of-life dates for tools and technologies.

Python 3.9+ interface to endoflife.date to show end-of-life dates for tools and technologies.

Hugo van Kemenade 32 Jan 06, 2023
πŸŽ„ Advent of Code command-line tool.

πŸŽ„ advent-cli advent-cli is a command-line tool for interacting with Advent of Code, specifically geared toward writing solutions in Python. It can be

Christian Ferguson 6 Dec 01, 2022
TermPair lets developers securely share and control terminals in real timeπŸ”’

View and control terminals from your browser with end-to-end encryption πŸ”’

Chad Smith 1.5k Jan 05, 2023
A Tempmail Tool for Terminal and Termux.

A Tempmail Tool for Terminal and Termux.

MAO-COMMUNITY 8 Oct 19, 2022
An anime command-line system information tool written in python.

Animefetch - v0.0.3 An anime command-line system information tool written in python. Description Animefetch is an anime command-line system informatio

Thadeuks 6 Jun 17, 2022
[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
Simple CLI prompt for easy I/O with OpenAI's API

openai-cli-prompt Simple CLI prompt for easy I/O with OpenAI's API Quickstart Create a .env file with: OPENAI_API_KEY=Your OpenAI API Key Configure

Erik Nomitch 1 Oct 12, 2021
Simple Python Library to display text with color in Python Terminal

pyTextColor v1.0 Introduction pyTextColor is a simple Python Library to display colorful outputs in Terminal, etc. Note: Your Terminal or any software

Siddhesh Chavan 1 Jan 23, 2022