前言
本文记录了使用 Send to Kindle 时遇到 E999 报错后, 通过编辑书籍元数据解决问题的一种思路, 供遇到类似情况的朋友参考.
本文使用的书籍管理工具为 calibre.
问题重述
在使用网页版 Send to Kindle 服务将轻小说上传到 Kindle图书馆时, 个别书籍上传失败并出现错误提示.
本文以如图所示的书籍 [暁なつめ][为美好的世界献上爆焰!][01][惠惠的回合] 为例.

其网页端上传后的报错输出如下图所示.

并且在这之后, 收到了如下图所示的邮件提示.

解决思路
先看看 Amazon 官方对 E999 给出的(约等于没有的)解释:

于是我们自己尝试寻找方法解决该问题.
格式转换
首先尝试了网上流传的通用方法: 将原始 EPUB 文件转换为 MOBI 格式, 再转回 EPUB, 然后上传新生成的 EPUB 文件.

转换为 MOBI 后, 再转回 EPUB. 此操作会将转换后的 EPUB 作为主格式存储, 原 EPUB 则以 ORIGINAL_EPUB 格式保留. ORIGINAL_EPUB 本质仍是 EPUB 文件, 在元数据编辑页右键即可用来恢复原始格式.

转换完成后, 将 EPUB 文件保存到本地, 再次通过 Send to Kindle 上传.

网络上有相当一部分 E999 问题通过此方法得以解决. 遗憾的是, 本文示例所用的这本书并未因此成功.
修改语言元数据
于是再次到网上搜索, 偶然看到有说法提到语言元数据可能导致 E999, 便尝试对这本书的语言元数据进行查验和修改.

可以看到, 该书籍的语言被标记为"埃克丘克语", 而非应有的"中文; 汉语; 华语". 这可能是由于书籍在导入书库或下载时, 其内部元数据(OPF 文件中的 <dc:language> 标签)缺失或使用了不规范的语言代码, 导致 calibre 的自动语言检测功能将其误归类为某种不常见语言.
考虑到不常见的语言元数据可能是上传失败的原因, 我们尝试将其清空, 即删去原有的语言标签.

保存修改并导出 EPUB 文件, 再次通过 Send to Kindle(网页端或 PC 客户端均可)上传. 这次上传成功, 书籍顺利出现在 Kindle 书库中.

问题至此解决.
总结
遇到 Send to Kindle 报错 E999 时, 通常先尝试对文件进行格式转换(EPUB → MOBI → EPUB), 这能解决大部分问题. 若仍无效, 不妨检查书籍的语言元数据——不常见或错误设置的语言标签同样可能被 Amazon 的校验机制拦截. 在 calibre 中将语言清空或改为正确值后再导出上传, 即可通过校验.
此外, 封面图片格式、内部 CSS 样式、文件过大等因素也可能触发 E999 或其他错误. 如果以上方法均不奏效, 可以沿着这些方向继续排查.
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
评论