#!/usr/bin/env python3 """ Script de diagnóstico para verificar la conexión entre demo y engine """ import requests import os # Configura aquí la URL de tu Space engine ENGINE_URL = os.getenv("API_BASE_URL", "https://veureu-engine.hf.space") print("=" * 60) print("DIAGNÓSTICO DE CONEXIÓN: demo → engine") print("=" * 60) print(f"\n1. URL configurada: {ENGINE_URL}") # Test 1: Verificar que el endpoint raíz responde print("\n2. Probando endpoint raíz (GET /)...") try: response = requests.get(f"{ENGINE_URL}/", timeout=10) print(f" ✅ Status: {response.status_code}") print(f" ✅ Respuesta: {response.json()}") except requests.exceptions.ConnectionError as e: print(f" ❌ Error de conexión: {e}") print(" → El Space puede estar en modo 'sleeping' o la URL es incorrecta") except requests.exceptions.Timeout: print(f" ❌ Timeout: El servidor no respondió en 10 segundos") except Exception as e: print(f" ❌ Error: {e}") # Test 2: Verificar el endpoint /create_initial_casting print("\n3. Probando endpoint /create_initial_casting (POST)...") try: # Crear un video de prueba muy pequeño (1 byte) files = { "video": ("test.mp4", b"x", "video/mp4"), } data = { "epsilon": "0.5", "min_cluster_size": "2", } response = requests.post( f"{ENGINE_URL}/create_initial_casting", files=files, data=data, timeout=30 ) print(f" ✅ Status: {response.status_code}") if response.status_code == 200: print(f" ✅ Respuesta: {response.json()}") else: print(f" ⚠️ Respuesta: {response.text[:200]}") except requests.exceptions.HTTPError as e: print(f" ❌ Error HTTP {e.response.status_code}: {e.response.text[:200]}") if e.response.status_code == 403: print(" → Error 403: Verifica que el Space 'engine' sea público") print(" → O configura API_SHARED_TOKEN con un token válido") elif e.response.status_code == 422: print(" → Error 422: Los parámetros no son válidos (esto es normal con video fake)") except Exception as e: print(f" ❌ Error: {e}") print("\n" + "=" * 60) print("RECOMENDACIONES:") print("=" * 60) print("1. Verifica que la URL sea exactamente tu Space engine en HF") print("2. Asegúrate de que el Space 'engine' esté en estado 'Running'") print("3. Si el Space está 'sleeping', abrelo en el navegador para activarlo") print("4. Verifica que ambos Spaces sean públicos (o configura token)") print("=" * 60)