from playwright.sync_api import sync_playwright
import base64, os

with sync_playwright() as p:
    cdp = p.chromium.connect_over_cdp('http://localhost:9223')
    ctx = cdp.contexts[0]
    page = ctx.pages[0]
    
    # Set download path so any download goes there
    page.goto('https://grok.com/imagine/post/23dd7313-4a69-483b-ba8c-d3427f6603f6')
    page.wait_for_timeout(3000)
    
    try:
        page.locator('[aria-label="Permitirlas todas"]').click(timeout=2000)
        page.wait_for_timeout(500)
    except:
        pass
    
    # Intercept all requests for .mp4 files
    mp4_data = []
    page.on('request', lambda req: None)
    page.on('response', lambda resp: mp4_data.append({'url': resp.url, 'status': resp.status}) if '.mp4' in resp.url else None)
    
    # Click Descargar
    dl = page.locator('[aria-label="Descargar"]')
    print('Desc btn count:', dl.count())
    if dl.count() > 0:
        dl.first.click(force=True)
        print('Clicked Descargar')
        page.wait_for_timeout(10000)
    
    print('MP4 responses:', len(mp4_data))
    for r in mp4_data:
        print(f'  {r["status"]}: {r["url"][:80]}')
    
    print('Files:')
    for f in sorted(os.listdir('/home/claw/videos/')):
        sz = os.path.getsize(f'/home/claw/videos/{f}')
        print(f'  {f}: {sz//1024}KB')
    
    cdp.close()