Почему 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, посты, карусели и истории в той форме, в какой их выдало меню «Поделиться».
Terminalcurl -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; форма от поста к посту не меняется.
Pythondata = 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 бесплатных кредитов, без карты и без срока.