
    Şi                        d Z ddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZ ddlmZ ddlmZ ddlmZm Z  ddlm!Z" ddlm#Z$ ddlm%Z%m&Z& ddl'm(Z(m)Z)  e*e          Z+ e*e          Z,d Z-d+dZ.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6 G d d e          Z7e7Z8 G d! d"ej9        j:                  Z;d# Z<d$ Z=d,d&Z>d,d'Z?d( Z@d) ZAd* ZBdS )-zGNo longer used and new code should not use. Exists only for API compat.    N   )Popendecode_base_npreferredencodingtraverse_obj   )certifi
websockets)make_ssl_context)HTTPHandler)escape_rfc3986)normalize_url)random_user_agentstd_headers)YoutubeDLCookieJar)
PUTRequest)SUPPORTED_ENCODINGSHEADRequest)ProxyHandler)RedirectHandler)make_socks_conn_classupdate_Request)	HTTPErrornetwork_exceptionsc                 T    ddl m}  || |          }|                    |           |S )Nr	   )load_plugins)pluginsr   update)namesuffix	namespacer   rets        YC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/utils/_legacy.pyr   r   #   s>    &&&&&&
,tV
$
$CSJ    Tc                 *    t          | ||dd          S )NT)	casesenseis_user_inputtraverse_stringr   )dictnkeysr'   s      r$   traverse_dictr,   *   s    ty^bccccr%   c                 $    t          | |          S )N)table)r   )valuedigitss     r$   decode_baser1   .   s    f----r%   c                  (    t          j                     S )z$ Returns the platform name as a str )platform r%   r$   platform_namer5   2   s    r%   c                      t           j        dk    r,t          j                    d         dk    rt                      } nt          j                    } | d} | S )Nwin32r      zutf-8)sysr3   getwindowsversionr   getfilesystemencoding)encodings    r$   get_subprocess_encodingr=   7   sT    
|w3#8#:#:1#=#B#B %&&,..Or%   c                 h    | dd          }| d d         dk    s|dd         dk    rt          d          dddd	fd
}g }|rj ||d d                   }|dd          }|d d         }|dd          }|d |         }||d          }|dd          }|                    |||d           |j|d         d         } ||d d                   } ||dd                   }	d}
|D ]}|d         dk    r|
|d         z  }
|
st          d          t          t          j        |
                    }|dz   g  fd}t          |	          D ][}|d z   z  }||         }g }                    |           t                     D ] }|d|z   |z            }| z  |z   }d}d}|dk    r ||dz
            }|dk    r || z
            }|dk    r	||z   dz  }n|dk    r	||z   dz  }n|dk    r|||z   dz	  z   dz  }n|dk    r|}|}d}|dk    r|dk    r || z
  dz
            }||z   |z
  }t          ||z
            }t          ||z
            }t          ||z
            }||k    r||k    r	||z   dz  }n||k    r	||z   dz  }n||z   dz  }|                    |           "]||	fS )N   s   PNG

   s   IHDRzNot a valid PNG file.z>Bz>Hz>I)r   r	   r@   c                 `    t          j        t          |                    |           d         S )Nr   )structunpacklen)xint_maps    r$   <lambda>zdecode_png.<locals>.<lambda>N   s"    v}WSVV_a@@C r%   )typelengthdatar   rJ   r%   rH   s   IDATzUnable to read PNG data.   c                 4    | z  }| z  }|         |         S Nr4   )idxrE   ypixelsstrides      r$   
_get_pixelzdecode_png.<locals>._get_pixelw   s#    &L6May|r%   r   r	      )OSErrorappend	bytearrayzlib
decompressrangeabs)!png_dataheaderunpack_integerchunksrI   
chunk_type
chunk_dataihdrwidthheightidatchunkdecompressed_datarR   rO   base_posfilter_typecurrent_rowrE   colorbasexleftupabcppapbpcrF   rP   rQ   s!                                 @@@r$   
decode_pngru   F   s   abb\F|111VAaC[G5K5K-...4D))GCCCCNF
 rr
++BQBZ
GVG_

 
 	 	 	  $ !9VDN48$$E^D1I&&FD " "=G##E&M!D 20111!$/$"7"788QYFF     
 6]] .& .&F
#'1k"""v &	& &	&A%a(lQ&67EJNEDB1uu!z%!),,1uuZ//a-!!t+!!4"9"23t;!!q55QUU"
56>A#566AEAIQZZQZZQZZ88b"QY$.EE2XX"QY$.EE"QY$.Eu%%%%M&	&P &&  r%   c                  ~    dD ]9} | t           j        j        vr$t           j        j                            |            :d S )N)sockssocks4socks4asocks5)urllibparseuses_netlocrU   )schemes    r$   register_socks_protocolsr      sG     ; 4 4111L$++F3334 4r%   c                 T    | }d|v r!d |                                 D             }|d= |S )NzYoutubedl-no-compressionc                 J    i | ] \  }}|                                 d k    ||!S )zaccept-encoding)lower).0kvs      r$   
<dictcomp>z,handle_youtubedl_headers.<locals>.<dictcomp>   s1    hhhTQVgIgIgAqIgIgIgr%   )items)headersfiltered_headerss     r$   handle_youtubedl_headersr      sD    !%555hh-=-C-C-E-Ehhh78r%   c                 l    t          | t          j        j                  r|                                 S | S rM   )
isinstancer{   requestRequestget_full_url)reqs    r$   request_to_urlr      s0    #v~-.. !!!
r%   c                     ddl m}m}  |t           ||                               \  } }|6t	          |          dk    r|d         n|                    di           }||d<   t          j        j        | g|R i |S )Nr	   )extract_basic_authsanitize_urlr   r   Authorization)	utilsr   r   
escape_urlrD   
setdefaultr{   r   r   )urlargskwargsr   r   auth_headerr   s          r$   sanitized_Requestr      s    88888888))*\\#5F5F*G*GHHC YY!^^$q''1B1B9b1Q1Q#. >!#7777777r%   c                        e Zd Z fdZ xZS )YoutubeDLHandlerc                 H    || _          t                      j        |i | d S rM   )_paramssuper__init__)selfparamsr   r   	__class__s       r$   r   zYoutubeDLHandler.__init__   s,    $)&)))))r%   )__name__
__module____qualname__r   __classcell__)r   s   @r$   r   r      s8        * * * * * * * * *r%   r   c                   B    e Zd ZddZd Zej        j        j        Z	eZ
dS )YoutubeDLCookieProcessorNc                 P    t           j        j                            | |           d S rM   )r{   r   HTTPCookieProcessorr   )r   	cookiejars     r$   r   z!YoutubeDLCookieProcessor.__init__   s#    *33D)DDDDDr%   c                 N    t           j        j                            | ||          S rM   )r{   r   r   http_response)r   r   responses      r$   r   z&YoutubeDLCookieProcessor.http_response   s    ~1??gxXXXr%   rM   )r   r   r   r   r   r{   r   r   http_requesthttps_requesthttps_responser4   r%   r$   r   r      sL        E E E EY Y Y N6CM"NNNr%   r   c                 2   t          | fdt          |                     d           |                     d          |                     d          |                     d          |                     d          d|                     dg           v	          i|S )
Ncontextnocheckcertificateclient_certificateclient_certificate_keyclient_certificate_passwordlegacyserverconnectz
no-certificompat_opts)verifyr   r   r   legacy_supportuse_certifi)YoutubeDLHTTPSHandlerr   get)r   r   s     r$   make_HTTPS_handlerr      s       1A::2333!::&:;;%zz*BCC$*JJ/L$M$Mzz"788 

="(E(EE2 2 2  
  r%   c                 ,    t          j        | g|R i |S rM   )r   communicate_or_kill)rq   r   r   s      r$   process_communicate_or_killr      s#    $Q8888888r%   Fc                 4    t          | t                    sJ | S rM   )r   str)sfor_subprocesss     r$   encodeFilenamer      s    aHr%   c                     | S rM   r4   )ro   r   s     r$   decodeFilenamer          Hr%   c                     | S rM   r4   )ro   s    r$   decodeArgumentr      r   r%   c                     | | S t          | t                    r!|                     t                                } t          | t                    sJ | S rM   )r   bytesdecoder   r   )optvals    r$   decodeOptionr     sQ    ~&%   402233fc"""""Mr%   c                      t          |           S rM   )r   )errs    r$   error_to_compat_strr     s    s88Or%   )T)F)C__doc__r3   rB   r9   urllib.errorr{   urllib.parseurllib.requestrW   _utilsr   r   r   	traversalr   dependenciesr
   r   networking._helperr   networking._urllibr   
networkingr   r   r   r   r   cookiesr   r   r   r   r   PerRequestProxyHandlerr   YoutubeDLRedirectHandlerr   r   networking.exceptionsr   r   boolhas_certifihas_websocketsr   r,   r1   r5   r=   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   r%   r$   <module>r      s=   M M   



              ; ; ; ; ; ; ; ; ; ; # # # # # # . . . . . . . . 1 1 1 1 1 1 , , , , , , ' & & & & & 3 3 3 3 3 3 6 6 6 6 6 6 6 6 ( ( ( ( ( ( + + + + + + A A A A A A A A G G G G G G L L L L L L        B A A A A A A Ad7mmj!!  d d d d. . .  
	 	 	f! f! f!R4 4 4    8 8 8* * * * *{ * * * ) # # # # #v~A # # #  9 9 9   
           r%   