Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Loads a Camera Roll Asset to Instagram (works for both photos & videos)
- (void)loadCameraRollAssetToInstagram:(NSURL*)assetsLibraryURL andMessage:(NSString*)message
NSString *escapedString = [assetsLibraryURL.absoluteString urlencodedString];
NSString *escapedCaption = [message urlencodedString];
NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@", escapedString, escapedCaption]];
[[UIApplication sharedApplication] openURL:instagramURL];
Copy link

InstagramCaption is not working on my code. When it opens Instagram, it shows no caption. Even if I use a single word with no space or special chars.

Copy link

Since August 2015 that you can't.

Beginning today, the iOS Hooks and Android Intents will stop accepting captions passed by third party apps. (...) Instagram will ignore the caption text. To create a caption for a photo or video shared by a third party app, users will have to enter a caption manually, the same way they already do when sharing content using the Instagram native apps.

Copy link

this code do not show photo anymore into Instagram app, any idea?
NSString *caption2 = @"wertheclay";
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:self.image.CGImage metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library AssetPath=%@&InstagramCaption=%@", assetURL, caption2]];
NSLog(@"assetURL %@", assetURL);
[[UIApplication sharedApplication] openURL:instagramURL];


Copy link

chetem commented Apr 12, 2016

i'm having the same issue @mlagadhir, the url is not working.

let fileURLString = url.absoluteString.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
let encodedURLString = "instagram://library?AssetPath=\(fileURLString)"
guard let encodedURL = NSURL(string:encodedURLString) else { print("failed to create instagram url") }

This fails to create the url for instagram every time. have you had any luck?

Copy link

omarojo commented Jul 27, 2016

instagram://library?AssetPath=(assetsLibraryUrl) stopped working a while ago. Instagram developers probably moved to Photos framework and no longer use the AssetsLibrary.

Having this assumption I tried several other parameter names and found that instagram://library?LocalIdentifier=(localID) where localId is the localIdentifier of your PHAsset works for now.

This is still as undocumented as it was so it can break in any future version of the Instagram.

Copy link

yjb94 commented Feb 27, 2017


stopped working...

Copy link

instagram://library?LocalIdentifier=(localID) stopped working for me as well

Copy link

LocalIdentifier works for me.

Copy link

Using an unescaped local identifier along with the URL param OpenInEditor=1 seems to get it working again, at least currently.

Example: instagram://library?OpenInEditor=1&LocalIdentifier=DBD74ED9-4D9D-4F35-B12A-5B647944DDFE/L0/001

Copy link

adamhaafiz commented Jul 27, 2017

instagram://library?AssetPath=\(fileURLString) starting crashing for me all of a sudden, changing to instagram://library?OpenInEditor=1&LocalIdentifier=\(fileLocalIdString) works.

Copy link

dhomes commented Jan 23, 2018

is there a way from preventing it showing the POST TO FEED / STORY that started showing up recently? I'd like to go directly to my feed

Copy link

I am facing the same issue the image which i want to share from app isn't landing on Instagram image editor, its forcing me to choose photo from library or camera

Copy link

roimulia commented Feb 8, 2018

Same issue as @innoravaneer

Copy link

Thanks and i need same thing working for whatsapp Also so please can you share code for whatsApp ?

Copy link

AFathi commented May 21, 2018

Copy link


Worked for me :)

Copy link

rewaant commented Nov 26, 2020

Stopped working now. Any other way to do this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment