try_selinium / selimium_try.py
amit0987's picture
Update selimium_try.py
6cde2cf verified
from playwright.sync_api import sync_playwright
import json
import time
import os
COOKIE_FILE = "cookies.json"
def load_cookies(context, page):
"""Loads cookies from a file if available."""
try:
with open(COOKIE_FILE, "r") as f:
cookies = json.load(f)
page.goto("https://www.youtube.com", wait_until="domcontentloaded") # Ensure page is loaded
context.add_cookies(cookies)
print("✅ Cookies loaded successfully.")
except FileNotFoundError:
print("⚠️ No cookies found. Logging in manually.")
def save_cookies(context):
"""Saves cookies to a file."""
cookies = context.cookies()
with open(COOKIE_FILE, "w") as f:
json.dump(cookies, f)
print("✅ Cookies saved successfully.")
def is_logged_in_youtube(page):
"""Checks if the user is logged into YouTube."""
page.goto("https://www.youtube.com", wait_until="domcontentloaded")
time.sleep(2) # Wait for elements to load
try:
page.wait_for_selector("button#avatar-btn", timeout=5000)
print("✅ You are already logged in to YouTube!")
return True
except:
print("❌ You are NOT logged in to YouTube.")
return False
def login_to_youtube(page):
"""Logs into YouTube manually if needed."""
email = os.getenv("YOUTUBE_EMAIL")
password = os.getenv("YOUTUBE_PASSWORD")
if not email or not password:
print("❌ Missing login credentials! Set YOUTUBE_EMAIL and YOUTUBE_PASSWORD.")
return False
page.goto("https://accounts.google.com/signin/v2/identifier?service=youtube")
# Enter email
page.fill("input[type='email']", email)
page.click("button:has-text('Next')")
time.sleep(3)
# Enter password
page.fill("input[type='password']", password)
page.click("button:has-text('Next')")
time.sleep(5)
if is_logged_in_youtube(page):
print("✅ Login successful.")
return True
else:
print("❌ Login failed.")
return False
def main():
with sync_playwright() as p:
browser = p.chromium.launch(headless=False,
executable_path="/home/user/.cache/ms-playwright/chromium/chrome-linux/chrome", args=["--no-sandbox"]) # Use --no-sandbox for Hugging Face Spaces
context = browser.new_context()
page = context.new_page()
load_cookies(context, page)
result=is_logged_in_youtube(page)
browser.close()
return result
if __name__ == "__main__":
main()