Comment récupérer ses ebooks Kindle et les convertir en EPUB sous Linux, sans Windows ni liseuse Kindle ? Après pas mal de galères, voici la méthode qui fonctionne en 2024.
Note : Cet article a été publie à l'origine sur mon ancien blog le 19 octobre 2024. Il date donc de cette époque même si je le republie ici.
Il y a quelque temps, j'ai réalisé que je possédais plusieurs dizaines de livres Kindle achetés par facilité sur Amazon. Je les lisais sur mon téléphone via l'application Android, mais ayant acquis une nouvelle liseuse (non Kindle), j'ai naturellement voulu récupérer ces livres et les convertir en EPUB pour pouvoir en profiter sur n'importe quel appareil.
Mes contraintes étaient les suivantes :
Auparavant, je me débarrassais des DRM à l'aide de Calibre et du fork noDRM du plugin DeDRM. Sous Linux, il fallait utiliser Wine et installer une vieille version de l'application Kindle (la 1.17 si je me souviens bien).
Mauvaise nouvelle : en réessayant récemment, j'ai découvert avec effroi que cette vieille version ne fonctionnait plus. Elle affichait un message indiquant que l'ordinateur n'était pas connecté à Internet. Après quelques recherches, j'ai compris qu'Amazon avait décommissionné les anciennes API utilisées par cette version.
J'ai tenté de faire fonctionner les nouvelles versions de l'application Kindle sous Wine, mais sans succès. Elles plantent toutes avec l'erreur suivante :
0024:err:module:loader_init "KRFDynamic.dll" failed to initialize, aborting
Après plusieurs heures d'essais-erreurs, j'ai fini par trouver une solution viable. J'ai tellement galéré que je me suis dit qu'un article s'imposait !
La méthode consiste à :
J'ai utilisé Genymotion comme émulateur. Il nécessite la création d'un compte, mais offre plusieurs avantages :
Une fois Genymotion installé, créez un Custom Phone avec Android 11.
À ce stade, il est impossible d'installer l'application Amazon Kindle car elle nécessite l'architecture ARM. Pour contourner ce problème, il faut installer libhoudini en suivant les instructions de ce dépôt :
👉 https://github.com/niizam/Genymotion_A11_libhoudini
L'installation se fait via une simple commande ADB et se déroule sans difficulté.
Important : N'installez pas la dernière version de l'application Kindle ! Les versions récentes stockent les clés de chiffrement dans un fichier crypté impossible à décrypter.
J'ai utilisé la version 8.39 de 2022. Le fichier APK kindle-8-39-0-100-1-3-237316-0.apk est disponible sur Uptodown.
Pour l'installer, il suffit de glisser-déposer le fichier APK sur la fenêtre de l'émulateur. L'installation se fait automatiquement.
Une fois l'application installée, connectez-vous à votre compte Amazon et téléchargez tous vos livres un par un.
Assurez-vous qu'ADB est installé sur votre système, puis lancez Genymotion avec l'image Android 11.
Exécutez les commandes suivantes dans un terminal :
# Récupérer les livres
adb pull /storage/self/primary/Android/data/com.amazon.kindle .
# Récupérer la base de données des clés
adb shell "su -c 'cat /data/data/com.amazon.kindle/databases/map_data_storage.db'" > map_data_storage.db
Après avoir installé le plugin DeDRM et activé le plugin From KFX :
map_data_storage.db récupéré précédemmentadb pull (il contient les fichiers KFX)Si tout se passe bien, tous vos livres sont maintenant importés dans Calibre, libérés de leurs DRM ! Il ne reste plus qu'à les convertir en EPUB si nécessaire.
Cette méthode demande un peu de préparation, mais elle fonctionne parfaitement sous Linux sans avoir besoin de Windows ni de liseuse Kindle physique.
En espérant avoir pu aider quelqu'un dans la même situation !
Note légale : Cet article est destiné à un usage personnel pour les livres que vous avez légitimement achetés. Le contournement des DRM peut être illégal dans certaines juridictions.