{"id":15026216,"url":"https://github.com/althonos/instalooter","last_synced_at":"2025-05-14T16:12:59.804Z","repository":{"id":38257345,"uuid":"74402340","full_name":"althonos/InstaLooter","owner":"althonos","description":"Another API-less Instagram pictures and videos downloader.","archived":false,"fork":false,"pushed_at":"2023-01-06T04:04:41.000Z","size":912,"stargazers_count":2045,"open_issues_count":131,"forks_count":257,"subscribers_count":75,"default_branch":"master","last_synced_at":"2025-04-13T01:59:58.055Z","etag":null,"topics":["cross-platform","downloader","instagram","instagram-scraper","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/althonos.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-21T20:19:50.000Z","updated_at":"2025-04-07T01:49:26.000Z","dependencies_parsed_at":"2023-02-05T06:46:49.445Z","dependency_job_id":null,"html_url":"https://github.com/althonos/InstaLooter","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althonos%2FInstaLooter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althonos%2FInstaLooter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althonos%2FInstaLooter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althonos%2FInstaLooter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/althonos","download_url":"https://codeload.github.com/althonos/InstaLooter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654046,"owners_count":21140235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","downloader","instagram","instagram-scraper","python"],"created_at":"2024-09-24T20:04:04.774Z","updated_at":"2025-04-13T02:00:04.045Z","avatar_url":"https://github.com/althonos.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"InstaLooter |starme|\n====================\n\n.. |starme| image:: https://img.shields.io/github/stars/althonos/InstaLooter.svg?style=social\u0026label=Star\n   :target: https://github.com/althonos/InstaLooter\n\n*Not all treasure's silver and gold, mate.*\n\n|build| |repo| |versions| |format| |coverage| |doc| |grade| |license|\n|keepachangelog| |saythanks|\n\n\n.. |build| image:: https://img.shields.io/travis/althonos/InstaLooter/master.svg?label=travis-ci\u0026style=flat-square\n   :target: https://travis-ci.org/althonos/InstaLooter/\n\n.. |repo| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/althonos/InstaLooter\n\n.. |versions| image:: https://img.shields.io/pypi/v/instalooter.svg?style=flat-square\n   :target: https://pypi.org/project/instalooter\n\n.. |format| image:: https://img.shields.io/pypi/format/instalooter.svg?style=flat-square\n   :target: https://pypi.org/project/instalooter\n\n.. |grade| image:: https://img.shields.io/codacy/grade/9b8c7da6887c4195b9e960cb04b59a91/master.svg?style=flat-square\n   :target: https://www.codacy.com/app/althonos/InstaLooter/dashboard\n\n.. |coverage| image:: https://img.shields.io/codecov/c/github/althonos/InstaLooter/master.svg?style=flat-square\n   :target: https://codecov.io/gh/althonos/InstaLooter\n\n.. |doc| image:: https://img.shields.io/readthedocs/instalooter.svg?style=flat-square\n   :target: http://instalooter.readthedocs.io/en/stable/?badge=stable\n\n.. .. |requirements| image:: https://img.shields.io/requires/github/althonos/InstaLooter/master.svg?style=flat-square\n..    :target: https://requires.io/github/althonos/InstaLooter/requirements/?branch=master\n\n.. .. |health| image:: https://landscape.io/github/althonos/InstaLooter/master/landscape.svg?style=flat-square\n..    :target: https://landscape.io/github/althonos/InstaLooter/master\n\n.. |license| image:: https://img.shields.io/pypi/l/instalooter.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/gpl-3.0/\n\n.. |keepachangelog| image:: https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=86400\u0026style=flat-square\n   :target: http://keepachangelog.com/\n\n.. |saythanks| image:: https://img.shields.io/badge/say-thanks!-1EAEDB.svg?maxAge=86400\u0026style=flat-square\n   :target: https://saythanks.io/to/althonos\n\n\nInstaLooter is a program that can download any picture or video associated\nfrom an Instagram profile, without any API access. It can be seen as a\nre-implementation of the now deprecated `InstaRaider \u003chttps://github.com/akurtovic/InstaRaider\u003e`_\ndeveloped by `@akurtovic \u003chttps://github.com/akurtovic\u003e`_.\n\n``v1.0.0`` *was completely rewrote from scratch, and as such, will\nprobably break compatibility with your homemade scripts. Meanwhile, great care\nwas taken to keep the CLI as consistent as possible with the previous versions,\nso it'll hopefully feel like home.*\n\n\nRequirements\n------------\n\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **coloredlogs**    |  Colored output            | |PyPI coloredlogs|   | |Source coloredlogs|   | |License coloredlogs|   |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **dateutil**       |  Date manipulation         | |PyPI dateutil|      | |Source dateutil|      | |License dateutil|      |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **docopt**         |  CLI arguments parsing     | |PyPI docopt|        | |Source docopt|        | |License docopt|        |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **fs**             |  Filesystem handling       | |PyPI fs|            | |Source fs|            | |License fs|            |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **requests**       |  HTTP handling             | |PyPI requests|      | |Source requests|      | |License requests|      |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **six**            |  Python 2/3 compatibility  | |PyPI six|           | |Source six|           | |License six|           |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **tenacity**       |  Retry until success       | |PyPI tenacity|      | |Source tenacity|      | |License tenacity|      |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **tqdm**           |  Dynamic output in CLI     | |PyPI tqdm|          | |Source tqdm|          | |License tqdm|          |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n| **verboselogs**    |  More detailed logs        | |PyPI verboselogs|   | |Source verboselogs|   | |License verboselogs|   |\n+--------------------+----------------------------+----------------------+------------------------+-------------------------+\n\n\n.. |PyPI coloredlogs| image:: https://img.shields.io/pypi/v/coloredlogs.svg?style=flat-square\n   :target: https://pypi.org/project/coloredlogs\n\n.. |PyPI dateutil| image:: https://img.shields.io/pypi/v/python-dateutil.svg?style=flat-square\n   :target: https://pypi.org/project/python-dateutil/\n\n.. |PyPI docopt| image:: https://img.shields.io/pypi/v/docopt.svg?style=flat-square\n   :target: https://pypi.org/project/docopt/\n\n.. |PyPI fs| image:: https://img.shields.io/pypi/v/fs.svg?style=flat-square\n   :target: https://pypi.org/project/fs/\n\n.. |PyPI fakeua| image:: https://img.shields.io/pypi/v/fake-useragent.svg?style=flat-square\n   :target: https://pypi.org/project/fake-useragent/\n\n.. |PyPI requests| image:: https://img.shields.io/pypi/v/requests.svg?style=flat-square\n   :target: https://pypi.org/project/requests\n\n.. |PyPI six| image:: https://img.shields.io/pypi/v/six.svg?style=flat-square\n   :target: https://pypi.org/project/six\n\n.. |PyPI tenacity| image:: https://img.shields.io/pypi/v/tenacity.svg?style=flat-square\n   :target: https://pypi.org/project/tenacity\n\n.. |PyPI tqdm| image:: https://img.shields.io/pypi/v/tqdm.svg?style=flat-square\n   :target: https://pypi.org/project/tqdm\n\n.. |PyPI verboselogs| image:: https://img.shields.io/pypi/v/verboselogs.svg?style=flat-square\n   :target: https://pypi.org/project/verboselogs\n\n.. |Source coloredlogs| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/xolox/python-coloredlogs\n\n.. |Source dateutil| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/dateutil/dateutil/\n\n.. |Source docopt| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/docopt/docopt\n\n.. |Source fs| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/PyFilesystem/pyfilesystem2\n\n.. |Source fakeua| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/hellysmile/fake-useragent\n\n.. |Source requests| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/kennethreitz/requests\n\n.. |Source six| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/benjaminp/six\n\n.. |Source tenacity| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/jd/tenacity\n\n.. |Source tqdm| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/tqdm/tqdm\n\n.. |Source verboselogs| image:: https://img.shields.io/badge/source-GitHub-303030.svg?style=flat-square\n   :target: https://github.com/xolox/python-verboselogs\n\n.. |License coloredlogs| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/mit/\n\n.. |License dateutil| image:: https://img.shields.io/pypi/l/python-dateutil.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/apache-2.0/\n\n.. |License docopt| image:: https://img.shields.io/pypi/l/docopt.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/mit/\n\n.. |License fs| image:: https://img.shields.io/pypi/l/fs.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/mit/\n\n.. |License fakeua| image:: https://img.shields.io/badge/license-Apache_2.0-blue.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/apache-2.0/\n\n.. |License requests| image:: https://img.shields.io/pypi/l/requests.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/apache-2.0/\n\n.. |License six| image:: https://img.shields.io/pypi/l/six.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/mit/\n\n.. |License tenacity| image:: https://img.shields.io/badge/license-Apache_2.0-blue.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/apache-2.0/\n\n.. |License tqdm| image:: https://img.shields.io/pypi/l/tqdm.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/mpl-2.0/\n\n.. |License verboselogs| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\n   :target: https://choosealicense.com/licenses/mit/\n\n\nInstallation\n------------\n\nInstaLooter is available on PyPI to install with ``pip``. If you are not\nfamiliar with the package management of the Python ecosystem, please see the\n`Installation page \u003chttp://instalooter.readthedocs.io/en/latest/install.html\u003e`_\nof the `documentation \u003chttp://instalooter.readthedocs.io/en/latest/index.html\u003e`_.\nYet, you will probably end up using the following command::\n\n  pip install --user instalooter --pre\n\n\nUsage\n-----\n\ninstalooter comes with its CLI::\n\n    $ instalooter user \u003cusername\u003e [\u003cdirectory\u003e] [options]\n    $ instalooter hashtag \u003chashtag\u003e [\u003cdirectory\u003e] [options]\n    $ instalooter post \u003cpost_token\u003e [\u003cdirectory\u003e] [options]\n    $ instalooter batch [\u003cbatch_file\u003e]\n\nSee ``instalooter --usage`` for all possible uses, or ``instalooter --help``\nfor a complete usage guide.\n\n\nLogging in and out\n------------------\nThere are two ways to login on Instagram through instalooter:\n\n* use the *login* subcommand (``instalooter login``) to interactively login\n  using your username and password.\n* give a ``--username`` (and, if you want, a ``--password``) argument to any of\n  the download commands.\n\nIn both cases, a session cookie will be created in a cache-specific folder.\nTo delete it and close your session on the server, use the ``logout``\nsubcommand.\n\n\nExamples\n--------\n\nDownload all **pictures** from the *instagram* profile in the current directory::\n\n    $ instalooter user instagram\n\nDownload the latest 20 pictures or videos tagged with *python* to */tmp*::\n\n    $ instalooter hashtag python /tmp -n 20 --get-videos -c MYLOGIN\n\nDownload a single post from an url in the `~/Pictures` directory::\n\n    $ instalooter post \"https://www.instagram.com/p/BFB6znLg5s1/\" ~/Pictures\n\nUse a configuration file to download from several account using custom parameters\n(see `Batch mode \u003chttp://instalooter.readthedocs.io/en/latest/batch.html\u003e`_)::\n\n    $ instalooter batch /path/to/a/config/file.ini\n\nSee more on the `Usage page \u003chttp://instalooter.readthedocs.io/en/latest/usage.html\u003e`_\nof the `online documentation \u003chttp://instalooter.readthedocs.io/en/latest/index.html\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falthonos%2Finstalooter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falthonos%2Finstalooter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falthonos%2Finstalooter/lists"}