1
0
mirror of https://github.com/instaloader/instaloader.git synced 2024-08-18 12:49:38 +02:00
instaloader/README.rst
Alexander Graf be8546812a Use reStructuredText as file format for README
rst seems to be cooler than md, and is the only format accepted by pypi,
and is accepted by github as well.

There is an intro to rst at:
http://docutils.sourceforge.net/docs/user/rst/quickref.html
2016-09-19 19:45:15 +02:00

139 lines
3.8 KiB
ReStructuredText

Instaloader
===========
Tool to download pictures (or videos) and captions from Instagram, from
a given set of profiles (even if private), 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>`__.
If you have `pip <https://pypi.python.org/pypi/pip>`__ installed, you
may install instaloader using
::
pip3 install instaloader
Alternatively, you may `download instaloader from
github <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
.. code:: 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
.. code:: 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
.. code:: 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
.. code:: 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:
.. code:: python
instaloader.get_username_by_id(session, followees[0]['id'])