这篇文章上次修改于 686 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

一直在使用 telegram bot 来下载 YouTube 或 twitter 视频,很方便快捷。

关于配置自己的 bot 参考之前的文章:https://blog.niekun.net/archives/428.html

我的应用于 telegram bot 的 YouTube 下载器源码地址:https://github.com/nie11kun/telegram-bot-youtube-downloader

最近想给我的 telegram bot 添加 Instagram 图片的下载功能,但是 youtube-dl 并不支持 Instagram。查询了下发现了 instaloader 这个开源软件可以完美实现我想要的功能。

instaloader 官网:https://instaloader.github.io/

GitHub:https://github.com/instaloader/instaloader

安装

instaloader 需要 python 3.5 以上。推荐直接安装最新版 python。

使用 pip3 安装:

pip3 install instaloader --upgrade

注意必须通过 pip3 而不是 pip 安装,否则使用中会报错。

使用

安装完成后就可以使用 instaloader 命令来下载了。注意如果 python 安装到了自定义目录,如 /opt 则需要手动链接 instaloader 可执行程序到 /usr/local/bin 目录。

下载 post

如果要下载一个 post 中的图片,提取链接中的 shortcode 来下载,如下是一个 Instagram post 的链接:https://www.instagram.com/p/CMcMZycLpbS/?utm_source=ig_web_copy_link,其中的 CMcMZycLpbS 就是 shortcode 代码。

需要通过 -shortcode 参数来下载对应的图片,且需要通过 -- 告诉 instaloader 不要将 -shortcode 作为 option 对待,如:

instaloader -- -CMcMZycLpbS

关于命令中的特殊字符处理参考:https://blog.niekun.net/archives/2204.html

默认会下载到当前目录下,并新建文件夹 -shortcode,媒体文件及相关文本文件就在其中,注意到文件夹是以特殊字符 - 开头的,所以访问目录需要加上 --,如:

cd -- -CMcMZycLpbS

自定义下载目录

通过 --dirname-pattern 参数可以指定下载目录,如:

instaloader --dirname-pattern=/tmp/test -- -CMcMZycLpbS

就会将对应 post 的媒体下载到 /tmp/test 目录内。

instaloader 的功能很强大,可以下载一个用户的所有发布内容,可以下载一个 #hashtag 标签的所有内容等。具体可以参考官方文档:https://instaloader.github.io/basic-usage.html#download-pictures-from-instagram

我将 instaloader 加入了 telegram bot 中,可以很方便的下载一个 post 的媒体内容,有兴趣的可以查看:https://github.com/nie11kun/telegram-bot-youtube-downloader