Calibre 常用命令行工具详解之 ebook-meta

全能型电子书管理软件 Calibre 除了有可视化操作界面,还附带了一系列命令行工具(Command Line Interface),这些工具功能独立且实用。如果你熟悉命令行的使用,并且想要在处理电子书方面提高效率,抑或想要把一些和电子书处理相关的工作自动化,这些工具将会对你很有帮助。本文从 Calibre 提供的这些命令行工具中挑选了常用的 3 款,分别为:ebook-metaebook-convertcalibre-smtp,详细介绍它们如何使用,以及都适用于哪些应用场景。这些内容需要你懂一点点命令行知识。

目录

一、元数据命令:ebook-meta
1、读取电子书元数据
2、写入电子书元数据
二、格式转换命令:ebook-convert
1、基本用法
2、转换示例
3、可用选项
4、应用场景
三、邮件推送命令:calibre-smtp
1、基本用法
2、转换示例
3、可用选项
4、应用场景

本文涉及的命令行工具需要在“命令提示符”(Windows 系统)或“终端”(macOS 或 Linux 系统)中使用。如果电脑是 Windows 系统,一般在安装好 Calibre 之后就可以使用。如果电脑是 macOS 或 Linux 系统,安装 Calibre 之后需要手动把命令行工具的路径添加到系统变量中才能直接使用。

一、元数据命令:ebook-meta

书伴之前写过的一篇文章《Calibre 使用教程之批量获取电子书元数据》提到过 ebook-meta 这个命令,在那篇文章中主要使用了它的元数据读取功能去批量获取电子书元数据,其实它除了读还能写。

ebook-meta 支持大部分电子书文件元数据的读写。支持读取元数据的文件格式包括:azw, azw1, azw3, azw4, cbr, cbz, chm, docx, epub, fb2, html, htmlz, imp, lit, lrf, lrx, mobi, odt, oebzip, opf, pdb, pdf, pml, pmlz, pobi, prc, rar, rb, rtf, snb, tpz, txt, txtz, updb, zip。支持写入元数据的文件格式包括:azw, azw1, azw3, azw4, docx, epub, fb2, htmlz, lrf, mobi, pdb, pdf, prc, rtf, tpz, txtz。不同的文件格式的元数据类型不同,如果你想要向某个文件类型写入它不支持的元数据,此命令会静默忽略指定的元数据。另外还需要注意,在任何情况下,只要参数(如路径、字符)含有空格,都必须用单引号或双引号包裹住。

1、读取电子书元数据

ebook-meta sample.azw3

读取电子书元数据的指令很简单,只需在 ebook-meta 命令后加上电子书文件的路径回车即可(如果命令当前路径和电子书文件处于同一路径下,可用相对路径),运行成功后可见如下所示元数据信息:

Title               : 电子书名
Author(s)           : 某某
Publisher           : 某某出版社
Languages           : zho
Published           : 2009-07-30T16:00:00+00:00
Identifiers         : mobi-asin:XXXXXXXXXX

假设有一本电子书,无法通过文件名得知其真实信息,就可以使用此命令读取电子书的元数据,查看它的书名、作者和出版社是什么。当然也可以利用它做更多事情,比如文章《Calibre 使用教程之批量获取电子书元数据》就利用此命令获取多本电子书的元数据,用来整理电子书和判断它们是否被修改过。

网友们分享在网络上的一些电子书文件,并不能从格式上判断是否来源于亚马逊 Kindle 商店,比如亚马逊官方的电子书格式是 azw3,但是 Calibre 也能把电子书转换成 azw3 格式,这时我们可以从元数据中审查,由于亚马逊官方提供的电子书元数据中不会含有“Calibre”字样的,所以一旦发现元数据中出现“Calibre”字样,就说明这本书至少是用 Calibre 修改过。这种被修改的电子书可能和原有内容排版有差别,更甚者,电子书的正文内容可能被利用电子书资源牟利者插入了广告信息,影响阅读体验。

2、写入电子书元数据

ebook-meta --title "乔布斯传" sample.azw3

相比读取电子书元数据,写入元数据的指令多了一些可选项。如上面所示的这条指令,其含义是,把 sample.azw3 这本电子书元数据中的标题更改为“乔布斯传”。和读取指令不同的是,这条指令在 ebook-meta 和电子书文件路径之间加了一个可修改电子书标题的可选项 --title其后跟着一个参数指定了书名。当然除了修改标题之外,还有其它一些可用的可选项,比如作者、出版社、分类、标签等,想要详细了解这些可选项的用法,只需要直接输入 ebook-meta 回车就可以出现。书伴把可用的可选项罗列如下:

[可选项]

--title-t
设置标题。

--title-sort
用以进行标题排序的版本值。如果该参数未指定,同时标题字段为非空,该关键字符串将由标题字段自动生成。

--authors-a
设置作者。请用 & 字符隔开多个作者. 作者的名称按一下顺序书写 名称 姓氏。

--author-sort
用以进行作者排序的关键字符串。如果该参数未指定,同时作者字段为非空,该关键字符串将由作者字段自动生成。

--cover
使用指定文件作为封面。

--get-cover
从电子书中读取封面图片并将其保存到指定文件(注:命令后要跟带指定文件名的路径,而非路径)。

--comments-c
设置书籍简介。

--identifier
设置书籍的标识符,可以指定多次。例如:--identifier uri:http://acme.com --identifier isbn:12345 要移除一个标识符,指定空值,像 --identifier isbn:。注意对于 EPUB 文件,无法移除被标记为包标识符的标识符。

--isbn
设置书籍的 ISBN。

--publisher-p
设置书籍出版商。

--book-producer-k
设置书籍制作人。

--category
设置书籍分类。

--tags
设置书籍的标签。多个标签之间请用逗号隔开。

--series-s
设置书籍从属的系列。

--language-l
设置书籍语言。

--date-d
设定出版日期。

--index-i
设置书籍在丛书中的索引位置。

--rating-r
设置评分。评荐值为 1 到 5 之间的数字。

--to-opf
指定 OPF 文件名。元数据会被写入 OPF 文件。

--from-opf
从指定的 OPF 文件中读取元数据信息并将其写入到电子书中。如果命令行中有其它指定的元数据,将会覆盖 OPF 文件中读取的元数据。

--lrf-bookid
设置 LRF 文件的 BookID。

--help-h
显示此命令的帮助信息(注:等同直接输入 ebook-meta 命令回车)。

--version
显示程序版本号并退出。

以上这些可选项都是可以在同一条指令中使用的,次序不分先后。比如想要修改某电子书书名的同时修改作者名,可在指令中同时加入两个可选项:ebook-meta -t "书名" -a "作者名" sample.azw3

关于用 Calibre 修改电子书元数据,曾有小伙伴问过书伴,为什么通过 Calibre 的右键菜单修改电子书的元数据后不生效?这是因为在 Calibre 中修改电子书的元数据后,必须转换一下格式才能把新的元数据写入进去,而使用 ebook-meta 命令向电子书写入元数据则可省掉转换这个步骤,即刻生效。

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 5 条评论

  1. 请问有没有办法让一个系列的书显示为一项?
    一套书,合并起来单文件实在太大,分散保存又很占视野,一搜索一大堆。比如知乎那一大堆小书,单独保存能有几百个。
    如果能默认只显示为一项,双击再展开就好了。有方法实现吗?

  2. 您好,我电脑重新安装的win10系统,calibre软件安装以后启动不起来,点击用管理员身份运行也不行,请问怎么解决?