X-Git-Url: http://git.code-monkey.de/?p=plugin.video.netflix.git;a=blobdiff_plain;f=resources%2Flib%2FNetflixSession.py;h=8c3172482c2348cd3f9c771de01f7c5d671758da;hp=46f2f2de5e6652f1e95dfea803d0e609073bad3a;hb=9616c8fc595d3b3bf2fe379febeb2f498e8001d6;hpb=0dad9aee7bac49ad5c34d9a49511da25d00a6d4c diff --git a/resources/lib/NetflixSession.py b/resources/lib/NetflixSession.py index 46f2f2d..8c31724 100644 --- a/resources/lib/NetflixSession.py +++ b/resources/lib/NetflixSession.py @@ -10,11 +10,12 @@ import time import urllib import json import requests +import platform try: import cPickle as pickle except: import pickle -from bs4 import BeautifulSoup +from bs4 import BeautifulSoup, SoupStrainer from pyjsparser import PyJsParser from utils import noop @@ -29,7 +30,7 @@ class NetflixSession: 'browse': '/browse', 'video_list_ids': '/warmer', 'shakti': '/pathEvaluator', - 'profiles': '/profiles', + 'profiles': '/browse', 'switch_profiles': '/profiles/switch', 'adult_pin': '/pin/service', 'metadata': '/metadata', @@ -62,15 +63,7 @@ class NetflixSession: { "guid": "72ERT45...", "authURL": "145637....", - "countryOfSignup": "DE", - "emailAddress": "foo@..", - "gpsModel": "harris", - "isAdultVerified": True, - "isInFreeTrial": False, - "isKids": False, - "isTestAccount": False, - "numProfiles": 5, - "pinEnabled": True + "gpsModel": "harris" } """ @@ -87,7 +80,7 @@ class NetflixSession: """ esn = '' - """str: Widevine esn, something like: NFCDCH-MC-D7D6F54LOPY8J416T72MQXX3RD20ME""" + """str: ESN - something like: NFCDCH-MC-D7D6F54LOPY8J416T72MQXX3RD20ME""" def __init__(self, cookie_path, data_path, verify_ssl=True, log_fn=noop): """Stores the cookie path for later use & instanciates a requests @@ -109,11 +102,11 @@ class NetflixSession: self.verify_ssl = verify_ssl self.log = log_fn - # start session, fake chrome (so that we get a proper widevine esn) & enable gzip + # start session, fake chrome on the current platform (so that we get a proper widevine esn) & enable gzip self.session = requests.session() self.session.headers.update({ - 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36', - 'Accept-Encoding': 'gzip, deflate' + 'User-Agent': self._get_user_agent_for_current_platform(), + 'Accept-Encoding': 'gzip' }) def parse_login_form_fields (self, form_soup): @@ -158,219 +151,14 @@ class NetflixSession: :obj:`list` of :obj:`dict` List of all the serialized data pulled out of the pagws