
    V|h                     (   S SK r \ R                  S:  a  \" S5      eSrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
SSKJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJrJr  SSKJr  SSKJr  SSKJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  SSK)J*r*  SSK+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErE  SSKFJGrG  SSKHJHrH  S S jrIS rJS rKS rLS rMS rN\R                  " SS5      rPS!S jrQS!S jrRS!S jrSSSKJTrTJUrU  / SQrVg)"    N)   	   zjYou are using an unsupported version of Python. Only Python versions 3.9 and above are supported by yt-dlpzThe Unlicense   )SUPPORTED_BROWSERSSUPPORTED_KEYRINGSCookieLoadError)get_external_downloader)list_extractor_classes)MSO_INFO)ImpersonateTarget)IN_CLIplugin_dirs)	parseOpts)load_all_plugins)	FFmpegExtractAudioPPFFmpegMergerPPFFmpegPostProcessorFFmpegSubtitlesConvertorPPFFmpegThumbnailsConvertorPPFFmpegVideoConvertorPPFFmpegVideoRemuxerPPMetadataFromFieldPPMetadataParserPP)Updater)
NO_DEFAULTPOSTPROCESS_WHEN	DateRangeDownloadCancelledDownloadErrorFormatSorterGeoUtilsPlaylistEntriesSameFileErrordownload_range_funcexpand_pathfloat_or_noneformat_fieldint_or_nonejoin_nonemptymatch_filter_funcparse_bytesparse_durationpreferredencodingread_batch_urls
read_stdinrender_tablesetproctitleshell_quotevariadicwrite_string)_UnsafeExtensionError)	YoutubeDLc                 h    U H"  n[         R                  R                  U5        M$     [        U 5      eN)sysstderrwrite
SystemExit)statusargsmsgs      I/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/__init__.py_exitrA   E   s)    

 
V
    c                    / nUbW   [        US:X  a  [        US:X  a  SOS5      O[        [        U5      SSS95      nUS:X  a  [	        S	[        U5      -   S
-   5        [        5       nX0-    Vs/ s HH  n[        U[        5      (       a   UR                  5       R                  US5      OUR                  5       PMJ     sn$ ! [         a    [        SU S35         N}f = fs  snf )z6
@param verbose      -1: quiet, 0: normal, 1: verbose
N-URLszutf-8ignore)encodingerrorsr   z[debug] Batch file urls: 
zERROR: batch file z could not be read)r.   r/   openr%   r4   reprOSErrorrA   r-   
isinstancebytesstripdecode)urls	batchfileverbose
batch_urls_encurls         r@   get_urlsrX   K   s     J	F(AJcAQ
7b=4f=+i078TVJ !|84
;KKdRS D $&$C /9e.D.D		4*#))+U$& &  	F&yk1CDE	F&s   AB? -AC?CCc                   ^
 SnU R                   (       Ga  SSKJn  [        R	                  US5      n[        U R                  5       H  nX$R                  UR                  5       (       d  SOS-   S-   -  nXC:X  a.  UR                  5        VVs/ s H  u  pVU(       a  M  UPM     nnnOR[        [        UR                  UR                  5       5      5      nUR                  [        R	                  US5      5        USR                  S U 5       5      -  nM     OU R                   (       a1  S	m
SR                  U
4S
 j[        U R                  5       5       5      nO\U R"                  (       aJ  SR%                  ['        SS/[(        R                  " 5        VV	s/ s H  u  pXS   /PM     sn	n5      5      nOg[+        U[,        R.                  S9  gs  snnf s  sn	nf )N r   )	GenericIEFz (CURRENTLY BROKEN)rJ   Tc              3   .   #    U  H  nS U S3v   M     g7f)z  rJ   N ).0rW   s     r@   	<genexpr>.print_extractor_information.<locals>.<genexpr>m   s     @<CRuB<<s   )zcute kittenszslithering pythonszfalling catzangry poodlezpurple fishzrunning tortoisezsleeping bunnyzburping cowc              3      >#    U  H<  oR                  5       (       d  M  UR                  S Ld  M*  UR                  S TS9v   M>     g7f)F)markdownsearch_examplesN)workingIE_DESCdescription)r^   ie	_SEARCHESs     r@   r_   r`   p   sD      j<

 FQSQ[Q[chQh FBNNE9NE<s   AAAzSupported TV Providers:
{}
msozmso namename)out)list_extractorsextractor.genericr[   dictfromkeysr
   	age_limitIE_NAMErd   itemstuplefiltersuitablekeysupdatejoinlist_extractor_descriptionsap_list_msoformatr0   r   r4   r9   stdout)optsrR   rk   r[   rg   rW   matchedmatched_urlsmso_idmso_inforh   s             @r@   print_extractor_informationr   _   s}   
C0}}T5)(8B::bjjll!6PRSVZZZC8<

TGT$VBKK%EFDMM,=>277@<@@@C 9 
	)	) ^	ii j,T^^<j j 
		-44\J@H@PQ@P,<Ffv&'@PQ6S T #**%#  U Rs   GGGc                   ^ ^ U 4S jmSUU 4S jjnU" SSS5        U" SS5        U" S	S
5        ST R                   ;   a!  T R                  (       a	  T" S5        OST l        ST R                   ;   a*  T R                  R                  [        R
                  5        O)ST R                   ;   a  [        R                  [        l        ST R                   ;   a  T R                  c  ST l        OT" S5        U" SSSSS9nU" SSSSS9nUSL a  USL a  T" S5        ST R                   ;   aC  T R                  R                  S5      c  T R                  R                  SS05        g T" S5        g g )Nc                    > U TR                   ;  a  gTR                   R                  U 5        TR                   R                  SU  3/5        g)NF*T)compat_optsdiscardrw   )rj   r}   s    r@   _unused_compat_opt+set_compat_opts.<locals>._unused_compat_opt~   sG    t'''  &1TF-rB   Tc                    > [        TU5      nU TR                  ;   a%  Uc  [        TX(       + 5        gU(       a  T" U 5        gUc  [        TX5        g )NTF)getattrr   setattr)compat_nameopt_namedefaultremove_compatattrr   r}   s        r@   set_default_compat+set_compat_opts.<locals>.set_default_compat   sQ    tX&$***|h4 &{3\D(,rB   zabort-on-errorignoreerrorsonly_downloadzno-playlist-metafilesallow_playlist_fileszno-clean-infojsonclean_infojsonzno-attach-info-jsonFzformat-sortzprefer-vp9-sortzmtime-by-defaultmultistreamsallow_multiple_video_streams)r   allow_multiple_audio_streamsfilenamer   z%(title)s-%(id)s.%(ext)s)TT)r   embed_infojsonformat_sortextendr    ytdl_default_prefer_vp9_sortr   
updatetimeouttmplgetrw   )r}   r   _video_multistreams_set_audio_multistreams_setr   s   `   @r@   set_compat_optsr   }   sU     'I.0FG*,<= 0 0045"'D((( 9 9:	d..	.+<<T---??""DO120A_afv{|0A_afv{|%',Cu,L>*T%%%<<I&.LL,F GHz*	 &rB   c                 x"  ^ ^%^&^' S]S jm%SU%4S jjnU%4S jnSU%4S jjm&SS jnT%" [        [        [        T R                  T R                  T R
                  45      5      S:*  SS	S
9  T%" T R                  S L =(       d    T R
                  S LSSS
9  T%" T R                  S L =(       d    T R                  S LSSS
9  U" ST R                  [        S5        T&" ST R                  5        T&" ST R                  S5        T&" ST R                  S5        T&" ST R                  S5        T R                  S:w  a  U" T R                  T R                  SS5        T&" ST R                   5        T&" ST R"                  5        T&" ST R$                  5        T&" ST R&                  5        T R$                  c  T%" T R&                  S L SSS
9  O=T R&                  c  T R$                  T l        OU" T R$                  T R&                  S5        T R(                  b}  [        [*        / T R(                  R-                  SS5      QS P5      tpEnT%" US L=(       a    US L =(       a    ST R(                  ;   (       + ST R(                  5        U" XES5        XE4T l        T R.                   H  nU" SU[0        R2                  5        M     T R4                  S :X  a  S T l        T R6                  S :X  a  S T l        U" S!T R8                  S"R;                  S#R=                  [        [>        R@                  [B        RD                  5      5      5      5        U" S$T RF                  [H        RJ                  5        U" S%T R4                  [L        RD                  5        U" S&T R6                  [N        RJ                  5        U" S'T RP                  [R        RJ                  5        U" S(T RT                  [V        RJ                  5        T RX                  (       aS  T RX                  R[                  S)5      R[                  S*5      T l,        T&" S+[]        [_        T RX                  5      S,S-95        U%U&4S. jnU" S/T R`                  5      T l0        U" S0T Rb                  5      T l1        U" S1T Rd                  5      T l2        U" S2T Rf                  5      T l3        S3 n	T Rh                  Rk                  5        H1  u  pU(       d  T Rh                  U
	 M   U	" U5      T Rh                  U
'   M3     SU%U&4S6 jjnU" S7T Rp                  S5      T l8        U" S8T Rr                  5      T l9        U" S9T Rt                  5      T l:        U" S:T Rv                  5      T l;        U" S;T Rx                  S5      T l<        U" S<T Rz                  5      T l=        S= nT R|                  Rk                  5        H  u  pU" X S>35        M     T R~                  Rk                  5        H  u  nnU H  nU" UU S?35        M     M     T R                  Rk                  5        H*  u  nnU H  u  nnU" UU S@35        U" UU SA35        M      M,     U" T R                  SB5        T R                  Rk                  5        H#  u  pSCU;   a  US SD  SE3OU SF3nU" X SG35        M%     T R|                  R                  SH5      nUSI:X  a  S T lD        T R|                  SH	 SSJ jnU" SKT R                  5      u  T lE        T lF        n[        U" SLT R                  S5      6 T lH        T R                  (       a  S n[>        R                  " SMT R                  5      nUc  [o        SNT R                   35      eUR                  SOSPSQSR5      u  nnnnUR                  5       nU[        ;  a-  [o        SSU STSUR=                  [        [        5      5       35      eUbG  UR                  5       nU[        ;  a-  [o        SVU SWSUR=                  [        [        5      5       35      eUUUU4T lI        T R                  b3  [        R                  " T R                  R                  5       5      T lQ        SX nT R                  b8  T R                  R                  SY/ 5      R                  SZT R                   35        T R                  Rk                  5        VVs0 s H-  u  nnU[        [        R                  " [        UU5      6 5      _M/     snnT lU        T R                  T l[        T R                  c  SH/T l[        T R                  b*   [        [        R                  " T R                  5      5        S]u  T la        T lb        T R                  R                  5       S^;  a]   [        R                  " T R                  5        [        T R                  5      Sa:X  a  T R                  T la        OT R                  T lb        T R                  R                  5       Sb:g  T lc        [        T R                  T R                  5      T lh        T R                  b  [        T R                  5      T lj        T R                  b  [        T R                  5      T ll        T R                  b&  T R                  R                  ScT R                  5        T R                  b&  T R                  R                  SdT R                  5        T R                  (       a  [        5       =T lr        T ls        S nT R                  Rk                  5        HY  u  nnUSe:X  a  M  [        U5      n U c  [o        Sf[        US SgSHSh9 SiU S`35      eU (       d  MA  USH:X  d  MI  U R                  5       nM[     T R                  R                  5        H  n!U!Sj;  d  M  [o        S`U! Sk35      e   / / sm'n"T R:                  Sl:X  a   T'R                  SmR=                  Sn5      5        T R:                  So:X  a   T'R                  SmR=                  Sp5      5        S]U'4Sq jjn#U#" SrT R                  SHUSs9(       a<  U(       a5  T R                  R                  UT R                  R                  SH5      5        U#" StT R                  SuSH5      (       a(  T R                  R                  Su5      T R                  SH'   SvSw[        [        S4U U'4Sx jjn$U$" SySzS{S|5        U$" SySzS}S~5        U$" S{S|S}S~5        U$" SSSSS S-9  U$" SSSSS S-9  U$" SSSST R                  R                  S5      S9  U$" SSSST R|                  R                  SH5      S9  U$" SSSS5        U$" SS5        U$" SS5        U$" SS5        U$" SS5        U$" SS5        U$" SS5        U$" SST R                  S;  SbS9  U$" SS5        U$" SKS/ S-9  U$" SS5        U$" SS[        5       S-9  U$" SS5        G[        T S5      (       a1  U"R                  SSUR=                  T GR                  5       S35        T ?T GR                  (       a#  G[        GR                  " T GR                  5      O"G[        T GR
                  T GR                  5      T l        T GR                  (       a  T GR                  T R                  S'   T GR                  (       a  ST R|                  SH'   T GR                  (       a  ST l        T GR                  (       d  T R                  (       a  T GR                  c  ST l        T GR                  (       a&  T GR                  (       d  T R:                  c  ST l        T GR                  (       a]  T GR                   cO  T GR"                  (       d=  T GR$                  (       a$  T GR&                  (       d  T GR(                  (       a  ST l        T GR*                  (       a+  T GR,                  (       d  T GR.                  (       d  ST l        T GR                  (       a  T GR"                  c  ST l        T R
                  b*  T R                  c  G[2        GR2                  " S5      T l        T R                  b*  T R                  c  G[2        GR2                  " S5      T l        ST GR4                  ;   a   T'R                  S5        SS jG[6        l        T'U"4$ ! [l         a    [o        S4U
 S5U< 35      ef = fs  snnf ! [         a!  n[o        S[T R                  < S\U 35      eS nAff = f! [         a    [o        S_T R                   S`35      ef = f)Nc                 T    U (       a  g[        U=(       d    SR                  XS95      e)NTzinvalid {name} "{value}" given)rj   value)
ValueErrorr{   )cndnrj   r   r?   s       r@   validate"validate_options.<locals>.validate   s'    #A!AIItIabbrB   c                 2   > T" US L =(       d    X;   XU5      $ r8   r]   )rj   r   rr   r?   r   s       r@   validate_in%validate_options.<locals>.validate_in   s    7cJJrB   c                 T   > T" US L =(       d    [         R                  " X!5      X5      $ r8   )rematch)rj   r   regexr   s      r@   validate_regex(validate_options.<locals>.validate_regex   s"    ?%)?MMrB   Fc                    > T" US L =(       d    US:  =(       d    U(       + =(       a    US:H  XSU(       a  S-   5      $ S-   5      $ )Nr   z!{name} "{value}" must be positiverZ   z or 0r]   )rj   r   strictr   s      r@   validate_positive+validate_options.<locals>.validate_positive   sQ    QQ6z7Peqj%HRXB%fh 	h^e%fh 	hrB   c           
      h    Ub  U b  X:  a  g U(       d	  SU 3SU 3p2[        U SU SU SU  S35      e)Nzmin zmax  "z+" must be must be greater than or equal to ")r   )min_valmax_valmin_namemax_names       r@   validate_minmax)validate_options.<locals>.validate_minmax   sV    ?go1C#'z!2d8*4EhH:Ry0[\d[eeghogppqrssrB   r   z.netrczJ{name}, netrc command and username/password are mutually exclusive options)r?   zaccount usernamez{name} missingzTV Provider account usernamezTV ProviderzWUnsupported {name} "{value}", use --ap-list-mso to get a list of supported TV Providerszautonumber startzautonumber sizeTzconcurrent fragmentszplaylist startrE   zplaylist endzsubtitles sleep intervalzrequests sleep intervalzsleep intervalzmax sleep intervalzmin sleep intervalz2{name} must be specified; use --min-sleep-intervalrD   ztime range to wait for videozformat sortingnonezmerge output formatz({0})(/({0}))*|zaudio formatzsubtitle formatzthumbnail formatzrecode video formatzremux video formatkKzaudio qualityr   )r   c                    > Uc  g US;   a  [        S5      $  [        U5      nT" U  S3W5        U$ ! [        [        4 a    T" SU  S3U5         N-f = f)Ninfinfiniter   Fz retry count)floatint	TypeErrorr   )rj   r   	int_valuer   r   s      r@   parse_retries'validate_options.<locals>.parse_retries  sn    =))<	:E
I 	TF,/; :& 	:UtfL159	:s   1 AAdownloadfragment	extractorzfile accessc                   ^^^^ Sn/ [        [        R                  " SU SU SU S3U R                  5       5      R	                  5       5      QS PS P7tnmmmnUS:X  a  UUU4S j$ U(       d  T(       a  TOSmUUUU4S	 j$ )
Nz\d+(?:\.\d+)?z(?:(linear|exp)=)?(z)(?::(z	)?)?(?::(z))?expc                    > [        [        T5      [        T=(       d    S5      U -  -  [        T=(       d    S5      5      $ )N   r   minr   )nlimitstartsteps    r@   <lambda><validate_options.<locals>.parse_sleep_func.<locals>.<lambda>  s-    Sutyq1AQ1F!Gu~X]I^_rB   r   c                    > [        [        T5      [        T=(       d    T5      U -  -   [        T=(       d    S5      5      $ )Nr   r   )r   default_stepr   r   r   s    r@   r   r   !  s1    Sud6Jl0Ka0O!OQVW\We`eQfgrB   )rs   r   	fullmatchrP   groups)expr	NUMBER_REop_r   r   r   r   s       @@@@r@   parse_sleep_func*validate_options.<locals>.parse_sleep_func  s    $	&1uR\\"9+VI;i	{RUVJJL. &(($ &1%)&1+/&1"E5$ ;__$&%5QLggrB   invalid z retry sleep expression c                 \   > Uc  g [        U5      nT" US LX5        U(       a	  T" XS5        U$ )NT)r+   )rj   r   strict_positivenumeric_limitr   r   s       r@   validate_bytes(validate_options.<locals>.validate_bytes-  s7    =#E*d*D8d48rB   z
rate limitzthrottled rate limitzmin filesizezmax filesizezbuffer sizezhttp chunk sizec                 f    [         R                  " U 5      nU(       a  [        SU SU  SU 35      eg )Nr   r   z": )r6   validate_outtmplr   )tmplr?   errs      r@   r   *validate_options.<locals>.validate_outtmpl>  s8    ((.xuBtfCu=>> rB   z output templatez print templatez print to file templatez print to file filenamezSponsorBlock chapter titlez-titleiz console titlez	 progressz	 templater   rZ   c           
         S nSn/ / SpvnU=(       d    /  GH  nU(       a
  US:X  a  SnM  UR                  S5      (       d(   UR                  [        R                  " U5      5        MS  [        [        R                  US
S  R                  S5      5       GH;  n
U
S:g  =(       a    [        R                  " XJ5      nU=(       a@    U" UR                  S5      =(       d    S5      U" UR                  S5      =(       d    S5      /nU=(       a"    UR                  S5      UR                  S5      4nS n	S U=(       d    S /;   a  Sn	O`U(       d  [        U5      (       a  Sn	OFUS==   US   (       a  SOS
-  ss'   US
==   US
   (       a  SOS
-  ss'   US
   [        S5      :X  a  Sn	U	(       a  [        SU  SU SU	 35      eUR                  U5        GM>     GM     XVU4$ ! [        R                   a  n	[        SU  SU S	U	 35      eS n	A	ff = f)Nc                 :    U S;   a  [        S5      $ [        U 5      $ )Nr   r   )r   r,   )xs    r@   r   :validate_options.<locals>.parse_chapters.<locals>.<lambda>W  s    A9L4LE%L$cR`abRc$crB   z(?x)(?:
            (?P<start_sign>-?)(?P<start>[^-]+)
        )?\s*-\s*(?:
            (?P<end_sign>-?)(?P<end>[^-]+)
        )?Fz	*from-urlTr   r   z regex "z" - r   ,rD   r   0endr   
start_signend_signz Must be of the form "*start-end"z#Negative timestamps are not allowedr   rE   z-infz"-inf" is not a valid endz time range "z". )
startswithappendr   compileerrorr   mapstrrP   splitr   groupanyr   )rj   r   advancedparse_timestampTIMESTAMP_REchaptersrangesfrom_urlr   r   range_mobjdursignss                 r@   parse_chapters(validate_options.<locals>.parse_chaptersV  s   c &(U([b[EE[0%%c**POOBJJu$56 ciiqr)=>}Kl)Ky

70C0Js K_]a]g]ghm]n]wrwMxyS$**\":DJJz<R!SCMD6*<C!c%jj?CFE!Hb!3FFE!Hb!3F1vv.9$xv]5'SE%RSSc"# ? !< ))/ xx P$xvXeWD%NOOPs   %GH2HHz--remove-chaptersz--download-sectionsz(?x)
            (?P<name>[^+:]+)
            (?:\s*\+\s*(?P<keyring>[^:]+))?
            (?:\s*:\s*(?!:)(?P<profile>.+?))?
            (?:\s*::\s*(?P<container>.+))?
        z(invalid cookies from browser arguments: rj   keyringprofile	containerz,unsupported browser specified for cookies: "z". Supported browsers are: z, z,unsupported keyring specified for cookies: "z". Supported keyrings are: c              3     ^ #    [        T [        5      (       a'  S[        T 5       3n [        R                  " T 5      /nO,S[        T 5       3nU 4S jT S   R                  S5       5       nU H  n [        R                  " U6   Uv   M     g ! [
         a  n[        U SU 35      eS nAff = f! [
         a  n[        U SU 35      eS nAff = f7f)Nz--parse-metadata z is invalid; z--replace-in-metadata c              3   h   >#    U  H'  n[         R                  R                  U/TS S Q7v   M)     g7f)r   N)r   ActionsREPLACE)r^   r   fs     r@   r_   Cvalidate_options.<locals>.metadataparser_actions.<locals>.<genexpr>  s.     ^o(0088!DaeDos   /2r   r   )
rN   r  r2   r   	to_action	Exceptionr   r  r   validate_action)r  cmdactionsr   actions   `    r@   metadataparser_actions0validate_options.<locals>.metadataparser_actions  s     a%k!n%56C=.88;< +;q>*:;C^aPQdjjY\o^GF= 00&9 L   = C5cU!;<<=  = C5cU!;<<=sK   $CB 2C2B0	C
B-B((B--C0
C:C

CCpre_processztitle:zInvalid playlist-items z: )NN)r   neverzUnsupported --xff "r   r   r&  z
User-AgentReferernativezNo such z%s )rG   zexternal downloader ")alwaysautozauto-ttyno_colorzno_color-ttyr&  z" is not a valid color policybestz.
         )zO"-f best" selects the best pre-merged format which is often not the best optionzdTo let yt-dlp download and merge the best available formats, simply do not pass any format selectionztIf you know what you are doing and want only the best pre-merged format, use "-f b" instead to suppress this warningmp4)zR"-f mp4" selects the best pre-merged mp4 format which is often not what's intendedzbPre-merged mp4 formats are not available from all sites, or may only be available in lower qualityzYTo prioritize the best h264 video and aac audio in an mp4 container, use "-t mp4" insteadzuIf you know what you are doing and want a pre-merged mp4 format, use "-f b[ext=mp4]" instead to suppress this warningc                 ~   > X!;   a7  X1;  a2  TR                  U R                  5        SU=(       d    SU  S3 35        gg)NzI arguments given without specifying name. The arguments will be given to zall sTF)r   title)rj   r   key1key2wherewarningss        r@   report_args_compat,validate_options.<locals>.report_args_compat  sI    =T.OOtzz|n ->>C>UdVST~=VX YrB   zexternal downloader)r3  zpost-processorzdefault-compatz--allow-unplayable-formatsallow_unplayable_formatsc                    > U[         L a  [        TU5      nU(       d  g U[         L a  [        TU5      nU(       a  TR                  U  SU S35        [        TX5        g )Nz is ignored since z
 was given)r   r   r   r   )	arg1opt1arg2opt2val1val2r   r}   r4  s	          r@   report_conflict)validate_options.<locals>.report_conflict  sX    :4&D:4&DOOtf$6tfJGHd$rB   z--playlist-reverseplaylist_reversez--playlist-randomplaylist_randomz--lazy-playlistlazy_playlistz--dateafter	dateafterz--datedatez--datebefore
datebeforez--exec-before-downloadexec_before_dl_cmdz"--exec before_dl:"exec_cmd	before_dl)r>  z--iduseidz--outputr   z--remux-video
remuxvideoz--recode-videorecodevideoz--embed-metadataaddmetadataz--embed-chaptersaddchaptersz--embed-info-jsonr   z--embed-subsembedsubtitlesz--embed-thumbnailembedthumbnailz--extract-audioextractaudioz--fixupfixup)Nr&  rG   )r=  r   remove_chaptersz--sponsorblock-removesponsorblock_removez--xattrsxattrs_deprecated_optionsz,The following options have been deprecated: z
Please remove them from your command/configuration to avoid future errors.
See  https://github.com/yt-dlp/yt-dlp/issues/14198  for more detailsz%(id)s.%(ext)szbestaudio/best	if_existsz*Type account password and press [Return]: z6Type TV provider account password and press [Return]: zallow-unsafe-extzNUsing allow-unsafe-ext opens you up to potential attacks. Use with great care!c                     U $ r8   r]   )r   prepends     r@   r   "validate_options.<locals>.<lambda>f  s    ArB   r8   )F)sumr  boolusenetrc	netrc_cmdusernamepasswordap_passwordap_usernameap_msor   autonumber_startautonumber_sizeconcurrent_fragment_downloadsplayliststartplaylistendsleep_interval_subtitlessleep_interval_requestssleep_intervalmax_sleep_intervalwait_for_videor,   r  r   r    r   convertsubtitlesconvertthumbnailsmerge_output_formatr{   rx   r   escaper   SUPPORTED_EXTSaudioformatr   	FORMAT_REr   r   rL  r   rK  r   audioqualityrP   r(   r&   retriesfragment_retriesextractor_retriesfile_access_retriesretry_sleeprr   AttributeErrorr   	ratelimitthrottledratelimitmin_filesizemax_filesize
buffersizehttp_chunk_sizer   
forceprintprint_to_filesponsorblock_chapter_titleprogress_templater   skip_downloadrS  remove_rangesr$   download_rangescookiesfrombrowserr   r  lowerr   sortedupperr   impersonater   from_strmetafromtitleparse_metadata
setdefaultr   list	itertoolschainr   playlist_itemsrs   r"   parse_playlist_itemsr  geo_bypass_countrygeo_bypass_ip_block
geo_bypassr!   random_ipv4lenr*   match_filterbreaking_match_filterdownload_archiver%   ffmpeg_location
user_agentheadersrefererno_sponsorblocksetsponsorblock_markrT  external_downloaderr	   r'   get_basenamecolorvaluesexternal_downloader_argspoppostprocessor_argsr   rH  rR  hasattrrV  rE  r   dayrD  rF  rG  rJ  
overwritescontinue_dlrM  rN  rQ  	keepvideogetcommentswriteinfojsonr   dumpjson
print_jsondump_single_jsonallsubtitlesrO  writeautomaticsubwritesubtitlesgetpassr   r5   sanitize_extension)(r}   r   r   r   min_waitmax_waitr   r  r   r   keyr   r   r   r   r   type_	tmpl_listfileouttmpl_defaultr  r  r  browser_namer  r  r#  vr   default_downloaderprotopathedpolicydeprecation_warningsr5  r?  r   r   r4  s(   `                                    @@@r@   validate_optionsr     s   c
KNht STDMM4>>4==IJKqPRZ]_T]]d"?dmm4&?ASYijT%E)9)9)E+1ACt{{Hik ($*?*?@')=)=tD,d.P.PRVW&(:(:DA2**D,<,<>NP^_ 0$2O2OP/1M1MN&(;(;<*D,C,CD"##t+-AD	F 
	 	 	("&"5"5++T-D-DFVW&!$^5_t7J7J7P7PQTVW7X5_Z^5_!`Q%_x4/?/^C4K^K^D^*_/1D1D	F,JK'2 'L,>,>?  & $'!%($*B*B$++CHHSNDaDa5b,cdf>4#3#35I5S5ST!4#8#8:T:c:cd%t'='=?Z?d?de($*:*:<R<\<\]':N:X:XY --33C8>>sC/;}TEVEV7Wab+cd
 !T\\:DL)*d6K6KLD*;8N8NOD,]D<T<TUD
h %%++-	  %	O$4T$:DS! .  $L$..$GDN,-CTE\E\]D&~t7H7HID&~t7H7HID$]DOOTJDO)*;T=Q=QRD?
 <<%%'$456 ( OO113yDTeWO#<=  4 !..446y#JD$TeW,C#DETeW,C#DE $ 7 T446RS))//1)1Qq"vhn%qcOI/ 2 ll&&y1O"!LL#'*R 3AATVZVjVj2k/D$,a.?TVZVjVjlp0qrD 	|| 
 $$& <GH_H_G`abb48JJvyR[]h4i1gw	#))+11KL> Z88<		&I[B\8]7^` a ammoG00 #OPWy Y<<@IIfM_F`<a;b"d e e#/'9"M#,55d6F6F6L6L6NO$ %&&}b9@@6$J\J\I]A^_ ''--//DAq 	
4	%;Q!?@AA/D ''D%;&	W/66t7J7JKL 9C5DT5&::	G  1 t1$&*ooD#'+D$oo++-8DO)$*;*;T=W=WXD( +D,A,A B'*4+?+?@"doo>||	4<<8<?EA!9//557t8$T*:<tU9MNNcdhciijkm mREY&!#!2 8 **##%\\q(EFGG & &("H" {{f++ -D E 	F {{e++ -E F 	G /1N1N#+=?CU%%001CTEbEbEfEfgpEqr*D,C,CEUW`aa-1-D-D-H-HIY-Z	*)ELf'j%% % (*<>QSde(*<>OQ`a'):<M_M;&$ONL(FDQ,.B):DMM<M<Mk<Z\FGZAQAQR[A\]O\3C]S &6&6')9:N$45')9:%~6IwTZZ?X-Xbij$m4'):BGO\2+-BCERJ)t*++##:499TE]E];^:_ `S S	T $ -1III	dii(9T^^UYUdUd;eDI%)%<%<k"zzz"2Y D228H8H8PDKK4G&D..6t?R?R?R}}}43H3H3H!%D$"5"5"59O9O9O"D//7) }} T]]%:(TU#(8(8(@"??+cd T---#	$ 4N0)))	  	Oxu,DTHMNN	OP  	W6t7J7J6MRPSuUVV	W  	G24??2C1EFF	GsD   %AC4AC!3)AC' 
 AD CACC'
ADC1ADDADD$AD9c              #   .  #    U R                    S h  vN   U R                  R                  5        H  u  pSUUS.v   M     U R                  U R                  -  nU(       a  SUU R
                  SS.v   U R                  (       a  SU R                  SS.v   U R                  (       a  S	U R                  SS.v   U R                  (       a'  S
U R                  U R                  U R                  S.v   U R                  (       a  SU R                  S.v   U R                  (       a  SU R                  S.v   U R                  (       aH  SU R                  ;  nSU R                   =(       a    US.v   U R"                  (       d  U(       a  SU l        U R$                  (       d  U(       a=  SU R$                  U R                  U R&                  U R(                  U R*                  S.v   U R,                  (       d"  U R.                  (       d  U R0                  (       a'  SU R.                  U R,                  U R0                  S.v   U R2                  (       a8  SU R4                  S.v   U R4                  (       d  SU l        SU R6                  S'   U R8                  (       a  SU R*                  S.v   U R:                  (       a  SS0v   U R<                  S:w  a  S U R<                  S!:g  S"S#.v   U R>                  R                  5        H  u  pS$UUS%.v   M     g  GN 7f)&NMetadataParser)r  r!  whenSponsorBlockafter_filter)r  
categoriesapir  FFmpegSubtitlesConvertorrI  )r  r{   r  FFmpegThumbnailsConvertorFFmpegExtractAudio)r  preferredcodecpreferredqualitynopostoverwritesFFmpegVideoRemuxer)r  preferedformatFFmpegVideoConvertorzno-keep-subsFFmpegEmbedSubtitle)r  already_have_subtitleTModifyChapters)r  remove_chapters_patternsremove_sponsor_segmentsr  r  force_keyframesFFmpegMetadata)r  add_chaptersadd_metadataadd_infojsonEmbedThumbnail)r  already_have_thumbnailrZ   pl_thumbnailFFmpegSplitChapters)r  r  r  XAttrMetadatar&  FFmpegConcatr)  playlistr  only_multi_videor  Exec)r  rH  r  ) add_postprocessorsr  rr   r  rT  sponsorblock_apirn  ro  rQ  rs  ru  r  rK  rL  rO  r   r  r  rS  r  r  force_keyframes_at_cutsrM  rN  r   rP  writethumbnailr   split_chaptersrU  concat_playlistrH  )r}   r  r!  sponsorblock_query	keep_subsrH  s         r@   get_postprocessorsr  k  s    &&&&,,224#
 	
 5 //$2J2JJ!,(("	
 	
 -++
 	

 .,,
 	

 '".. $ 1 1 $ 5 5	
 	
 '"oo
 	
 )"..
 	

 "$*:*::	(%)%8%8%FY
 	

 %%)"&D 1#(,(<(<'+'?'?!//*.*I*I#;;
 	
 4++t/B/B# ,, ,, //	
 	
 #&*&9&9
 	

 """&D+-DLL((#;;
 	

 {{o&&w&! $ 4 4 @
 	
 ----/ 
 	
 0O 's   LLL LParsedOptions)parseroptionsrR   ydl_optsc                 H  ^ [        U 5      u  nmn[        UTR                  TR                  (       a  TR                  (       d  SOTR                  5      n[        T5         [        T5      u  p4[        [        T5      5      n[        TR                  5      =(       a    [        U4S j[        SS  5       5      n[        U4S jS 5       5      nTR                  c6  U=(       d(    TR                   =(       d    [        TR                  5      Tl        U V	s/ s H  oR#                  S5      S	:X  d  M  U	PM     n
n	TR$                  =(       aI    TR&                  (       + =(       a1    TR(                  =(       a    TR*                  R#                  S
5      S:g  n[        TR,                  TR.                  TR                  R#                  S	5      TR0                  R#                  S	5      U45      (       d!  U
(       d  STl        OU
SSS	S./:X  a  STl        TR2                  [4        R6                  ;   a  TR2                  OfTR8                  [:        R6                  ;   a  TR8                  O<TR<                  (       a*  TR>                  [@        R6                  ;   a  TR>                  OSn[C        UTU0 STRD                  _STRF                  _STRH                  _STRJ                  _STRL                  _STRN                  _STRP                  _STRR                  _STRT                  _STRV                  _STRX                  _STRZ                  _STR\                  _STR                  _STR^                  _S TR`                  _S!TRb                  _0 S"TRd                  _S#TRf                  _S$TRh                  _S%TRj                  _S&TRl                  _S'TRn                  _S(TR                  _S)TR0                  _S*TRp                  =(       d    TR                   _S+TR.                  _S,TRr                  _S-TRt                  c  U=(       d    U=(       d    SOTRt                  _S.TRv                  _S/TRx                  _S0TRz                  _S1TR|                  _S2TR~                  _E0 S3TR                  _S4TR                  _S5TR                  _S6TR                  _S7TR                  _S8TR                  _S9TR*                  _S:TR                  _S;TR                  _S<TR                  _S=TR                  _S>TR                  _S?TR                  _S@TR                  _SATR                  _SBTR                  =(       d    SC/_SDTR                  _E0 SETR                  _SFTR                  _SGTR                  _SHTR                  _SITR                  _SJTR                  _SKTR                  _SLTR                  _SMTR                  _SNTR                  _SOTR                  _SPTR                  _SQTR                  _SRTR                  _SSTR                  c  TR                  OTR                  _STTR                  _SUTR                  _E0 SVTR                  _SWTR                  _SXTR                  _SYTR                  _SZTR                  _S[TR                  _S\TR                  _S]TR*                  R#                  SC5      S^:H  _S_TR                  _S`TR                  _SaTR                  _SbTR                  _ScTR$                  _SdTR(                  _SeTR&                  _SfTR                  _SgTR                  SL _E0 ShTR                  Si:H  _SjTR                  _SkTR                  _SlTR                  _SmTR                  _SnTR                  _SoTR                  _SpTR                  _SqTR                  _SrTR                  _SsTR                  _StTR                  _SuTR                  _SvTR                  _SwTR                  _SxTR                  _SyTR                  _E0 SzTR                  _S{TR                  _S|TR                  _S}TGR                   _S~TGR                  _STGR                  _STGR                  _STGR                  _STGR
                  _STGR                  _STGR                  _STGR                  _STGR                  _STGR                  _STGR                  _STGR                  _STGR                  _E0 STGR                  _STGR                  _STGR                   _STGR"                  _STGR$                  _STGR&                  _STGR(                  _STGR*                  _STGR,                  _STGR.                  _STGR0                  _STGR2                  _STGR4                  _STGR6                  _STGR8                  _STR,                  _STGR:                  _E0 STGR<                  _STGR>                  _STGR@                  _SU_SU_STGRB                  _STGRD                  _STGRF                  _STGRH                  _STGRJ                  _STGRL                  _STGRN                  _STGRP                  _STGRR                  _STGRT                  _STGRV                  _STGRX                  _E0 STGRZ                  _STGR\                  _STGR^                  _STGR`                  _STGRb                  _STGRd                  _STGRf                  _STGRh                  _STGRj                  _STGRl                  _STGRn                  _STGRp                  _STGRr                  =(       d    S_STGRt                  SL _SW_SW_STGRv                  _E5      $ ! [         a  nUR                  U S35         SnAGNSnAff = fs  sn	f )z4@returns ParsedOptions(parser, opts, urls, ydl_opts)rE   rJ   Nc              3   @   >#    U  H  oTR                   ;  v   M     g 7fr8   )r  r^   r   r}   s     r@   r_    parse_options.<locals>.<genexpr>  s     .fQeA/GQes   r   c              3   <   >#    U  H  n[        TU5      v   M     g 7fr8   )r   r  s     r@   r_   r     s#       11gdA&& 1s   )
r  r  getdescriptiongetdurationgetfilename	getformatgetidgetthumbnailgettitlegeturlr  r  pl_infojsonrZ   r   r  Tr  discard_in_playlistr]  netrc_locationr^  r_  r`  	twofactorvideopasswordrc  rb  ra  client_certificateclient_certificate_keyclient_certificate_passwordquietno_warningsforceurl
forcetitleforceidforcethumbnailforcedescriptionforcedurationforcefilenameforceformatr  r  	forcejsonr  force_write_download_archivesimulater  r{   r7  ignore_no_formats_errorr   format_sort_forcer   r   check_formatslistformatslistformats_tabler   outtmpl_na_placeholderpathsre  rd  restrictfilenameswindowsfilenamesr   force_generic_extractorallowed_extractorsr   r|  r}  r  rv  ry  rw  rx  retry_sleep_functionsskip_unavailable_fragmentskeep_fragmentsrf  r  noresizebufferr  
continuedl
noprogressprogress_with_newliner  progress_deltarg  rh  playlistreverseplaylistrandomrC  
noplaylistlogtostderrrD   consoletitlenopartr   writedescriptionr  r   r   r  r  write_all_thumbnailsall	writelinkwriteurllinkwritewebloclinkwritedesktoplinkr  r  r  listsubtitlessubtitlesformatsubtitleslangs
matchtitlerejecttitlemax_downloadsprefer_free_formatstrim_file_namerT   dump_intermediate_pageswrite_pages
load_pagestestr  r~  r  	min_views	max_views	daterangecachedirrp   r  break_on_existingbreak_on_rejectbreak_per_urlskip_playlist_after_errors
cookiefiler  legacyserverconnectnocheckcertificateprefer_insecureenable_file_urlshttp_headersproxysocket_timeoutbidi_workarounddebug_printtrafficdefault_searchdynamic_mpdextractor_argsrH   extract_flatlive_from_startrm  mark_watchedrp  	final_extpostprocessorsrR  source_addressr  rj  rk  rl  ri  r  r  r  list_thumbnailsr  r  r  r  hls_prefer_nativehls_use_mpegtshls_split_discontinuityr  r  geo_verification_proxyr  r  r  rJ  warn_when_outdated	_warnings_deprecation_warningsr   )r   rX   rS   r  rT   r   r  r   r  r  r  r\  r  r:  r   r  r  r   r  r   r   r   r`  r  r  rL  r   rr  rK  r   rQ  rs  r   r  r]  r  r^  r_  r`  r  r  rc  rb  ra  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r{   r7  r  r   r   r   r   r!  r"  r#  r$  r%  re  rd  r&  r'  r   r(  r)  r|  r}  r  rv  ry  rw  rx  rz  r+  r,  rf  r  r-  r  r  r/  r0  r  r1  rg  rh  rA  rB  rC  r4  r6  r7  r   r8  r  r  r;  r<  r=  r>  r  r  r  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  r  r~  r  rK  rL  rE  rN  rp   r  rO  rP  rQ  rR  rS  r  legacy_server_connectno_check_certificaterV  rW  r  rY  rZ  r[  r\  r]  r^  r_  rH   ra  rm  rb  rp  rR  re  r  rj  rk  rl  ri  r  r  r  rf  r  r  r  r  rg  rh  ri  r  r  rj  r  r  r  rJ  update_selfr   )argvr  rR   r4  r  r   rd  
print_onlyany_gettingppplaylist_ppswrite_playlist_infojsonrc  r}   s                @r@   parse_optionsrw    s   "4FD$D$..

4<<"UYUaUabDD!)9$)?& ,T23Ndoo&f3.fQabcbdQe.f+fJ  1  K zz LDOOLtDOO7L
!/P266&>Z3OBLP#11  g$:M:M6M  g#'#<#< gAEAQAQR_A`dfAf J'z*    )Dn$Xbcdd 5D !,,0F0U0UU $3G3V3V VT__"&"3"38H8HL`LoLo8oT	  t k.DMMk.$--k. 	T^^k. 	DMM	k.
 	DMMk. 	T^^k. 	++k. 	$++k. 	t''k. 	t''k. 	d55k. 	!$"="=k. 	&t'G'Gk. 	k. 	t''k.  	DKK!k." 	dmm#k.$ 	4::%k.& 	$++'k.( 	D//)k.* 	))+k., 	))-k.. 	t~~/k.0 	doo1k.2 	++3k.4 	T]]5doo5k.6 	D117k.8 	'(I(I9k.: 	4==;PZ6;6$VZVcVc;k.< 	++=k.> 	$++?k.@ 	#D$A$AAk.B 	"4#?#?Ck.D 	t''Ek.F 	T33Gk.H 	'(I(IIk.J 	'(I(IKk.L 	++Mk.N 	t''Ok.P 	T33Qk.R 	4<<Sk.T 	!$"="=Uk.V 	Wk.X 	4//Yk.Z 	D11[k.\ 	T33]k.^ 	D11_k.` 	))ak.b 	"4#?#?ck.d 	d55D)ek.f 	T^^gk.h 	d55ik.j 	dookk.l 	4<<mk.n 	t77ok.p 	D11qk.r 	T33sk.t 	 !1!1uk.v 	%d&E&Ewk.x 	$--yk.z 	()K)K{k.| 	doo}k.~ 	$--k.@ 	4//Ak.B 	d&&Ck.D 	DOO$;djjEk.F 	 !;!;Gk.H 	T33Ik.J 	$--Kk.L 	++Mk.N 	t''Ok.P 	400Qk.R 	$..Sk.T 	++Uk.V 	dooWk.X 	t||''	2c9Yk.Z 	))[k.\ 	$++]k.^ 	doo_k.` 	D11ak.b 	++ck.d 	 9 9ek.f 	$--gk.h 	t''ik.j 	$--5kk.l 	 3 3u <mk.n 	T^^ok.p 	))qk.r 	4//sk.t 	D11uk.v 	$--wk.x 	T33yk.z 	)){k.| 	++}k.~ 	4//k.@ 	$--Ak.B 	dooCk.D 	t''Ek.F 	++Gk.H 	t77Ik.J 	$--Kk.L 	4<<Mk.N 	"4#?#?Ok.P 	t''Qk.R 	dooSk.T 			Uk.V 	T^^Wk.X 	))Yk.Z 	))[k.\ 	T^^]k.^ 	T^^_k.` 	TYYak.b 	DMMck.d 	T^^ek.f 	D11gk.h 	T33ik.j 	4//kk.l 	++mk.n 	%d&E&Eok.p 	dooqk.r 	d55sk.t 	t99uk.v 	d77wk.x 	4//yk.z 	D11{k.| 	}k.~ 	k.@ 	$--Ak.B 	4//Ck.D 	d55Ek.F 	$--Gk.H 	t''Ik.J 	$--Kk.L 	DMMMk.N 	))Ok.P 	4//Qk.R 	$--Sk.T 	))Uk.V 	t77Wk.X 	YYk.Z 	.[k.\ 	]k.^ 	$--_k.` 	t''ak.b 	"4#?#?ck.d 	$--ek.f 	d55gk.h 	#D$A$Aik.j 	t77kk.l 	4//mk.n 	"4#?#?ok.p 	4//qk.r 	$--sk.t 	))uk.v 	wk.x 	4//yk.z 	T33{k.| 	$--}k.~ 	"4#?#?k.@ 	#D$A$AAk.B 	d55Ck.D 	!$"="=Ek.F 	dooGk.H 	d55Ik.J 	t77Kk.L 	#tMk.N 	d..$6Ok.P 	XQk.R 	 !5Sk.T 	t''Uk. k kE  !uBZ  ! Qs$   "o3 p3p3
p=ppc                 .
  ^^ [        S5        [        U 5      u  pp4[        X#5      (       a  g UR                  (       a)  [        R
                  R                  UR                  5        UR                  [        l        [        R                  (       a
  [        5         [        U5       nUR                  =(       d    UR                  nU=(       d    UR                  nUR                  (       a  UR                  R                  5          [!        XRR                  5      nUR                  (       aW  UR#                  5       (       aB  U(       a;  UR$                  (       a  UR'                  5       sS S S 5        $ UR)                  S5        UR2                  (       Ga  [5        S5      S4[5        S5      S4[5        S5      S4[5        S	5      S4[5        S
5      S4/n	UR7                  5       n
S nU
 VVs/ s H  u  pU" X5      PM     nnnU	 Hs  u  mm[9        UU4S jU
 5       5      (       a  M#  UR;                  SU" TT S35       Vs/ s H(  nUR=                  XR>                  R@                  5      PM*     sn5        Mu     URC                  S5        URE                  [G        / SQUSSS95         S S S 5        g U(       Gdl  U(       a  UR0                  sS S S 5        $ U c  [H        RJ                  SS  OU nURM                  U5        U(       Gd  [N        RP                  S:X  a  [S        [H        SS5      (       a  SS K*nSS K+nURY                  S5      nSURZ                  R\                  -  " 5       nUR_                  US5      n[a        [H        S5      =(       a<    [N        Rb                  Re                  [H        Rf                  5      Ri                  S5      nUS:X  d  U(       a;  US:X  a5  [k        URm                  S5      5        URo                  5         [q        S5        URs                  S5        URu                  5          UR                  bE  U(       a  UR)                  S5        URw                  [y        UR                  5      5      sS S S 5        $ UR{                  U5      sS S S 5        $ ! [*         a     [,        R.                  " 5         SUl         GNJf = fs  snnf s  snf ! [|         a    URC                  S5         S S S 5        g f = f! , (       d  f       g = f)!Nzyt-dlpz)Restart yt-dlp to use the updated versiond   chrome	curl_cffisafarifirefoxzcurl_cffi>=0.10edgetorzcurl_cffi>=0.11c                     [        U R                  R                  5       U R                  SS9=(       d    S[        U R                  =(       d    SR                  5       U R
                  SS9=(       d    SU/$ )NrD   )delimrZ   )r)   clientr0  versionos
os_version)targethandlers     r@   make_row_real_main.<locals>.make_row  s\    !&--"5"5"7sSZWZ!699?"9"9";V=N=NVYZa^a rB   c              3   b   >#    U  H$  u  pTU;   =(       a    TR                  U5      v   M&     g 7fr8   )r   )r^   r  r  known_handlerknown_targets      r@   r_   _real_main.<locals>.<genexpr>  s2      +< !F*P}/G/G/PP+<s   ,/r   z (unavailable)z$[info] Available impersonate targets)ClientOSSourcer   rD   )	extra_gapr  r   ntfrozenFKernel32_MEIPASS_MEIzDo not double-click the executable, instead call it from a command line.
Please read the README for further information on how to use yt-dlp: https://github.com/yt-dlp/yt-dlp#readmezSYou must provide at least one URL.
Type yt-dlp --help to see a list of all options.z(URLs are ignored due to --load-info-jsonzAborting remaining downloadse   )?r1   rw  r   r  r   _ffmpeg_locationr  r   r   _load_all_pluginsr6   rp  rm_cachedirload_info_filenamecacheremover   rw   r   restartreport_warningr  	traceback	print_exc_download_retcodelist_impersonate_targetsr   "_get_available_impersonate_targetsr  insert_format_outStylesSUPPRESS	to_screen	to_stdoutr0   r9   rq  warn_if_short_idr  rj   r   ctypes.wintypesmsvcrtWinDLLwintypesDWORDGetConsoleProcessListr  r  basenamer  r   print_generate_error_messagegetchrA   r  destroydownload_with_info_filer%   r   r   )rq  r  r}   all_urlsr  ydlr%  
actual_useupdaterknown_targetsavailable_targetsr  r  r  rowstextr>   ctypesr  kernel32bufferattached_processes
is_onefiler  r  s                          @@r@   
_real_mainr    s7   '4T':$F("422 ,,001E1EF ((K	8	&&:$*:*:8!8!8
II	(c#3#34GGNN$4$4;;"??, 
	 ""#NO (((
 #8,k:"8,k:"9-/@A"6*K8"5)+<=M !$ F F H FWWEV/&HV-EVDW/<+m +<   KK$,\m_N;[$\$$\D jj.A.AB$\$  0= MM@AMM,'A4ST\_`ao 
	r ,,w 
	z $(<388AB<TD  & BGGtOXu0M0M&!==4foo3336%-%C%CFA%N" %S*5k"'':J:J3<<:X:c:cdj:k
%*z>PTU>U&88BC D LLN!HLLCD 			&&2&&'QR22;t?V?V3WXy 
	| ||H-} 
	   	(!$'C!	(2 X$^ ! 	MM89C 
	~	 
	s   &A TA"R%3R%A(T,S $T(T/S1:T4TE T9ASS%&STSTT8TTT
Tc                 `   S[         l         [        [        [	        U 5      5      6   g ! [
        [        4 a    [        S5         g [         a  n[        SU 35         S nAg S nAf[         a    [        S5         g [         a~  n[        R                  " [        R                  [        R                  5      n[        R                  " U[        R                   R#                  5       5        [        SU 35         S nAg S nAf[$        R&                   a  n[        SSU 35         S nAg S nAff = f)NTr   zERROR: z
ERROR: Interrupted by userz
ERROR: r   rJ   )r   r   rA   r3   r  r   r   r#   KeyboardInterruptBrokenPipeErrorr  rK   devnullO_WRONLYdup2r9   r|   filenooptparseOptParseError)rq  er  s      r@   mainr  ,  s    FLx
4()*]+ a sm .,- ''"**bkk2
**,-	!o!! a2aSs:   ( D-	D-A!!D-;	D-A4C==D-D((D-)gen_extractorsrl   )r6   r  rl   r  rw  )r   r8   )Wr9   version_infoImportError__license__collectionsr  r  r  r  r   r  cookiesr   r   r   downloader.externalr	   r   r
   extractor.adobepassr   networking.impersonater   globalsr   r   r  r   pluginsr   r  postprocessorr   r   r   r   r   r   r   r   r   rw   r   utilsr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   utils._utilsr5   r6   rA   rX   r   r   r  r  
namedtupler  rw  r  r  r  rl   __all__r]   rB   r@   <module>r     s    
f

tw w      	 	  L L 8 - ) 5 (  :
 
 
       8 0  &(<1+hw*tm
` &&8abUpsl& 7rB   