/InstaLooter

Another API-less Instagram pictures and videos downloader.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

InstaLooter starme

Not all treasure's silver and gold, mate.

build repo versions format coverage doc grade license keepachangelog saythanks

InstaLooter is a program that can download any picture or video associated from an Instagram profile, without any API access. It can be seen as a re-implementation of the now deprecated InstaRaider developed by @akurtovic.

v1.0.0 was completely rewrote from scratch, and as such, will probably break compatibility with your homemade scripts. Meanwhile, great care was taken to keep the CLI as consistent as possible with the previous versions, so it'll hopefully feel like home.

Requirements

coloredlogs

Colored output

PyPI coloredlogs Source coloredlogs License coloredlogs
dateutil

Date manipulation

PyPI dateutil Source dateutil License dateutil
docopt

CLI arguments parsing

PyPI docopt Source docopt License docopt
fs

Filesystem handling

PyPI fs Source fs License fs
fake-useragent

Fake HTTP user agents

PyPI fakeua Source fakeua License fakeua
requests

HTTP handling

PyPI requests Source requests License requests
six

Python 2/3 compatibility

PyPI six Source six License six
tenacity

Retry until success

PyPI tenacity Source tenacity License tenacity
tqdm

Dynamic output in CLI

PyPI tqdm Source tqdm License tqdm
verboselogs

More detailed logs

PyPI verboselogs Source verboselogs License verboselogs

Installation

InstaLooter is available on PyPI to install with pip. If you are not familiar with the package management of the Python ecosystem, please see the Installation page of the documentation. Yet, you will probably end up using the following command:

pip install --user instalooter --pre

Usage

instalooter comes with its CLI:

$ instalooter user <username> [<directory>] [options]
$ instalooter hashtag <hashtag> [<directory>] [options]
$ instalooter post <post_token> [<directory>] [options]
$ instalooter batch [<batch_file>]

See instalooter --usage for all possible uses, or instalooter --help for a complete usage guide.

Logging in and out

There are two ways to login on Instagram through instalooter:

  • use the login subcommand (instalooter login) to interactively login using your username and password.
  • give a --username (and, if you want, a --password) argument to any of the download commands.

In both cases, a session cookie will be created in a cache-specific folder. To delete it and close your session on the server, use the logout subcommand.

Examples

Download all pictures from the instagram profile in the current directory:

$ instalooter user instagram

Download the latest 20 pictures or videos tagged with python to /tmp:

$ instalooter hashtag python /tmp -n 20 -v -c MYLOGIN

Download a single post from an url in the ~/Pictures directory:

$ instalooter post "https://www.instagram.com/p/BFB6znLg5s1/" ~/Pictures

Use a configuration file to download from several account using custom parameters (see Batch mode):

$ instalooter batch /path/to/a/config/file.ini

See more on the Usage page of the online documentation.