番茄小说下载器

Posted by 每天要好心情哦,我的朋友 on May 6, 2026

如何使用?

根据自己的系统版本在Releases列表下载可执行文件,并运行 首次下载新书请优先使用 TUI 或 Web UI;CLI 仅保留更新本地已有小说的能力

命令行模式(非交互)

如果你需要在自动化脚本中使用下载器(例如为 Kindle 自动更新番茄小说),可以使用命令行参数更新本地已经下载过的书籍:

  • 更新指定书籍:

    1
    
      Tomato-Novel-Downloader.exe --update <book_id>
    

    示例:

    1
    
      Tomato-Novel-Downloader.exe --update 7318247498772674083
    

注意:

  • 命令行模式为非交互模式,会直接开始更新,无需手动输入
  • 使用配置文件(config.yml)中的默认保存路径和下载设置
  • CLI 已禁用 --download 新建下载能力,以降低脚本批量滥用风险
  • --update 只允许更新默认保存目录下已经存在本地下载记录的书籍
  • 如果书籍不存在本地记录,CLI 会拒绝执行,并提示改用 Web UI / TUI 完成首次下载
  • 只接受 book_id,不支持搜索功能

老版 CLI(无 UI)说明

  • 老版 CLI 现已禁用新建下载/搜索下载
  • 仅保留以下能力:更新本地已有小说、查看下载历史、修改配置、检查程序更新
  • 如果需要首次下载新书,请使用默认 TUI 或 Web UI(--server

Web UI 服务器模式(–server)

如果你希望在局域网用浏览器操作(搜索、发起下载、查看任务、下载文件/打包下载文件夹),可以启用 Web UI:

  • 启动 Web UI:

    1
    
      Tomato-Novel-Downloader.exe --server
    
  • 监听地址(默认 127.0.0.1:18423):

    通过环境变量修改监听地址,例如局域网访问:

    1
    
      TOMATO_WEB_ADDR=0.0.0.0:18423
    

    IPv6 监听示例(注意 IPv6 需要方括号):

    1
    
      TOMATO_WEB_ADDR=[::]:18423
    

    同时监听多个地址(用逗号或分号分隔),例如同时监听 IPv4 + IPv6:

    1
    
      TOMATO_WEB_ADDR=0.0.0.0:18423,[::]:18423
    
  • 密码锁模式(防止陌生人使用):

    1
    
      Tomato-Novel-Downloader.exe --server --password 你的密码
    

    或者使用环境变量:

    1
    
      TOMATO_WEB_PASSWORD=你的密码
    
  • 数据目录(用于 Docker 部署或集中管理配置/日志):

    通过 --data-dir 参数指定数据目录,程序会将 config.ymllogs 文件夹放在该目录下:

    1
    
      Tomato-Novel-Downloader.exe --server --data-dir /data
    

    Docker 使用示例:

    1
    
      docker run -v /host/data:/data my-tomato-image --server --data-dir /data
    

    这样可以方便地挂载数据目录,实现配置和日志的持久化。

Web UI 提供的功能(纯 HTML,无需额外前端构建):

  • 搜索书籍并创建下载任务
  • 任务列表/进度刷新/取消任务
  • 下载库按目录浏览(不再把所有文件递归平铺)
  • 文件直接下载
  • 文件夹一键打包为 zip 下载(保持目录结构,适配音频等“文件夹内包含文件夹”的情况)
  • 配置页面:可在线修改部分下载输出相关配置(会写回 config.yml

注意:Web UI 主要面向自建/局域网使用;如果要暴露到公网,建议放在反向代理/HTTPS 后面,并务必开启密码锁。


Docker 镜像

已提供 Web UI 版本的 Docker 镜像:

  • 镜像地址:DockerHub
  • Tags 说明:
    • latest:默认 glibc 版本(常规服务器/桌面环境)
    • latest-muslmusl 版本,适用于 软路由 / NAS 等轻量系统

示例(映射端口与持久化数据目录,使用 glibc 版本):

1
2
3
4
5
6
7
docker run -d \
    --name tomato-novel-webui \
    -p 18423:18423 \
    -v /host/data:/data \
    -e TOMATO_WEB_ADDR=0.0.0.0:18423 \
    -e TOMATO_WEB_PASSWORD=你的密码 \
    zhongbai233/tomato-novel-downloader-webui:latest --server --data-dir /data

如果你使用软路由或 NAS 系统,请使用 musl 版本:

1
2
3
4
5
6
7
docker run -d \
    --name tomato-novel-webui \
    -p 18423:18423 \
    -v /host/data:/data \
    -e TOMATO_WEB_ADDR=0.0.0.0:18423 \
    -e TOMATO_WEB_PASSWORD=你的密码 \
    zhongbai233/tomato-novel-downloader-webui:latest-musl --server --data-dir /data

可通过 TOMATO_WEB_ADDRTOMATO_WEB_PASSWORD--data-dir 控制监听地址、密码与数据目录(见上文 Web UI 说明)。


构建模式(Cargo Features)

本项目提供两个互斥的 feature:official-apino-official-api(两者不能同时启用)。

默认模式:official-api(默认启用)

  • 构建(默认就会启用):
1
cargo build --release
  • 行为:
    • 搜索功能可用(TUI / Web UI / 老 CLI 的搜索入口)。
    • 段评(EPUB 段评页/资源抓取)可用(取决于配置项)。
    • 正文获取可通过配置在“官方/第三方”之间切换(use_official_api)。

No-Official-API 模式:no-official-api(Issue #187)

  • 构建:
1
cargo build --release --no-default-features --features no-official-api
  • 行为差异(重点):
    • 不依赖 tomato-novel-official-api crate,可在缺少 Official-API 环境时编译。
    • 目录与书本信息:使用网页解析(FanqieWebNetwork)。
    • 正文获取:强制第三方模式(忽略/不使用 use_official_api=true 的官方分支)。
    • 搜索功能:不可用(会返回提示/报错)。
    • 段评:不可用(会被强制关闭)。

Edge TTS 有声小说生成

从当前版本开始,程序内置了 msedge-tts 语音合成功能,可在下载文本后自动生成对应的有声小说:

  • 在配置菜单(新 UI 或老 CLI 均可)中启用 是否生成有声小说,即可在每次下载完成后生成音频文件。
  • 默认发音人是 zh-CN-XiaoxiaoNeural,可以通过配置项自定义语速、音量、音调以及输出格式(mp3wav)。音调值请使用 +2Hz-1st 这类带单位的写法,若留空或填写 0 将忽略音调调整。
  • 可在“有声小说并发数”中调整 Edge TTS 并发任务数量(默认 2),生成时会显示进度条;请根据网络状况和机器性能选择适当的并发度。
  • 音频会存放在输出目录下的 {书名}_audio 文件夹中,并按章节顺序命名,例如 0001-第一章.mp3
  • msedge-tts 需要联网调用微软的在线服务,请确保运行环境可正常访问外网。

如遇到生成失败,可在日志中查看详细错误信息。


常见问题

  1. 之前就已经有了一个下载器,为什么还要再做一个?

    本程序的初衷就是极致简化番茄小说下载器的代码,使程序更加易于操作与运行,并且更加稳定和快速! 本程序由于重构导致文件体积较大,无法做到原项目的简易,但是此项目胜在傻瓜式操作,无需多余配置,立即使用

  2. 手机端可以正常运行吗?

    仅限安卓设备(Termux)可以运行。 但由于 TUI/CLI 界面对小屏幕不太友好,手机端更推荐使用 Web UI 模式(–server):在 Termux 里启动服务,然后用手机浏览器操作(或让同一局域网的其它设备访问)。

    Release 里提供 Android arm64 构建产物:TomatoNovelDownloader-Android_arm64-[当前版本号],可直接在 Termux 中运行。

    另外:如果你希望在 TUI 中使用 Ctrl+V 从系统剪贴板粘贴,需要安装 Termux API:

    • 安装 App:Termux:API
    • 安装命令:pkg install termux-api
    • 验证:termux-clipboard-get 可正常输出内容

    为了防止有些零基础的小白下载到了此程序,我们为您准备了一些教程:

    下载termux(链接:(https://github.com/termux/termux-app/releases) 并安装,然后运行部署脚本:

    1
    
     bash <(curl -sL https://raw.githubusercontent.com/zhongbai2333/Tomato-Novel-Downloader/main/installer.sh)
    

    国内用户可使用:

    1
    
     bash <(curl -sL https://dl.zhongbai233.com/installer.sh)
    

    安装完成后,推荐用 Web UI 启动(示例):

    1
    
     TOMATO_WEB_ADDR=0.0.0.0:18423 TOMATO_WEB_PASSWORD=你的密码 tomato-novel-downloader --server
    

    然后在浏览器打开:

    • 本机:http://127.0.0.1:18423/
    • 局域网其它设备:http://<手机的局域网IP>:18423/
  3. 电脑端该如何运行?

    Windows 双击运行TomatoNovelDownloader-Win64-[当前版本号].exe

    LinuxMacOS 使用终端运行,可以使用一键部署脚本:

    1
    
     bash <(curl -sL https://raw.githubusercontent.com/zhongbai2333/Tomato-Novel-Downloader/main/installer.sh)
    

    国内用户可使用:

    1
    
     bash <(curl -sL https://dl.zhongbai233.com/installer.sh)
    
  4. 小说id是什么?在哪里获取?

    推荐两种方式:

    • 直接使用 Web UI 的“搜索书籍”,不需要手动找 ID。
    • 如果你已经有分享链接/书籍信息,通常会包含一段很长的数字(Book ID)。复制该数字即可。
  5. 我是纯小白,程序在哪里下载啊

    直接点击此链接(https://github.com/zhongbai2333/Tomato-Novel-Downloader/releases)先找到最新版本,然后在最新版本中找到”Assets”并点击来展开内容(如果已展开就不必进行此操作)。在展开的内容中找到对应程序,点击下载即可

注意事项(必看)

由于使用的是api,所以未来不知道有哪一天突然失效,如果真的出现了,请立即在“Issues”页面中回复!

如果您在使用本程序的时候出现了下载章节失败的情况,也许并不是api失效了,可能是因为调用api人数过多,导致api暂时关闭,如果遇到了这种情况,请稍后再试,另外,您需要下载的小说api可能会因没有更新所以下载失败。

千万不要想着耍小聪明:“欸,我改一下线程数不就能快速下载了吗?”请打消这种念头!因为这样会加大服务器压力!!!

另外,在使用本程序时,请不要使用任何vpn或网络代理等一切影响网络正常使用的程序!

如果您也没有遇到以上的这种情况,请检查要下载的小说章节数量有多少,不建议大于1500章!(保守估计)

划重点:切记!不能将此程序用于违法用途,例如将下载到的小说进行转载、给不良人员分享此程序使用等。本开发者严禁不支持这样做!!!并且请不要将api进行转载使用,除非您已经与开发者协商过,否则后果自负!下载到的小说仅供自行阅读,看完之后请立即删除文件,以免造成侵权,如果您还是偷尝禁果,需自行承担由此引发的任何法律责任和风险。程序的作者及项目贡献者不对因使用本程序所造成的任何损失、损害或法律后果负责!