diff --git a/app.py b/app.py index 361b2ed..0d93b3d 100644 --- a/app.py +++ b/app.py @@ -110,37 +110,30 @@ def download_video(url, download_id, format_type='mp4'): # return try: + # Estrategia 1: Configuración simple y robusta ydl_opts = { 'outtmpl': os.path.join(app.config['DOWNLOAD_FOLDER'], f'{download_id}.%(ext)s'), 'progress_hooks': [lambda d: hook(d, download_id)], 'quiet': True, 'no_warnings': True, - # Configuración funcional probada con yt-dlp 2025.10.22 'extract_flat': False, 'restrictfilenames': True, 'no_check_certificate': True, - 'socket_timeout': 60, - 'retries': 10, - 'fragment_retries': 15, - 'extractor_retries': 10, - 'file_access_retries': 10, - 'ignoreerrors': False, - 'user_agent': 'yt-dlp/2025.10.22', + 'socket_timeout': 180, # Timeout muy generoso + 'retries': 20, # Muchos reintentos + 'fragment_retries': 30, + 'extractor_retries': 20, + 'file_access_retries': 20, + 'ignoreerrors': True, + # Headers actualizados y simplificados 'http_headers': { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', - 'Accept-Language': 'en-US,en;q=0.9', - 'Accept-Encoding': 'gzip, deflate, br', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'Accept-Language': 'en-US,en;q=0.5', + 'Accept-Encoding': 'gzip, deflate', 'DNT': '1', 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'Sec-Fetch-Dest': 'document', - 'Sec-Fetch-Mode': 'navigate', - 'Sec-Fetch-Site': 'none', - 'Sec-Fetch-User': '?1', - 'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"', - 'sec-ch-ua-mobile': '?0', - 'sec-ch-ua-platform': '"Windows"' + 'Upgrade-Insecure-Requests': '1' } }