American Rhapsody

F.A.Q. | Contact | Mastodon | Links | En français

I'll Explain Everything to the Geeks

Entries feed - Comments feed

Saturday, May 11 2019

Adobe Digital Editions, Linux, and DRMs: Updated

Longtime readers may remember that I am quite stubborn about removing the DRMs of books I purchased for my own reading.

In fact, I have little choice: my current ebook reader is a PocketBook Touch Lux 3 that, crucially, is not linked to a specific bookstore (unless the same bought, say, from Decitre in France). I tend to buy ebooks from Kobo, because I like their selection and because, unlike the dreaded Amazon-Kindle binding, you're not limited to using their reader to read your ebooks.

Unfortunately, many of the ebooks they sell come with the dreaded Adobe Digital Edition (also known as ADE, which make it sounds nice and nonthreatening like my friend Adélaïde, but do not get lulled into a false sense of security) DRMs. Particularly dreaded of the Linux users, for ADE is only available for Windows or Mac.

All fine and dandy (provided you're not too bothered about the concept of DRMs) if you have an ADE-compatible device.

But not so much in my case.

So I need to somehow transform the .acsm files I purchase into DRM-free epubs.

And my old setup to do so suddenly started failing with a "#2038" network error that I was not able to fix. Which is when it became apparent that I had to seriously upgrade my suite of tools... And here's how I did it, on Linux Mint 18.3 (yeah, I should upgrade, but it's stable, okay?).

Installing Adobe Digital Editions 2.0

The first thing is to install Adobe Digital Editions 2.0. I owe many thanks to Pat David's post for that part.

First thing first, you need wine 3.0. Easy to acquire as wine-stable from your repository.

You'll also need winetricks and cabextract.

One nice thing about wine is that you can have multiple setups, each corresponding to a so-called "prefix", so you can mess around one setup without killing everything else. Following Pat's advice, I decided to use a prefix called ".adewine" (instead of the default ".wine") for the installation and use of ADE.

export WINEPREFIX=~/.adewine

Then you need to tell wine you want to work with a 32 bits Windows

WINEARCH=win32 winecfg

At this point, a setup window should open. Make sure to choose Windows XP here, as more recent versions of Windows won't let you install the .NET framework.

Add a few necessary packages:

winetricks -q corefonts
winetricks -q windowscodecs

If at this stage you encounter an error, follow Pat's advice again to fix it:

cd ~/.cache/winetricks/windowscodecs/
cabextract -d tmp wic_x86_enu.exe
cd tmp/
cp windowscodecs* ~/.adewine/drive_c/windows/system32/

You're now ready to install the Microsoft .NET Framework 3.5 SP1 Full Package!

Here what worked from me diverged from what Pat did. I had to download dotnetfx35setup.exe from the Microsoft website and then run

wine  wine dotnetfx35setup.exe

(This took me two days to figure out, by the way.)

And now, to the installation of Adobe Digital Edition 2.0

All what's left to do is to download the Windows installer of ADE and run

wine ADE_2.0_Installer.exe


You should now be able to run ADE, with a command such as

 wine ~/.adewine/drive_c/Program\ Files/Adobe/Adobe\ Digital\ Editions\ 2.0/DigitalEditions.exe

Now you should be able to drag and drop your .acsm file into ADE and double-click the ebook to open it.

If you navigate to

~/My\ Digital\ Editions

you'll see that a new epub file has appeared here: your book!

Unfortunately, at this stage, this epub file is still DRMed, and the book is still quite far from being readble on your ebook reader...

Time to move on to step 2: the wonderful tools of Apprentice Alf.

Installing the DeDRM tools

Apprentice Alf, Apprentice Harper, The Dark Reverser and i♥cabbages are a few of the heroes that make it possible to remove DRMs from books you've legally purchased so that you can actually read them on your ebook reader (which you have also legally purchased for the purpose of reading books rather than surfing the Internets looking for a solution to your obscure error messages). Thank you, folks. Heartily.

Your first step here is to download

Unzip this somewhere and navigate to DeDRM_calibre_plugin/.

To use these tools, you'll need Python2.7. On wine, of course. To install it, download the latest Windows X86 MSI and run

wine msiexec /i python-2.7.16.msi

Now download from Voidspace, unzip it, and run

wine pycrypto-2.1.0.win32-py2.7.exe

You are ready to extract the relevant scripts from the DeDRM calibre plugin!

 cp inept*py ~/.adewine/drive_c/Python27/Tools/Scripts/.
 cp ~/.adewine/drive_c/Python27/Tools/Scripts/.

The script allows you to generate the magic key that will unlock your DRMs: run

wine explorer /desktop=name,1024x768 python.exe

and take good note of the message telling you that the key was successfully added to, in my case, adobekey_1.der.

You can now use to remove DRMs from your DRMed pdf files:

wine explorer /desktop=name,1024x768 python.exe

and to remove DRMs from your DRMed epub files: wine explorer /desktop=name,1024x768 python.exe

If you use calibre, which is a very nice tool to manage your library, you can now install the DeDRM calibre plugin as follows.

Open calibre.

In the upper menu bar, you'll find a "Preferences" menu. You might need to click on the tiny arrow at the far right of this bar to see all the possibilities.

Click "Plugins" then "Load plugin from file"

Pick DeDRM_calibre_plugin/

Click "Configure plugin". If you need to find this plugin again, it will be under "File type plugins".

Click "Import Existing Key Files"

Navigate to the .der key previously generated.

And voilà[1]!

Any DRMed epub, obtained under "My Digital Editions" after having opened an .acsm file with ADE, that you read in Calibre will be DeDRMed in calibre.

And now I can finally get on with my weekend.


[1] No, not "viola". The viola is a wonderful instrument but "viola" is French for "raped", unlike "voilà" which is French for "here you go". Also, I've seen "raped carrots" (for "shredded carrots salad") way too often in the English version of the menus in French restaurant.

Sunday, June 5 2011

Adobe Digital Editions, Ubuntu, and DRMs

Updated 2019-05-11: This post makes for an entertaining read (in my misguided opinion) but if you're looking for a technical solution to your problem, you should probably check out its more recent version.

So you've bought an eBook on, say, BooksOnBoard.

And you were told it was in PDF format.

Except that it was an Adobe Digital Editions (ADE) version of a PDF, which means that you actually received/downloaded a .acsm file and that you can only open it with ADE. Once you do that, ADE generates a PDF file, which it hides under "My Digital Editions" on my computer, and that .pdf is locked with DRMs and you cannot import it on your eBook reader. If you try to open it with anything that isn't ADE, it requires a password, which you don't have, because it's fucking embedded in ADE. As far as I understand it.

So you're starting to get a little bit pissed off at DRMs. And head off to the Internets again (not that you'd ever left the Internets, but, well).

Continue reading...

I read

Mostly detective stories. Occassionally, weird fantasy, theater, or Chinese literature in Italian (I have fantastic friends), real well-written books.

I listen to

Mof Montreal, Caravan Palace, the Ditty Bops, Dango Reinhardt, the National, Minor Majority, Léo Ferré, Beethoven, Sonny Rollins, Laura Marling, Erlend Øye, Hjaltalin, Sufjan Stevens, Yuri Bashmet. And others.

I am

late, I'm late, I'm late for a very important date, delighted by Oscar Wilde (One should always be a little improbable), a little improbable, still very much of a bloody leftist, heathen atheist, and a woman scientist.

Deep Thought

'To leave is to die a little. But to die is to leave a lot' (translated from French)
[Alphonse Allais]

(Almost) Legal Mentions

(Dammit this one joke only works in French. You're missing out.)
Not recommended for children under 36 months.
Please handle carefully.
Beware of the kitty.
Objects in the mirror are closer than they appear.*
* Strike out if inapplicable