通过Instagram API获得1080x1080张照片

时间:2015-07-08 20:14:26

标签: instagram instagram-api

http://www.theverge.com/2015/7/6/8899807/instagram-1080p-pictures-photo-upload

The Verge最近宣布Instagram的最新应用版本正在以1080x1080分辨率上传照片。浏览网站的源代码时,可以通过HTML轻松获取这些照片。可以通过官方Instagram API访问这些吗?如果是这样,怎么样?

10 个答案:

答案 0 :(得分:19)

[更新] 2018年3月23日之后

我使用了Ekrem Gurdal的答案让它发挥作用:

IG API为您提供“链接”属性,例如https://www.instagram.com/p/BTduOwSAwN6/

然后你可以追加?__ a = 1 https://www.instagram.com/p/BTduOwSAwN6/?__a=1

您可以从存储高分辨率照片的json结果中提取: graphsql.shortcode_media.display_url

E.g。 https://instagram.fmnl2-1.fna.fbcdn.net/vp/f8f54b9fcb2bca69d7c73d9ffb232d64/5C324A1C/t51.2885-15/e35/18161146_397673830625587_2385146908864675840_n.jpg

希望这会有所帮助。也许IG伙伴们也会找到一种方法来禁用它。为什么他们不只是在API响应中包含高分辨率照片,smh

[更新]自2018年3月23日起,下面的解决方法不再有效。

只是为了更新2018年正在考虑这个问题的人。对我有用的解决方案是在将分辨率替换为1080x1080之后删除“vp /”。

E.g。

https://scontent.cdninstagram.com/vp/41d5aee08758061976d26e48f45e673a/5ADA338E/t51.2885-15/s320x320/e35/20065394_1785212551507111_5192354829363576832_n.jpg

https://scontent.cdninstagram.com/41d5aee08758061976d26e48f45e673a/5ADA338E/t51.2885-15/s1080x1080/e35/20065394_1785212551507111_5192354829363576832_n.jpg

答案 1 :(得分:15)

不确定为什么要投票,但不是,目前API尚未返回该解决方案。但是,它可以从API返回的其他分辨率中“猜测”,但这可能随时发生变化。例如,给定标准分辨率JSON:

  "standard_resolution": {
    "url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/e35/sh0.08/11370971_837216559694773_771634899_n.jpg",
    "width": 640,
    "height": 640
  }

删除尺寸部分(此处为s640x640)以及后面的两条路径(e35/sh0.08对于此图片,可能与您的不同)最终得到1080x1080的网址:

    https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/11370971_837216559694773_771634899_n.jpg

自从我的帐户启用该决议以来,这已经奏效了。但同样,我只是等待API。

答案 2 :(得分:7)

截至2018年3月26日,Instagram更改了链接。 这是一个从API获取1080x1080分辨率图像的工作解决方案。

  1. https://www.instagram.com/{username}/?__a=1获取user_Id。

  2. 将user_id粘贴到此链接https://i.instagram.com/api/v1/users/{user_id}/info/

  3. hd_profile_pic_url_info获取高清网址链接。 :)

答案 3 :(得分:4)

我注意到只需删除尺寸部分,就会返回最大的图像:

  

https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/e35/sh0.08/11370971_837216559694773_771634899_n.jpg

  

https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/e35/sh0.08/11370971_837216559694773_771634899_n.jpg

因此,这应该可以解决问题:

var hightUrl = data.images.standard_resolution.url.replace("/s640x640/","/");

答案 4 :(得分:2)

如果可以使用此网址,您只需获取1080p图片:

https://www.instagram.com/p/['IMAGE-CODE']/?__a=1

Different size of an image

答案 5 :(得分:1)

此作品截至2018年3月20日。

删除vp和大小部分。 因此,如果我们有一张150x150的图片here

https://scontent.cdninstagram.com/vp/6f28b299faab04675a936073c94d0fde/5B2E3498/t51.2885-15/s150x150/e35/c135.0.810.810/28152308_875888592619569_7505395194448052224_n.jpg

删除/ vp和/ s150x150以获取

https://scontent.cdninstagram.com/6f28b299faab04675a936073c94d0fde/5B2E3498/t51.2885-15/e35/c135.0.810.810/28152308_875888592619569_7505395194448052224_n.jpg

我们可以获得1080图像 here

你甚至可以留下最后两段

https://scontent.cdninstagram.com/e35/28152308_875888592619569_7505395194448052224_n.jpg

可以看到here

希望这有帮助

答案 6 :(得分:1)

今天(2018年8月15日),这为我 最多 公开图片工作。我认为,因为人们使用不同的应用程序上传图像,所以API可能显示不同的大小,但是链接指向相同的默认分辨率文件。

  1. 转到用户页面:https://www.instagram.com/ username
  2. 单击所需图像,URL栏将变为:https://www.instagram.com/p/ image-code /?taked-by = username
  3. 从URL复制image-code
  4. 转到:https://www.instagram.com/p/ image-code /?__ a = 1
  5. 浏览JSON文件(有助于启用JSON viewer extension),然后单击最高分辨率的图像进行下载。例如:

enter image description here

答案 7 :(得分:1)

instagram图像URL的问题是json响应中提供的URL签名会在一段时间后过期。我针对此问题的解决方法如下:

步骤: 1.获取instagram帖子链接。例如:https://www.instagram.com/p/Bo-Jru-g7Wa/

或者,如果您没有链接,则instagram api在结果数组中为您提供一个永久链接(图像代码)选项,该链接的上述链接为 Bo-Jru-g7Wa < / p>

  1. 现在只需在URL后添加 media?size = l ,即

结果:高质量的图片网址:

https://www.instagram.com/p/Bo-Jru-g7Wa/media?size=l

您可以在此处看到它的运行情况:https://jsfiddle.net/nmj1z7wo/ fiddle URL

此链接可以视为instagram图像URL的简写代码,该URL很大。支持的大小值为t(缩略图),m(中等),l(大)。默认为m。

答案 8 :(得分:0)

我不确定是否可以获得1080p分辨率的图像。但是,这是获取分辨率为ptr_的图像的一种方法。

1)在以下URL中输入用户的rhs.ptr_。在这里,我使用difference_type operator-(const self_type& rhs) const noexcept { const auto row1 = ptr_ / numCols_; const auto col1 = ptr_ % numCols_; const auto seq1 = col1 * numCols_ + row1; const auto row2 = rhs.ptr_ / numCols_; const auto col2 = rhs.ptr_ % numCols_; const auto seq2 = col2 * numCols_ + row2; return seq2 - seq1; } 作为用户名。 https://www.instagram.com/simonsterstrength/?__a=1

2)搜索320x320并复制URL并访问IG称为HD的图片。


注意:截至2020年6月,IG CDN的答复是可以的。

答案 9 :(得分:-1)

你收到了

"standard_resolution": {
    "url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/e35/sh0.08/11370971_837216559694773_771634899_n.jpg",
    "width": 640,
    "height": 640
  }

可以用s640x640s1080x1080替换2048x2048。这个请求都返回带有resolut 1080x1080

的图像
var hightUrl = data.images.standard_resolution.url.replace("s640x640","s1080x1080");