Skip to content

Commit 43b3841

Browse files
Fuck Arlo
1 parent bb4ba34 commit 43b3841

File tree

2 files changed

+42
-9
lines changed

2 files changed

+42
-9
lines changed

arlo.py

+31-1
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,11 @@ def LoginMFA(self, username, password, google_credential_file):
252252
code = search.group(0)
253253
break
254254

255+
"""
256+
code = input("Enter MFA code:\n")
257+
print("CODE", factor_auth_code)
258+
"""
259+
255260
# Complete auth
256261
finish_auth_body = self.request.post(
257262
f'https://{self.AUTH_URL}/api/finishAuth',
@@ -264,7 +269,12 @@ def LoginMFA(self, username, password, google_credential_file):
264269
)
265270

266271
# Update Authorization code with new code
267-
self.request.session.headers.update({'Authorization': base64.b64encode(finish_auth_body['data']['token'].encode('utf-8'))})
272+
headers = {
273+
'Auth-Version': '2',
274+
'Authorization': finish_auth_body['data']['token'].encode('utf-8'),
275+
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_1_2 like Mac OS X) AppleWebKit/604.3.5 (KHTML, like Gecko) Mobile/15B202 NETGEAR/v1 (iOS Vuezone)',
276+
}
277+
self.request.session.headers.update(headers)
268278
self.BASE_URL = 'myapi.arlo.com'
269279

270280
def Logout(self):
@@ -974,6 +984,26 @@ def GetSession(self):
974984
"""
975985
return self.request.get(f'https://{self.BASE_URL}/hmsweb/users/session')
976986

987+
def GetSessionV2(self):
988+
"""
989+
Returns something like the following:
990+
{
991+
"userId": "XXX-XXXXXXX",
992+
"email": "[email protected]",
993+
"token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
994+
"paymentId": "XXXXXXXX",
995+
"accountStatus": "registered",
996+
"serialNumber": "XXXXXXXXXXXXXX",
997+
"countryCode": "US",
998+
"tocUpdate": false,
999+
"policyUpdate": false,
1000+
"validEmail": true,
1001+
"arlo": true,
1002+
"dateCreated": 1463975008658
1003+
}
1004+
"""
1005+
return self.request.get(f'https://{self.BASE_URL}/hmsweb/users/session/v2')
1006+
9771007
def GetFriends(self):
9781008
return self.request.get(f'https://{self.BASE_URL}/hmsweb/users/friends')
9791009

request.py

+11-8
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,19 @@ def __init__(self):
3131
def _request(self, url, method='GET', params={}, headers={}, stream=False, raw=False):
3232

3333
## uncomment for debug logging
34-
# import logging
35-
# import http.client
36-
# http.client.HTTPConnection.debuglevel = 1
37-
# logging.basicConfig()
38-
# logging.getLogger().setLevel(logging.DEBUG)
39-
# req_log = logging.getLogger('requests.packages.urllib3')
40-
# req_log.setLevel(logging.DEBUG)
41-
# req_log.propagate = True
34+
"""
35+
import logging
36+
import http.client
37+
http.client.HTTPConnection.debuglevel = 1
38+
logging.basicConfig()
39+
logging.getLogger().setLevel(logging.DEBUG)
40+
req_log = logging.getLogger('requests.packages.urllib3')
41+
req_log.setLevel(logging.DEBUG)
42+
req_log.propagate = True
43+
"""
4244

4345
if method == 'GET':
46+
#print('COOKIES: ', self.session.cookies.get_dict())
4447
r = self.session.get(url, params=params, headers=headers, stream=stream)
4548
r.raise_for_status()
4649
if stream is True:

0 commit comments

Comments
 (0)