A command-line interface (CLI) tool to download and decrypt EPUB books directly from .acsm files (Adobe Content Server Message).
This tool automates the process of:
- Fulfillment: Turning an
.acsmpurchase token into an encrypted EPUB file by communicating with Adobe's servers. - Activation: Automatically registering an anonymous Adobe ID to authorize the device.
- Decryption: Removing the DRM protection to produce a standard EPUB file that can be read on any device (e.g., Kindle, Apple Books).
- Python 3.7+
pip
-
Clone the repository:
git clone https://github.com/mat-mo/acsm-to-epub.git cd acsm-to-epub -
Create and activate a virtual environment (recommended):
python3 -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
To download and decrypt a book:
python main.py <path_to_acsm_file> [output_directory]- path_to_acsm_file: The full path to your
.acsmfile. - output_directory: (Optional) Where to save the decrypted EPUB. Defaults to
~/Downloads.
Example:
python main.py ~/Downloads/MyBook.acsmFirst Run: The first time you run the tool, it will automatically register a new anonymous Adobe ID to this "device". This is a one-time process.
This project is a consolidation and adaptation of existing open-source tools developed by the dedicated e-book community. It would not exist without the hard work of the following projects:
- Author: Leseratte10
- Source: https://github.com/Leseratte10/acsm-calibre-plugin
- License: GNU General Public License v3.0 (GPLv3)
- Contribution: Provided the core libraries for implementing the Adobe ADEPT protocol in Python. This includes the logic for device registration, account activation, and the fulfillment request that downloads the encrypted book (
libadobe*.py,fulfill.py,register_ADE_account.py).
- Authors: Apprentice Harper, noDRM, i♥cabbages, and many other contributors.
- Source: https://github.com/noDRM/DeDRM_tools
- License: GNU General Public License v3.0 (GPLv3)
- Contribution: Provided the robust decryption logic for Adobe Adept EPUBs. The
ineptepub.pyscript and its utilities (zeroedzipinfo.py,utilities.py) were adapted to perform the actual DRM removal using the keys generated by the fulfillment process.
This project is licensed under the GNU General Public License v3.0 (GPLv3).
This license is required because this project is a derivative work of acsm-calibre-plugin and DeDRM_tools, which are both GPLv3 licensed software.
See the LICENSE file for the full license text.