saveapi.org

Почему Instagram Graph API не скачивает reels — и что скачивает

Разработчики берут Graph API, потому что он официальный, а потом тратят неделю на App Review и обнаруживают, что он отвечает на другой вопрос. Он создан для управления собственным аккаунтом, а не для чтения чужих публичных постов. Это руководство проводит границу между двумя задачами, чтобы вы перестали искать эндпоинт, которого нет.

Обновлено

Для чего нужен Graph API

Это API управления аккаунтом: публиковать в профессиональный аккаунт, которым вы владеете, читать его статистику, модерировать комментарии. Поле media_url существует и указывает на реальные файлы — для медиа аккаунта, выдавшего ваш токен. Вызова, который берёт произвольный публичный reel и возвращает его видео, нет.

Три стены

Первая: каждый медиа-эндпоинт ограничен авторизовавшим аккаунтом. Вторая: Basic Display API — тот, что читал собственную ленту согласившегося пользователя, — закрыт в декабре 2024. Третья: oEmbed, единственный эндпоинт, принимающий публичный URL, возвращает HTML для встраивания и превью, требует App Review и никогда не отдаёт видеофайл.

Публичный reel через API скачивания

Запрос — это ссылка и ваш ключ. Нет OAuth, нет App Review, нет аккаунта Instagram с вашей стороны. Эндпоинт принимает reels, посты, карусели и истории в той форме, в какой их выдало меню «Поделиться».

Terminal
curl -s "https://api.saveapi.org/v1/instagram" \
  -H "Authorization: Bearer sk_live_xxxx" \
  -G --data-urlencode "url=https://www.instagram.com/reel/ABC123/"

Прочитайте ответ

medias[] содержит каждый файл поста по порядку, у каждого — type и прямой URL на CDN источника. В meta — автор и подпись. Карусель из двух фото и клипа даёт две записи image и одну video; форма от поста к посту не меняется.

Python
data = resolve("https://www.instagram.com/reel/ABC123/")

for media in data["medias"]:
    # "video" yoki "image"; karuselda post tartibida keladi
    print(media["type"], media["url"])

print(data["meta"]["author"], data["meta"]["title"])

Когда Graph API всё ещё правильный инструмент

Если вы публикуете в собственный аккаунт, читаете его аналитику или отвечаете на его комментарии — оставайтесь на Graph API: он для этого, и ничто здесь его не заменяет. API скачивания нужен для единственного, чего он не умеет: разрешить публичный пост, который вам не принадлежит.

Вопросы перед началом

Разрешено ли использовать API скачивания?
Эндпоинт разрешает публичные посты в URL, которые Instagram и так отдаёт любому посетителю; что вы можете делать с файлом, определяют права автора и правила платформы, а не API. Стройте для сохранения, архивирования и репостов с разрешения.
Я получу то же качество, что media_url в Graph API?
Вы получаете вариант, который Instagram публикует для поста, — тот же файл, что играет браузер. Для Instagram в ответе нет списка formats[], так что выбирать качество не из чего.
Можно забрать весь профиль?
Нет — API принимает ссылку на пост, reel или историю, а не username. Исключение — истории: instagram.com/stories/<username>/ возвращает всё, что у аккаунта активно сейчас.

Платформы, использованные здесь

Другие руководства

Запустите это руководство со своим ключом

Ключ за минуту. 1 000 бесплатных кредитов, без карты и без срока.

Получить ключ и попробоватьПолный справочник API