========== gallery-dl
gallery-dl 是一个命令行程序,用于从多个图片托管网站下载图片库和集合(参见支持的网站<docs/supportedsites.md>
__)。它是一个跨平台工具,具有许多配置选项<https://gdl-org.github.io/docs/configuration.html>
和强大的文件命名功能<https://gdl-org.github.io/docs/formatting.html>
。
|pypi| |build|
.. 目录::
依赖项
- Python_ 3.4+
- Requests_
可选
- yt-dlp_ 或 youtube-dl_: HLS/DASH 视频下载,
ytdl
集成 - FFmpeg_: Pixiv Ugoira 转换
- mkvmerge_: 准确的 Ugoira 帧时间码
- PySocks_: SOCKS 代理支持
- brotli_ 或 brotlicffi_: Brotli 压缩支持
- zstandard_: Zstandard 压缩支持
- PyYAML_: YAML 配置文件支持
- toml_: Python<3.11 的 TOML 配置文件支持
- SecretStorage_:
--cookies-from-browser
的 GNOME 密钥环密码
安装
Pip
gallery-dl 的稳定版本在 PyPI_ 上分发,可以使用 pip_ 轻松安装或升级:
.. code:: bash
python3 -m pip install -U gallery-dl
也可以使用 pip_ 直接从 GitHub 安装最新的开发版本:
.. code:: bash
python3 -m pip install -U -I --no-deps --no-cache-dir https://github.com/mikf/gallery-dl/archive/master.tar.gz
注意:Windows 用户应使用 :code:py -3
替代 :code:python3
。
建议使用最新版本的 pip_,包括基本包 :code:setuptools
和 :code:wheel
。
要确保这些包是最新的,请运行
.. code:: bash
python3 -m pip install --upgrade pip setuptools wheel
独立可执行文件
预构建的可执行文件(包含 Python 解释器和所需的 Python 包)可用于:
Windows <https://github.com/mikf/gallery-dl/releases/download/v1.27.3/gallery-dl.exe>
__ (需要Microsoft Visual C++ 可再发行包(x86)<https://aka.ms/vs/17/release/vc_redist.x86.exe>
__)Linux <https://github.com/mikf/gallery-dl/releases/download/v1.27.3/gallery-dl.bin>
__
每日构建
| 从最新提交构建的可执行文件可在以下位置找到 | https://github.com/gdl-org/builds/releases
Snap
使用支持 Snapd_ 的 Linux 发行版的用户可以从 Snap Store 安装 gallery-dl:
.. code:: bash
snap install gallery-dl
Chocolatey
安装了 Chocolatey_ 的 Windows 用户可以从 Chocolatey Community Packages 存储库安装 gallery-dl:
.. code:: powershell
choco install gallery-dl
Scoop
gallery-dl 也可以通过 Scoop_ "main" bucket 为 Windows 用户使用:
.. code:: powershell
scoop install gallery-dl
Homebrew
对于使用 Homebrew 的 macOS 或 Linux 用户:
.. code:: bash
brew install gallery-dl
MacPorts
对于使用 MacPorts 的 macOS 用户:
.. code:: bash
sudo port install gallery-dl
Docker
使用仓库中的 Dockerfile:
.. code:: bash
git clone https://github.com/mikf/gallery-dl.git
cd gallery-dl/
docker build -t gallery-dl:latest .
从 Docker Hub <https://hub.docker.com/r/mikf123/gallery-dl>
__ 拉取镜像:
.. code:: bash
docker pull mikf123/gallery-dl
docker tag mikf123/gallery-dl gallery-dl
从 GitHub Container Registry <https://github.com/mikf/gallery-dl/pkgs/container/gallery-dl>
__ 拉取镜像:
.. code:: bash
docker pull ghcr.io/mikf/gallery-dl
docker tag ghcr.io/mikf/gallery-dl gallery-dl
要运行容器,您可能需要挂载主机上的一些目录,以便配置文件和下载内容可以在多次运行之间保持。
确保下载仓库中引用的示例配置文件并将其放置在挂载卷的位置,或在那里创建一个空文件。
如果您给容器一个不同的标签或使用 podman,请确保进行相应调整。运行 docker image ls
检查名称(如果不确定)。
这将在每次使用后删除容器,因此您始终有一个全新的环境来运行。如果您设置了 ci-cd 管道来自动构建容器,还可以添加 --pull=newer
标志,这样当您运行时,docker 会检查是否有更新的容器并在运行之前下载它。
.. code:: bash
docker run --rm -v $HOME/Downloads/:/gallery-dl/ -v $HOME/.config/gallery-dl/gallery-dl.conf:/etc/gallery-dl.conf -it gallery-dl:latest
您还可以为 "gallery-dl" 添加一个别名到您的 shell 中,或创建一个简单的 bash 脚本并将其放在 $PATH 中的某个位置,作为此命令的包装器。
使用方法
要使用 gallery-dl,只需使用您希望下载图片的 URL 调用它:
.. code:: bash
gallery-dl [选项]... URL...
使用 :code:gallery-dl --help
或查看 <docs/options.md>
__
获取所有命令行选项的完整列表。
示例
下载图片;在本例中,通过标签搜索 'bonocho' 从 danbooru 下载:
.. code:: bash
gallery-dl "https://danbooru.donmai.us/posts?tags=bonocho"
从支持用户名和密码认证的网站获取图片的直接 URL:
.. code:: bash
gallery-dl -g -u "<用户名>" -p "<密码>" "https://twitter.com/i/web/status/604341487988576256"
按章节号和语言过滤漫画章节:
.. code:: bash
gallery-dl --chapter-filter "10 <= chapter < 20" -o "lang=fr" "https://mangadex.org/title/59793dd0-a2d8-41a2-9758-8197287a8539"
| 在远程资源中搜索 URL 并从中下载图片: | (找不到提取器的 URL 将被静默忽略)
.. code:: bash
gallery-dl "r:https://pastebin.com/raw/FLwrCYsT"
如果网站的地址对其提取器来说是非标准的,您可以在 URL 前加上提取器的名称,以强制使用特定的提取器:
.. code:: bash
gallery-dl "tumblr:https://sometumblrblog.example"
配置
gallery-dl 的配置文件使用基于 JSON 的文件格式。
文档
所有可用配置选项及其描述的列表
可以在 <https://gdl-org.github.io/docs/configuration.html>
__ 找到。
| 有关默认配置文件(包含设置为默认值的可用选项),
请参见 <docs/gallery-dl.conf>
__。
| 有关更多涉及设置和选项使用的注释示例,
请参见 <docs/gallery-dl-example.conf>
__。
位置
gallery-dl 在以下位置搜索配置文件:
Windows:
* %APPDATA%\gallery-dl\config.json
* %USERPROFILE%\gallery-dl\config.json
* %USERPROFILE%\gallery-dl.conf
(``%USERPROFILE%`` 通常指用户的主目录,
即 ``C:\Users\<用户名>\``)
Linux, macOS 等:
* /etc/gallery-dl.conf
* ${XDG_CONFIG_HOME}/gallery-dl/config.json
* ${HOME}/.config/gallery-dl/config.json
* ${HOME}/.gallery-dl.conf
当作为可执行文件<独立可执行文件_>
__运行时,
gallery-dl 还会在与该可执行文件相同的目录中查找 gallery-dl.conf
文件。
可以同时使用多个配置文件。 在这种情况下,第一个文件之后的任何值都将合并到已加载的设置中,并可能覆盖之前的值。
认证
用户名和密码
某些提取器要求您提供有效的登录凭据,即用户名和密码对。这对于
nijie
是必需的,对于
aryion
,
danbooru
,
e621
,
exhentai
,
idolcomplex
,
imgbb
,
inkbunny
,
mangadex
,
mangoxo
,
pillowfort
,
sankaku
,
subscribestar
,
tapas
,
tsumino
,
twitter
,
和 zerochan
是可选的。
您可以在配置文件<配置_>
__中设置必要的信息
.. code:: json
{
"extractor": {
"twitter": {
"username": "<用户名>",
"password": "<密码>"
}
}
}
或者您可以直接通过
:code:-u/--username
和 :code:-p/--password
或
:code:-o/--option
命令行选项提供它们
.. code:: bash
gallery-dl -u "<用户名>" -p "<密码>" "URL"
gallery-dl -o "username=<用户名>" -o "password=<密码>" "URL"
Cookies
对于由于 CAPTCHA 或类似原因而无法使用用户名和密码登录,或尚未实现登录功能的网站,您可以使用浏览器登录会话的 cookies 并将其输入到 gallery-dl 中。
这可以通过在配置文件中使用 cookies <https://gdl-org.github.io/docs/configuration.html#extractor-cookies>
__ 选项来实现,具体方法如下:
-
指定由浏览器插件导出的 Mozilla/Netscape 格式的 cookies.txt 文件路径 (例如 Chrome 浏览器的
Get cookies.txt LOCALLY <https://chrome.google.com/webstore/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc>
, Firefox 浏览器的Export Cookies <https://addons.mozilla.org/en-US/firefox/addon/export-cookies-txt/>
) -
从浏览器的开发者工具中收集的名称-值对列表 (在
Chrome <https://developers.google.com/web/tools/chrome-devtools/storage/cookies>
__ 中, 在Firefox <https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector>
__ 中) -
指定要提取 cookies 的浏览器名称 (支持基于 Chromium 的浏览器、Firefox 和 Safari)
例如:
.. code:: json
{
"extractor": {
"instagram": {
"cookies": "$HOME/path/to/cookies.txt"
},
"patreon": {
"cookies": {
"session_id": "K1T57EKu19TR49C51CDjOJoXNQLF7VbdVOiBrC9ye0a"
}
},
"twitter": {
"cookies": ["firefox"]
}
}
}
你也可以使用 :code:--cookies
命令行选项指定 cookies.txt 文件,
或使用 :code:--cookies-from-browser
指定从哪个浏览器提取 cookies:
.. code:: bash
gallery-dl --cookies "$HOME/path/to/cookies.txt" "URL"
gallery-dl --cookies-from-browser firefox "URL"
OAuth
gallery-dl 支持某些提取器通过 OAuth_ 进行用户身份验证。
这对于 pixiv
是必需的,
对于 deviantart
、flickr
、reddit
、smugmug
、tumblr
和 mastodon
实例是可选的。
将你的账户链接到 gallery-dl 授予它代表你的账户发出请求的能力, 使其能够访问公共用户无法获取的资源。
要进行链接,首先使用 oauth:<网站名称>
作为参数启动它。
例如:
.. code:: bash
gallery-dl oauth:flickr
你将被引导到网站的授权页面,并被要求授予 gallery-dl 读取权限。 授权后,你将看到一个或多个"令牌",应将其添加到你的配置文件中。
要与 mastodon
实例进行身份验证,请使用 oauth:mastodon:<实例>
作为参数运行 gallery-dl。
例如:
.. code:: bash
gallery-dl oauth:mastodon:pawoo.net
gallery-dl oauth:mastodon:https://mastodon.social/