利用gallery-dl命令行工具一键下载各大网站照片
黄师傅甜品屋
编辑于 2023年07月14日 23:38

主要还是嫌ins下图太麻烦了

gallery-dl工具简单介绍by小众软件:https://www.appinn.com/gallery-dl/

gallery-dl工具Github页面:https://github.com/mikf/gallery-dl

效果展示:

Twitter

Instagram

weibo

环境配置:

如果你有已经设置好的python环境的话,很简单:

代码块
JavaScript
自动换行
复制代码
python3 -m pip install -U gallery-dl
复制成功

如果你没有python环境,还是Windows的话,很简单,作者已经打包好一个包含Python在内的执行程序:https://github.com/mikf/gallery-dl/releases/download/v1.25.7/gallery-dl.exe(需要  Microsoft Visual C++ Redistributable Package (x86)(下载:https://aka.ms/vs/17/release/vc_redist.x86.exe)),下好之后找个位置保存,并且将其所在路径添加到环境变量里。

想测试有没有顺利安装,运行

代码块
JavaScript
自动换行
复制代码
gallery-dl --version
复制成功

其他系统安装方式见:https://github.com/mikf/gallery-dl#id7

修改配置文件

我一开始的目的是下载推特或者ins上的照片,推特姑且算是有比较全面的下载插件,比如Twitter Media Downloader(https://chrome.google.com/webstore/detail/cblpjenafgeohmnjknfhpdbdljfkndig)。

但ins我找不到一个很稳定而且可以一键下载一个帖子内所有照片的插件/工具,所以才想到了利用命令行工具,而正好前段时间小众软件推荐了gallery-dl,尝试设置了一下,目前体验可以说是极佳。

首先修改配置文件,官方文档里说的修改配置文件的方法(机翻):

gallery-dl 在以下位置搜索配置文件: Windows:  (  通常指用户的主目录,即  ) 当作为可执行文件运行时,gallery-dl 还将在与所述可执行文件相同的目录中查找 gallery-dl.conf 文件。

根据假设我的用户目录是C:\Users\admin,那么在这个文件夹下面建立一个名为gallery-dl的文件夹,并且新建一个文本文档,重命名为config.json(扩展名也要改),或者在用户目录下直接新建一个名为gallery-dl.conf的配置文件。

先丢一个我现在在用的配置文件内容:

代码块
JavaScript
自动换行
复制代码
{
    "extractor": {
        "base-directory": "H:/MyFiles/Download/gallery-dl",
        "twitter": {
            "proxy": "127.0.0.1:7890",
            "base-directory": "H:/虹咲/声优个人相关/twi-download/",
            "cookies": "G:/ConfigBackup/cookie/cookie-twi.txt"
        },
        "weibo":
        {
            "headers.Referer": "https://weibo.com/",
            "livephoto": true,
            "retweets": true,
            "videos": true
        },
        "unsplash":
        {
            "format": "raw"
        },
        "instagram": {
            "proxy": "127.0.0.1:7890",
            "base-directory": "H:/虹咲/声优个人相关/ins-download/",
            "cookies": "G:/ConfigBackup/cookie/cookie-ins.txt"
        }
    }
}
复制成功

gallery-dl支持用帐密登录来通过验证,但问题在于帐密验证要输入明文的账户密码,安全性很差而且我经常忘掉账户密码,gallery-dl虽然也支持从浏览器中直接导入cookie,但不知为何我好几次都没成功,所以从成功率和泛用性的角度来看我比较推荐用导出cookie文件来进行验证。

在chrome里安装Get cookies.txt LOCALLY插件(https://chrome.google.com/webstore/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc)

Firefox用户可以用https://addons.mozilla.org/en-US/firefox/addon/export-cookies-txt/。

安装完毕之后,来到你想要下载图片的网站,选择导出该网站的cookie,并且导出文本文件。

cookie支持Mozilla/Netscape格式

保存好cookie文件之后,如果你是win11,直接ctrl+shift+c复制文件路径,更改到我上面的范例中,对应网站cookie值的后面。

以及代理,如果你没有开全局代理,给推特和ins各自设置一个单独代理的方式就如同我上述范例里设置的那样就行,记得根据你自己的代理应用更改对应的端口号。

而微博有防盗链设计也不需要挂代理,按照我上面写的那样设置就可以直接下载了。

最上面一行的保存路径是gallery-dl的默认保存路径,但Twitter的保存路径和ins的保存路径我是单独设置的(为了整理起来方便),也就是说"base-directory&#​34;这一行只要放在对应的网站内部就可以单独设置保存路径了。

配置文件这样设置之后,下载这几个经过设置的网站的图片只需要输入

代码块
JavaScript
自动换行
复制代码
gallery-dl <URL>
复制成功

这个url是单独的帖子也行,是用户页面也行,自动识别,一键下载,还会根据用户名不同放进不同的文件夹里。

最后还有一个比较常用的网站大概是Pixiv。

Pixiv我用的是Powerful Pixiv Downloader(https://github.com/xuejianxianzun/PixivBatchDownloader),而且平时需求不大,如果想用的话,包括其它网站在内配置文件的修改方法可以查看:

readme文档(英文):https://github.com/mikf/gallery-dl#id18

配置文件范例(英文):https://github.com/mikf/gallery-dl/blob/master/docs/gallery-dl.conf 

配置文件说明(英文):https://github.com/mikf/gallery-dl/blob/master/docs/configuration.rst