
    Oi                    @    d Z ddlmZ ddlZddlmZ ddlmZmZ ddZ	y)u  skills/descargador_video.py — DESCARGAR (estación 1)

Bajar el video del enlace input. yt-dlp primario, Playwright Chrome CDP fallback.
Skill canónica: descargador-video-escalado (.claude/agents/escalado_formatos/descargador-video-escalado.md).

Backend: Python puro (yt-dlp subprocess).

Inputs esperados (de caja.input_start):
  - video_url (str): URL del video a descargar
  - product (str): nombre del producto (para output dir)
  - country (str): país target

Output:
  caja.sections.descargar = {
    'video_path': str (absoluto),
    'size_bytes': int,
    'source_method': 'yt-dlp' | 'playwright_cdp' | 'cache_hit',
    'cache_hit': bool,
  }
    )annotationsN)Path)SkillContextSkillResultc           	     ~   |j                         j                  di       }|j                  d      xs | j                  d      }|j                  dd      }|st        ddg      S |j                  }|j	                  dd	       |d
z  }|j                         rw|j                         j                  dkD  rZ|j                         j                  }|j                  dt        |      ||dz  ddddd       t        dt        |      dd      S 	 t        j                  ddddt        |      |gddd      }|j                  dk(  r|j                         rz|j                         j                  dkD  r]|j                         j                  }|j                  dt        |      ||dz  ddddd       t        dt        |      |dz  d      S t        dd|j                   |j                  dd  gdd i!      S # t        j                  $ r t        dd"g      cY S t        $ r t        dd#g      cY S w xY w)$Ninput_start	video_urlproductunknownFz.video_url no proporcionada en caja.input_start)okerrorsT)parentsexist_okz	video.mp4i 	descargari   	cache_hit)
video_path
size_bytessize_kbsource_methodr   replacezdescargador-video)modeactor)r   r   )r   outputzyt-dlpz-fzbest[ext=mp4]/bestz-o   )capture_outputtexttimeoutr   )r   r   u   yt-dlp falló: rc=ifallback_pendingplaywright_cdp)r   r   metadatazyt-dlp timeout 180szyt-dlp no instalado en PATH)	read_cajagetr   run_dirmkdirexistsstatst_sizewrite_sectionstr
subprocessrun
returncodestderrTimeoutExpiredFileNotFoundError)	inputscontextinpurlr
   out_dirout_pathsizers	            IC:\Users\ferna\proyecto cero\_factory_3d_demo\skills\descargador_video.pyr+   r+      s@   




!
!-
4C
''+

9&**["9Cggi+Ge-],^__ooGMM$M.$H X]]_44w>}}&&kh-t|(,
 !4 	 	6 d#h-VZ+[\\MNNt14XLdC
 <<1!2x}}7N7NQX7X==?**D!!+!(m"4<!)"0 %8 " : $c(mX\`dXd/eff(7$%I(*:;
 	

 $$ Ee-B,CDD Me-J,KLLMs   C H  +H   !H<#H<;H<)r0   dictr1   r   returnr   )
__doc__
__future__r   r*   pathlibr   skills._libr   r   r+        r8   <module>rA      s   ( #   10Mr@   