API историй Instagram без логина: одна история или все активные
Истории — та часть Instagram, на которой скрейпинг ломается первым: они живут 24 часа, отдаются только залогиненной сессии, а в ссылке, которую вставляет пользователь, редко есть id истории. Эндпоинт принимает обе формы ссылки и возвращает тот же medias[], что и для reel. Это руководство — два вызова, цена и одно правило про срок жизни.
Обновлено
Одна история
Ссылка из меню «Поделиться» — instagram.com/stories/<username>/<id>/ — разрешается в эту одну историю. Без логина, без сессии: запрос — ссылка и ваш ключ, ответ — прямой URL видео или изображения.
Terminalcurl -s "https://api.saveapi.org/v1/instagram" \ -H "Authorization: Bearer sk_live_xxxx" \ -G --data-urlencode "url=https://www.instagram.com/stories/nasa/3981078788746068381/"
Все активные истории аккаунта
Уберите id и передайте instagram.com/stories/<username>/ — в ответе все истории, которые у аккаунта активны в этот момент, в порядке публикации. Этот вызов нужен, когда пользователь вставляет профиль, а не историю.
Terminalcurl -s "https://api.saveapi.org/v1/instagram" \ -H "Authorization: Bearer sk_live_xxxx" \ -G --data-urlencode "url=https://www.instagram.com/stories/nasa/"
Прочитайте ответ
Каждый элемент medias[] — одна история: видео или изображение с прямым URL. Десять активных историй дают десять записей. Аккаунт, у которого ничего не активно, возвращает MEDIA_NOT_FOUND — это правильный ответ, а не сбой с нашей стороны, потому код и финальный.
Pythondata = resolve("https://www.instagram.com/stories/nasa/")
# Har element bitta story: video yoki rasm, e'lon qilingan tartibda
for media in data["medias"]:
print(media["type"], media["url"])Цена и что в неё не входит
Вызов истории стоит 5 кредитов, вернёт он одну историю или двенадцать — цена за разрешённую ссылку, и это самый дорогой вызов в API, потому что источники, умеющие читать истории, дороже всего в работе. Закрытые аккаунты не читаются ни за какую цену: вы получаете PRIVATE_CONTENT и списывается 0.1 кредита.
Заберите файл раньше, чем история сделает то, что делают истории
URL медиа — подписанный адрес CDN, а сама история исчезает через 24 часа после публикации. Если файл нужен, скачайте его в момент разрешения; повторный запрос завтра не вернёт ничего, потому что разрешать будет нечего.
Terminalcurl -sL -o video.mp4 "<medias[0].url>"
Вопросы перед началом
- Нужны cookie аккаунта или залогиненная сессия?
- Нет. Запрос — ссылка и ваш API-ключ; ничто с вашей стороны не общается с Instagram.
- Почему история стоит 5 кредитов, когда reel — 1.5?
- Потому что источники, умеющие читать истории без сессии, — редкая и дорогая часть цепочки. Цена за разрешённую ссылку, так что вызов, вернувший восемь историй, всё равно стоит 5.
- Можно получить архивные истории?
- Нет. Архивные истории не публичны, а эндпоинт разрешает только то, что у аккаунта активно сейчас, или одну историю по ссылке «Поделиться».
Платформы, использованные здесь
Другие руководства
Запустите это руководство со своим ключом
Ключ за минуту. 1 000 бесплатных кредитов, без карты и без срока.