PixivFlow

⚙️ 配置参考

一份配置决定「收什么、存哪、什么时候跑」。逐项对照字段;只想先跑起来,看使用教程即可。可直接复制 官方示例配置 起步。

文件位置与优先级#

默认配置文件:config/standalone.config.json。实际查找顺序:

  1. 命令行参数 --config <path>
  2. 环境变量 PIXIV_DOWNLOADER_CONFIG
  3. 自动检测配置目录中的第一个可用文件
  4. 回退默认路径
pixivflow config      # 查看/编辑/备份/恢复,不用手找文件
pixivflow setup       # 交互式向导生成配置
安全配置文件含 refreshToken 等认证信息,等同密码:不要提交进公开仓库,不要截图分享。JSON 里带 _ 前缀的键会被忽略,可当注释用。

最小可用配置#

{
  "logLevel": "info",
  "scheduler": { "enabled": false },
  "targets": [
    { "type": "illustration", "tag": "風景", "limit": 20 }
  ]
}

pixiv 认证段由 login / refresh 命令自动写入,通常无需手改。

targets 下载目标#

数组,每项是一类要收集的内容,同一项内条件为 AND。按模式分组:

公共字段

字段类型说明
type必填illustration(插画)或 novel(小说)
limitnumber单次执行最多下载多少个
minBookmarksnumber最低收藏数门槛
startDate / endDatestring发布日期范围 YYYY-MM-DD,支持占位符(见文末)

搜索模式(mode: "search",默认)

字段取值说明
tagstring搜索标签;空格分隔即多标签
tagRelationand / or多标签要求全部包含(默认)或任一命中
searchTargetpartial_match_for_tags / exact_match_for_tags / title_and_caption匹配方式
sortdate_desc / date_asc / popular_desc结果排序
restrictpublic / private作品可见性范围
randomboolean从搜索结果中随机选一个下载

排行榜模式(mode: "ranking")

字段说明
rankingModeday · week · month · day_male · day_female · day_ai · week_original · week_rookie · day_r18 · day_male_r18 · day_female_r18
rankingDate日期 YYYY-MM-DD,缺省为今天;支持 YESTERDAY 占位符
filterTag设置后搜索该日期发布的 tag 作品,并在本地按热度排序;不设置时直接使用 Pixiv 榜单

定向 ID(跳过搜索,精确下载)

字段适用类型含义
illustIdillustration单幅插画,如 artworks/12345678 中的数字
novelIdnovel单本小说,如 novel/show.php?id=26132156
seriesIdnovel整个小说系列 novel/series/{id}
userId两者该用户的全部插画或小说

与 URL 直链等价——不确定时用 download --url 最省事。

小说专用

字段说明
languageFilterchinese 只收中文小说,non-chinese 反之;不足 50 字符无法可靠判断的作品默认放行
detectLanguage检测语言并写入元数据,默认 true

storage 存储与目录#

字段默认值说明
databasePath./data/pixiv-downloader.dbSQLite 数据库位置
downloadDirectory./downloads下载根目录
illustrationDirectory{根}/illustrations插画目录(相对或绝对路径)
novelDirectory{根}/novels小说目录
illustrationOrganizationflat插画目录组织方式,见下表
novelOrganizationflat小说目录组织方式

12 种目录组织模式

模式目录结构模式目录结构
flat平铺一层byAuthorAndTag画师 → 标签
byAuthor按画师byDateAndAuthor创建月 → 画师
byTag按首个标签byDayAndAuthor创建日 → 画师
byDate按作品创建月 YYYY-MMbyDownloadDateAndAuthor下载月 → 画师
byDay按作品创建日byDownloadDayAndAuthor下载日 → 画师
byDownloadDate按下载月byDownloadDay按下载日
换组织方式后已有文件不会自动搬家。执行 pixivflow normalize 按新规则归位;pixivflow dirs 随时查看真实落盘路径。

scheduler 定时任务#

字段默认说明
enabledfalsetrue 时,裸命令 pixivflow 直接进入调度器
cron0 3 * * *标准 cron 表达式
timezoneAsia/ShanghaiIANA 时区名
maxExecutions不限总执行次数上限,达到即退出
minInterval0两次执行最小间隔(ms),触发过密则跳过
timeout不限单次任务超时(ms)
maxConsecutiveFailures不限连续失败 N 次后停止调度器
failureRetryDelay0失败后的等待间隔(ms)
常用 cron含义常用 cron含义
0 3 * * *每天 03:000 */6 * * *每 6 小时
30 21 * * *每天 21:300 9 * * 1每周一 09:00

network 网络与代理#

字段默认说明
timeoutMs30000API 请求超时(ms)
retries3失败重试次数
retryDelay1000重试间隔(ms)
proxy.*enabled / host / port / protocol(http·https·socks4·socks5) / username / password
环境变量代理未显式启用 network.proxy 时,程序自动读取 ALL_PROXY / all_proxy > HTTPS_PROXY > HTTP_PROXY(取第一个非空值),支持 http 与 socks 协议。Docker 场景下用 host.docker.internal 指向宿主机代理(Linux 用 172.17.0.1),详见部署指南

download 性能调优#

字段默认说明
concurrency3并发下载数
requestDelay500相邻 API 请求最小间隔(ms),防限流
dynamicConcurrencytrue触发限流自动降并发
minConcurrency1动态调整下限
maxRetries3单文件最大重试
retryDelay2000文件级重试间隔(ms)
timeout60000单文件下载超时(ms)
调优建议遇到大量 429 限流时,优先加大 requestDelay 而不是堆并发——Pixiv 服务端对高频请求很敏感。

环境变量覆盖#

同名环境变量优先级高于 JSON,容器部署正是基于这套机制:

变量覆盖目标
PIXIV_REFRESH_TOKENpixiv.refreshToken
PIXIV_CLIENT_ID / PIXIV_CLIENT_SECRETOAuth 凭据
PIXIV_DOWNLOAD_DIRstorage.downloadDirectory
PIXIV_DATABASE_PATHstorage.databasePath
PIXIV_ILLUSTRATION_DIR / PIXIV_NOVEL_DIR类型子目录
PIXIV_LOG_LEVELlogLevel(debug/info/warn/error)
PIXIV_SCHEDULER_ENABLEDscheduler.enabled(true/false)
PIXIV_DOWNLOADER_CONFIG直接指定配置文件路径

日期占位符#

startDateendDaterankingDate 支持两个占位符,每次执行时替换为实际日期:

{
  "type": "illustration",
  "tag": "風景",
  "startDate": "YESTERDAY",
  "endDate": "YESTERDAY",
  "limit": 30
}

配合 scheduler 每天执行,「昨天的日榜 / 昨日新作」无需改配置。

更多完整组合直接抄 config/examples/:多标签 OR、中文小说过滤、昨日排行、定向下载等场景都有现成文件。

↑ 回到顶部