instatools package¶
Submodules¶
instatools.bot module¶
instatools.cli module¶
instatools.models module¶
-
class
instatools.models.Comment(api, json)[source]¶ Bases:
instatools.models.Model
-
class
instatools.models.Location(api, json)[source]¶ Bases:
instatools.models.Model
-
class
instatools.models.ModelFactory[source]¶ Bases:
object-
friendship_status¶ alias of
Relationship
-
relationship¶ alias of
Relationship
-
-
class
instatools.models.Post(api, json)[source]¶ Bases:
instatools.models.Model
-
class
instatools.models.Relationship(api, json)[source]¶ Bases:
instatools.models.Model
-
class
instatools.models.User(api, json)[source]¶ Bases:
instatools.models.Model-
feed¶
-
instatools.session module¶
Instagram Session class provides bare minimum to make authenticated, rate_limited requests to the Instagram API
-
class
instatools.session.Session(username=None, password=None, session=None)[source]¶ Bases:
objectClass representing the request-making Session of a single Instagram user
-
device_id= None¶
-
exponential_sleep_increase= 2¶
-
login_data(cookies)[source]¶ Using cookies provided, gives data to send to Instagram for login approval :param cookies: cookies from login challenge :return: dict: data to use for login
-
password= None¶
-
paths= {'approve': 'friendships/approve/{}/', 'autocomplete_users': 'friendships/autocomplete_user_list', 'block': 'friendships/block/{}/', 'change_password': 'accounts/change_password/', 'change_profile_picture': 'accounts/change_profile_picture/', 'comment': 'media/{}/comment/', 'comments': 'media/{}/comments/', 'configure': 'media/configure', 'create_post': '', 'direct_link': 'direct_v2/threads/broadcast/link/', 'direct_message': 'direct_v2/threads/broadcast/text/', 'direct_share': 'direct_v2/threads/broadcast/media_share/', 'direct_threads': 'direct_v2/threads/{}/', 'edit_profile': 'accounts/edit_profile/', 'explore': 'discover/explore', 'expose': 'qe/expose', 'facebook_search': 'fbsearch/topsearch', 'follow': 'friendships/create/{}/', 'followers': 'friendships/{}/followers', 'following': 'friendships/{}/following', 'friendship': 'friendships/show/{}/', 'geo_media': 'maps/user/{}', 'ignore': 'friendships/ignore/{}/', 'inbox': 'direct_v2/inbox', 'like': 'media/{}/like/', 'liked': 'feed/liked', 'likers': 'media/{}/likers/', 'location_feed': 'feed/location/{}/', 'location_search': 'fbsearch/places', 'login': 'accounts/login/', 'login_challenge': 'si/fetch_headers/', 'logout': 'accounts/logout/', 'megaphone': 'megaphone/log', 'pending': 'friendships/pending', 'popular': 'feed/popular', 'post': 'media/{}/info/', 'profile': 'accounts/current_user/', 'recent_activity': 'news/inbox', 'recent_following_activity': 'news', 'remove_comment': 'media/{}/comment/{}/delete/', 'remove_post': 'media/{}/delete/', 'remove_profile_picture': 'accounts/remove_profile_picture/', 'remove_tag': 'media/{}/remove/', 'save': 'media/{}/save/', 'saved': 'feed/saved', 'set_phone_name': 'accounts/set_phone_and_name/', 'set_private': 'accounts/set_private/', 'set_public': 'accounts/set_public/', 'share_inbox': 'direct_share/inbox', 'story': 'feed/user/{}/reel_media', 'tag_feed': 'feed/tag/{}/', 'tag_search': 'tags/search', 'timeline': 'feed/timeline', 'unblock': 'friendships/unblock/{}/', 'unfollow': 'friendships/destroy/{}/', 'unlike': 'media/{}/unlike/', 'unsave': 'media/{}/unsave/', 'upload_photo': 'upload/photo', 'upload_video': 'upload/video', 'user': 'users/{}/info/', 'user_feed': 'feed/user/{}/', 'user_search': 'users/search', 'user_tags': 'usertags/{}/feed', 'username': 'users/{}/usernameinfo'}¶
-
rank_token¶
-
relog_after_failed= 5¶
-
request(method, url, *, params=None, data=None, return_json=True, **kwargs)[source]¶ Parameters: - method –
- url –
- params –
- data –
- return_json –
- kwargs –
Returns:
-
request_safely(*args, max_attempts=0, **kwargs)[source]¶ Make a safe request that returns correct results or dies trying! Keeps requesting with exponential back-off until requests_to_break is reached, at which point each consecutive request is circuit-broken and waits sleep_on_break seconds until a successful request is made, or until relog_after_failed circuit-broken requests are made, at which point the client re-logs and begins the whole cycle again. :param args: :param max_attempts: :param kwargs: :return:
-
requests_to_break= 10¶
-
session_data¶
-
set_proxy(proxy)[source]¶ Set proxy for all requests made with this session :param proxy: str: proxy - format: “user:password@ip:port” OR “ip:port”
-
setup(username, password, session)[source]¶ Setup session variables by username/password or by previous session :param username: :param password: :param session: :return:
-
sleep_on_break= 600¶
-
sleep_on_page= 0.5¶
-
switch_user(username=None, password=None, session=None)[source]¶ Switches current account username and password - requires login
-
token= None¶
-
static
upload_headers(content_type, video=False)[source]¶ Parameters: - content_type –
- video –
Returns:
-
username= None¶
-
username_id= None¶
-
uuid= None¶
-
instatools.utils module¶
Module contents¶
Top-level package for instatools.
-
class
instatools.Instagram(username=None, password=None, session=None)[source]¶ Bases:
object-
password¶ Password of Instagram account
-
switch_user(username=None, password=None, session=None)[source]¶ Switches current account username and password - requires login
-
username¶ Username of Instagram account
-
username_id¶ User-id of Instagram account
-