gallery-dl:命令行图片批量下载工具

0 阅读3分钟

gallery-dl:命令行图片批量下载工具

正文顶部截图

README区域截图

图片站点的批量下载一直是常见需求。手动保存效率低,浏览器插件又常常受限于站点规则。gallery-dl 提供了一条命令行路径,专门用于从多个图片托管站点下载图库和合集。

这个项目由 mikf 维护,目前在 GitHub 上获得约 18,485 个 star。它的定位很明确:一个跨平台的命令行程序,用 Python 写成,核心依赖只有 Python 3.8 以上和 Requests。用户通过终端输入 URL,即可启动下载流程。

gallery-dl 的核心能力是 extractor 体系。项目维护了一份支持站点列表,覆盖了大量主流及小众图片站点。每个 extractor 负责解析特定站点的页面结构,提取图片或视频的真实地址,并按规则保存到本地。用户不需要自己分析网页源码,也无需处理反爬逻辑。

除了批量下载,gallery-dl 还提供了细粒度的文件命名与目录组织功能。用户可以基于元数据定义输出路径,例如按作者、标签、日期等维度分类。配置采用 JSON 格式,存放位置按操作系统区分,Windows 下默认在 APPDATA 或用户目录,Linux 和 macOS 下则在 /etc 或 XDG_CONFIG_HOME 中。

安装方式比较齐全。最常规的是通过 pip 安装稳定版:

python -m pip install -U gallery-dl

Windows 用户建议用 py 代替 python。项目也提供了独立可执行文件,分别对应 Windows 和 Linux。此外还有 Snap、Chocolatey、Scoop、Homebrew、MacPorts、Docker 和 Nix 等多种分发渠道。对于想使用最新功能的用户,可以从 Codeberg 主仓库直接安装开发版。

基本用法很直接:

gallery-dl [OPTIONS]... URLS...

用户把目标页面链接作为参数传入即可。项目文档中给出了多个示例,包括按标签搜索下载、按章节过滤漫画、使用指定 extractor 处理非标准地址等。这些示例覆盖了大部分日常场景。

对于需要登录的站点,gallery-dl 支持三种认证方式。用户名和密码可直接写在配置文件里,也能通过命令行参数临时传入。遇到验证码等无法自动登录的情况,可以导入浏览器的 cookies。部分站点还支持 OAuth 授权,例如 Pixiv、DeviantArt、Flickr、Reddit 等。

配置文件的灵活性是另一个特点。用户可以为不同站点分别设置参数,比如指定 base directory、命名模板、代理、下载范围等。多个配置文件同时存在时会按加载顺序合并,后加载的值覆盖前者。项目仓库中提供了完整的示例配置,新手可以直接复制后按需修改。

值得一提的是,gallery-dl 还支持一些可选依赖来扩展功能。例如配合 yt-dlp 处理 HLS 或 DASH 视频,配合 FFmpeg 转换 Pixiv Ugoira 动图,配合 PySocks 使用 SOCKS 代理等。这些依赖按需安装即可,不影响核心功能运行。

需要注意的是,项目的主要开发已经迁移到 Codeberg。GitHub 仓库目前更多作为镜像存在。如果用户想跟踪最新提交或参与贡献,应关注 Codeberg 上的主仓库。

gallery-dl 适合需要定期从图片站点归档资料的用户。它不依赖图形界面,适合放在脚本或定时任务中执行。对于熟悉命令行的人来说,它的学习曲线较短,功能边界也足够清晰。

如果你正在寻找一个稳定、可配置、支持站点广泛的图片下载工具,gallery-dl 是一个值得加入工具箱的选项。