Note that https://instavideosdownloader.com no longer really works so I've switched to using https://ingramer.com/downloader/instagram/ as an alternative, I'll have to see about editing those original posts.
I use the Firefox element inspector to upload photos and videos from Instagram. It is the most practical if you know a little HTML, you can copy the URLs directly, without downloading anything. I also use the Firefox extension Instagram-guest, it removes the login window.
I think this thread could use a good update... Most if not all links are dead/defunct.
Currently, I use 4KStogram (full paid version) for downloading. It's convenient for downloading entire profiles, and automatically updates profiles that you've input, so I think it's worth the money as it's a massive timesaver. The only downside is that it can fill up your hard drive VERY fast if you get too carried away.
As for free sites, you can currently use "igram," "sssinstagram," and "toolzu." There are probably more but this should be sufficient. I can verify that igram worked well for me, but I haven't used the other two so I can't vouche for them yet.
I used to use "snapinsta" for downloading the occasional single post (rather than entire profile), but they seem to be producing lower quality download links (recently I tried this Jacqueline Rios post and it gave me a 640x800 version, whereas I can get the same image at 1080x1350 anywhere else).
Also, "user beware" in regards to 4KStogram...
In my experience, if you're using the app regularly, then you need to severely limit your interaction on IG otherwise. Sometimes all it takes is to like 1 post or follow 1 more user and IG will block your account for "suspicious activity." They usually offer the option to bypass this by confirming your identity (by sending a code to your email or phone) and then a mandatory password reset.
It's quite annoying, so again "user beware."
I've been using the paid for version of 4K Stogram for a few years til recently. main issues:
Yes you can too often get kicked out of Instagram by using it - and have to follow IG's process to get your account back. Basically 4kS goes against IG's terms and conditions (ie using third party programs to scrape content) but 4K wont admit that so they just tell users to limit use but you never know what will trigger an account lock out.
Yes, the settings for 4K mean you could download Gigs of content very quickly with virtually with no limit.
If you have to reinstall 4k after a PC crash but want to just pick up from where you left off, you can't set a "download from date" so you have to start from scratch or manually stop/start individual accounts you are monitoring.
It's potentially a useful program but it has some really irritating usability issues.
The main way to use 4KStogram without getting blocked is to space out the downloads (in a way the program doesn't do automatically).
I manually updated my pinned accounts in batches of 15, starting each new batch about 10 minutes after the last one finished updating. Then when I turned on the option to auto-update the pinned accounts once a day, they do so at those same spaced-out times. Also, logging out and back into the account in 4KStogram once a day seems to help (I think Instagram has some issue with too many downloads under the same login session).
If I'm going to do intial downloads of large accounts (like 3,000+ posts, etc), I try to limit those to one per day, and swap to a different IG account first.
Also, possibly because 4KStogram seems to use mobile phone user agent strings when authenticating to Instagram, signing in to IG using the same account on your phone seems to make it suspicious and raise the chances of your account getting temp-blocked.
To use this video as an example, here's the 480x600 version that plays normally:
http://s000.tinyupload.com/?file_id=26904739691389717631
And here's the clearer 640x800 version I get using the right download site (it's still a direct download from Instagram):
http://s000.tinyupload.com/?file_id=05618274878741103779
Not sure if there's a way to download a HQ version from mult-image posts or if one even exists, I'll have to try some other add-ons or something.
EDIT: Replaced the direct instagram example links with reuploads that won't expire, and a better example vid.
UPDATE: After some recent changes by Instagram that broke the other methods, the site https://instavideosdownloader.com is one of the only options left that seems to work somewhat reliably, as it gets alternate versions from everything else that are at a lower bitrate, but a lot of times are the only higher-res ones available. They're usually 720x720 or 720x900 instead. I recommend comparing them to any other versions fullscreen to confirm which are actually higher quality overall, whichever is the larger file is usually the actual best one, even if it's not the highest resolution (to reiterate, if instavideosdownloader gives you say a 640x640 video but you can also download a 640x640 video using another method, the latter will usually be a larger filesize and better quality, I've also seen where a lower-resolution version from other sources is still a larger file and better quality than the higher-res version from instavideosdownloader). It also seems to use alternate resized versions for still photos in some cases, so it's probably not the best option for those.
NEW UPDATE: The Instagram Video Downloader Firefox add-on by lumieras seems have stopped working around 10/26/19. This Instagram Downloader addon seems to be a good replacement for it, and handles multi-image galleries better. Also, saving things directly from the Media tab on the Firefox Page Info window still seems to work for the most part with the current page coding, since Instagram seems to be surfacing the better versions directly on the pages now, it's just not as convenient.