diff --git a/README.md b/README.md deleted file mode 100644 index 781c779..0000000 --- a/README.md +++ /dev/null @@ -1,110 +0,0 @@ -# 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 -```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']) -``` diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..f256627 --- /dev/null +++ b/README.rst @@ -0,0 +1,138 @@ +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 `__ (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 `__. + +If you have `pip `__ installed, you +may install instaloader using + +:: + + pip3 install instaloader + +Alternatively, you may `download instaloader from +github `__, unzip it +and invoke bundled ``setup.py`` (requiring +`setuptools `__) to install it: + +:: + + ./setup.py install [--user] + +(pass ``--user`` to install it for your user only instead of globally) + +instaloader requires +`python3-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']) diff --git a/setup.py b/setup.py index 7a356eb..cceb492 100755 --- a/setup.py +++ b/setup.py @@ -17,6 +17,7 @@ setup( description='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.', + long_description=open('README.rst').read(), install_requires=['requests>=2.4'], python_requires='>=3.3', entry_points={'console_scripts': ['instaloader=instaloader:main']},