1
0
mirror of https://github.com/instaloader/instaloader.git synced 2024-07-15 07:19:13 +02:00
Go to file
2016-09-22 19:04:25 +02:00
.gitignore Have setuptools setup.py for serious distribution 2016-09-18 14:43:12 +02:00
.travis.yml Globally disable pylint too-many-arguments warning 2016-09-18 15:43:24 +02:00
instaloader.py Implemented feature: store geotags/locations 2016-09-22 18:28:13 +02:00
LICENSE add LICENSE and README.md 2016-07-28 17:24:38 +02:00
README.rst Minimal updated description 2016-09-22 19:02:26 +02:00
setup.py Release of version 1.2 2016-09-22 19:04:25 +02:00

Instaloader
===========


Installation
------------

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 recommended
to 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:

::

    python3 setup.py install [--user]

(pass ``--user`` to install it for your user only instead of globally)

instaloader requires
`requests <https://pypi.python.org/pypi/requests>`__, which
will be installed automatically by setup.py, if 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, 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 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

.. 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'])