from playwright.sync_api import sync_playwright
import os

VIDEO_DIR = "/home/claw/videos"

with sync_playwright() as p:
    cdp = p.chromium.connect_over_cdp('http://localhost:9223')
    ctx = cdp.contexts[0]
    page = ctx.pages[0]

    video_urls = []

    # Intercept the assets.grok.com response
    def on_response(resp):
        url = resp.url
        if 'assets.grok.com' in url and 'generated_video.mp4' in url:
            print('FOUND VIDEO URL:', url)
            video_urls.append(url)

    page.on('response', on_response)

    page.goto('https://grok.com/imagine/post/23dd7313-4a69-483b-ba8c-d3427f6603f6')
    page.wait_for_timeout(5000)

    try:
        page.locator('[aria-label="Permitirlas todas"]').click(timeout=2000)
        page.wait_for_timeout(500)
    except:
        pass

    # Trigger the video to load by clicking play or waiting
    page.wait_for_timeout(5000)

    if video_urls:
        print('Downloading from:', video_urls[0])
        import subprocess
        result = subprocess.run([
            'curl', '-L', '-A',
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
            '-o', f'{VIDEO_DIR}/corrido_assets_test.mp4',
            '--max-time', '120',
            video_urls[0]
        ], capture_output=True, text=True)
        size = os.path.getsize(f'{VIDEO_DIR}/corrido_assets_test.mp4')
        print('Download result:', result.returncode, 'size:', size)
    else:
        print('No video URL intercepted!')

    cdp.close()