No description
  • Odin 86.1%
  • Nix 13.9%
Find a file
2026-07-31 15:42:48 +01:00
.gitignore init 2026-07-22 18:40:00 +01:00
flake.lock init 2026-07-22 18:40:00 +01:00
flake.nix init 2026-07-22 18:40:00 +01:00
main.odin fix 2026-07-31 15:42:48 +01:00
README.md init 2026-07-22 18:40:00 +01:00

remove-thy-shackles

Fulfill Adobe .acsm ebook tokens and strip Adobe ADEPT DRM, producing clean EPUBs. No Calibre, no Calibre plugins, no Adobe Digital Editions.

A small Odin CLI that wraps the libgourou binaries (adept_activate, acsmdownloader, adept_remove), which implement the whole Adobe RMSDK pipeline. Uses anonymous activation, so no Adobe ID is ever needed.

Install

nix profile install .          # installs remove-thy-shackles with libgourou on PATH
nix run . -- --help            # or run without installing

For hacking:

nix develop                    # odin + libgourou + openssh
odin run . -- --help

Usage

One-time setup (creates anonymous device keys in ~/.config/adept):

remove-thy-shackles activate

Fulfill an ACSM token and strip the DRM in one go:

remove-thy-shackles ~/Downloads/SomeBook_9781234567890.acsm
remove-thy-shackles book1.acsm book2.acsm -o ~/books

Decrypt an already-fulfilled (still encrypted) epub:

remove-thy-shackles encrypted.epub -o ~/books

Send the result straight to the Unraid bookdrop (Grimmory's watch folder). The uploaded file is chowned to 1000:1000 because the Grimmory container runs as uid 1000 and silently refuses to import root-owned files:

remove-thy-shackles book.acsm --bookdrop

If you skip activate, it runs automatically the first time it's needed.

Config

~/.config/remove-thy-shackles/config, one key = value per line, # comments allowed. CLI flags win over config values.

bookdrop      = true
out_dir       = ~/books
bookdrop_host = unraid
bookdrop_dir  = /mnt/user/data/downloads/books

Keys

Device keys are created by adept_activate -a (anonymous) and live in ~/.config/adept (device.xml, activation.xml, devicesalt). Set ADEPT_DIR to use a different location; the libgourou tools also look there first.

Errors

Non-zero exit on any failure: expired or already-used ACSM tokens, unfulfillable loans, missing/wrong keys, unreachable bookdrop host, failed chown. Each remaining file is still processed when one fails.

Legality

Removing DRM from books you own is your responsibility; know your local laws.