番茄小说下载器:跨平台终极解决方案,一键下载与有声书生成
【免费下载链接】Tomato-Novel-Downloader番茄小说下载器不精简版项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader
你是否曾为无法离线阅读喜爱的小说而烦恼?或者想在通勤路上将文字转为音频收听?番茄小说下载器正是为解决这些问题而生的开源工具。这款基于Rust语言开发的跨平台应用,支持Windows、Linux、macOS和Android系统,提供Web UI界面和音频生成功能,让小说下载与格式转换变得前所未有的简单。无论你是普通读者还是技术爱好者,都能轻松将网络小说转换为EPUB、TXT格式,甚至生成有声书音频,实现真正的阅读自由。
🚀 三大使用场景,满足不同需求
场景一:个人多设备同步阅读
用户痛点:在不同设备间切换阅读时,需要手动同步进度和文件。
解决方案:在NAS或服务器上部署Docker版本,通过Web UI统一管理:
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核心功能:
- 📚 搜索书籍并创建下载任务
- 📊 任务列表/进度实时监控
- 📁 文件目录浏览(保持原始结构)
- 📥 文件直接下载或打包为zip
- ⚙️ 在线配置修改(自动保存到config.yml)
场景二:有声书制作与收听
用户痛点:长时间阅读导致眼睛疲劳,希望将小说转为音频收听。
解决方案:集成微软Edge TTS服务,自动生成高质量有声书:
配置选项:
- 启用有声书生成:在配置菜单中勾选相应选项
- 发音人选择:默认
zh-CN-XiaoxiaoNeural,支持自定义 - 音频格式:MP3或WAV格式可选
- 并发控制:可调整Edge TTS并发任务数(默认2个)
音频文件组织:
下载目录/ ├── 《书名》.epub └── 《书名》_audio/ ├── 0001-第一章.mp3 ├── 0002-第二章.mp3 └── ...场景三:自动化更新管理
用户痛点:需要手动检查多本连载小说的更新状态。
解决方案:命令行模式配合定时任务,实现自动更新:
# 更新指定书籍 Tomato-Novel-Downloader --update 7318247498772674083 # 结合cron实现定时更新 0 */6 * * * /path/to/Tomato-Novel-Downloader --update <book_id>🔧 双模式架构,确保稳定运行
默认模式(official-api)
特点:
- ✅ 完整的搜索功能
- ✅ 支持章节段评内容获取
- ✅ 可在官方API和第三方API间切换
- ✅ 构建简单:
cargo build --release
无官方API模式(no-official-api)
适用场景:当官方API不可用或环境限制时
特点:
- ✅ 不依赖官方API库
- ✅ 目录和书籍信息通过网页解析获取
- ✅ 正文强制使用第三方API地址池
- ✅ 构建命令:
cargo build --release --no-default-features --features no-official-api
图:番茄小说下载器的像素风格图标,红色番茄代表"番茄小说",蓝色下载箭头象征下载功能
📱 多平台支持,随时随地使用
桌面端体验
TUI终端界面:
- 本地快速操作
- 搜索、下载、更新、配置管理
- 直接运行程序即可使用
Web UI界面:
- 浏览器操作,无需安装额外软件
- 远程管理/多设备访问
- 通过
--server参数启动
移动端解决方案
Android Termux部署:
- 安装Termux应用
- 运行部署脚本:
bash <(curl -sL https://dl.zhongbai233.com/installer.sh) - 启动Web服务:
TOMATO_WEB_ADDR=0.0.0.0:18423 tomato-novel-downloader --server - 浏览器访问
http://127.0.0.1:18423
移动端优化:
- 专门提供Android arm64构建版本
- Web UI模式适配小屏幕操作
- 支持局域网内其他设备访问
🛡️ 安全与隐私保护
密码保护机制
安全需求:防止未授权访问Web UI界面。
配置方法:
# 启动时设置密码 Tomato-Novel-Downloader --server --password 你的密码 # 或使用环境变量 TOMATO_WEB_PASSWORD=你的密码 tomato-novel-downloader --server数据持久化
目录结构建议:
/volume1/data/tomato/ ├── config/ # 配置文件目录 ├── books/ # 书籍存储目录 └── logs/ # 日志文件目录环境变量配置:
TOMATO_WEB_ADDR:Web服务监听地址TOMATO_WEB_PASSWORD:Web界面密码保护--data-dir:数据目录路径,实现配置和日志持久化
⚡ 性能优化与智能重试
智能重试机制
在src/base_system/cooldown_retry.rs中实现的智能重试策略:
| 错误类型 | 重试策略 | 重试间隔 |
|---|---|---|
| 网络超时 | 指数退避重试 | 1s、2s、4s... |
| 服务器繁忙 | 延长重试间隔 | 5s、10s、20s... |
| 内容不存在 | 立即终止 | 不重试 |
并发控制配置
性能优化建议:
max_workers:并发下载线程数(推荐CPU核心数的1-2倍)request_timeout:请求超时时间(默认30秒)max_retries:最大重试次数(默认3次)
资源使用参考
| 硬件配置 | 推荐并发数 | 内存占用 | 适用场景 |
|---|---|---|---|
| 低配(2核1G) | 2-3线程 | 30-50MB | 个人使用 |
| 中配(4核2G) | 4-6线程 | 50-80MB | 家庭共享 |
| 高配(8核4G) | 8-10线程 | 80-150MB | 多人使用 |
📦 多格式输出支持
格式转换能力
| 输出格式 | 适用设备 | 核心功能 | 实现模块 |
|---|---|---|---|
| EPUB | 电子阅读器、手机 | 目录导航、元数据完整 | src/book_parser/epub_generator.rs |
| TXT | 所有文本编辑器 | 纯文本、体积小 | src/book_parser/finalize_utils.rs |
| 打印/归档 | 固定布局、适合打印 | src/book_parser/finalize_pdf.rs | |
| 音频 | 通勤/运动 | 有声书生成 | src/book_parser/audio_generator.rs |
模块化设计架构
项目采用清晰的模块化架构,便于维护和扩展:
- 基础系统层(
src/base_system/):配置管理、日志记录、错误处理 - 网络解析层(
src/network_parser/):网页内容解析、API调用 - 下载管理层(
src/download/):任务调度、进度跟踪、并发控制 - 书籍处理层(
src/book_parser/):格式转换、音频生成、EPUB制作 - 用户界面层(
src/ui/):TUI、Web UI、无界面模式
🚀 快速开始指南
一键安装部署
Linux/macOS:
bash <(curl -sL https://dl.zhongbai233.com/installer.sh)Windows: 直接下载Release中的可执行文件运行
Docker部署:
# glibc版本(常规服务器) 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 # musl版本(软路由/NAS轻量系统) 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获取项目源码
git clone https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader cd Tomato-Novel-Downloader🔍 故障排查与常见问题
Web UI无法访问
- 检查容器是否运行:
docker ps - 验证端口映射:
netstat -tlnp | grep 18423 - 查看日志:
docker logs tomato-novel-webui
下载任务失败
- 检查网络连接
- 验证书籍ID是否正确
- 查看详细日志:
./tomato-novel-downloader --debug
音频生成失败
- 确认网络可访问微软TTS服务
- 检查并发数是否设置过高
- 查看Edge TTS相关日志
📝 使用注意事项
合法合规使用
- 下载的小说仅供个人阅读使用
- 请勿将下载内容用于商业用途
- 阅读完毕后建议及时删除文件
性能优化建议
- 避免同时下载过多书籍
- 根据网络状况调整并发数
- 定期清理下载历史记录
版本更新
- 定期检查程序更新:
Tomato-Novel-Downloader --update - 关注Release页面获取最新功能
- 备份重要配置文件
🎯 技术亮点与优势
Rust语言优势
- 内存安全:避免内存泄漏和悬垂指针
- 零成本抽象:高性能的同时保持代码简洁
- 跨平台编译:单一代码库支持多平台
- 异步并发:基于Tokio运行时的高效I/O处理
可扩展性设计
通过Trait接口设计,支持轻松添加新的小说平台解析器。开发者只需实现NetworkParsertrait,即可为新的小说平台添加支持,无需修改核心代码。
开源社区支持
项目完全开源,欢迎技术爱好者参与贡献:
- 提交Issue报告问题
- 参与功能开发
- 编写文档和教程
- 测试新版本功能
番茄小说下载器通过其强大的多平台支持、灵活的部署方式和丰富的功能特性,为小说爱好者提供了完整的数字阅读解决方案。无论是个人使用还是家庭共享,都能找到合适的部署和使用方式。开源项目的持续发展离不开社区的支持,欢迎技术爱好者参与贡献,共同完善这款优秀的工具。
【免费下载链接】Tomato-Novel-Downloader番茄小说下载器不精简版项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考