var name = "smena8m";_x000D_
$.get("https://images"+~~(Math.random()*3333)+"-focus-opensocial.googleusercontent.com/gadgets/proxy?container=none&url=https://www.instagram.com/" + name + "/", function(html) {_x000D_
if (html) {_x000D_
var regex = /_sharedData = ({.*);<\/script>/m,_x000D_
json = JSON.parse(regex.exec(html)[1]),_x000D_
edges = json.entry_data.ProfilePage[0].graphql.user.edge_owner_to_timeline_media.edges;_x000D_
_x000D_
$.each(edges, function(n, edge) {_x000D_
var node = edge.node;_x000D_
$('body').append(_x000D_
$('<a/>', {_x000D_
href: 'https://instagr.am/p/'+node.shortcode,_x000D_
target: '_blank'_x000D_
}).css({_x000D_
backgroundImage: 'url(' + node.thumbnail_src + ')'_x000D_
}));_x000D_
});_x000D_
}_x000D_
});
_x000D_
html, body {_x000D_
font-size: 0;_x000D_
line-height: 0;_x000D_
}_x000D_
_x000D_
a {_x000D_
display: inline-block;_x000D_
width: 25%;_x000D_
height: 0;_x000D_
padding-bottom: 25%;_x000D_
background: #eee 50% 50% no-repeat;_x000D_
background-size: cover;_x000D_
}
_x000D_
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
_x000D_
You can download any Instagram user photo feed in JSON format using ?__a=1
next to landing page address like this. No need to get user id or register an app, no tokens, no oAuth.
min_id
and max_id
variables can be used for pagination, here is example
YQL
may not work here inside snipped iframe, so you can always check it manually in YQL Console
APRIL 2018 UPDATE: After latest instagram updates you can't do this on client side (javascript) because custom headers for signed request can't be set with javascript due to CORS
Access-Control-Allow-Headers
restrictions. It still possible to do this via php
or any other server side method with proper signature based on rhx_gis
, csrf_token
and request parameters. You can read more about it here.
JANUARY 2019 UPDATE: YQL retired, so, check my latest update with Google Image Proxy as CORS
proxy for Instagram page! Then only negative moment - pagination not available with this method.
PHP
solution:
$html = file_get_contents('https://instagram.com/apple/');
preg_match('/_sharedData = ({.*);<\/script>/', $html, $matches);
$profile_data = json_decode($matches[1])->entry_data->ProfilePage[0]->graphql->user;