The forum

[Script] Amazon Kindle + DeDRM

Author Replies
jpath Sunday 2 June 2019 at 17:23
jpathAnonymous

So I just bought a new Kindle eBook and was rather sad to learn that some wine update broke the Amazon Kindle application. The existing PlayOnLinux script does not work either and furthermore I also need the utility to extract the encryption keys from the Kindle application for use with the DeDRM Calibre plugin. I thought about fixing the existing Kindle script and making this like an addon to it, but who even wants to use this super old version of Kindle for anything other than downloading ebooks to strip the DRM off of them anyway?

This is my first PlayOnLinux script and it was very much a learning by doing thing, so if I did something stupid or not so nice, well.. colour me unsurprised.

Source

#!/bin/bash
# Date: 2019-06-02
# Last revision: 2019-06-02
# Author: Jan Path
# Script license: BSD3

[ "$PLAYONLINUX" = "" ] && exit 1
source "$PLAYONLINUX/lib/sources"

TITLE="Amazon Kindle + DeDRM"
PREFIX="amazonkindlededrm"
# The current wine version (4.9) does not work. This one does.
WORKING_WINE_VERSION="3.5"

POL_SetupWindow_Init
POL_Debug_Init

POL_SetupWindow_free_presentation "$TITLE" \
 "This will install Amazon Kindle version 1.16  and the DeDRM utility to extract
 the encryption keys for use with the DeDRM calibre plugin. (Newer versions of
 Amazon Kindle do not work with wine)

 Once you logged into your Amazon account in the Kindle application you can run
 the “Extract Keys” utility created by this script. The extracted keys should be in
 “~/.PlayOnLinux/wineprefix/amazonkindlededrm/drive_c/kindlekey1.k4i”

 It is probably a good idea to disable automatic updates after installation 
 under Tools > Options > General"

POL_Wine_SelectPrefix "$PREFIX"
POL_Wine_PrefixCreate "$WORKING_WINE_VERSION"

POL_System_TmpCreate "$PREFIX"

cd "$POL_System_TmpDir"

# Python 2.7
POL_Download "https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi" "912428345b7e0428544ec4edcdf70286"
POL_Wine_WaitBefore "Python 2.7"
POL_Wine msiexec /i "python-2.7.16.msi"
POL_Wine_WaitExit "Python 2.7"

# PyCrypto 2.6 for Python 2.7
POL_Download "http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe" "e7875e7f6bf0b23701bdd5ef1d8679cd"
POL_Wine_WaitBefore "PyCrypto 2.6 for Python 2.7"
POL_Wine "pycrypto-2.6.win32-py2.7.exe"
POL_Wine_WaitExit "PyCrypto 2.6 for Python 2.7"

# DeDRM
POL_Download "https://github.com/apprenticeharper/DeDRM_tools/releases/download/v6.6.3/DeDRM_tools_6.6.3.zip" "16b0bc2cc165db3215d0b6203bb0ab64"
unzip -u DeDRM_tools_6.6.3.zip
mv "Other_Tools/DRM_Key_Scripts/Kindle_for_Mac_and_PC/kindlekey.pyw" "$WINEPREFIX/drive_c/"
POL_Shortcut 'Python27/python.exe' 'DeDRM Extract Amazon Kindle Keys' '' 'C:\\kindlekey.pyw'

# Amazon Kindle
POL_Download "https://web.archive.org/web/20160817182927/https://s3.amazonaws.com/kindleforpc/44025/KindleForPC-installer-1.16.44025.exe" "92f8b55a17a632e77bcd94f7d7e767fc"
POL_Wine_WaitBefore "Amazon Kindle"
POL_Wine "KindleForPC-installer-1.16.44025.exe"
# I don't really know what this does or if it is important. 
# I just copied it from the existing Kindle script. I will have to test
# whether removing it makes a difference
rm "$WINEPREFIX/drive_c/windows/winsxs/manifests/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_deadbeef.manifest"
POL_Wine_WaitExit "Amazon Kindle"
POL_Shortcut "Kindle.exe" "Amazon Kindle"

POL_System_TmpDelete
POL_SetupWindow_Close
exit

Edited by jpath

Dadu042 Wednesday 5 June 2019 at 7:13
Dadu042

Seems OK to me.

 

You just have to replace :

[ "$PLAYONLINUX" = "" ] && exit 1
->

[ "$PLAYONLINUX" = "" ] && exit 0


And :

exit
-> 

exit 0


See also (useful) : http://wiki.playonlinux.com/index.php/Scripting_-_Chapter_9:_Standardization

 

Edited by Dadu042

This site allows content generated by members, and we promptly remove any content that infringes copyright according to our Terms of Service. To report copyright infringement, please send a notice to dmcayonlinux.com