instaloader
v4.16 open-sourceThe section your link pointed to isn't on instaloader's page any more, so we've brought you to the top.
Instaloader is a tool to download pictures or videos along with their captions and other metadata from Instagram.
from instaloader import Instaloader, Profile
L = Instaloader()
profile = Profile.from_username(L.context, "<username>")
for post in profile.get_posts():
if post.is_video:
print(post.shortcode, post.video_play_count)
instaloader --reels <profile>
from instaloader import Instaloader, Profile
loader = Instaloader()
profile = Profile.from_username(loader.context, 'instagram')
hashtags = profile.get_followed_hashtags()
instaloader --sanitize-paths #travel
from instaloader import Instaloader, Hashtag
L = Instaloader()
hashtag = Hashtag.from_name(L.context, 'tech')
for post in hashtag.get_posts_resumable():
L.download_post(post, target='#tech')
instaloader --latest-stamps <profile>
instaloader --title-pattern='<username>_<date>' <profile>
load_structure(profile_dict)
instaloader --login=YOUR_USERNAME --abort-on=302,400,429 PROFILE
instaloader --slide=2:3 <profile>
instaloader --filename-pattern={filename} <profile>
instaloader profile <username> --resume-prefix=<session_name>
import instaloader
L = instaloader.Instaloader()
for post in instaloader.Post.get_metadata(L.context, post_shortcode):
if post.is_sponsored:
print(f'Sponsored by: {post.sponsor_users}')
import instaloader
L = instaloader.Instaloader()
profile = instaloader.Profile.from_username(L.context, 'username')
similar = profile.get_similar_accounts()
instaloader --login=myuser --request-timeout=30 profile_name
instaloader --login=myuser --igtv profile_name
profile = loader.get_profile('instagram')
print(profile.external_url)
print(profile.followers)
instaloader --login=USERNAME --storyitem-filter="datetime.now() - timedelta(hours=24) < item.date"
instaloader --login=USERNAME --post-metadata-txt="{caption}\nLocation: {location}"
instaloader :saved
instaloader --login=<user> --no-profile-pic <profile>
instaloader --no-video-thumbnails <profile> <post_date>
instaloader --login=USER --metadata-json > posts.json
instaloader --max-connection-attempts=3 PROFILE
instaloader --login=YOUR_USERNAME '--created > 2023-01-01' profile
Summary
Instaloader is an open-source command-line tool, free to use, that downloads pictures, videos, and metadata from Instagram, covering public and private profiles, hashtags, stories, feeds, and saved media, along with comments, geotags, and captions. It runs from a terminal via pip install, works as a Python module for scripting, and can be scheduled as a cronjob for repeated updates, which suits OSINTOSINTOpen-source intelligence, collecting and analyzing information from publicly available sources. Investigators use it to learn about people, infrastructure or threats. investigators and researchers doing social-media data collection rather than casual users wanting a GUIGUIA graphical user interface, controls such as windows, buttons and menus. It lets people use software visually rather than entering commands.. It fills the recon niche for Instagram-specific scraping, a gap that general-purpose OSINT frameworks typically leave to dedicated downloaders. First committed in 2016 and still active, with 75 contributors and a release just 26 days ago, it continues to see steady maintenance.
Instaloader is a tool to download pictures or videos along with their captions and other metadata from Instagram.
How instaloader helps
What has an Instagram account posted, and can I get all of it onto my own disk?
pulls every picture and video from a public or private profile along with the profile picture, and resumes where it left off if the run was interrupted before finishing
Has a profile posted anything new since the last time I checked?
compares against the local copy and fetches only media newer than what was already downloaded, stopping as soon as it reaches an already-downloaded post
Who is talking about a post, and where was it taken?
retrieves the comments, geotags and captions attached to each post alongside the media itself
What did an account's stories, highlights, and saved posts contain before they disappeared?
downloads stories, highlights, tagged posts and saved media in addition to regular profile posts, capturing content that is otherwise temporary
Did an account I'm tracking change its username?
detects when a profile's name has changed and renames the local target directory to match, so the archive stays linked to the same account
What is everyone posting under a hashtag or at a location right now?
downloads the posts associated with a given hashtag or location identifier as its own target, separate from profile downloads
Languages
Command line
No command matches.
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for instaloader, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail instaloader puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Releases
28 entries
No entries match these filters.
- October 20261
- November 20251
- November 20241
- August 20241
- June 20241
- March 20241
- July 20231
- March 20221
- August 20211
- March 20211
- January 20211
- August 20201
- June 20201
- May 20201
- March 20201
- February 20191
- December 20181
- September 20181
- August 20181
- May 20182
- March 20181
- February 20181
- October 20171
- September 20171
- August 20171
- April 20171
- September 20161
Project health
Issue, contributor and maintainer activity in instaloader/instaloader, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.
- Contributors 13 +5 vs prior 12 months
- Maintainers 1 +0 joined · −0 left, last 12 months
- Bus factor 1 committers behind half the commits
- Community-filed 100% of issues opened, last 12 months
- Median time to close 183 days first maintainer reply 38 days
- Open backlog 44 of 2,384 issues ever filed
- Issues opened / month 3 · 0 communitymaintainers
- Open backlog 44
- Contributors / month 1
- Commits / month 1
- Stars 13,394
- bugs 39%
- features 13%
- questions 24%
- other 24%
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Libraries its release ships
What its latest release locks, checked against known advisories.None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.