Tool to download Instagram pictures (or videos) and captions from a given set of profiles (even if private), from your feed or from all followees of a given profile.
Project description
Installation
Instaloader is written in Python, thus ensure having Python (at least version 3.5) installed.
If you intend to use this tool under Windows, it is recommended to install win-unicode-console.
If you have pip installed, you may install Instaloader using
pip3 install instaloader
Alternatively, to get the most current version of Instaloader from our Git repository:
pip3 install git+https://github.com/Thammus/instaloader
Instaloader requires requests, which will be installed automatically, if it is not already installed.
How to automatically download pictures from Instagram
To download a set of profiles, do
instaloader profile [profile ...]
where profile is the name of a profile you want to download. Instead of only one profile, you may also specify a list of profiles.
To later update your local copy of that profile, you may run
instaloader --fast-update profile [profile ...]
When --fast-update is given, Instaloader terminates when arriving at the first already-downloaded picture.
Instaloader can also be used to download private profiles. To do so, invoke it with
instaloader --login=your_username profile [profile ...]
When invoked like this, it also stores the session cookies in a file in /tmp, which will be reused later when --login is given. So you can download private profiles non-interactively when you already have a valid session cookie file.
If you want to download all followees of a given profile, call
instaloader --login=your_username @profile
To download all the pictures from your feed which you have liked, call
instaloader --login=your_username :feed-liked
The --quiet option makes it also suitable as a cron job.
To get a list of other helpful flags, run instaloader --help.
Usage as library
You may also use parts of Instaloader as library to do other interesting things.
For example, to get a list of all followers of a profile as well as their follower count, do
import instaloader
# login
session = instaloader.get_logged_in_session(USERNAME)
# get followees
followees = instaloader.get_followees(PROFILE, session)
for f in followees:
print("%i\t%s\t%s" % (f['follower_count'], f['username'], f['full_name']))
Then, you may download all pictures of all followees with
for f in followees:
try:
instaloader.download(f['username'], session)
except instaloader.NonfatalException:
pass
You could also download your last 20 liked pics with
instaloader.download_feed_pics(session, max_count=20, fast_update=True,
filter_func=lambda node: not node["likes"]["viewer_has_liked"])
Each Instagram profile has its own unique ID which stays unmodified even if a user changes his/her username. To get said ID, given the profile’s name, you may call
instaloader.get_id_by_username(PROFILE_NAME)
get_followees() also returns unique IDs for all loaded followees. To get the current username of a profile, given this unique ID get_username_by_id() can be used. For example:
instaloader.get_username_by_id(session, followees[0]['id'])
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.