Подтвердить что ты не робот

1080x1080 фотографий через Instagram API

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

Недавно появившаяся версия Verge, известная последними версиями приложений Instagram, загружает фотографии с разрешением 1080x1080. Эти фотографии можно легко получить через HTML при просмотре исходного кода сайта. Можно ли получить доступ через официальный Instagram API? И если да, то как?

4b9b3361

Ответ 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.

  1. Получите user_Id с https://www.instagram.com/{username}/?__a=1 enjusername‹/?__a=1.

  2. Вставьте идентификатор пользователя в эту ссылку https://i.instagram.com/api/v1/users/{user_id}/info/.

  3. Получить ссылку 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 может показывать разные размеры, но ссылки на один и тот же файл разрешения по умолчанию.

  1. Перейти на страницу пользователя: https://www.instagram.com/ username
  2. Нажмите на изображение, которое вы хотите, и строка URL изменится на: https://www.instagram.com/p/ image-code/? Take-by = username
  3. Скопируйте image-code из URL
  4. Перейдите по адресу: https://www.instagram.com/p/ image-code/? __ a = 1.
  5. Сканируйте файл 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

  1. Теперь просто добавьте 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");