如何管理 1400 本电子书?

Zotero 是个好东西

这并不是一个最近才遇到的问题,但我确实是最近才想出来解决方案。

我盘了下,我大概有几百本电子书,其中绝大多数以扫描 PDF 为主,另外还有几百本杂志,加起来总共有 1400 多本,合 70GB 左右。之前一直疏于管理,让它们散落在我的移动硬盘、NAS、家里和公司的电脑中。最近我开始盘这些资料,想把它们整理在一起,方便检索和翻阅。

这就肯定要上云了。

70GB,说大不大,对于移动硬盘和 U 盘这类东西来讲不值一提;但说小也不小,很少有云服务能提供如此巨大的存储空间。此外还有电子书标签、分类、阅读等等。这都不是简单的事。

至于从哪搞出来的这么多电子书,可以查看我之前总结的这篇文档

最终的解决方案是「Zotero+NAS+百度网盘」。

目录 Menu

具体需求

说一下我的详细的需求,方便大家理解我这一套归档方案的逻辑。不想看的可以直接跳到下面解决方案一节。

  1. 尽可能方便的 OCR 和翻译

前面讲过,我的书籍以扫描 PDF 为主,阅读时写写画画、标注横线啥的会比较费劲。如果能有便捷的 OCR 会很方便我从书中复制文本。

注意,我说的这种 OCR 并不是像 iText 那种截图识别文字的东西,那太麻烦了!我是希望能够像 Apple Silicon Mac 的 Preview.app 那种,在阅读时直接就划词标注的 OCR;或者就像 FineReader 那样直接 OCR 全文,并且自动归档 OCR 后的文件。

需要翻译是因为我时不时也需要看一些英文电子书和论文。过去是直接启用彩云小译的文档翻译,虽然能一次把整份文档翻译了,但经常会出现翻译错误、格式错误等等问题,也比较麻烦,事后还需要归档这份翻译后的文档。如果能像网页那样划词翻译,读一些简单的文献就不用动用彩云小译了。

  1. 版本管理

因为上面彩云小译的缘故,我有时会需要同时归档一份文档的原件和翻译件,有些电子书太长、太大,用彩云小译翻译的时候,可能要拆成三四份,后面归档时,我希望能够在同一个条目下同时看到这些文件。

我既不是文件夹分类,也不是 tag、标签,它有点类似于版本管理,可以在一个条目或者下拉菜单中看到各种「版本」。如果你还是没太明白,可以跳转到下面「建立父条目」一节提前预习。

  1. 标签和分类

这个应该很好理解,我需要一本书能够在多个标签下出现,有些类似于书单。单纯靠文件夹分类肯定是满足不了我的。

  1. 便于检索和查阅

我希望无论是我用 Mac、Windows 还是手机,都能够非常便捷地获取到书籍列表,并且确定需要某一本书后,能够比较方便地将它下载到本地,而我又不希望随身带着几十 GB 的电子书文件,毕竟其中绝大多数内容我可能几年都不翻一次。

解决方案

经过半个月的思考、几天的测试之后,我最终选择了「Zotero+NAS+百度网盘」这套方案,Zotero 本身的云服务负责同步书籍和文档的列表,家中的 NAS 负责在本地存储书籍文件,百度网盘负责在各种设备之间同步和远程访问。(如果你能理解前面这句加粗的文字,后面就不用看了,可以直接上手干。)

Zotero 是一个免费的论文管理工具,它家也提供云同步服务,免费的有流量和存储空间限制,花钱可以提升,最贵的一档好像是每年一百多刀,无限空间和流量,说实话还是有点贵的。

不过,非常体贴的是,它家的云同步可以只同步列表而不同步文件。列表就是一堆快捷方式,如果只同步列表,那免费的云服务足矣,根本用不到它家的付费服务。

百度网盘是我少数续费时眼睛都不眨一下的订阅服务,我心甘情愿给它付费。钱也不是白付的,该用起来就是要用起来,而且大部分时候不掉链子。

部署 Zotero 和 NAS

NAS 部署比较简单,我用的是群晖,需要提前安装好 Cloud Sync 这个套件,它可以自动同步网盘和 NAS 中的指定文件夹,既可以双向同步,也可以单向上传或下载。而且它是群晖自己开发的一个套件,安全性相对来说也比较有保障。

提前在 NAS 和百度网盘里新建好文件夹,并且在 Cloud Sync 设置好监控和同步,具体的操作可以看这里。我建议顺手建一个空文件夹,用于储存新下载、但还未归档到 Zotero 的那些电子书。

Zotero 部署相对来说比较复杂。你需要注册一个 Zotero 帐号,在电脑上安装好 Zotero 后,可以顺手安装「茉莉花」插件,这个主要是方便管理知网文档的,如果没有需求也可以不装

在「首选项」-「同步」标签下,登录帐号。注意只开启数据同步即可,下方的「文件同步」俩钩都不要打。

Zotero 文件同步设置
Zotero 文件同步设置

之后,在「高级」-「文件和文件夹」标签下,修改一下本地数据存储位置。Zotero 归档文件时,会把原始文档复制一份到自己的目录下,久而久之这个文档库就会异常庞大。

因为我是把这些东西统统都放到了 NAS 上,对存储空间不是很敏感。即使电子书多复制一份也不是啥大问题。如果你电脑本机的存储空间比较吃紧,可以使用这篇文章里的方法,搭配「ZotFile」插件管理文档库。

ZotFile 是个很好用的插件,用 Zotero 的基本上都会装,我也装了,不过暂时未启用。

看到这里,你可能会问,为什么不用百度网盘直接同步一份 Zotero 自己的文档库呢?

如果你存储空间吃紧,当然这么干也可以。不过这个方法有两个问题。

第一个是在百度网盘里检索会比较费劲,Zotero 在归档这些文件时,会随机生成一串字符作为文件夹名称。每个条目都会有这么一个文件夹,这样后面检索时几乎只能靠百度网盘本身的搜索功能,没法一下子看一列电子书。如果你临时用一下别人的电脑,在百度网盘里寻找一本电子书可能会十分费劲,还得掏出手机,打开 Zotero 来翻阅。考虑到目前 Zotero 只有 iPhone 和 iPad 版,没有 Android 版,这个方案可能并没有那么通用。

第二个就是 Zotero 可能会给你搜集来的电子书自动改名。

这并不是 Zotero 的 bug,如果你是一位科研工作者,那 Zotero 的这个功能简直方便到爆炸,我自己查资料、翻论文的时候,尤其是面对从 Sci-Hub 上下载的论文,第一步就是先扔到 Zotero 里重命名一下。

但是,如果你收集的电子书或者其他一些文档,metadata 并没有那么齐全,注意一定要先关闭 Zotero 上所有的「重命名」服务,Zotero 本身,以及前面说的茉莉花、ZotFile 插件都有类似的功能,在书籍文档 metadata 不全的情况下,它们会把中文文件名换「好心」修改成拼音……

我也是因为这个,在归档书籍时先把 ZotFile 停用了,并且关掉了 Zotero 和茉莉花的重命名文档服务。

Zotero 本身的在「常规」-「文件处理」里,我把「自动检索 PDF 的元数据」和「使用父类元素数据自动重命名附件文件」关了。

Zotero 关闭文件重命名功能
Zotero 关闭文件重命名功能

茉莉花在「茉莉花」-「中文插件设置」标签下,取消掉「添加中文 PDF/CAJ 时自动从知网抓取题录」。

茉莉花插件关闭文件重命名功能
茉莉花关闭文件重命名功能

我不知道我是不是关多了,但确实关掉这些后 Zotero 就不会「好心」帮我改文件名了。其实这些功能还是挺有用的,我是在家里的电脑管理电子书,基本上不需要管理论文,所以关也就关了。公司的电脑上,这些功能都是打开的。

归档书籍文件

弄好上面这些之后,就可以正式开始倒腾书籍文件了。

因为我不想把写稿时要看的论文,和整理的电子书混在一起放,所以我在 Zotero 里新建了一个私有 Group,之后也是用这个 Group 的 Library 来管理整个电子书库。

第一步是把所有的电子书都扔到 NAS 里那个和百度网盘保持同步的文件夹里,这样在你归档的时候,Cloud Sync 也会在后台直接默默帮你上传着,而且后面也方便你知道自己都归档了哪些东西。

第二,在 Zotero 里提前建立几个大分类,尤其是如果你有成本大套的书籍时。比如这样:

我的书籍分类
我的书籍分类

这么干主要是避免导入的书太多,后面归类时找不全……比如我就搜集了全套的《中国动物志》和《中国植物志》,这些书籍命名没有那么统一,Zotero 并不会知道它们是啥,所以就在导入时提前分类了。

然后就是拖进去,等。

Zotero 这个过程体验极差,它没有进度条,也没有任何提示,你根本不知道自己是否成功导入了所有的书籍,而且 Zotero 的性能也有点问题,面对几十 GB 汹涌而来的电子书时,可能会直接崩溃。我第一遍搞的时候,就一口气把几百本书拖进去了,然后就是无尽的卡顿……

后面我是几十本几十本拖进去的,有时候也会卡,而且有时也不知道拖没拖进去,反复拖的话,就会导致条目重复;有时还会漏文件,比如拖进去 50 本书,结果只成功了 20 本……总之这个过程还是要有耐心,最好同时找点别的事干。

如果有提前分类,就直接把电子书拖进分类里面去就行了。之后你可以在 Group Library 下看到所有的电子书,在「未分类条目」下看到没有分类和标记过的书。

建立父条目

我前面讲需求的时候,提到了条目这件事。这个在 Zotero 里实现非常方面。

在 Zotero 里找到需要建立条目的电子书,右键,选择「创建父条目...」,然后在弹出的对话框上,选择「手动录入」,记得不要为了省事而用书籍的 ISBN,那样就大概率会导致书籍被重命名成拼音。

创建好父条目、填好 metadata1 后,就可以把其他相关的文档统统拖进这个条目下面了,之后分类管理时,只需要编辑这个父条目就行了,里面的文档也会随之编辑好。

父条目
父条目长这样

OCR 和翻译

这两个是借助插件来实现的。

翻译用的是 zotero-pdf-translate 插件,有 Google 翻译、彩云小译等多个 API 可供选择2,可以在这里直接看视频使用教程。

OCR 用的是 zotero-ocr 插件,在 GitHub 上有详细的使用文档,如果看不懂,也可以在这里看 Windows 版教程,在这里看 Mac 版教程。

简单来说,这个插件是借助 tesseract 提供全文 OCR,我的输出设置如下图所示,这样可以获得一份可以做标注的 PDF 文档,然后就可以用父条目来归档整理了。输出过程有些慢,得忍一忍。

我的 Zotero-OCR 输出设置
我的 Zotero-OCR 输出设置

不过它还有一个小问题,就是输出后不能自动添加到 Zotero 里,不过倒也不是啥大问题,右键点击 OCR 的文档,打开该文档所在的文件夹就能找到 OCR 后的文件了。

为什么不用 XXX?

我推测肯定会有人问这类问题……其实现在网上能见到的整理电子文档的方法,我基本上也都看到过,简单讲一下它们各自的优缺点吧。

坚果云

以及 Google Drive / Dropbox / Onedrive 等等。

先说坚果云。这是网上最常见的同步方式了,我之前也用过,确实还可以,但也有两个问题。

第一,我十分不能理解坚果云在 Mac 上的工作逻辑。无论是用 Google Drive,还是 Dropbox,甚至于说 iCloud,都是只要把文件或文件夹放到指定目录下,就自动同步了,但坚果云似乎不是这样,还要右键处理一下才能同步,这也太奇怪了吧?

第二,坚果云的同步空间也太小了,以及收费方式很奇怪。免费用户不限存储空间,但是有上传和下载流量限制;付费用户倒是不限制上传和下载流量,但是有存储空间限制……

这点流量和存储空间,保存些论文还行,真像我一样搞几十 GB 电子书那可是捉襟见肘了。

另外,我已经是百度网盘和 iCloud 的长期年费会员了,实在是不想再给第三家网盘掏年费了。如果真掏了,那一定是 115 网盘。

至于其他的云盘服务,也都是因为存储空间太少了,都得额外付费买存储空间,另外像 Dropbox 还限制登录设备数量。实在是不想掏这份钱啊。而且,坚果云好歹也是基于 WebDAV3 的,下载文件比较方便;其他网盘有些只是能跟百度网盘一样提供存储,下载起来也比较费劲。

NAS 自带的 WebDAV

WebDAV 确实是个好东西,我最开始也是想用群晖自己的 WebDAV 来搞的,这么搞完之后,实际上你是可以脱离百度网盘,直接在 Zotero 软件里实现同步列表和文件,

WebDAV 的设置方式见此,Zotero 搭配群晖 WebDAV 实现文献同步教程见此,需要的话可以自行学习设置。

我试了一下,最终没选用这个方案。

第一,WebDAV 操作比较复杂,需要你去路由器后台做端口映射。说实话,这个操作其实就已经全退很多很多小白了。当然对我来说还好,真正劝退我的事第二和第三个问题。

第二是需要公网 IP。其实我有公网 IP,不过因为租房的房间布局原因,光猫没改桥接,然后 NAS 实际上是挂在我自己的路由器下面的,因此也事实上用不了 WebDAV 功能,虽说改桥接和更改家庭网络布局也不是啥麻烦事,但加上第三个因素,我最终放弃了这个。

第三个因素是网速。

众所周知,我国民用宽带上传和下载网速是不对等的,你下载网速几百兆,有些地方甚至都普及千兆网了,但是上传依然是个瓶颈,到时候真到外面需要下载某份文档,结果发现被家里的上传网速卡了脖子……相比之下,似乎还是百度网盘更靠谱一些。

Calibre 和 Calibre-web

我尤其讨厌 Calibre 这个软件——卡、慢、丑。

我不知道是它跟 Mac 兼容性不好,还是说这个软件本身有问题,每次用它都会让我憋一肚子火,有时候是软件太卡,有时候是转换格式时找不到输出的文件。总之就没太有用着顺心的时候。

而且这个软件也太丑了吧!Zotero 也不好看,好歹人家占个简洁和(几乎)全平台通用,相比之下 Calibre 真是不太够用。

Calibre-web 是基于 Calibre 开发的,一个基于 Web 的书籍管理工具,它的界面还算好看,也可以通过 docker 等方式部署在 NAS 上,然后外网访问 NAS 即可,但这个比上面说的 WebDAV 还不可靠。WebDAV 好歹是通过公网 IP 直连到家,Calibre-web 需要借助群晖的 QuickConnect 功能,这个功能有多卡和多不稳定,用过的都知道。

还有一点是,如果你的 PDF 本身缺失 metadata,那 Calibre-web 的管理界面就会非常丑。获取国内图书 metadata 最好的地方就是豆瓣,但豆瓣还封掉了爬书籍 metadata 的 API4,而且书也没那么全。


大概就是这样,我也要去整理书籍信息和分类了。


备注:

  1. 其实我一般就只写个书名,能看懂就行了

  2. 部分 API(如彩云小译)可能需要付费使用

  3. 简单来说,WebDAV 就是可以直接通过 URL 读取文件的网盘服务

  4. 一个暂时看上去可用的爬取豆瓣书籍 API 的方法

All rights reserved
Except where otherwise noted, content on this page is copyrighted.