对外 API 文档

Tomato Novel Downloader Web API · Base URL 为当前站点根路径
返回控制台
目录
鉴权 快速开始 状态 搜索 预览 下载任务 下载库 历史 配置 限制说明

鉴权

启用密码锁时(本部署默认开启),除 //assets/*/api/login/api-docs/* 外,其余接口需鉴权。

方式 A(推荐,浏览器/脚本会话):先登录拿 Cookie,后续请求带 Cookie。

curl -c cookie.txt -X POST "$BASE/api/login" \
  -H 'Content-Type: application/json' \
  -d '{"password":"你的密码"}'

curl -b cookie.txt "$BASE/api/status"

方式 B(脚本):每次请求带请求头 x-tomato-password

curl -H "x-tomato-password: 你的密码" "$BASE/api/status"

密码见部署方提供的密钥(本仓库 docs/ops/k8s/app.env),请勿写进公开仓库或前端代码。

快速开始:按 Book ID 下载

# 1) 登录
curl -c cookie.txt -X POST "$BASE/api/login" \
  -H 'Content-Type: application/json' \
  -d '{"password":"你的密码"}'

# 2) 创建下载任务(一次只能有一个进行中的任务)
curl -b cookie.txt -X POST "$BASE/api/jobs" \
  -H 'Content-Type: application/json' \
  -d '{"book_id":"7625904970805546009"}'

# 3) 轮询任务状态
curl -b cookie.txt "$BASE/api/jobs"

# 4) 下载完成后从下载库取文件
curl -b cookie.txt "$BASE/api/library"
# 文件直链示例:
# curl -b cookie.txt -LO "$BASE/download/相对路径/xxx.txt"

状态

GET/api/status

服务状态、版本、是否锁定、保存目录等。

{
  "version": "2.4.13",
  "locked": true,
  "save_dir": "/data",
  "bind_addr": "0.0.0.0:18423",
  "config": { "use_official_api": true, "novel_format": "..." }
}

GET/api/search?q=关键词

参数说明
q书名关键词(必填)
{ "items": [ { "book_id": "...", "title": "...", "author": "..." } ] }

预览

GET/api/preview/:book_id

预览书籍元数据与章节数,创建任务前可调用。

POST/api/preview/:book_id/cleanup

清理预览产生的临时封面目录。

下载任务

GET/api/jobs

参数说明
id按任务 ID 过滤
name按书名/Book ID 模糊过滤
all=true返回全部(默认会隐藏约 2 小时前已完成任务)
{ "items": [ { "id": 1, "book_id": "...", "title": "...", "state": "running|done|failed|...", "progress": {...} } ] }

POST/api/jobs

{
  "book_id": "7625904970805546009",
  "range_start": 1,
  "range_end": 50
}

range_start/range_end 可选,必须成对出现,章节号从 1 开始。同时只允许 1 个活跃任务,否则 429

POST/api/jobs/:id/cancel

取消任务。

DELETE/api/jobs/:id

删除任务记录。

POST/api/jobs/:id/book_name

{ "choice": "书名选项值" }

POST/api/jobs/:id/format

{ "choice": "txt" }

当配置要求下载后选择书名/格式时使用。

下载库 / 文件下载

GET/api/library?path=/

浏览已下载文件目录。

GET/download/*path

下载单个文件。

GET/download-zip/*path

打包目录为 zip 下载。

历史与更新

GET/api/history

下载历史记录。

GET/api/updates

扫描本地书是否有远端新章节。

配置

GET / POST/api/config

快捷配置(格式、有声书等)。

GET / POST/api/config/full

完整配置字段。

GET / POST/api/config/raw

原始 YAML。

本部署默认输出格式为 txt

限制说明