一款工具搞定小说下载、格式转换与听书:番茄小说下载器上手全攻略
面对网盘里层层套娃的压缩包、Kindle 不认的文本格式、通勤路上无法"看"书的时间碎片,很多爱看网文的朋友都经历过类似的手忙脚乱。今天介绍的这款开源工具——番茄小说下载器,用一套方案把"抓取章节、转成 EPUB、合成有声书、多端管理"串成了一条流水线。它由 Rust 编写,主打多格式下载与全平台使用,一次配置,长期省心。
一个真实的烦恼:从下载到听书的连环折腾
小林是典型的通勤读者。他习惯在地铁上"听"小说,回家后用平板"看"。过去他的流程是:先在网页里手动复制几十章正文,粘到记事本,再想办法转成 Kindle 能读的格式,最后用手机里的 TTS 软件一段段朗读。整套操作下来,一本书要折腾一下午,中间还经常因为章节遗漏而断档。
如果你也陷入过这种"复制—粘贴—转换"的循环,番茄小说下载器给出的方案很直接:你只负责输入书名或书号,剩下的抓取、排版、转格式、生成语音,全部交给它。它的价值不在于单个环节有多炫,而在于把整条链路串起来了。
先看能力清单:这个工具到底能干什么
在动手安装前,先用一个速查表看清它的核心能力,方便你判断它是否值得进入自己的工具箱:
| 能力 | 说明 | 适合谁 |
|---|---|---|
| 多格式输出 | EPUB(排版精良,Kindle 友好)、TXT(通用兼容)、MP3 有声书 | 想要 Kindle 电子书转换、或者"听书"的用户 |
| 三种操作界面 | 浏览器 Web UI、终端 TUI、老版 CLI | 从零基础到自动化脚本用户全覆盖 |
| 断点续传 | 下载状态持久化保存,中断后自动接着跑,已完成的章节不重复下载 | 网络不稳定、长书下载场景 |
| 智能限速 | 根据服务器反馈自动调整请求节奏,限流时主动放缓 | 担心封号、追求稳妥下载的用户 |
| 内置语音合成 | 下载完成后自动生成按章节命名的 MP3 音频 | 通勤党、视障用户 |
| 网页版管理 | 局域网内任何设备用浏览器即可搜索、下载、打包取回文件 | 手机 + 电脑协同使用 |
除了这些,它还在细节上做足了功夫:例如音频文件夹里会自动放入封面图片,方便播放器识别;Web UI 支持把整个文件夹打包成 zip 下载,应对"音频文件夹里还有子文件夹"的复杂目录结构。
安装哪种方式?按你的身份对号入座
三条安装路径分别对应三类用户,选对就能少走弯路。
零基础用户:下载可执行文件,双击即用
Windows 用户直接下载对应版本的可执行文件(如 TomatoNovelDownloader-Win64-版本号.exe),双击运行即可进入图形界面,无需任何额外配置。这也是最省心的上手姿势。
想要长期稳定运行:Docker 一键部署
如果你有 NAS、软路由或一台闲置服务器,更适合用 Docker 让下载器 7×24 小时待命。官方镜像名为 zhongbai233/tomato-novel-downloader-webui,默认 glibc 版本适合常规服务器;软路由或 NAS 这类轻量系统请选用 latest-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 --server --data-dir /data
这里把数据目录挂载到宿主机,配置与日志就能持久化保存,容器重建也不丢记录。
进阶玩家:源码编译,随心定制
想要自定义功能或验证代码,可以克隆源码自行构建:
git clone https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader
cd Tomato-Novel-Downloader
cargo build --release
编译产物位于 target/release/ 下,直接运行即可。
三种界面怎么选:界面跟随使用场景走
这是这款工具最贴心的地方——同一个人在不同场景下,可以选择不同界面。
浏览器用户选 Web UI。 启动服务后在浏览器访问 http://localhost:18423,就能获得完整的网页版小说管理界面:输入书名直接搜索、创建下载任务、实时查看进度、按目录浏览已下载文件。它甚至支持设置访问密码,防止局域网内其他人乱用:
./tomato-novel-downloader --server --password 你的密码
终端爱好者选 TUI。 全键盘操作、实时进度条、资源占用极低,适合习惯在 SSH 里干活的人。第一次打开程序时,连按三下 o 键即可切换进老版 CLI 界面,方便视障用户配合读屏软件使用。
脚本党选命令行模式。 通过 --update 参数可以批量更新本地已有的书籍,非常适合接进定时任务,例如每晚自动同步 Kindle 里的连载:
./tomato-novel-downloader --update 7318247498772674083
需要注意的是,命令行模式只支持更新本地已有下载记录的书籍,首次下载新书请走 Web UI 或 TUI,这是开发者为防止脚本批量滥用刻意做的限制。
三个高频玩法:把工具的潜力榨干
1. 把"看"变成"听":内置 Edge TTS 有声书生成
在配置里打开"是否生成有声小说",每次下载完成后就会自动合成对应章节的 MP3。默认发音人是 zh-CN-XiaoxiaoNeural,音色自然清晰,还支持自定义语速、音量、音调和输出格式。音频文件存放在输出目录下的 {书名}_audio 文件夹,按章节顺序命名为 0001-第一章.mp3 这样的格式。
这个功能对通勤族是福音:晚上下载好,第二天路上就能"听"完当天更新的章节。生成过程支持断点续跑,已存在的音频自动跳过,只补缺失部分。
2. 下载策略调优:在速度与安全之间找平衡
工具内置了自适应调度:服务器响应正常时适度加快请求,检测到限流时自动延长间隔约 50%,遇到错误则进入最多 3 次的重试机制。如果想手动微调,可以在配置中控制并发任务数和请求间隔:
max_workers: 4 # 并发任务数,建议从 2 开始试
request_timeout: 60 # 请求超时(秒)
max_retries: 3 # 最大重试次数
一个重要的提醒:别把并发调得太高,否则既会给服务器造成压力,也更容易触发反爬机制。另外,单本书的章节数不建议超过 1500 章,稳妥起见量力而行。
3. 手机端也有一席之地:Termux 运行方案
安卓手机用户可以通过 Termux 运行这款下载器,官方提供了 Android arm64 构建产物。由于终端界面在小屏幕上不好操作,更推荐的姿势是:在 Termux 里启动 Web 服务器,然后用手机浏览器访问,实现"手机当服务器、浏览器当遥控器"的用法:
TOMATO_WEB_ADDR=0.0.0.0:18423 tomato-novel-downloader --server
启动后,同一局域网内的平板、电脑也能通过浏览器加入,全家设备共用一个下载中心。
两种 API 模式:按你的网络环境选择构建
项目提供两套互斥的构建模式,默认启用的是 official-api 模式:搜索、目录、段评等功能完整,正文获取可以在官方与第三方接口之间切换。如果你的环境无法访问官方接口,则可以采用 no-official-api 模式:目录与书信息走网页解析,正文强制使用第三方 API 地址池,代价是搜索与段评功能不可用。构建时只需用项目根目录的 Cargo_no_official.toml 替换 Cargo.toml 再执行编译即可。
避坑指南:新手最容易踩的五个坑
- 首次下载别用命令行:CLI 已禁用新建下载,专为更新已有书籍保留,别拿它做第一次下载。
- 不要同时开太多任务:既为服务器减负,也降低自己被风控的概率。
- 别乱调线程数"耍小聪明":盲目提高并发只会加快接口失效的速度。
- 尽量别挂代理:使用过程中请保持网络环境干净,避免影响接口连通。
- 下载后及时清理:下载到的小说仅供个人阅读,请勿转载或商用,看完即删,既是自我保护也是对创作者的尊重。
三步上手,今天就跑通第一本书
如果你已经心动,按这个节奏走准没错:
- 选一种安装方式(可执行文件最快、Docker 最稳、源码最灵活),把程序跑起来;
- 打开 Web UI,搜索你正在追的小说,发起第一次下载;
- 在配置里打开有声书生成,体验"看完还能听"的完整闭环。
把一本书从"网页里的文字"变成"Kindle 里的排版书 + 手机里的音频",整个流程现在只需要几分钟。开源工具的价值在于迭代——如果你在 Issues 里反馈了问题或提出建议,很可能下一个版本就会包含它。让阅读更自由,从今天这本小说开始。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




