import sys
import time
from pathlib import Path

sys.path.append(str(Path("05_Production_Pipeline").resolve()))
from invisible_playwright import InvisiblePlaywright
from muse_invpw_driver import sync_worker_profile, DEFAULT_PROFILE

def track_download_network():
    sync_worker_profile()
    with InvisiblePlaywright(profile_dir=DEFAULT_PROFILE, headless=True) as ctx:
        page = ctx.pages[0] if ctx.pages else ctx.new_page()
        
        # Listen to requests and responses
        def on_req(req):
            if any(k in req.url.lower() for k in ["video", ".mp4", "download", "media", "artifact"]):
                print(f"[REQ] {req.method} {req.url}")
                
        def on_res(res):
            if any(k in res.url.lower() for k in ["video", ".mp4", "download", "media", "artifact"]):
                print(f"[RES] {res.status} {res.url}")
                
        page.on("request", on_req)
        page.on("response", on_res)
        
        page.goto("https://muse.ai", wait_until="domcontentloaded", timeout=30000)
        time.sleep(4)
        
        dl_btn = page.locator('button[aria-label*="Tải video xuống"]').last
        if dl_btn.count() > 0:
            print("Clicking download button...")
            dl_btn.click()
            time.sleep(8)
        else:
            print("No download button found")

if __name__ == "__main__":
    track_download_network()
