Skip to content

Commit 149f8cc

Browse files
authored
Merge pull request #1868 from SaeidB/master
fix for user info (user info gql)
2 parents a4d93b9 + 31bca55 commit 149f8cc

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

instagrapi/mixins/public.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def public_request(
8080
data=None,
8181
params=None,
8282
headers=None,
83+
update_headers=None,
8384
return_json=False,
8485
retries_count=3,
8586
retries_timeout=2,
@@ -96,7 +97,7 @@ def public_request(
9697
try:
9798
if self.delay_range:
9899
random_delay(delay_range=self.delay_range)
99-
return self._send_public_request(url, **kwargs)
100+
return self._send_public_request(url, update_headers=update_headers, **kwargs)
100101
except (
101102
ClientLoginRequired,
102103
ClientNotFoundError,
@@ -123,18 +124,14 @@ def public_request(
123124
continue
124125

125126
def _send_public_request(
126-
self,
127-
url,
128-
data=None,
129-
params=None,
130-
headers=None,
131-
return_json=False,
132-
stream=None,
133-
timeout=None,
127+
self, url, data=None, params=None, headers=None, return_json=False, stream=None, timeout=None, update_headers=None
134128
):
135129
self.public_requests_count += 1
136130
if headers:
137-
self.public.headers.update(headers)
131+
if update_headers in [None, True] :
132+
self.public.headers.update(headers)
133+
elif update_headers == False :
134+
pass
138135
if self.last_response_ts and (time.time() - self.last_response_ts) < 1.0:
139136
time.sleep(1.0)
140137
if self.request_timeout:

instagrapi/mixins/user.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from copy import deepcopy
22
from json.decoder import JSONDecodeError
3+
import json
34
from typing import Dict, List, Tuple
45

56
from instagrapi.exceptions import (
@@ -149,7 +150,10 @@ def user_info_by_username_gql(self, username: str) -> User:
149150
An object of User type
150151
"""
151152
username = str(username).lower()
152-
return extract_user_gql(self.public_a1_request_user_info_by_username(f"/{username!s}/")["user"])
153+
temporary_public_headers = {'Host': 'www.instagram.com','X-Requested-With': 'XMLHttpRequest','Sec-Ch-Prefers-Color-Scheme': 'dark','Sec-Ch-Ua-Platform': '"Linux"','X-Ig-App-Id': '936619743392459','Sec-Ch-Ua-Model': '""','Sec-Ch-Ua-Mobile': '?0','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.112 Safari/537.36','Accept': '*/*','X-Asbd-Id': '129477','Sec-Fetch-Site': 'same-origin','Sec-Fetch-Mode': 'cors','Sec-Fetch-Dest': 'empty','Referer': 'https://www.instagram.com/','Accept-Language': 'en-US,en;q=0.9','Priority': 'u=1, i'}
154+
update_headers = False
155+
data = extract_user_gql(json.loads(self.public_request(f'https://www.instagram.com/api/v1/users/web_profile_info/?username={username}', headers=temporary_public_headers))['data']['user'], update_headers=update_headers)
156+
return data
153157

154158
def user_info_by_username_v1(self, username: str) -> User:
155159
"""

0 commit comments

Comments
 (0)