Pull to refresh

Comments 40

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

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

Нет, без авторизации точно можно получать комментарии, а лайки, если честно, не пробовал. Но если web-интерфейс позволяет, то и в приложении можно.
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) а за час назад отсчитывая от текущего момента

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

UFO just landed and posted this here
UFO just landed and posted this here
Ни для кого не секрет, что самая популярная и прибыльная площадка для рекламы, бизнеса и прочего — 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__(..)
Очень рад, что она приносит пользу) Если есть какие-то изменения, то не могли бы Вы форкнуть репозиторий и предложить изменения?
Sign up to leave a comment.

Articles