http://www.theverge.com/2015/7/6/8899807/instagram-1080p-pictures-photo-upload
The Verge最近宣布Instagram的最新应用版本正在以1080x1080分辨率上传照片。浏览网站的源代码时,可以通过HTML轻松获取这些照片。可以通过官方Instagram API访问这些吗?如果是这样,怎么样?
答案 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
希望这会有所帮助。也许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分辨率图像的工作解决方案。
从https://www.instagram.com/{username}/?__a=1
获取user_Id。
将user_id粘贴到此链接https://i.instagram.com/api/v1/users/{user_id}/info/
。
从hd_profile_pic_url_info
获取高清网址链接。 :)
答案 3 :(得分:4)
我注意到只需删除尺寸部分,就会返回最大的图像:
到
因此,这应该可以解决问题:
var hightUrl = data.images.standard_resolution.url.replace("/s640x640/","/");
答案 4 :(得分:2)
答案 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可能显示不同的大小,但是链接指向相同的默认分辨率文件。
username
image-code
/?taked-by = username
image-code
image-code
/?__ a = 1 答案 7 :(得分:1)
instagram图像URL的问题是json响应中提供的URL签名会在一段时间后过期。我针对此问题的解决方法如下:
步骤: 1.获取instagram帖子链接。例如:https://www.instagram.com/p/Bo-Jru-g7Wa/
或者,如果您没有链接,则instagram api在结果数组中为您提供一个永久链接(图像代码)选项,该链接的上述链接为 Bo-Jru-g7Wa < / p>
结果:高质量的图片网址:
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
}
可以用s640x640
或s1080x1080
替换2048x2048
。这个请求都返回带有resolut 1080x1080
var hightUrl = data.images.standard_resolution.url.replace("s640x640","s1080x1080");