icon
网址
type
Post
status
Published
date
Mar 1, 2026
slug
patreon-gallery-dl-auto-download
summary
使用gallery-dl在NAS上定时批量下载Patreon内容,需配置Docker和crontab。gallery-dl支持多种媒体网站,使用JSON配置文件控制下载行为,需准备Patreon登录Cookie。手动运行脚本后可设置crontab定期执行,支持多创作者和其他平台的扩展,注意遵守平台规则和维护Cookie文件。
tags
工具
docker
NAS
category
技术分享
Patreon 本身没有提供“批量下载、定时同步”的官方工具,但我们可以使用 gallery-dl 在 NAS 上定时批量下载订阅的内容。
本文介绍 gallery-dl 的基本概念和功能,并展示如何用 Docker 和 crontab 搭建一个纯命令行的自动同步方案。

gallery-dl 是什么?

gallery-dl 是一款命令行程序,用来从各类图像/媒体网站下载画廊和作品集。
它的特点:
  • 支持站点非常多:例如 Pixiv、Danbooru、DeviantArt、Twitter、Patreon、Fanbox 等。
  • 跨平台:支持 Linux、Windows、macOS,可以通过 pip 安装,也有 Docker 镜像可用。
  • 丰富配置:使用 JSON 配置文件控制下载目录结构、命名规则、过滤条件、重试策略、Cookie/OAuth 登录等。
  • 支持“归档文件”:通过 -download-archive 记录已经下载过的条目,下次只下载新增内容,非常适合做定时任务。

安装:以 Docker 方式运行 gallery-dl

在 NAS 或服务器上,使用 Docker 运行 gallery-dl 很方便,也不污染系统环境。
一个典型的用法是:启动时临时拉起一个 gallery-dl 容器,执行完任务后自动退出,例如:
https://example.com/gallery/123就是你要下载的作者页面。

配置文件:指定下载目录和 Patreon 登录信息

gallery-dl 使用 JSON 配置文件来控制下载行为,可以通过 --config 参数指定配置文件路径。
假设在宿主机上约定一个存放 gallery-dl 数据的目录:
其中:
  • config:放 config.json 和 Cookie 文件。
  • downloads:实际保存下载内容。
  • archive:保存归档数据库,用于避免重复下载。github+1
$BASE/config 中创建一个最小配置的 config.json
含义:
  • base-directory:容器内的下载根目录,设置为 /gallery-dl,通过 Docker 挂载映射到宿主的 $BASE/downloads
  • patreon.cookies:Patreon 的 Cookie 文件路径,容器内为 /config/patreon_cookies.txt,实际来自宿主的 $BASE/config/patreon_cookies.txt

准备 patreon_cookies.txt

要访问 Patreon 的订阅内容,gallery-dl 需要使用你的登录 Cookie。
常见步骤:
  1. 在桌面浏览器中登录 Patreon。
  1. 使用浏览器扩展导出 patreon.com 对应的 Cookie,保存为一个 cookies.txt 格式文件。
  1. 将该文件重命名为 patreon_cookies.txt,放到 $BASE/config 目录中。
cookies.txt 文件大致长这样:
gallery-dl 会从中读取关键 Cookie(例如 session_id),使得你可以下载自己已订阅创作者的付费内容。

手动运行:下载某个 Patreon 创作者的内容

假设你想同步的创作者主页是:
https://www.patreon.com/<creator>/posts
在宿主机上创建一个执行下载的脚本,比如 patreon_creator.sh
说明:
  • v "$BASE/config:/config":把宿主配置目录挂载为容器内 /config
  • v "$BASE/downloads:/gallery-dl":容器内 /gallery-dl 的内容实际写到宿主的 downloads 目录。
  • v "$BASE/archive:/archive":归档数据库挂载到容器内 /archive
  • -config /config/config.json:指定刚刚创建的配置文件。
  • -download-archive /archive/patreon_creator.sqlite3:开启归档功能,使用一个 sqlite 文件记录已处理过的条目,下次只下载新内容。
  • URL 中的 <creator> 替换成你实际关注的创作者 ID 即可。
先在宿主机上手动运行一次脚本:
检查几点:
  • 是否有 403 或“登录失效”等错误(如有,多半是 Cookie 需要更新)。
  • $BASE/downloads 下是否出现了对应的下载内容。
  • $BASE/archive 下是否生成了 patreon_creator.sqlite3 文件,说明归档功能生效。

定时任务:使用 crontab 自动执行下载

当手动运行脚本确认无误后,就可以用系统的 crontab 定期执行,形成自动同步。
例如,使用 root 用户的 crontab,每天凌晨 3 点自动执行下载脚本:
在末尾添加:
这样系统就会每天 3 点自动拉起一个 gallery-dl 容器,扫描该创作者的 Patreon posts 页面,基于归档文件只下载新增内容,并将日志写入 /var/log/patreon_creator.log
如果希望更频繁,比如每 4 小时执行一次,可以调整为:

多创作者与扩展用法

在此基础上,你可以很容易扩展更多创作者或站点:
  • 多个 Patreon 创作者
    • 为每个创作者写一个脚本,并使用不同的归档文件:
      • /archive/patreon_creatorA.sqlite3
      • /archive/patreon_creatorB.sqlite3
    • 每个脚本对应一条 crontab 规则,或者合并到一个脚本里依次调用多个 URL。
  • 其他平台(Pixiv、Fanbox 等)
    • config.json 中增加对应站点的配置(Cookie 或 OAuth)。
    • 为每个平台/用户写自己的脚本和归档文件,实现统一的订阅内容归档中心。

注意事项

  1. 遵守平台规则与版权
      • 仅下载自己有权限访问的内容(已登录、已订阅)。
  1. 维护好 Cookie 文件
      • Cookie 有有效期,登录状态失效后需要重新导出并替换 patreon_cookies.txt
      • 避免将 Cookie 文件随意上传到公共仓库或分享给他人。
  1. 合理设置频率与限速
      • 定时频率不宜过高。
      • 可以在配置文件中设置重试、超时和限速参数,提升稳定性。
  1. 备份配置和归档文件
      • config.jsonarchive 目录中的 sqlite 文件非常重要,它们决定了下载行为和“哪些内容已经同步过”。
      • 建议纳入 NAS 的日常备份策略,减少误删或损坏带来的重下成本.
安装wordpress 4.8.1时发生500错误使用FFmpeg批量切割音频(macOS)
Loading...