DRM Removal Tools for eBooks

Version 6.7.0 released on 17 February, 2020

Welcome to Apprentice Alf’s blog

This blog is intended to help anyone looking for free and simple software for removing DRM from their Kindle ebooks, stripping DRM from their Adobe Digital Editions ebooks, getting rid of DRM from their Barnes and Noble ebooks, freeing their Kobo ebooks of DRM, or decrypting their Fictionwise eReader ebooks.

If you want to find out more about ebooks, DRM and why you will probably want to remove the DRM from your ebooks, see this post:  Ebook Formats, DRM and You — A Guide for the Perplexed.

If you already know that you want to strip the DRM from your ebooks, you’ve found the right place.

The Tools

To get started on removing DRM from your ebooks, just download the tools archive from the link below. Unzip the archive, and start reading.

The latest release can be found at the top of this page:
https://github.com/apprenticeharper/DeDRM_tools/releases

Getting Help with the Tools

If you have any questions about the tools, ebooks, and DRM, check the FAQs at the GitHub repository:
https://github.com/apprenticeharper/DeDRM_tools/blob/master/FAQs.md

If you have any problems with the current tools, please ask for help in a comment on this post or open a new issue at the GitHub repository. If you are having a problem with an older version of the tools, please first update to the current version, and see if that solves your problem.

Before commenting here, please check the ReadMe file and the FAQs (see link above).

In any bug report or help request, please include:

  • which tool was used
  • which OS you are using
  • where the ebook file came from (device or application)
  • any error messages
  • a log of the DRM-removal attempt (see the FAQs on how to get a log).

Anti-Piracy Notice

Please only use these tools for gaining full access to your own ebooks for archiving/conversion/convenience. De-drmed ebooks should not be uploaded to open servers, torrents, or other methods of mass distribution. No help will be given to people doing such things. Authors, retailers and publishers all need to make a living, so that they can continue to produce books for us to read. Don’t be a parasite.

Origin of the Tools

The tools for removing DRM from ePubs were originally posted at i♥cabbages’ blog. The tools for Kindle/Mobipocket were originally posted at The Dark Reverser’s blog.

They have since been improved by many people, but mostly some_updates, DiapDealer, Apprentice Alf, and Apprentice Harper. While there are many sites that redistribute these tools, the most up-to-date versions of the tools are currently released here.

Other Sources

Anyone trying to sell you ebook DRM removal tools for Adobe Adept ePub and PDFs, Barnes & Noble ePubs, Kindle ebooks, Kobo ebooks, or eReader ebooks has probably just repackaged (an earlier) version of the tools available here.

6,150 thoughts on “DRM Removal Tools for eBooks

  1. Windows 10, Calibre 4.12, DeDRM tools 6.7.0
    book purchased from Google books, downloaded into ADE 2.0 and can open it there but when I attempt to import into Calibre it won’t remove the DRM. Have tried several different books multiple times to make sure it’s reproducible. Have tried deauthorizing and re-authorizing ADE several times, tried uninstalling and reinstalling the DeDRM tools, even uninstalled ADE and downloaded new copy, reinstalled and reauthorized. Deleted books from ADE, redownloaded from Google and again, can open and read in ADE but DRM not stripped when imported into Calibre. Thank you for any help.

    calibre Debug log
    calibre 4.12 [64bit] embedded-python: True is64bit: True
    Windows-10-10.0.18362-SP0 Windows (’64bit’, ‘WindowsPE’)
    (‘Windows’, ’10’, ‘10.0.18362’)
    Python 2.7.16+
    Windows: (’10’, ‘10.0.18362’, ‘SP0′, u’Multiprocessor Free’)
    Interface language: None
    Successfully initialized third party plugins: DeDRM (6, 7, 0) && Diaps Editing Toolbag (0, 3, 6) && Find Duplicates (1, 6, 3) && EpubCheck (0, 2, 2) && KoboTouchExtended (3, 1, 5) && Obok DeDRM (6, 7, 0) && Count Pages (1, 9, 0) && Kobo Utilities (2, 11, 0) && Goodreads (1, 4, 0) && KePub Output (3, 1, 3)
    calibre 4.12 [64bit] embedded-python: True is64bit: True
    Windows-10-10.0.18362-SP0 Windows (’64bit’, ‘WindowsPE’)
    (‘Windows’, ’10’, ‘10.0.18362’)
    Python 2.7.16+
    Windows: (’10’, ‘10.0.18362’, ‘SP0′, u’Multiprocessor Free’)
    Interface language: None
    Successfully initialized third party plugins: DeDRM (6, 7, 0) && Diaps Editing Toolbag (0, 3, 6) && Find Duplicates (1, 6, 3) && EpubCheck (0, 2, 2) && KoboTouchExtended (3, 1, 5) && Obok DeDRM (6, 7, 0) && Count Pages (1, 9, 0) && Kobo Utilities (2, 11, 0) && Goodreads (1, 4, 0) && KePub Output (3, 1, 3)
    Turning on automatic hidpi scaling
    devicePixelRatio: 2.0
    logicalDpi: 96.0 x 96.0
    physicalDpi: 78.9126213592 x 79.2832369942
    Using calibre Qt style: True
    [0.00] Starting up…
    [0.01] Showing splash screen…
    [0.45] splash screen shown
    [0.45] Initializing db…
    [0.50] db initialized
    [0.50] Constructing main UI…
    DEBUG: 0.0 obok::utilities.py – loading translations
    DEBUG: 0.0 obok::dialogs.py – loading translations
    DEBUG: 0.0 obok::config.py – loading translations
    DEBUG: 0.0 obok::action_err.py – loading translations
    DEBUG: 0.0 KoboUtilites::action.py – loading translations
    DEBUG: 0.0 KoboUtilites::dialogs.py – loading translations
    DEBUG: 0.0 KoboUtilites::action.py – loading translations
    DEBUG: 1.5 No Kobo Touch, Glo or Mini appears to be connected
    DEBUG: 1.5 rebuild_menus – self.supports_ratings=None, self.supports_tiles=None
    DEBUG: 1.5 KoboUtilities:set_toolbar_button_tooltip – start: text=’None’
    DEBUG: 1.5 KoboUtilities:set_toolbar_button_tooltip – setting to text=’Utilities to use with Kobo ereaders

    Driver: KoboTouchExtended’
    [2.23] main UI initialized…
    [2.23] Hiding splash screen
    [6.30] splash screen hidden
    [6.30] Started up in 6.30 seconds with 1156 books
    stdout+stderr from file dialog helper: [”, ”]
    piped data from file dialog helper: [‘\xaf\xd5\xe9bg\x1b3\x92\x07\xcb\x8c\x91]I\x97v\x14\x8f\xad\x978 \xe3\x06c\x0c)$\xca\xb2\x81,’, ‘C:\Users\catsk\Documents\My Digital Editions\Grateful American A Journey from Self to Service.epub’]
    DeDRM v6.7.0: Trying to decrypt Grateful American A Journey from Self to Service.epub
    DeDRM v6.7.0: Verifying zip archive integrity
    DeDRM v6.7.0: Grateful American A Journey from Self to Service.epub is a secure Adobe Adept ePub
    DeDRM v6.7.0: Looking for new default Adobe Digital Editions Keys after 0.1 seconds
    DeDRM v6.7.0: Exception when getting default Adobe Key after 0.1 seconds
    Traceback (most recent call last):
    File “calibre_plugins.dedrm.init“, line 350, in ePubDecrypt
    File “calibre_plugins.dedrm.adobekey”, line 379, in adeptkeys
    File “calibre_plugins.dedrm.adobekey”, line 359, in CryptUnprotectData
    ADEPTError: Failed to decrypt user key key (sic)
    DeDRM v6.7.0: Ultimately failed to decrypt after 0.1 seconds. Read the FAQs at Harper’s repository: https://github.com/apprenticeharper/DeDRM_tools/blob/master/FAQs.md
    Running file type plugin DeDRM failed with traceback:
    Traceback (most recent call last):
    File “site-packages\calibre\customize\ui.py”, line 172, in _run_filetype_plugins
    File “calibre_plugins.dedrm.init“, line 636, in run
    File “calibre_plugins.dedrm.init“, line 407, in ePubDecrypt
    DeDRMError: DeDRM v6.7.0: Ultimately failed to decrypt after 0.1 seconds. Read the FAQs at Harper’s repository: https://github.com/apprenticeharper/DeDRM_tools/blob/master/FAQs.md
    Added Grateful American: A Journey from Self to Service to db in: 0.2
    Added 1 books in 0.9 seconds
    Worker Launch took: 0.115000009537
    Job: 0 Convert book 1 of 1 (Grateful American: A Journey from Self to Service) finished
    Convert book 1 of 1 (Grateful American: A Journey from Self to Service)
    Conversion options changed from defaults:
    read_metadata_from_opf: u’C:\Users\catsk\AppData\Local\Temp\calibre_tqhxe8\v4dcya.opf’
    verbose: 2
    output_profile: u’tablet’
    Resolved conversion options
    calibre version: 4.12.0
    {‘asciiize’: False,
    ‘author_sort’: None,
    ‘authors’: None,
    ‘base_font_size’: 0.0,
    ‘book_producer’: None,
    ‘change_justification’: u’original’,
    ‘chapter’: u”//*[((name()=’h1′ or name()=’h2′) and re:test(., ‘\s*((chapter|book|section|part)\s+)|((prolog|prologue|epilogue)(\s+|$))’, ‘i’)) or @class = ‘chapter’]”,
    ‘chapter_mark’: u’pagebreak’,
    ‘comments’: None,
    ‘cover’: None,
    ‘debug_pipeline’: None,
    ‘dehyphenate’: True,
    ‘delete_blank_paragraphs’: True,
    ‘disable_font_rescaling’: False,
    ‘dont_split_on_page_breaks’: False,
    ‘duplicate_links_in_toc’: False,
    ’embed_all_fonts’: False,
    ’embed_font_family’: None,
    ‘enable_heuristics’: False,
    ‘epub_flatten’: False,
    ‘epub_inline_toc’: False,
    ‘epub_toc_at_end’: False,
    ‘epub_version’: u’2′,
    ‘expand_css’: False,
    ‘extra_css’: None,
    ‘extract_to’: None,
    ‘filter_css’: u”,
    ‘fix_indents’: True,
    ‘flow_size’: 260,
    ‘font_size_mapping’: None,
    ‘format_scene_breaks’: True,
    ‘html_unwrap_factor’: 0.4,
    ‘input_encoding’: None,
    ‘input_profile’: <calibre.customize.profiles.InputProfile object at 0x0000028626EF0788>,
    ‘insert_blank_line’: False,
    ‘insert_blank_line_size’: 0.5,
    ‘insert_metadata’: False,
    ‘isbn’: None,
    ‘italicize_common_cases’: True,
    ‘keep_ligatures’: False,
    ‘kepub_clean_markup’: True,
    ‘kepub_disable_hyphenation’: False,
    ‘kepub_hyphenate’: True,
    ‘language’: None,
    ‘level1_toc’: None,
    ‘level2_toc’: None,
    ‘level3_toc’: None,
    ‘line_height’: 0.0,
    ‘linearize_tables’: False,
    ‘margin_bottom’: 5.0,
    ‘margin_left’: 5.0,
    ‘margin_right’: 5.0,
    ‘margin_top’: 5.0,
    ‘markup_chapter_headings’: True,
    ‘max_toc_links’: 50,
    ‘minimum_line_height’: 120.0,
    ‘no_chapters_in_toc’: False,
    ‘no_default_epub_cover’: False,
    ‘no_inline_navbars’: False,
    ‘no_svg_cover’: False,
    ‘output_profile’: <calibre.customize.profiles.TabletOutput object at 0x0000028626F01BC8>,
    ‘page_breaks_before’: u’/’,
    ‘prefer_metadata_cover’: False,
    ‘preserve_cover_aspect_ratio’: False,
    ‘pretty_print’: True,
    ‘pubdate’: None,
    ‘publisher’: None,
    ‘rating’: None,
    ‘read_metadata_from_opf’: u’C:\Users\catsk\AppData\Local\Temp\calibre_tqhxe8\v4dcya.opf’,
    ‘remove_fake_margins’: True,
    ‘remove_first_image’: False,
    ‘remove_paragraph_spacing’: False,
    ‘remove_paragraph_spacing_indent_size’: 1.5,
    ‘renumber_headings’: True,
    ‘replace_scene_breaks’: u”,
    ‘search_replace’: ‘[]’,
    ‘series’: None,
    ‘series_index’: None,
    ‘smarten_punctuation’: False,
    ‘sr1_replace’: None,
    ‘sr1_search’: None,
    ‘sr2_replace’: None,
    ‘sr2_search’: None,
    ‘sr3_replace’: None,
    ‘sr3_search’: None,
    ‘start_reading_at’: None,
    ‘subset_embedded_fonts’: False,
    ‘tags’: None,
    ‘timestamp’: None,
    ‘title’: None,
    ‘title_sort’: None,
    ‘toc_filter’: None,
    ‘toc_threshold’: 6,
    ‘toc_title’: None,
    ‘transform_css_rules’: ‘[]’,
    ‘unsmarten_punctuation’: False,
    ‘unwrap_lines’: True,
    ‘use_auto_toc’: False,
    ‘verbose’: 2}
    InputFormatPlugin: EPUB Input running
    on C:\Users\catsk\AppData\Local\Temp\calibre_tqhxe8\1gffyx.epub
    Python function terminated unexpectedly
    1gffyx.epub (Error Code: 1)
    Traceback (most recent call last):
    File “site.py”, line 114, in main
    File “site.py”, line 88, in run_entry_point
    File “site-packages\calibre\utils\ipc\worker.py”, line 209, in main
    File “site-packages\calibre\gui2\convert\gui_conversion.py”, line 43, in gui_convert_override
    File “site-packages\calibre\gui2\convert\gui_conversion.py”, line 28, in gui_convert
    File “site-packages\calibre\ebooks\conversion\plumber.py”, line 1110, in run
    File “site-packages\calibre\customize\conversion.py”, line 246, in call
    File “site-packages\calibre\ebooks\conversion\plugins\epub_input.py”, line 290, in convert
    calibre.ebooks.DRMError: 1gffyx.epub

          • Yes. I also tried deleting the book and redownloading from Google into ADE again (after the re-authorization) , no change

            • Well, I am stumped. The only other workaround I can think of to try is starting fresh by creating a new Windows user and installing everything there. If that doesn’t work, then I’m completely out of ideas.

                • Yes, I don’t know what the problem is with your current setup. So starting fresh is the only other thing I can suggest. I am currently having no trouble myself with Adobe DRM, ADE 2.0, calibre 4.13, DeDRM 6.7, and Windows 10.

              • I use deDRM successfully on all of my Kindle purchases, but I have never succeded in getting it to work on any of my Google Play purchases, whether free or paid for. I’ve tried for several years on numerous versions of deDRM and with the free version of Adobe Digital Editions, and even buying a full version of Adobe Creative Cloud made no difference

                • Google Play can be PDF or EPub, EPub depends on the Adobe Setup to be working – I had no problem with that in the past, but my setup has been working for a long time now (since Sony US Bookstore opened, more than 10 yrs ago), with only one password-change when Adobe had informed me they had been hacked and to change my password.
                  The suggestion to start with a new (different) user and install everything new and loading the ebooks new would have also been my suggestion, but I think with a new setup a problem might to transfer the Adobe Key-Password-combination.
                  Please let us now, if and how you got it working, may help others in the future.

                  • I haven’t tried it yet, as that seems a bit daunting to go through, and I haven’t had time to devote to it yet. Although, what about just getting a new Adobe id and redownloading the books with that?

                    • A new Adobe ID? Maybe I am wrong, but that would mean buying the books new, as far as my knowledge goes.
                      Bad idea.
                      And it would require nearly the same work for configuration as a new user, although at different places.

                      You may not trust me, but I think, setting up a new user, clean without copying setting from another location is less work, then you might think.
                      – New User
                      – Fresh downloaded installed Calibre for your OS
                      – Fresh downloaded DeDRM Plugin installed in Calibre
                      – ADE 2.0 fresh installed
                      – Ebooks downloaded again
                      – Everything configured
                      And you should be able to open the ebook and read the ebook in ADE
                      – the DeDRM works for ebooks you bought and own (no lent library / borrowed ebooks).

                      If something in your current setup is wonky or wrong, or you have old DeDRM plugins, old credentials, than a new user should work.
                      Also, the place where the needed information (login credentials) is found by the DeDRM plugin might have changed, and if any older credentials are present in you current setup, they could confuse DeDRM (although I have not seen it for Adobe, only for Kindle).

                      And if it still does not work, a import log from this setup might tell where the problem lies, as the setup is supposed to be clean.

  2. I have one current kindle book that will not deDRM while I have done hundreds of others, including several others recently, that still deDRM just fine. This one appears anomalous. Interested in looking at it? It is Priestess of Paracas (The Anlon Cully Chronicles Book 4).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.