mikf/gallery-dl

GitHub: mikf/gallery-dl

这是一个功能强大的命令行工具,用于从众多图片托管网站批量下载图库、集合及媒体资源。

Stars: 17752 | Forks: 1410

# gallery-dl *gallery-dl* 是一个命令行程序, 用于从多个图片托管站点 (参见 `Supported Sites `__) 下载图片画廊和集合。 它是一个跨平台工具, 拥有许多 `命令行 `__ 和 `配置 `__ 选项,以及强大的 `文件命名功能 `__。 |pypi| |discord| |build| .. contents:: # 依赖项 - Python_ 3.8+ - 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 keyring 密码 - Psycopg_: PostgreSQL 存档支持 - truststore_: 原生系统证书支持 - Jinja_: Jinja 模板支持 # 安装 ## Pip *gallery-dl* 的稳定版本发布在 PyPI_ 上,可以通过 pip_ 轻松安装或升级: .. code:: bash ``` python3 -m pip install -U gallery-dl ``` 也可以使用 pip_ 直接从 GitHub 安装最新的开发版本: .. code:: bash ``` python3 -m pip install -U --force-reinstall --no-deps https://github.com/mikf/gallery-dl/archive/master.tar.gz ``` 如果尚未安装 Requests_,请省略 :code:`--no-deps`。 注意:Windows 用户应使用 :code:`py -3` 代替 :code:`python3`。 建议使用最新版本的 pip_, 包括必需的软件包 :code:`setuptools` 和 :code:`wheel`。 要确保这些软件包是最新的,请运行 .. code:: bash ``` python3 -m pip install --upgrade pip setuptools wheel ``` ## 独立可执行文件 包含 Python 解释器和 所需 Python 软件包的预构建可执行文件可用于 - `Windows `__ (需要 `Microsoft Visual C++ Redistributable Package (x86) `__) - `Linux `__ ## 每日构建 | 基于最新提交构建的可执行文件可以在 | 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 `__ 拉取镜像: .. code:: bash ``` docker pull mikf123/gallery-dl docker tag mikf123/gallery-dl gallery-dl ``` 从 `GitHub Container Registry `__ 拉取镜像: .. code:: bash ``` docker pull ghcr.io/mikf/gallery-dl docker tag ghcr.io/mikf/gallery-dl gallery-dl ``` 使用 ``dev`` 标签拉取基于最新提交构建的 *Nightly Build* 镜像: .. code:: bash ``` docker pull mikf123/gallery-dl:dev docker pull ghcr.io/mikf/gallery-dl:dev ``` 要运行容器,您可能需要挂载主机上的某些目录,以便配置文件和下载内容在运行之间保持持久。 确保下载仓库中引用的示例配置文件并将其放置在挂载卷位置,或者在那里创建一个空文件。 如果您给容器指定了不同的标签或正在使用 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 的某个位置,作为此命令的垫片。 ## Nix 和 Home Manager 将 *gallery-dl* 添加到您的系统环境: .. code:: nix ``` environment.systemPackages = with pkgs; [ gallery-dl ]; ``` 使用 :code:`nix-shell` .. code:: bash ``` nix-shell -p gallery-dl ``` .. code:: bash ``` nix-shell -p gallery-dl --run "gallery-dl " ``` 对于 Home Manager 用户,您可以声明式地管理 *gallery-dl*: .. code:: nix ``` programs.gallery-dl = { enable = true; settings = { extractor.base-directory = "~/Downloads"; }; }; ``` 或者,如果您不想声明式管理它,只需将其添加到 :code:`home.packages`: .. code:: nix ``` home.packages = with pkgs; [ gallery-dl ]; ``` 进行这些更改后,只需重新构建您的配置并打开一个新的 shell,即可使用 *gallery-dl*。 # 用法 要使用 *gallery-dl*,只需调用它并附带您希望下载图片的 URL: .. code:: bash ``` gallery-dl [OPTIONS]... URLS... ``` 使用 :code:`gallery-dl --help` 或参阅 ``__ 获取所有命令行选项的完整列表。 ## 示例 下载图片;在本例中,通过标签搜索 '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 的文件格式。 ## 文档 所有可用配置选项及其描述的列表 可以在 ``__ 找到。 | 有关可用选项设置为其默认值的默认配置文件,请参阅 ``__。 | 有关包含更复杂设置和选项使用的注释示例, 请参阅 ``__。 ## 位置 *gallery-dl* 在以下位置搜索配置文件: Windows: * ``%APPDATA%\gallery-dl\config.json`` * ``%USERPROFILE%\gallery-dl\config.json`` * ``%USERPROFILE%\gallery-dl.conf`` ``` (``%USERPROFILE%`` usually refers to a user's home directory, i.e. ``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``、 ``idolcomplex``、 ``imgbb``、 ``inkbunny``、 ``mangadex``、 ``mangoxo``、 ``pillowfort``、 ``sankaku``、 ``subscribestar``、 ``tapas``、 ``tsumino`` 和 ``zerochan`` 是可选的。 您可以在您的 `配置文件 `__ 中设置必要的信息 .. code:: json ``` { "extractor": { "subscribestar": { "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 `__ 选项来完成,指定 - | 由浏览器插件导出的 Mozilla/Netscape 格式 cookies.txt 文件的路径 | (例如用于 Chrome 的 `Get cookies.txt LOCALLY `__, 用于 Firefox 的 `Export Cookies `__) - | 从浏览器的 Web 开发者工具中收集的名称-值对列表 | (在 `Chrome `__ 中, 在 `Firefox `__ 中) - | 用于从中提取 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/ ``` .. _Python: https://www.python.org/downloads/ .. _PyPI: https://pypi.org/ .. _pip: https://pip.pypa.io/en/stable/ .. _Requests: https://requests.readthedocs.io/en/latest/ .. _FFmpeg: https://www.ffmpeg.org/ .. _mkvmerge: https://www.matroska.org/downloads/mkvtoolnix.html .. _yt-dlp: https://github.com/yt-dlp/yt-dlp .. _youtube-dl: https://ytdl-org.github.io/youtube-dl/ .. _PySocks: https://pypi.org/project/PySocks/ .. _brotli: https://github.com/google/brotli .. _brotlicffi: https://github.com/python-hyper/brotlicffi .. _zstandard: https://github.com/indygreg/python-zstandard .. _PyYAML: https://pyyaml.org/ .. _toml: https://pypi.org/project/toml/ .. _SecretStorage: https://pypi.org/project/SecretStorage/ .. _Psycopg: https://www.psycopg.org/ .. _truststore: https://truststore.readthedocs.io/en/latest/ .. _Jinja: https://jinja.palletsprojects.com/ .. _Snapd: https://docs.snapcraft.io/installing-snapd .. _OAuth: https://en.wikipedia.org/wiki/OAuth .. _Chocolatey: https://chocolatey.org/install .. _Scoop: https://scoop.sh/ .. |pypi| image:: https://img.shields.io/pypi/v/gallery-dl?logo=pypi&label=PyPI :: https://pypi.org/project/gallery-dl/ .. |build| image:: https://github.com/mikf/gallery-dl/actions/workflows/tests.yml/badge.svg :target: https://github.com/mikf/gallery-dl/actions .. |gitter| image:: https://badges.gitter.im/gallery-dl/main.svg :target: https://gitter.im/gallery-dl/main .. |discord| image:: https://img.shields.io/discord/1067148002722062416?logo=discord&label=Discord&color=blue :target: https://discord.gg/rSzQwRvGnE
标签:BeEF, collections, FFmpeg, galleries, Python, yt-dlp, 代理支持, 告警, 图床, 图片下载, 媒体下载, 字符串匹配, 工具, 开源, 恶意代码分析, 批量下载, 数据提取, 无后门, 爬虫, 视频下载, 逆向工具, 配置文件