This article is a stub. You can help the IndieWebCamp wiki by expanding it.
Instagram is a popular image hosting silo most well known for square photos that have been processed with an image filter. In 2013, Instagram added support for 15 second video posts.
Contents
|
Why
Why use Instagram?
Indie photo posting client
Some of us have found it to be a useful client for posting to your site via Micropub and ownyourgram.
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".
PESOS
Tantek
Tantek Çelik uses his iPod Touch to publish photos to an Instagram private account, does manual PESOS to public posts on his own site (tantek.com), and then uses 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.
Features
(this section is a stub and needs your contribution to complete it!)
- post photos with:
- a caption (is just the first comment if it is by the author)
- inline hyperlinked hashtags
- person-tags at locations (points) on the photo
- 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
- users
- hashtags
- private account
- profile page (equivalent of indieweb homepage) configuration including
- who to follow - shown when you follow someone
- 3 suggested users to follow
Exporting your data
Instaport.me and flickstagram.org let you export your Instagram photos.
freedom.io (source) can copy all of your Instagram photos and videos to WordPress, Tumblr, or Blogger, creating a new blog post for each, with the original dates and all comments intact.
Norm's instagram-backup tool exports Instagram photos and metadata.
POSSE
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 rel-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.
At this point you can also use a service like Bridgy to backfeed comments on the photo from Instagram to your own site.
IndieWeb Implementations
- Aaron Parecki's OwnYourGram service provides PESOS from Instagram for any site that supports 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
- ...
Manual Notes
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:
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
Life’s short,
so burn very brightly - POSSE copy:
PESOS
Even though posting to Instagram is limited, retrieving you content is not impossible.
Existing solutions for WordPress:
- Keyring Social Importers can will automatically create photo posts out of Instagram content once connected
- DsgnWrks Instagram Importer will do the same
API
Supposed Features and Limitations
- Instagram's official API can potentially create (and delete) comments and likes, but not photos.
Like
Ryan Barrett has found that Instagram's API now supports progammatically "liking" photos (used to 400).
Location
- location of photos - indicates use of Facebook places ID, Foursquare venue id (both v1 and v2 of their API)
Cannot Comment
Ryan Barrett has found that authing with scope=comments works, but the API call still 400s.
According to Instagram's API documentation, their commenting API only works for those who are whitelisted. Unfortunately the criteria for application for whitelisting are very restrictive.
Unofficial
- 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 http://www.theverge.com/2013/7/30/4570610/instagram-deleting-photos-from-instance-windows-phone-app
Permissions approval
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 /users/self/feed and /media/popular and 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.
UX Observation
- Videos and Photos have a very similar UI. --Bret.io 00:38, 1 July 2013 (PDT)
- Differences include a large play button on load for videos, and a caption display for photos.
- Example of video
- Example of photo
- 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.
Adoption
- 2015-05-18 The Newest Fashion Bloggers Don't Even Have Blogs - they use Instagram instead.
Criticism
username takeovers
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).
Downtime
- 2014-04-12 Instagram feeds were down as reported in this @Instagram tweet which itself has been deleted!
- https://twitter.com/instagram/statuses/455025601553108993
-
We’re working to fix a feed delivery issue. Thank you for your patience.
- see also: http://thenextweb.com/facebook/2014/04/12/instagram-confirms-that-its-service-is-down-due-to-a-feed-delivery-issue/
- 2013-08-28 17:27-0400 EDT
- 2014-08-22 various times throughout the day - "news" activity on photos feature was down with user-unfriendly nginx default error message:
Switch from Foursquare to Facebook venues
Some time in 2014-05, Instagram switched from using Foursquare's venue database (e.g. in the iOS app UI) to using Facebook's places database.
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)
See also
- 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.
See Also
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
- http://www.scoopwhoop.com/news/insta-photo/
- http://www.cosmopolitan.com/sex-love/news/a38309/instagram-apologizes-for-removing-poignant-photos-of-a-woman-on-her-period/
Article listing blocked/limited hashtags as of 2016-05-10: http://thedatapack.com/banned-instagram-hashtags-update/
DMCA
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 InternetInstagram 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>
(analysis therein)


