De xtof lifedesign
- 1 Why
- 2 Features
- 3 Exporting your data
- 4 POSSE
- 5 PESOS
- 6 backfeed
- 7 API
- 8 UX Observation
- 9 Adoption
- 10 Issues
- 11 Criticism
- 11.1 username takeovers
- 11.2 Bad Silo Interop with Twitter
- 11.3 Switch from Foursquare to Facebook venues
- 11.4 Lack of privacy of location data
- 11.5 Uneditable Custom Locations
- 11.6 Censorship beyond community guidelines
- 11.7 DMCA
- 11.8 No license metadata
- 11.9 most locked-in and user-hostile
- 11.10 feed not showing all content
- 11.11 from Facebook branding
- 11.12 opaque terms of service banning
- 12 Downtime
- 13 See also
- 14 See Also
Should I join Instagram? Why use Instagram?
Indie photo posting client
If your site supports receiving Micropub requests for publishing photos, you may want to consider creating a private Instagram account, using it to setup ownyourgram, and then use Instagram’s native mobile app(s) and servers purely as a convenient client for posting photos and short videos to your own site.
This technique of using a silo purely as a client to get content to your own site is also referred to as "silos as plumbing".
See PESOS below for more details.
(this section is a stub and needs your contribution to complete it!)
- photo post with:
- multi-photo post (since 2017-02-22)
- collection posts (beyond simple multi-photos)
- up to 10 of any combination of photos and/or videos total
- per-photo person-tags
- limitations: no per-item name(caption), no person-tags on videos, no per-item location/venue.
- video post (since 2013, initially 15 second length limit, extended to 30-60sec?)
- note: no person-tags on videos
- story (AKA "Your Story") singular post, one per profile (since mid-2016)
- ephemeral photos and videos that disappear in 24h. The story feature allowed posting multiple photos (and/or videos) in a time sequence (shown in sequence one at a time) which many use to tell a story about their day. Access to individual story items disappear from other users' views within 24 hours.
- positioned text labels (optional color/rotation/resizing)
- stickers on all photos and videos in a story.
- hashtags on all photos and videos in a story.
- person-tags on all photos and videos in a story.
- pin any label/sticker/tag to some thing in a video and have it follow that thing as it moves around
- comment on photos
- like photos
- follow users
- notifications of comments, likes, follows, and person-tags
- report abuse regarding a user, photo, or comment
- search for
- private account
- profile page (equivalent of indieweb homepage) configuration including
- who to follow - shown when you follow someone
- 3 suggested users to follow
- "Hide inappropriate comments: Hide comments that contain words or phrases often reported as offensive" toggle.
- "Custom keywords: Comments that contain any of the words or phrases above will be hidden. Add keywords, separated by commas."
- turn off commenting
Exporting your data
On 2018-04-25 instagram launched an archive retrieval process, accessible at https://www.instagram.com/download/request/. There is a 48 hour window cited for instagram to comply with an archive request.
Downloaded data consists of
- Photos, in folders sorted by month, in jpg format at 72dpi
- Comments, likes, contacts and similar information in .json format
Norm's instagram-backup tool exports Instagram photos and metadata.
Single Photo Bookmarklet
If you view a single photo permalink page, the following bookmarklet will extract the permalink (trimmed), photo jpg URL, and photo caption and copy them into a text note, suitable for posting as a photo that's auto-linked:
Drag and drop-able button version can be found here
- remove errant username from start of caption text
- support multi-photo posts (detecting, producing markup)
- support video posts (detecting, producing markup)
- support mixed multi-photo/video posts
Instagram does not have a photo upload API.
However they do have comments delete / create APIs. Sadly commenting via the API is not supported. So here's how you can fake POSSE to Instagram:
- You post to Instagram using their client app, including location information, people tags, and caption (first comment).
- Your server receives a notification of the photo post via webhook call back
- Your server copies the photo (in PESOS fashion) to your own server
- creating a permalink for the photo on your own server
- copying the location information, people tags, and caption
- adding a link to the copy of the photo on Instagram with u-syndication
- Your server deletes the first comment on the Instagram photo
- Your server creates a new first comment (thus caption) on the Instagram photo, as you, with:
- original caption contents followed by permashortlink for the photo on your server
And bingo, you've effectively created a POSSE copy of your photo on Instagram since it now has a permashortlink back to the new "original" on your own site.
POSSE via private API
Instagram has a private, undocumented API that is used by the web client. You can use this API to do almost anything the web client can do, but is likely to be changed at any moment.
PESOS from Instagram
Since Instagram doesn't have an API to post photos, many people use ownyourgram.com to do the reverse: post photos to Instagram and have the service post them back to their website. To use this, your site will need to support Micropub.
- Kyle Mahan POSSEs likes for Instagram photos via the official Instagram API (which is read-only for everything except, inexplicably, for likes) since 2015-01-03
- Added POSSE for comments via "unofficial" API (Selenium/PhantomJS browser automation) on 2015-07-12
- Bridgy Publish can POSSE likes to Instagram since 2015-01-07
POSSE via Workflow.is
POSSE via SNAP with WordPress
While Chris Aldrich most often uses a PESOS workflow involving DsgnWrks Instagram Importer, he will occasionally use the pro version of the SNAP plugin for WordPress which is able to post photos directly to Instagram using their custom API. Instructions for setting up SNAP to do this can be found on their site.
POSSE as mobile browser
Instagram recently updated their mobile web site to allow mobile web photo posts, thus it should be possible to have your server POSSE to Instagram for you by acting as your mobile browser.
Also looking into this for Bridgy Publish support:
- since 2016-04-05 https://gregorlove.com/2016/04/polka-dots-in-my-backyard/
- commonly will use Bridgy Publish to syndicate to Twitter as well.
- originally was including my URL in the Instagram caption, but discovered Bridgy does not need that; the syndication link is enough for Bridgy backfeed.
- yes, this is a bit of slow process, so I don't post photos very often. :]
Tantek Çelik posts photos on Swarm (private account) for ease of mobile publishing, then uses those to create photo posts on tantek.com, and manually posts the same photo and (sometimes abbreviated) caption to Instagram, copies the Instagram URL and adds it as a syndication link on the original photo post.
- since 2017-087: http://tantek.com/2017/087/t2/orange-curls-flower
- uses Bridgy Publish to POSSE to FB, Flickr, Twitter also
Some users manually cross-post occasional notes posts to Instagram, e.g.:
Tweet text to Instagram
- Original: https://twitter.com/ClaireWyckoff/status/532912362991648768
Worst way to die: you're mauled by a zombie and as you're about to turn you realize he's wearing Ed Hardy.
- POSSE copy: http://instagram.com/p/vWDDFlyTL8/
As of this edit:
- the original has only *2* favorites. (2,346 followers on account)
- the POSSE copy: *130* likes and *3* comments. (14,512 followers on account)
For some reason, POSSE copies, even of *notes*, on Instagram receive more interactions per follower.
Hypothesis: the Instagram reader experience is so much smoother and nicer that it tends to encourage more use and thus more interactions.
IndieWeb note to Instagram
- Original: http://tantek.com/2016/001/t4/burn-very-brightly
The light that burns twice as bright,
burns half as long
so burn very brightly
- POSSE copy:
- Aaron Parecki's OwnYourGram service provides PESOS from Instagram for any site that supports micropub.
- Jeremy Cherfas developed an occasionally flaky script that implements PESOS from InstaGram to Known.
- Solutions for WordPress:
- John Holdun's Instagram Feed for a locally-hosted mirror for your Instagram feed
- Just do it manually
From 2015-244 to 2017-085, Tantek Çelik did manual PESOS from Instagram to public posts on his own site (tantek.com), and then used Falcon to automatically POSSE his photo posts to Facebook, Flickr, & Twitter with Bridgy Publish, as well as link back to the Instagram copy as syndication.
You can use Bridgy to get some backfeed of responses from Instagram POSSE copies.
(this section is a stub)
- limitations with Brid.gy: only first 10 likes come through.
- Scraping the public Instagram web pages only gives you the oldest 10 likes for a picture. After that, the UI says 'and X others' anyway. The property is called
edge_media_preview_like, and includes a full count, but no names, pictures or URLs of the people who like it, other than the first 10. (You can't poll either, because they give you the first, not the last.)
You can supposedly get your own API key (in sandbox mode) to do your own backfeed. (does anyone do this?)
- Getting likes seems to be impossible without getting your app approved. Some endpoints work, others give a HTTP 200 status, but an empty array.
- /users/self/media/recent works, probably because it contains you own pictures
- /media/:id/likes does not work, probably because the likes are other people's content
- /users/self/media/liked does not work, probably because your likes contain other people's content
- Getting your app approved seems to be hard.
Supposed Features and Limitations
- Instagram's official API can potentially create (and delete) comments and likes, but not photos.
Ryan Barrett has found that Instagram's API now supports progammatically "liking" photos (used to 400).
- location of photos - indicates use of Facebook places ID, Foursquare venue id (both v1 and v2 of their API)
Ryan Barrett has found that authing with scope=comments works, but the API call still 400s.
- Work has also been done on determining its unofficial API (which is against Instagram's terms of service, but allows you to post): https://github.com/mislav/instagram/wiki
- Instagram Worm uploaded photos using private/undocumented API (needs citation)
- Instagram private API changes affect unofficial apps and photos uploaded via unofficial apps
?__a=1to the end of an Instagram profile, photo, or feed URL (e.g.
/) to get JSON metadata. This JSON is also embedded in the normal HTML pages. Example parsing code in granary.
- For feed URLs, the array of photo objects is in the
- For profile URLs, the array of photo objects is in the
- For photo URLs, the photo objects are the
- The private API is rate limited to 60 photos per hour
Instagram is locking down their API and requiring all apps to go through a review process similar to Facebook's. Apps can apply now; the API restrictions start in June 2016. Developer details, legal details.
Specifically, they plan to restrict and require approval for
/media/popularand any use cases that send photos outside of Instagram.
Here's the new set of permissions (OAuth scopes):
- basic - to read a user’s profile info and media (granted by default)
- public_content - to read any public profile info and media on a user’s behalf
- follower_list - to read the list of followers and followed-by users
- comments - to post and delete comments on a user’s behalf
- relationships - to follow and unfollow accounts on a user’s behalf
- likes - to like and unlike media on a user’s behalf
Ryan Barrett applied for basic permissions for Bridgy and oauth-dropins in Jan 2016. Both were rejected.
- Videos and Photos have a very similar UI. --Bret.io 00:38, 1 July 2013 (PDT)
- 2013 video UI: single-tapping would pause the video, you have to tap the play control to replay.
- 2015 videos started autolooping (like Vine) without sound, and single-tapping was changed to toggle sound on/off.
- 2015-05-18 The Newest Fashion Bloggers Don't Even Have Blogs - they use Instagram instead.
Instagram limits the number of hashtags that you can put on a post to 30. If you try to add more, your comment is rejected with the unhelpful and misleading error message:
Couldn't post. Tap to retry
(no amount of retrying will help, so why ask the user to do so?)
When attempting to add even just single hashtags as comments to https://www.instagram.com/p/Bc_ETrOFTAW
How Instagram closed my account and gave it to a football celebrity - "My name is Andrés Iniesta and my only mistake was having the exact name and last name as a famous football player."
Bad Silo Interop with Twitter
Shortly after it was purchased by Facebook, Instagram stopped including Twitter metadata on their photo pages, so Twitter Cards no longer show image previews for Instagram photos.
Instagram drives more traffic to their site, at the cost of a worse experience for users.
Using OwnYourGram or another method of PESOSing your photos out of Instagram, you can control how your photos are shared on other silos like Twitter. (e.g., by including Twitter metadata, or by posting the photos directly).
Switch from Foursquare to Facebook venues
This has resulted in:
- fewer venue matches (often completely missing venues that were present on Foursquare)
- less accurate venue locations such as misspellings, "venues" with varied granularity (business vs neighborhood)
- loss of venue information when cross-posting from Instagram to Foursquare (i.e. checks you into the wrong location, or a generic neighborhood rather than a specific venue)
Articles about worse Instagram locations due to using Facebook venues:
- 2014-05-11 https://twitter.com/parislemon/status/465554365286084608
Instagram's decision to use Facebook's much worse place database over Foursquare's has made the product worse. Stupid.
- 2014-05-11 https://twitter.com/parislemon/status/465555168851816448
The moment a decision is made for business/political reasons, the product starts to decay. Even if only a little bit.
- 2014-05-12 Instagram Just Geotagged Us To Hell
Lack of privacy of location data
When posting a photo to Instagram, if "add to photo map" is enabled (even if no venue is chosen) then the exact lat/lng of the photo is recorded. When viewing the single photo you won't see the location of it. However, when viewing the person's user profile you can switch to the map view and see their photos all on a map.
The map shows photos as clusters, and zooming in will expand the clusters into smaller clusters until finally individual photos appear on the map.
It is relatively easy to figure out the approximate location of someone's work or home by looking for these clusters.
More on location privacy
Uneditable Custom Locations
When adding a photo at a venue that doesn't exist, it is possible to create a "custom location", which is unfortunately not editable from that point on.
One potential up-side is when searching for venues, your custom locations now show up at the top of the list without needing a round-trip to the server to search.
Creating this custom location prompts only for the name, the exact geo location is added automatically, meaning it is not possible to adjust the specific location of the venue.
Censorship beyond community guidelines
Instagram is establishing a history of censoring by removing (and sometimes restoring later) and/or hashtag results that are not actual violations of their Community Guidelines, and are otherwise innocuous material. For example:
- gay kiss
- Instagram has reportedly removed a photograph of a gay couple kissing at their wedding as "inappropriate".
- some sexual content
- Instagram's removal of sexual content has been criticised as being inconsistently enforced.
- menstrual blood
Article listing blocked/limited hashtags as of 2016-05-10: http://thedatapack.com/banned-instagram-hashtags-update/
- 2014-10-16 Your account has been deleted for not following our terms. You won’t be able to log into this account and no one else will be able to see it. We’re unable to restore accounts that are deleted for these types of violations.
No license metadata
Unlike Flickr (and your own site if you so choose!), there's no metadata for marking photos or indeed whole photostreams as licensed under Creative Commons licenses.
i-am-cc.org lets you choose a CC license for your Instagram photographs, but you have to log into the service every three months to 'renew' the license grant.
most locked-in and user-hostile
From 2016-03-26 jwz post: Instagram Hates The Internet
Instagram is a dialup BBS. It is the most locked-in and user-hostile of the bunch, as I will now express through the medium of a <TABLE>
feed not showing all content
Instagram is not showing all photos by those you follow, but at least in some cases only some subset: https://twitter.com/danrubin/status/968507814544052224
from Facebook branding
An update to the Instagram iOS app sometime in 2019 December removed the "Instagram" logo text mark on the splash screen and replaced it with just the icon and
opaque terms of service banning
Angelo Gladding attempted to follow a link from chat and was asked to log in. His account had apparently been banned. No email was sent and no response was given other than the red text in the first image below. The account was only ever used to view posts that required login, possibly to like one or two posts to test the feature.
Around 12pm Pacific on 2018-07-13, Instagram was unavailable. The iOS app shows an error notification when visiting your home timeline or profile page "Couldn't refresh feed", and visiting the "discover" tab shows "We're sorry, but something went wrong. Please try again." On the website, a generic "5xx Server Error" message was displayed.
Saturday morning turned out to be social-media-free for a number of Facebook and Instagram users, albeit involuntarily.
Some people reported difficulties accessing the two social platforms beginning at about 9 a.m. ET
2014-08-22 various times throughout the day - "news" activity on photos feature was down with user-unfriendly nginx default error message:
"502 Bad Gateway nginx"
2014-04-12 Instagram feeds were down as reported in this @Instagram tweet which itself has been deleted!
We’re working to fix a feed delivery issue. Thank you for your patience.
"Response Error. Technical description: 502 Bad Gateway - Response Error, a bad response was received from another proxy server or the destination origin server."
- photo uploads
- Instagram Developer Documentation
- best nine
- 2018-08-14 Instagram blog: Issue affecting access to Instagram accounts
We are aware that some people are having difficulty accessing their Instagram accounts.
- 2018-10-15 The Atlantic: Instagram Has a Massive Harassment Problem
- "Instagram’s new profile designs emphasize users instead of their follower count https://www.theverge.com/2018/11/21/18106969/instagram-user-profiles-igtv-mutuals?utm_campaign=theverge&utm_content=chorus&utm_medium=social&utm_source=twitter" @verge November 21, 2018
- Criticism: 2018-12-17 Bloomberg: Instagram Was Bigger Russian Election Tool Than Facebook, Senate Report Says
- 2014-12-18 Business Insider: Chaos Ensues As Instagram Deletes Millions Of Accounts
- Feature: alt text for photos since 2018-11-28! https://www.engadget.com/2018/11/28/instagram-alt-text-visually-impaired/
- 2018-11-19 Instagram is cracking down on services that sell ‘Likes’ and followers
- 2018-12-27 Instagram got rid of the scrolling feed for some users and people freaked out
- criticism: limits to 30 hashtags per post on https://www.instagram.com/p/Bwt6Af3J2Ug/
- "“It's amazing how productive doing nothing can be.” — Jeff Bridges as #KevinFlynn
Original photos at tantek.com/t50B1
Set a #sunrise PR #running to the top of #MtTam today (#Thursday), 84:41 #ascent, cutting nearly 4 minutes from my previous #record set six months ago. Thanks to a #beautiful day, chasing speedy pal Hannah, and taking time-off to heal from an injury 33 days prior.
That rainy Friday I #ran up #Tam twice (while pal Bryan was doing 3x), hit my head on a tree on the first descent, injured my right thigh on a hard fall onto slippery solid rock on the second. (See previous photos post here on IG, smiles despite rain and falling, because I’d just run up&down a mountain, twice)
Took the weekend to recover, went to the doctor Monday, no concussion (or any symptoms of head injury, somehow no head bruise either), no leg break, just tissue damage. Ran a mile the next day, that night my right knee turned purple and swelled up, apparenty from my internal thigh bruise liquifying and leaking downward. Stopped running after that.
Started waking up every night from knee pain, struggling to get back to sleep.
Three weeks without running, part of it at a yoga retreat, doing yoga twice a day, and plenty of nothing too. On the second night of the retreat the overnight knee pain stopped. Tried a short trail scamper down & up the next day, felt fine.
Gradually increased my #trail running distance and altitude until returning to Tam this morning for the first time since injury. Felt strong so I pushed hard and finally shattered a six month old PR.
#MountTam #Marin #trails #trailrun #run #TemelpaTrail #MtTamEastPeak #50ktraining #restandrecover #befierce #pushyourself #getup #facethemountain #fitstrongfierce #workharddreambigdocoolshit #latergram #nofilter #trailthursday #PRThursday
Original photos (full width/height) at tantek.com/t50B1" @Tantek Çelik April 26, 2019
- 2019-07-03 Outage: https://twitter.com/scottishstoater/status/1146522153644433414
- "Suppose this is what I get for using Instagram to pull in a photo feed to my personal site 🙄. #ownyourowndata #indieweb" @scottishstoater July 3, 2019
- Stalkture: "Browse images and videos on Instagram. Find out Most Popular Hashtags and Users. This service uses the Instagram API but is not endorsed or certified by Instagram." Emphasis added.
- Criticism: https://thenextweb.com/socialmedia/2019/10/28/instagram-now-forces-people-to-sign-in-to-view-public-profiles/
- Criticism: 2015-04-27 Buzzfeed: Why Eggplant Is The One Emoji Instagram Won't Let You Search
- Criticism: account suspension for mild criticism of US presidency https://twitter.com/monicabyrne13/status/1185322950465150980
My post (below) was removed from Instagram for “hate speech.” This has happened before (I’ve been posting this sentence every day since December 1, 2016), so I appealed. But their decision stood.
What the actual f*ck, @instagram?" @monicabyrne13 October 18, 2019
- ^^^ more criticism: account deletion threat for repeatedly posting mild criticism of US president https://twitter.com/monicabyrne13/status/1191404524210196480
- "I did appeal, and it was denied. That’s the second photo in the tweet. Since then, a bunch of the same posts have been taken down with no option to appeal, and I got this warning." @monicabyrne13 November 4, 2019
- "PSA - if you added your mobile number when you joined instagram, it's not private. Anyone that follows you can access it and contact you via Whatsapp. What the actual fuck" @KateFlood November 24, 2019
- 2019-12-09 Criticism: removed/censored a wedding video (happened to be of two women) for supposedly violating their community guidelines: https://www.instagram.com/p/B53zDUuJHoZ/
- "So @instagram took down my BEAUTIFUL wedding video stating it’s offensive. My marriage to my wife is OFFENSIVE?! I’m furious! Being gay is not OFFENSIVE, and don’t let anyone EVER let you feel that way! I’ll be damned if I back down from this. Comment and kindly encourage Instagram to fix this and put my video back on my page!
#lgbtq #lgbt #lovewins #lovewillwin #loveislove #lgbtqlove #love #instagay #instagram #instadaily #gaygirl #lesbianwedding #lesbians #lesbiancouple #weddingvideo #wedding #marriage #wifelife #wifedup" @Kelsey Pearson | LGBTQ | Vegan December 10, 2019
- Criticism: Prompts "Promote" on holiday photos just so friends can see them: https://twitter.com/rabble/status/1207856068497264640
- "There is something fundamentally broken with social media when the platform asks me to pay to boost my posts so my friends and family can see holiday pictures of my kids. This is unacceptable, we need to take control of our social media platforms." @rabble December 20, 2019
- 2020-02-04 CNET: Teens have figured out how to mess with Instagram's tracking algorithm
- "Constantly seeing people in social media forums recommending dodgy third-party browser extensions to each other so they can upload Instagram photos from the web.
@instagram you literally put people's data at risk by not having this VERY BASIC FUNCTION" @holly March 4, 2020
- Criticism mpg25 DMCA take-down for using public API's with a valid key : https://twitter.com/_mgp25/status/1222715332013502464
- "Facebook has taken down my Github repository about Instagram API: https://github.com/mgp25/Instagram-API
Here the DCMA notice: https://github.com/github/dmca/blob/master/2020/01/2020-01-22-facebook.md
Reverse engineering should be a user right, we don’t know if apps are violating user privacy or backdooring our devices." @_mgp25 January 30, 2020
- https://theus.github.io/instantgram/ A bookmarklet for downloading images from Instagram.
- Criticism : https://arstechnica.com/tech-policy/2020/06/instagram-just-threw-users-of-its-embedding-api-under-the-bus/
- "We spent the last 6 months investigating Instagram's algorithm, talking to professional content creators, reading through patents and analyzing the newsfeed of 26 donors who volunteered their data. Read our findings ⤵️
https://algorithmwatch.org/en/story/instagram-algorithm-nudity/" @algorithmwatch June 15, 2020
- criticism or perhaps blunt blocking of misinformation: “This Hashtag Is Hidden” is a feature of Instagram where certain hashtags aggregation pages display a message instead of a list of posts: https://www.instagram.com/p/CC8uOySnED2/
- Firefox Add-on for viewing IG post permalinks without logging in: https://addons.mozilla.org/en-US/firefox/addon/instagram-guest/
- https://web.archive.org/web/20190310085529/https://streaking.app/posts/instagram-has-turned-us-against-ourselves-4be2eca50211 "People are reduced to a single identity"