一个小说下载工具搞定下载、转换与有声书:四步搭起你的私人阅读系统
【免费下载链接】Tomato-Novel-Downloader番茄小说下载器不精简版项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader
傍晚的地铁上,你正追到故事最精彩的地方,却发现这章只有文字版;昨晚下载到一半的小说,因为网络一闪断了线,进度直接归零;好不容易导出的文件,换台设备打开,排版又全乱了。这些场景是不是听着很熟悉?今天要聊的这款开源工具Tomato-Novel-Downloader,把"一键下载 + 多格式转换 + 可选有声生成"打包成了一件事,从你找到一本书到真正"读"上它,全程几乎不用操心任何技术细节。
第一步:装好它,完成人生第一次下载
先别急着研究配置,把工具跑起来其实比你想象的简单得多。Windows 用户直接下载对应版本的可执行文件,双击就能用;macOS 和 Linux 用户则可以用项目自带的安装脚本,一条命令完成安装:
git clone https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader cd Tomato-Novel-Downloader && bash installer.sh安装完成后,我强烈建议新手先用 Web UI 模式。在终端输入下面这行命令,然后打开浏览器访问http://localhost:18423:
TOMATO_WEB_ADDR=0.0.0.0:18423 tomato-novel-downloader --server在网页里,你只需要做三步:搜索小说 → 点开结果 → 点击下载。章节抓取、内容解析、格式封装全部自动完成,下载完的书就静静躺在输出目录里。如果你在终端里用 TUI 界面,还有个隐藏彩蛋——连按三次o键,就能唤出更轻量的经典命令行界面。
第二步:把小说调成你喜欢的样子
第一次下载成功后,你很快就会面对一个幸福的烦恼:格式怎么选?我的建议很简单,按你的阅读场景来:
- EPUB:最推荐,自带目录、封面和排版样式,手机阅读器和 Kindle 都能完美适配;
- PDF:适合打印出来慢慢看,或者送给不习惯电子阅读的长辈;
- TXT:纯文本、体积最小,任何设备都能打开,代价是丢掉排版。
如果你对中文排版有讲究,可以在config.yml里微调缩进等细节,让正文段落更符合中文阅读习惯:
# config.yml 中的输出配置 novel_format: "epub" # epub / pdf / txt first_line_indent_em: 2.0 # 首行缩进,单位 em bulk_files: false # 是否按章拆分成散装文件那什么时候该生成有声版呢?我的答案是:通勤路上、睡前躺着、做饭腾不出手的时候。工具内置了微软 Edge TTS 语音合成,下载完成后可以自动生成 MP3 音频,连封面都会一并处理好,放进播放器就能当有声小说听。打开配置里的"是否生成有声小说"开关即可:
enable_audiobook: true audiobook_voice: "zh-CN-XiaoxiaoNeural" # 发音人 audiobook_rate: "+0%" # 语速 audiobook_format: "mp3" # mp3 / wav audiobook_concurrency: 24 # 生成并发数,网络差就调小第三步:让工具替你干活,而不是你伺候它
下载完一本书只是开始,真正省心的是让工具自己"追更"。你只需要知道一本书的 ID(Web UI 搜索页里就能看到),之后每次想更新,一句命令就能把新增章节补齐,并且只下载缺失的部分,不会重复劳动:
tomato-novel-downloader --update 7318247498772674083把这条命令交给系统定时任务,你连命令都不用敲了。比如每天凌晨两点自动更新,再配合格式转换,第二天早上打开设备就是最新的一章:
0 2 * * * tomato-novel-downloader --update 7318247498772674083如果你家里有 NAS 或闲置的小主机,更彻底的方案是直接部署 Docker 版本,让它七乘二十四小时无人值守地跑着,全家人都能通过浏览器访问。软路由、NAS 这类轻量系统记得用 musl 版本:
docker run -d --name tomato-novel-webui \ -p 18423:18423 \ -v /host/data:/data \ -e TOMATO_WEB_ADDR=0.0.0.0:18423 \ zhongbai233/tomato-novel-downloader-webui:latest-musl \ --server --data-dir /data第四步:遇到问题?先看看这几个常见问答
问:我下载到一半断线了,会从头开始吗?答:别担心,工具自带断点续传。每下载完一章都会落盘记录进度,中断后重跑只会补齐缺失的章节,已经完成的不会重来。
问:生成的 EPUB 打不开怎么办?答:先检查是不是章节标题里混进了特殊字符。实在不行,改用 TXT 格式生成一份纯文本版本应急,通常都能救回来。
问:浏览器访问 Web UI 没反应?答:多半是端口被占用了,或者监听的地址不对。局域网访问时记得用TOMATO_WEB_ADDR=0.0.0.0:18423绑定所有网卡,Docker 部署的话还要检查端口映射。
问:内存占用有点高?答:把并发相关配置调低就行,比如max_workers和audiobook_concurrency。长篇小说也可以分批下载,没必要一口气处理一千多章。
问:改了配置却不生效?答:确认你改的是程序实际读取的那份config.yml。如果配置和程序不在同一目录,可以用--data-dir显式指定数据目录,让"配置文件在哪"这件事变得一目了然。
尾声:三步,把工具变成你的阅读系统
走到这里,你的完整行动清单其实只有三件事:
- 装起来:用安装脚本装好工具,通过 Web UI 完成第一本书的下载;
- 调舒服:按使用场景选好 EPUB 格式,通勤党顺手打开有声小说生成开关;
- 放出去:把更新命令交给 cron,或者直接部署到 NAS 的 Docker 容器里,从此坐享其成。
想进一步研究的话,官方说明文档看 README.md 就够了;想读源码,配置系统在 src/base_system/config.rs,下载与断点续传的核心逻辑在 src/download/downloader.rs,有声小说生成在 src/book_parser/edge_tts.rs,Web UI 的路由则集中在 src/ui/web/routes/。从今天开始,把找书、下载、转换、追更这些琐事都交给它,你只管享受阅读本身。
【免费下载链接】Tomato-Novel-Downloader番茄小说下载器不精简版项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考