如何彻底解决 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
延伸阅读
- [每周一书]《骆驼祥子》拼尽全力依然潦草的一生
- Kindle Paperwhite 4(5.10.0.1 ~ 5.10.1.3)越狱教程
- [每周一书]《荣格自传》心理大师的毕生回忆录
- [每周一书]《写给无神论者》信仰到底有什么用
- 如何给自制 Kindle 电子书添加弹出脚注或尾注
- Kindle 原生系统和多看系统的区别和比较
- [2019.07.24] Kindle X 咪咕版固件升级至 5.7.2.7
- [每周一书] 系统化的习惯养成手册《掌控习惯》
- Sherry推荐图书(八)——旅行的书
- Kindle 通用越狱教程:适用版本小于等于 5.16.2.1.1 固件
- [每周一书]《社会性动物》美国社会心理学的圣经
- [每周一书]《为何家会伤人》带你重新认识家庭
- [每周一书]《硅谷钢铁侠》埃隆·马斯克的冒险人生
- [每周一书]《棉花帝国》一部资本主义全球史
- [每周一书] 从演化视角看《我们为什么会生病》
我把asin码删去以后就恢复正常了,供大家参考