如何彻底解决 Kindle 电子书封面显示为“暂无图片”的问题
一段时间以来,亚马逊为 Kindle 添加了一个给小伙伴们添堵的功能,那就是,把通过 USB 拷贝到 Kindle 的电子书封面/缩略图显示成了带有“暂无图片”字样的图片占位符。
▲ 左侧为刚放入电子书时的封面效果,右侧为联网后被自动替换的封面效果
以往仅显示带电子书名的占位符图片,虽然没有封面那样美观,但至少能让人分辨是哪一本书,而新占位图片的意图简直是故意恶心用户。问题是,电子书被替换成“暂无图片”怎么办?
目录
本文尝试从根源上对传输到 Kindle 的电子书封面被替换成“暂无图片”的问题进行分析,并给出了两种解决方案。你可以根据问题的分析手动进行修复,也可以通过书伴提供软件自动修复。
一、问题分析
Kindle 电子书有多种类型,它们被标记在电子书文件的 EXTH 信息头[1]中,即类型为 501
名为 CDE Type 的记录。该记录常见的值有 PDOC
(代表个人文档)、EBOK
(代表电子书)及 EBSP
(代表电子书样章)。你可以使用工具(如 Mobi Metadata Editor)查看电子书文件 EXTH 信息头,通过这个记录来确认某本电子书是属于哪种类型。
通常,我们通过 KindleGen 转换成 MOBI 格式的电子书文件,以及邮箱推送到 Kindle 个人文档服务的文件会被标记为 PDOC
,从 Kindle 电子书商店购买的电子书、或通过 Calibre 转换的 AZW3 电子书格式会被标记为 EBOK
,而向 Kindle 发送的电子书样章会被标记为 EBSP
。
对于不同的电子书类型,Kindle 可能会采用不同的处理机制,比如本文讨论的封面被替换成“暂无图片”图片占位符的问题,就是针对标记为 EBOK
的电子书文件的。当这种类型的电子书放入 Kindle 设备中,一旦联网,Kindle 在确认是 EBOK
类型的电子书文件后,就会尝试读取另一个类型为 113(或 504)名为 ASIN[2] 的记录,一旦发现该记录的值与亚马逊商品的唯一识别码不匹配,该电子书的封面就会被替换成带有“暂无图片”字样的图片占位符。
原因找到了,解决方案出来了。一种是被动修复,先让亚马逊替换封面,然后再修复这些被替换的封面。还有一种是主动防御,可以直接删掉电子书的 EBOK
记录,让 Kindle 忽略封面检查,使其显示带标题的图片占位符,也可以将 ASIN 更改成任一真实存在于 Kindle 商店的 ASIN,以达到欺骗 Kindle 使其抓取与该 ASIN 相对应电子书的封面图片的目的。
二、被动修复
这种解决方式是等待 Kindle 将拷贝进去的电子书封面全部替换成“暂无图片”后,再通过找到这些图片所存放的位置,将其还原成电子书原有的封面图片。修复效果如下所示。
1、手动修复被替换的封面图片
当 Kindle 成功为电子书从亚马逊服务器抓取封面图片后,会存放到 Kindle 根目录下的 system/thumbnails 文件夹中,封面图片有着类似下面这样的文件名:
thumbnail_B00A72WGE4_EBOK_portrait.jpg
从中可以看出,该文件名除了 .jpg 扩展名外,是由三个下划线 _
连起来的四个部分,分别是 thumbnail
、B00A72WGE4
、EBOK
以及 portrait
,这四部分除了 ASIN 外都是相同的,Kindle 也是通过这个 ASIN 为相应的电子书显示该封面的。如果 Kindle 没有在亚马逊服务器找到这个 ASIN,就会将此封面图片文件替换成如下所示的封面图片:
由于 Kindle 只会为新拷贝的电子书从亚马逊服务器拉取一次封面图片,因此你可以在电子书的封面全都变成“暂无图片”后,再重新恢复与该电子书的 ASIN 相对应的封面图片。
具体方法为,先用 Mobi Metadata Editor 通过检查 113(或 504)记录类型,得到电子书的 ASIN,然后在 Kindle 根目录的 system/thumbnails 文件夹中找到含有此 ASIN 的图片文件,接着用 Calibre 等工具将电子书的封面提取出来,最后将提取出来的封面图片文件重命名成那个带 ASIN 图片的文件名,并对其进行替换,就可以恢复此电子书的封面了。
▲ 左侧为联网后封面被自动替换的效果,右侧为电子书封面被修复后的效果
2、自动修复被替换的封面图片
书伴为小伙伴们编写了一个小软件,将上面提到的封面还原过程自动化。该软件会在封面图片存放路径检查小于 2KB 的封面图片,然后从与其对应的电子书中提取封面图片进行还原。
如果你的 Kindle 已经越狱,还可以下载使用该软件的插件版。插件版除了能够修复显示暂无图片的电子书封面,还能修复推送 EPUB 格式电子书不显示封面的问题。
软件的下载及使用方法请参考《Fix Kindle Ebook Cover:Kindle 电子书封面修复工具》。
三、主动防御
如果你感觉上面那种封面修复方式过于被动,也可以采用下面介绍的两种主动修复方式。主要是通过修改电子书文件 EXTH 信息头中 501
、113
、504
这三个记录类型来实现。
这里要用到名为 Mobi Metadata Editor 的小工具,其具体用法可参考《如何用 Mobi Metadata Editor 修改 Kindle 电子书元数据》这篇文章。注意,该工具无法选择扩展名为 .azw3 的电子书文件,你可以先将其扩展名更改成 .mobi,修改后再改回 .azw3 即可。
1、为电子书文件指定真实 ASIN
如果你想要让 Kindle 为电子书获取正确的封面图片,需要保持 501
类型记录的值为 EBOK
不变,仅更改电子书文件的 ASIN
记录,将其值更改成真实存在任意区域亚马逊 Kindle 电子书商店的电子书的 ASIN,这样 Kindle 就会将商店中电子书的封面拉取下来给本地的电子书使用。
- 中亚 Kindle 电子书商店:https://www.amazon.cn/kindlestore
- 美亚 Kindle 电子书商店:https://www.amazon.com/kindlestore
注意,电子书文件的 ASIN
记录可能同时存在于 113
和 504
这两个记录类型中,两者至少保留一个才能生效,如果对两者同时存在,Kindle 会优先使用 504
的值。
2、禁止 Kindle 检查电子书封面
如果你不在意电子书是否显示封面图片,可以接受仅带图书标题的图片占位符,则可以直接删掉 501
记录类型。这做法都可以禁止让 Kindle 为该电子书检查封面图片。
3、让 Kindle 从电子书读取封面
对于标记为个人文档的 MOBI 格式电子书,Kindle 会直接从电子书中读取封面,而不会去亚马逊服务器上对比 ASIN。因此可以先将电子书文件的扩展名从 .azw3 更改为 .mobi(如果原来不是此格式的话),然后将电子书的 501
记录类型值从 EBOK
改为 PDOC
。
- [1] MobileRead 的 WiKi 页面有关 MOBI 格式的介绍 via
- [2] ASIN(Amazon Standard Identification Number)是亚马逊商品的唯一识别码,由十位字符字母数字组成。via
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/986.html
延伸阅读
- 古人读书观:不求甚解到底好不好?
- [2021.08.17] Kindle 阅读器固件升级至 5.13.7
- [2024.04.03] Kindle 阅读器固件升级至 5.16.8
- 不只是 Kindle,盘点 E-Ink 技术应用方向
- KindleUnpack:拆解 Kindle 电子书文件的利器
- 微软已解决 Kindle 连接电脑出现的蓝屏问题
- [每周一书]《人类群星闪耀时》的14个历史时刻
- 因 Amazon 阻挠,Kindle 越狱发布无限期延迟
- 朱光潜:读书最重要的是选得精读得彻底
- “简史”系列电子书(上):人类、宇宙、信息……
- [每周一书]《一网打尽》贝佐斯与亚马逊时代
- [每周一书] 读《眼科病与维生素》获取科学健康常识
- 亚马逊入门版 Kindle 升级为全新青春版新增阅读灯
- 如何将 AZW3 格式无损转换为 MOBI 格式并保持原有排版
- Kindle 漫画制作软件 ChainLP 简明教程
第七代,今天刚更新的,USB传了两本无封面的书,图书馆内显示暂无图片。试用了Fix Kindle Ebook Cover的MAC版本,显示了All jobs done。但是图书馆内的封面依旧是“暂无图片”。Fix Cover和Clean Cover都用了。请问还有别的方法吗?
可能是 Kindle 的显示没刷新?打开一本书再退回到图书馆试试看。
如果还是不行,看看 system/thumbnails 文件夹中是否还有没修复成功的带“暂无图片”字样的封面?
只有两本书的时候,Fix了五六次,暂无图片的效果都在。后来又一口气传了十本进去,再次Fix,成功了一半。又Fix了一次,结果全都搞定了。不知道原理,但是非常感谢,看起来舒服多了。
MAC用不了,用Python打开 fix_kindle_ebook_cover_gui.pyw 没有出现说的那个程序,而是两个框框里面全是我看不懂的东西,能给小白出一个Mac版的详细教程吗?
新版本为 macOS(版本需大于等于 10.15)添加了单文件版,你可以尝试一下。
是我太笨了吗o(╥﹏╥)o全都下载了还是找不到,请问怎么联系你们呢?
这是 macOS 单文件版下载链接:百度网盘〈提取码 : qb77〉
这次下载的可以用,大部分封面都修复了,太感谢了!
第二种方法,完美解决!来自强迫症患者的由衷感谢!
第二种方法在中亚彻底关闭以后还能用吗?要求只要和以前一样(没封面也没事,看清书名和作者)并且最好不要导入一本书就操作一遍
中亚彻底关闭 Kindle 的内容服务后,除了指定中亚 ASIN 不能用外都可以用。
之前那个用Calibre插回去修复的方法呢
如果电子书是通过 Calibre 传输的,其提供的自动修复功能应该还是可用的。具体可参考《如何解决 Calibre 通过 USB 导入电子书后封面消失的问题》这篇文章。
完美解决
为什么我下载完后,打开压缩包,里面有各种各样的文件,不知道怎么安装
不需要安装,只要你安装了 Python,双击 fix_kindle_ebook_cover_gui.pyw 即可打开软件。
试了一下,老方法(传书时开飞行)仍然可行,不过只适用于数据线导书
有什么办法可以让推送到亚马逊个人文档的epub文件显示时让kindle直接读取文件的封面吗?
有,将推送后下载的文件扩展名 .azw3 更改为 .mobi 即可。
我下载个人文档后,连上电脑将.azw3改为mobi,然后再图书馆界面确实可以显示封面,但是点击打开提示“内容无法打开”。
书是用sigil修改过的epub推送到美亚的。
确实存在这个问题,改扩展名 Kindle 就拒绝读取文件了,没找到原因。
用第二种方法,一分钟修复,我电脑自带python的,感谢感谢
我发现了一个很简单而且以后绝大多用户都会用到的解决方法:切到美亚账户。早点把书备份了切过去吧😁
🤔原来如此,我也是最近切换成美亚账户,有几次联网之后也注意到封面没被破坏(同样的一本书还在中亚账户时每次联网都会被改)我还以为是因为联网时间比较短。
美亚账户其实也会被替换成带有“No image available”字样的图片占位符,但是奇怪的是,不会像中亚账户那样显示出来。不过都可以用文中提供的小工具修复。
谢谢说明,以防万一那我还是安装Python好了。
真不错,实测可以在直接kindle上运行,不用依赖电脑。终于可以一键修封面了。
“kindle上运行”是指做成kual插件了吗
嗯,添加kual菜单本身很容易。是越狱和安装Python3比较麻烦
已将此工具做成了越狱插件,可通过文中新增的链接下载试用。
好的谢谢谢谢
请问下载了之后没法打开程序的文件怎么解决?
不好意思,没看见需要下载Python,下载完就可以用了,效果不错
您好!Github 发布页面一直打不开怎么办?
现在添加了百度网盘链接。
已经弄成功了,非常感谢!
现在,我用calibre把 mobi转换azw3后发送到kindle里后有封面显示,不知道啥原因,以前是会消失的😂
有没有法子救一救仅带图书标题的图书,用收藏夹模式的时候,点开一本书仿佛在开盲盒,太难受了T T
可以用calibre里给这类没封面的书加一个默认封面,封面上会带图书标题,可以自己调整喜欢的默认封面形式
真的吗?我去试一试,谢谢你呀~
我现在都是列表模式了hhh完全不怕
哈哈哈哈,俺也一样QAQ