import sys
import time
import json
from pathlib import Path
from playwright.sync_api import sync_playwright

if hasattr(sys.stdout, 'reconfigure'):
    try:
        sys.stdout.reconfigure(encoding='utf-8')
        sys.stderr.reconfigure(encoding='utf-8')
    except Exception:
        pass

profile_dir = Path("content/browser_profiles/chrome_mirsixabcf2").resolve()
extension_dir = Path("extension").resolve()

with sync_playwright() as p:
    print("[1/3] Khởi chạy Chrome Stealth Headless...")
    context = p.chromium.launch_persistent_context(
        user_data_dir=str(profile_dir),
        channel="chrome",
        headless=True,
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
        args=[
            f"--load-extension={extension_dir}",
            "--disable-blink-features=AutomationControlled",
            "--window-size=1600,1000"
        ]
    )
    page = context.pages[0] if context.pages else context.new_page()
    
    print("[2/3] Truy cập YouTube Studio Videos tab...")
    page.goto("https://studio.youtube.com/channel/UClZnv08RDTD4vgLOw1jmOuA/videos/upload", wait_until="domcontentloaded")
    time.sleep(6)
    
    # Chụp ảnh bảng video
    page.screenshot(path="downloads/studio_videos_ep4_verified.png")
    print("✓ Đã lưu ảnh chụp bảng video: downloads/studio_videos_ep4_verified.png")
    
    rows = page.locator("ytcp-video-row").all()
    print(f"Tổng số video dài tìm thấy: {len(rows)}")
    for r in rows:
        try:
            title = r.locator("#video-title").inner_text().strip() if r.locator("#video-title").is_visible() else ""
            visibility = r.locator(".tablecell-visibility, #visibility-state").inner_text().strip() if r.locator(".tablecell-visibility, #visibility-state").is_visible() else ""
            date_col = r.locator(".tablecell-date").inner_text().strip() if r.locator(".tablecell-date").is_visible() else ""
            print(f" -> {title} | Trạng thái: {visibility} | Ngày: {date_col}")
        except Exception as e:
            pass

    print("\n[3/3] Kiểm tra trang chi tiết Video Ep 4...")
    page.goto("https://studio.youtube.com/video/O-8w_ONx3as/edit", wait_until="domcontentloaded")
    time.sleep(6)
    page.screenshot(path="downloads/ep4_edit_details.png")
    print("✓ Đã lưu ảnh chụp chi tiết Ep 4: downloads/ep4_edit_details.png")

    context.close()
    print("✓ Hoàn tất kiểm tra!")
