KindleUnpack:拆解 Kindle 电子书文件的利器
在之前修复 Kindle 字典释义显示不完整的那篇文章里,曾提到 KindleUnpack 这款小软件,在文章中,主要是用它来“拆解” mobi 格式的字典文件,提取里面的相关源文件,以便进行分析、修改。最近 Kindle 伴侣 QQ 群中有小伙伴说网站还没有关于 KindleUnpack 的相关文章,所以书伴就专门撰写一篇文章来介绍一下,并同时将其放到“相关工具”中提供下载。
目录
一、什么是 KindleUnpack?有什么用?
二、KindleUnpack 软件或插件下载
三、KindleUnpack 插件版本的安装
方式 1:“从文件加载插件”安装
方式 2:“获取新的插件”安装
四、KindleUnpack 各版本的使用方法
1、Windows 界面版
2、macOS 界面版
3、Calibre 插件版
五、KindleUnpack 提取出的文件结构
六、KindleUnpack 批量处理命令
一、什么是 KindleUnpack?有什么用?
KindleUnpack (原 mobiunpack)是一款用 Python 写成的小程序,始发于电子书专业论坛 mobileread。它可以用来提取 Kindle 电子书如 mobi、azw3 等格式文件中的 HTML 内容、图像以及元数据文件,并能把这些文件按照 KindleGen 生成电子书的标准和形式放置。
对于 KF8 文件以及 Mobi 和 KF8 的混合文件[注1],它可以产生分离的 Mobi 和 KF8 文件[注2],以及包含在电子书中的原始源文件。此外,对于 KF8 文件,它还会生成一份 ePub 文件,不过,如果生成的 HTML 文件不符合 EPUB 标准,那生成的这个 ePub 文件也不会符合 EPUB 标准。对于亚马逊 .azw4 格式电子书,它可以提取出包含在该格式文件中的 PDF 文档。
KindleUnpack 对于一般人来说没有什么用途,但是对于喜欢自制电子书的小伙伴用途可就大了。比如看到一本电子书的版式或样式很漂亮,可以利用它对这本电子书进行拆解,然后分析其源文件,然后把自己喜欢的特性移植到自己的电子书项目中。是一个相当实用学习工具。
二、KindleUnpack 软件或插件下载
KindleUnpack 有两个版本,一种带界面的,另一种依附于 Calibre 插件运行的。界面版分为两种,带界面的 pyw 格式 Python 脚本和在 macOS 系统中支持拖放操作的 AppleScript 版本。
另外,作者还提供了一个可在命令行中使用的的单文件脚本[注3] mobiunpack,该脚本仅支持提取 Kindle 早期的 MOBI7 格式或更低版本的电子书源文件,无法用于 KF8 标准的电子书。
下面是 KindleUnpack 项目及其 Calibre 插件发布地址,可以在这里获取最新版本:
- KindleUnpack 项目发布地址:Github 发布页面
- Calibre 插件发布地址:Github 发布页面
下面是 KindleUnpack 各个版本的下载链接,请根据自己所使用的系统选择下载:
- 带界面的 pyw 格式 Python 脚本: KindleUnpack-081.zip | 百度网盘〈提取码:
qb7i
〉 - 支持拖放操作的 Mac 版本(64 位):KindleUnpack 64 v0.81.app.zip | 百度网盘〈提取码:
b35g
〉 - 支持拖放操作的 Mac 版本:KindleUnpack v0.81.app.zip | 百度网盘〈提取码:
qpza
〉 - 仅支持 mobi 文件的单文件脚本:mobiunpack 32.py.zip | 百度网盘〈提取码:
rhbz
〉 - 依附于 Calibre 运行的插件版本:kindle_unpack_v0831_plugin.zip | 百度网盘〈提取码:
1nxt
〉
需要注意,界面版 KindleUnpack 需要你的系统预先安装 Python。一般情况下 Mac 或 Linux 系统已经集成了所需要的 Python 环境,不需要额外进行安装。但是 Windows 则需要额外安装 Python 环境,作者强烈建议 Windows 用户安装 ActiveState 的 Active Python 2.7.x 版本,它可以正确安装和配置必要的部件,而 Python 官方版本可能不能在 Windows 系统中正确的处理这些事情。
三、KindleUnpack 插件版本的安装
如果你习惯喜用 Calibre 管理电子书,可以直接把 KindleUnpack 集成到 Calibre 中,这样就不需要每次都运行起带界面的程序了。在 Calibre 中安装 KindleUnpack 插件有两种方式:一种是直接加载下载到的插件文件,另一种就是直接在插件设置中获取该插件直接安装。下面分别作说明:
方式 1:“从文件加载插件”安装
打开 Calibre,点击“首选项”的“高级选项”下的【插件】,然后点击【从文件加载插件】按钮,在弹出的窗口中选择下载到的压缩包,点击【是】、【确定】,重启 Calibre 完成安装。
方式 2:“获取新的插件”安装
打开 Calibre,点击“首选项”的“高级选项”下的【插件】,然后点击【获取新的插件】,在弹出的窗口中的“Filter by name(按名称过滤)”一栏输入“KindleUnpack”,选中它,点击右下角的【安装】按钮安装。安装完毕后点击【现在重启 Calibre】按钮,重启后即可成功安装。
四、KindleUnpack 各版本的使用方法
KindleUnpack 的使用方法十分简单,下面对界面版和插件版分别简要说明一下步骤,以供参考。
1、Windows 界面版
- 运行文件名为 KindleUnpack.pyw 的 Python 脚本,打开工作界面;
- 点击“Unencrypted Kindle eBook input file”后的【browse…】按钮选择一本电子书;
- 点击“Output Directory”后的【browse…】按钮选择生成文件的输出目录;
- 其他选项一般可保持默认,点击【start】按钮,稍等片刻即可完成拆解。
2、macOS 界面版
解压缩下载到的 zip 压缩包,可以看到一个 APP 文件,直接把电子书拖放到此 APP 图标上即可。
3、Calibre 插件版
- 把电子书文件拖放到 Calibre 中;
- 选中电子书,点击软件右上方操控区域的那个 KindleUnpack(黄色的三角按钮图标),在弹出的菜单中将鼠标悬浮到带有绿色小锁的菜单,然后点击弹出的菜单“Unpack MOBI”(如果是 AZW3 文件会显示“Unpack AZW3”);
- 在弹出的窗口中选择指定输出的文件夹,点击【Open】按钮,稍等片刻即可完成拆解。
注意,KindleUnpack 只能用于无 DRM 保护的 Kindle 电子书。生成的时间根据电子书文件大小不同,处理时间长短也不同。
五、KindleUnpack 提取出的文件结构
对于 KF8 标准的如 azw3 格式的电子书,提取出来的原始文件结构一般如下所示:
├──── HDImages
├──── 高清图片文件(如果有的话)
├──── mobi7
├──── 所有图片(包括封面)
├──── mobi8
├──── META-INF
├──── container.xml
├──── OEBPS
├──── Fonts
├──── 字体文件(如果有的话)
├──── Images
├──── 所有图片(包括封面)
├──── Styles
├──── 所有 CSS 样式表文件
├──── Text
├──── 所有 HTML 格式的电子书内容
├──── content.opf
├──── toc.ncx
├──── XXXXXX.epub
├──── mimetype
对于 mobi 格式的电子书,提取出来的原始文件结构如下所示:
├──── HDImages
├──── High definition images if exist ...
├──── mobi7
├──── Images
├──── 所有图片(包括封面)
├──── book.html
├──── content.opf
├──── toc.ncx
六、KindleUnpack 批量处理命令
首先确保你的操作系统安装了 Python,并且已经下载好了 KindleUnpack 压缩包。
这里假设 KindleUnpack 文件夹(比如这里解压后得到的是 KindleUnpack-083)和存放电子书的名为 ebooks 的文件夹都存放在桌面上,比如 C:\Users\YOURNAME\Desktop(注意要将 YOURNANE 更改成你实际的系统用户名)。
如果你用的是 Windows 系统,打开 PowerShell,运行以下命令:
Set-Location C:\Users\YOURNAME\Desktop; Get-ChildItem ebooks | % { python3 KindleUnpack-083\lib\kindleunpack.py $_.FullName }
如果你用的是 macOS 系统,打开终端,运行以下命令:
cd /Users/YOURNAME/Desktop; for file in ebooks/*; do python3 KindleUnpack-083\lib\kindleunpack.py "$file"; done
参考资料:
- KindleUnpack (MobiUnpack): Extracts text, images and metadata from Kindle/Mobi files
- [GUI Plugin] KindleUnpack – The Plugin
- [注1] KF8 是亚马逊官方制定的新电子书标准,能很好地支持 CSS3 的很多属性,以获得更好的排版样式。我们平常经常见到的 azw3 文件就是标准的 KF8 标准电子书。因为老的 Kindle 设备不支持新标准,所以亚马逊会将老式的 mobi 格式混合在 azw3 文件内,以便兼容老的 Kindle 设备。
- [注2] 这里的 mobi 文件和 KF8 文件实际上说的是一个标准,实际上分离出来文件,mobi 对应的就是 mobi7,KF8 对应的就是 mobi8。
- [注3] KindleUnpack 0.61 就是由 mobiunpack 0.32 变化而来的。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/187.html
延伸阅读
- 最后一本书:摄影师镜头下的纽约读书人
- 钱穆:我读书所获得的人生教训
- [每周一书]《硅谷钢铁侠》埃隆·马斯克的冒险人生
- [每周一书]《毫无意义的工作》现代工作的精神暴力
- 电子书格式 MOBI、AZW3、KFX、EPUB 有什么区别
- [每周一书]《那不勒斯四部曲》镜子和自恋的暴政
- [2019.02.15] Kindle 阅读器固件升级至 5.10.3
- 如何更改阿拉伯语、维吾尔语电子书的文字方向
- 纸质书与电子书:哪一种在保护森林和碳减排方面更出色
- [每周一书]《幸福之路》献给普通人的幸福之方
- Fix Kindle Ebook Cover:电子书封面缩略图修复工具
- [2024.09.13] Kindle Oasis 3 固件升级至 5.16.21.0.2
- Sherry推荐图书(二十)—— 有趣的书
- [每周一书]《写给大家看的设计书》
- [每周一书]《暮色将尽》与其害怕老去,不如面对衰老
请问战争长,Kindleunpack插件安装完后,在caliber软件操作界面区看不到黄色图标,怎么办呀
如果确认安装了,可能是界面上的图标没有显示全,可以点击主菜单栏最右侧的 >> 图标显示被隐藏的图标。
窗口最大化了,又重新安装了个旧版本的Calibre 3.48,还是不显示 KindleUnpack(黄色的三角按钮图标),是不这个插件让亚马逊官方屏蔽掉了
active python 2.7官方网站已经无法下载了
可以下载,只是需要先注册一个账户。
站长你有active python 2.7的压缩包吗,分享给大家,我安装的最新版本active python 3.9,总是解包失败
ActivePython 2.7 下载链接:百度网盘〈提取码 : 5e6h〉
下载完之后解压了那个压缩包,安装了msi那个文件,然后双击了KindleUnpack.pyw这个文件没反应,是还需要装什么么?
站长您好,有一点没有写清楚的。必须要安装active python 2.7版本才能够正常解包。安装其他版本会提示Error: Unpacking Failed
谢谢提醒,已经添加相关内容。
使用这个KindleUnpack-080软件,已安装了python,解包发生错误
Error: Unpacking Failed
“解包”是指用 KindleUnpack 拆解电子书的提示,还是解压 KindleUnpack 的提示?
和你的情况一样,拆解azw3文件时发生error
安装active python2.7版本的,其他的不行
我的电脑安装active python2.7版本以后, KindleUnpack 直接打不开了
你好。请问如何把已经做成的字典删去每个词条某区域无用的解释。
已经做成的字典无法直接进行编辑,你需要重新将其转换成源码,然后编辑修改字典的相关词条,最后再把源代码重新生成字典文件。关于字典源文件相关资料,可参考《自制 Kindle 字典简明教程(进阶篇)》这篇文章。
请教下站长,将azw3拖拽到app图标上,为何就闪动了下,什么文件都没生成呢?我在OS环境下。先行谢过!
AZW3 拖放到 APP 后会在 AZW3 所在目录生成源文件。有没有测试其它文件呢,都是这种情况吗?
是呢,试了好几个文档都是如此,也无错误信息框跳出
我也是同样的情况,图标只是闪了一点,点了「运行」,就没有任何后续了,也没有生成源文件
您好,我刚刚用kindle comic creator 做好一本50M大的mobi,在用“带界面的 pyw 格式 Python 脚本”解压时界面只是显示一行“Error: Unpacking Failed”,并无其他信息,请问怎么解决呢?
这个文件用 Kindle 能正常阅读吗?
我也遇到了这个问题,原azw3文件能够正常阅读,用KindleUnpack转化成 EPUB格式时显示“Error: Unpacking Failed”
AZW3 有 DRM 保护吗?
不知道如何看有没有保护,不过Calibre成功转换成了mobi格式
请问有dmr保护该如何转化?
有 DRM 保护的电子书无法转换格式。如果是你自己购买的电子书,需要用 DrDRM 去除保护,如果是从其他渠道获取的电子书,就无法使用了。
谢谢解答,确实没有序列码无法deDRM,听说epubee好像可行,回头再去研究一下
去请问站长,kindle电子书怎么去除DRM保护
推荐使用 DeDRM。
今天突然KindleUnpack插件从界面消失了,无论用文件安装,还是直接在Calibre下载,安装之后出现KindleUnpack插件三角黄色图标出现1秒钟之后一闪,就从主界面上就没了
我估计你是看不到回答了,不过困扰了我半天的问题我必须解答一下,那就是运行软件的时候要把kindle拔下来。。。。。。
你好,通过deDRM 将azw3破解之后得到的源文件通过kindleunpack,kindlegen转换为mobi之后书中的图片全部都显示不出来,请问这是什么原因导致的呢,如何解决。感谢您们的帮助。
AZW3 文件是直接从 Kindle 中拷贝出来的吗?如果是的话需要注意,Kindle 在把电子书从云端同步到设备中后,会把图片分离开,所以从 Kindle 拷贝出来的 AZW3 本身就不再含有图片。解决此问题的方式的方法是前往亚马逊账户的“我的内容和设备”下载完整的电子书文件。
请问用kindleunpack解压出来以后如何才能再打包回去哪?
可以使用亚马逊官方提供的命令行工具 KindleGen 重新把源文件转换成 MOBI 格式。
注意一下,Windows独立版的打开目录和输出目录(反正是涉及到目录的)都要英文,含有中文目录可能导致KindleUnpack.pyw打不开以及Output Failed
谢谢提醒,怪不得总是拆解失败。
站长你好,我想拆分我的mobi电子书,因为我的一本书实际上是由26本书合制在一起的,但是在读时就无法选取文字生成笔记了,我应该怎么弄?
站长,您好,
输入:[2_13]The Oxford Advanced Learners Dictionary 8th Ed
补充一下错误信息:
calibre, version 2.54.0
错误: KindleUnpack – The Plugin v0.81.2:
Traceback (most recent call last):
File “calibre_plugins.kindleunpack_plugin.action”, line 267, in unpack_ebook
File “calibre_plugins.kindleunpack_plugin.mobi_stuff”, line 123, in unpackMOBI
File “calibre_plugins.kindleunpack_plugin.kindleunpack.kindleunpack”, line 921, in unpackBook
File “calibre_plugins.kindleunpack_plugin.kindleunpack.kindleunpack”, line 842, in process_all_mobi_headers
File “calibre_plugins.kindleunpack_plugin.kindleunpack.kindleunpack”, line 605, in processMobi7
File “calibre_plugins.kindleunpack_plugin.kindleunpack.mobi_header”, line 794, in getRawML
MemoryError
谢谢!
站长 我安装了python 点击 KindleUnpack.pyw 但是没有出现工作界面,还有工作界面是什么样的 ,能发一个图片版的教程吗?
是不是打开方式不对?注意 pyw 的打开方式应该是 pythonw。如果关联的格式不对,可以使用邮件的“打开方式”重新选择。文内已补上软件界面截图。
站长您好,
我尝试使用KindleUnpack来解开以下文件:
[2_13]The Oxford Advanced Learners Dictionary 8th Ed.mobi
COBUILD Advanced Learner’s Dict – Collins Cobuild.mobi
calibre 插件和python GUI 程序都试过了,但是都失败了
请问有空的时候能测试看看么?
谢谢!
站长您好!在使用Oxford Advanced Learner’s Dictionary 7th – Fixed by kindlefere.com v1.0时,好像有些问题,具体如下:我在搜索neutral一词时,结果列表中有,但是点击没有反应,而且这一整面的词都没反应,翻到下一页再翻回来,这页就没了,退出后再打开就死机了。。。(只有上面时间的一栏,其余空白)
望解答。
Jimmy 您好。我是用 KPW2 用同一本字典查询这个词并未出现死机的问题。根据您的描述,推测可能并不是因为字典引起的。您可以尝试重启一下 Kindle 然后再查询 neutral 这个词,看是否还会死机,如果不会,这可能是 Kindle 因为某种原因死机导致的。
可以利用它对这本电子书进行超姐
站长,有错字
Ming. 您好。非常感谢您的细心指正,错字已更改。:)