Как стать автором
Обновить

Комментарии 40

А получив это API доступ к Instagram, rtmp случайно не появляется для стриминга?
Я не знаю, я ещё года 2 назад пытался получить доступ к API, но мне не дали) Его, как мне рассказывали, дают в приоритете каким-либо веб-приложениям, и чаще всего уже запущенным
если еще не нашли — rtmp можно получить без доступа к апи
Очень жаль, что не все методы работают (например, получение лайков и комментариев без авторизации). Насколько мне известно, query_id привязывается к сессии, а вы их вынесли в качестве магических констант.
Насколько мне известно, query_id привязывается к сессии, а вы их вынесли в качестве магических констант.

Это действительно магические константы) Точнее, они требуются для того, чтобы указать, что запрашивается. Это проверено опытным путём
Очень жаль, что не все методы работают (например, получение лайков и комментариев без авторизации).

Нет, без авторизации точно можно получать комментарии, а лайки, если честно, не пробовал. Но если web-интерфейс позволяет, то и в приложении можно.
Если кому интересно, делал как-то телегам бот для масс фолловинга t.me/instanode_bot
Использовал приватное api instagram, в итоге имея базу прогоняю по ним аккаунты
Проект на github github.com/hazratgs/instalator-telegram
2 года назад написал плагин, который публикует товары в инстаграм
www.webasyst.ru/store/plugin/shop/instagram
Он эмулирует телефон.
Как работал ключ, так и работает до сих пор.
Он маскируется под старую версию приложения? Я думал, они закрывают доступ)
Могу дать доступ в репо на гитлаб, если в личку скинешь мыло. Посмотришь класс, который генерит клиента. Я его делал на основе другого класса, который нашел на гитхабе.
Бегло посмотрел код, как я понимаю список новостей авторизованного пользователя получить нельзя?

Пока нет, но в теории можно)

Наверно возьмусь как время высвободится. Давно хочу ленту из инстаграма отправить в rss читалку.
когда библиотека состоит всего из одного файла

всего из 756 строк.
Может я и придираюсь, но я бы всё раскидал по разный файлам (эксепшионы, авторизация, действия)
Не, всё верно, но пока я не увидел в этом смысла) и мне удобнее было писать, когда всё в одном файле

756 строк — это не много
А вот делать много файлов с каким-то специальным библиотечным оформлением, когда можно сделать один, встраиваемый под видом части своего исходника — уже наоборот "много".

А у инстаграма есть ограничения по запросам? И как это обходите? Например у вк 3 запроса в секунду, и нормально парсить только если сбор распределять на разные аккаунты.

Как я выше писал, все запросы делаются на основе библиотеки requests. Если использовать парсинг с авторизацией, то прокси не поможет, это да. Мне приходилось вставлять обработчик ошибок, чтобы при 429 он ожидал какое-то время

А сам инстаграм не даёт никаких цифр запросы в секунду? И по опыту можете, пожалуйста, сказать сколько нужно времени (вместе с ожиданием) что бы скачать например 10000 постов?

Официально у них описано только API, и там тоже не ахти. В варианте веб версии некоторую инфу можно вытаскивать анонимно, а с API это невозможно. Если про реальные цифры, то чтобы не уйти в 429 я пробовал ставить ожидание после каждого запроса от 1 до 2 секунд. С 1 секундой он уходит в 429 ошибку, с 2 — никогда. Думаю, при таком варианте — это где-то 40-50 запросов в минуту. Так как максимум можно вытащить около 1000 запросов за раз (скорее всего, есть цифра точная, но я не ставил экспериментов пока), то на 10000 постов надо будет потратить около 3-4 часов. Это если быть авторизованным. А если вытаскивать посты без авторизации с использованием прокси — то ограничений нет. Опять же, если бы мобильное приложение или API давали лучшие результаты(

1000 постов за запрос*

Простите, я считаю, как обезьяна. 10000 постов можно вытащить максимум за полминуты, а вот получить картинку, текст и так далее каждого поста — это долго, да

Спасибо. Да я имел ввиду картинка, текст, теги и т.д.

На самом деле, технически можно достать и за полминуты. По-моему, из запросов типа ?__a=1 можно достать ещё маленькие изображения и, кажется, текст. Но это не точно

Хм… интересно, спасибо. Как перейду к инсте надо будет видимо исследовать этот вопрос.

Читайте
Если кратко — 2 часа (если Ваше приложение Instagram заапрувил). Это не считая комментариев к постам, т.к. они выкачиваются отдельными запросами, а значит требуют дополнительных лимитов.
И кстати там используется довольно интересная штука с time-sliding limits, т.е. кол-во запросов в час считается не относительно некоторого времени (например с 11.00 до 12.00) а за час назад отсчитывая от текущего момента

Спасибо, да полезный линк.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Ни для кого не секрет, что самая популярная и прибыльная площадка для рекламы, бизнеса и прочего — Instagram.

Сильное заявление

Рекомендую библиотеку, которая эмулирует поведение android-приложения и позволяет делать почти всё (сейчас живые трансляции не доступны), что возможно в приложении https://github.com/mgp25/Instagram-API/.

Если вам нужен только постинг, используйте мой докер-контейнер (https://github.com/zhuharev/instagram-rest-api), который запускается как микро-сервис и позволяет (пока только) постить фото и галлереи просто rest-запросом.
Может кто подскажет такое же, но только для ноды?
Вообще все проекты гуглятся по запросу «instagram unofficial api»

Есть адаптация для ноды https://github.com/huttarichard/instagram-private-api и для питона https://github.com/danleyb2/Instagram-API

Лучше использовать оригинальную библиотеку, потому что у неё бОльшее комьюнити и библиотеку часто обновляют.
А она, как я понял, также эмулирует приложение, да? И в нём надо обязательно авторизовываться?
Она шлёт такие же запросы, как и приложение. Да, работа с библиотекой доступна только по логину и паролю.
Библиотека хорошая.
Единственный минус конечно это то что нужно следить за ключём приложения (так как в один прекрасный момент, без обновления скрипта и ключа — всё накроется).
На сколько я понял лёгкого способа изымать ключ приложения — нет.

Ну и ещё сейчас они ввели политику — «платите, или ничего не спрашивайте».

По поводу эмуляции клиента и эавторизации добавлю. Когда ты делаешь ее на сервере, который географически удален от того места, где ты обычно используешь аккаунт, авторизация не проходит. Нужно зайти в веб версию инстаграма, залогинится там и подтвердить что это был ты.
Столкнулся с этим, когда делал инстаграм клиент для часов pebble (исходники, кому интересно)

Да, есть такое. Это тоже можно обойти, но из-за того, что эта проблема встречается редко — я не смог её решить(
нужно авторизироваться на своём компьютере, например, (что бы ip был такой же, как и ip где вы авторизировались с мобильного), а потом просто скопировать cookies на удалённый сервер
спасибо за библиотеку, буквально то что я искала для личных нужд уже долгое время.
Для своей цели доработала получение линку на видеофайл если контент является видео.
if self.is_video:
self.video_url = data['video_url']
в методе Media.__setDataFromJSON__(..)
Очень рад, что она приносит пользу) Если есть какие-то изменения, то не могли бы Вы форкнуть репозиторий и предложить изменения?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории