mirror of
https://github.com/instaloader/instaloader.git
synced 2024-10-27 05:32:30 +01:00
104 lines
3.4 KiB
Markdown
104 lines
3.4 KiB
Markdown
# instaloader
|
|
|
|
Tool to download pictures (or videos) and captions from Instagram, from a given set
|
|
of profiles, from your feed or from all followees of a given profile.
|
|
|
|
## Usage
|
|
|
|
instaloader is written in Python, thus ensure having
|
|
[Python](https://www.python.org/) (at least version 3.3) installed.
|
|
|
|
If you intend to use this tool under Windows, it is highly recommended to first install
|
|
[win-unicode-console](https://pypi.python.org/pypi/win_unicode_console).
|
|
|
|
After having [downloaded instaloader](https://github.com/Thammus/instaloader/releases), unzip it and
|
|
invoke bundled `setup.py` (requiring [setuptools](https://pypi.python.org/pypi/setuptools)) to
|
|
install it:
|
|
```
|
|
./setup.py install [--user]
|
|
```
|
|
(pass `--user` to install it for your user only instead of globally)
|
|
instaloader requires [python3-requests](https://pypi.python.org/pypi/requests/), which will be
|
|
installed automatically by setup.py, if not already installed.
|
|
|
|
Now, 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, instaloder 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 cookies file.
|
|
|
|
If you want to **download all followees of a given profile**, call
|
|
```
|
|
instaloader --login=your_username @profile
|
|
```
|
|
|
|
To **download all the pictures 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
|
|
```python
|
|
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
|
|
```python
|
|
for f in followees:
|
|
try:
|
|
instaloader.download(f['username'], session)
|
|
except instaloader.NonfatalException:
|
|
pass
|
|
```
|
|
|
|
You could also download your last 20 liked pics with
|
|
```python
|
|
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
|
|
```python
|
|
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:
|
|
```python
|
|
instaloader.get_username_by_id(session, followees[0]['id'])
|
|
```
|