1080x1080 фотографий через Instagram API
http://www.theverge.com/2015/7/6/8899807/instagram-1080p-pictures-photo-upload
Недавно появившаяся версия Verge, известная последними версиями приложений Instagram, загружает фотографии с разрешением 1080x1080. Эти фотографии можно легко получить через HTML при просмотре исходного кода сайта. Можно ли получить доступ через официальный Instagram API? И если да, то как?
Ответы
Ответ 1
[Обновление] После 23 марта 2018 года
Я использовал ответ Экрема Гурдала, чтобы он заработал:
IG API предоставляет вам атрибут "ссылка", например https://www.instagram.com/p/BTduOwSAwN6/
Тогда вы можете добавить? __ a = 1 к этому, например, https://www.instagram.com/p/BTduOwSAwN6/?__a=1
И вы можете извлечь из результата json, где хранится фотография с высоким разрешением: graphsql.shortcode_media.display_url
Например, https://instagram.fmnl2-1.fna.fbcdn.net/vp/f8f54b9fcb2bca69d7c73d9ffb232d64/5C324A1C/t51.2885-15/e35/18161146_397673830625587_2385146908864675840
Надеюсь это поможет. Может быть, IG люди также найдут способ отключить это в будущем. Почему они не просто включают фотографию с высоким разрешением в ответ API, smh
[Обновление] По состоянию на 23 марта 2018 года, обходной путь ниже не работает.
Просто чтобы обновить любого, кто смотрит на это в 2018 году. Решение, которое работало для меня, состоит в том, чтобы убрать "vp/" поверх замены разрешения на 1080x1080.
Например
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
Ответ 2
Не уверен, почему вы уходите, проголосовали, но нет, эта резолюция не возвращается 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
для этого изображения, вероятно, отличающегося для вашего), в результате получится URL-адрес 1080x1080
:
https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/11370971_837216559694773_771634899_n.jpg
Это сработало с тех пор, как эта резолюция была активирована в моем аккаунте. Но опять же, я просто буду ждать API.
Ответ 3
По состоянию на 26 марта 2018 года Instagram изменил свои ссылки. Вот рабочее решение для получения изображений с разрешением 1080x1080 из API.
-
Получите user_Id с https://www.instagram.com/{username}/?__a=1
enjusername‹/?__a=1.
-
Вставьте идентификатор пользователя в эту ссылку https://i.instagram.com/api/v1/users/{user_id}/info/
.
-
Получить ссылку hd url из hd_profile_pic_url_info
. :)
Ответ 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/","/");
Ответ 5
Вы можете просто получить изображение 1080p, если доступно, используя этот URL:
https://www.instagram.com/p/['IMAGE-CODE']/?__a=1
![Different size of an image]()
Ответ 6
Это работает с 20 марта 2018 года.
Снимите vp и размерные части. Так что если у нас есть изображение 150x150 здесь
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 здесь
Вы даже можете просто оставить последние два сегмента
https://scontent.cdninstagram.com/e35/28152308_875888592619569_7505395194448052224_n.jpg
который можно увидеть здесь
Надеюсь это поможет
Ответ 7
Это сработало для меня сегодня (15 августа 2018 года) для большинства публичных изображений. Я думаю, потому что люди используют разные приложения для загрузки изображений, API может показывать разные размеры, но ссылки на один и тот же файл разрешения по умолчанию.
- Перейти на страницу пользователя: https://www.instagram.com/
username
- Нажмите на изображение, которое вы хотите, и строка URL изменится на: https://www.instagram.com/p/
image-code
/? Take-by = username
- Скопируйте
image-code
из URL - Перейдите по адресу: https://www.instagram.com/p/
image-code
/? __ a = 1. - Сканируйте файл JSON (помогает включить расширение JSON Viewer) и щелкните изображение с самым высоким разрешением, чтобы загрузить его. Например:
![enter image description here]()
Ответ 8
Проблема с URL-адресом изображения Instagram заключается в том, что срок действия подписи URL-адреса, предоставленной в ответах json, истекает через некоторое время. Мой обходной путь для этой проблемы заключается в следующем:
Шаги: 1. Получить ссылку на публикацию в Instagram. Например: https://www.instagram.com/p/Bo-Jru-g7Wa/
или, если у вас нет ссылки, instagram api предоставляет вам постоянную ссылку (image-code) в массиве результатов, который для вышеуказанной ссылки - Bo-Jru-g7Wa
- Теперь просто добавьте media? Size = l после URL, т.е.
Результат: высокое качество изображения URL:
https://www.instagram.com/p/Bo-Jru-g7Wa/media?size=l
вы можете увидеть это в действии здесь: https://jsfiddle.net/nmj1z7wo/ fiddle URL
Эта ссылка может рассматриваться как сокращенный код для URL изображения Instagram, который намного больше. Поддерживаемые значения для размера: t (миниатюра), m (средний), l (большой). По умолчанию м.
Ответ 9
Вы получили
"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
. Оба этого запроса возвращают изображение с разрешением 1080x1080
var hightUrl = data.images.standard_resolution.url.replace("s640x640","s1080x1080");