
    Ği3B                         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Zd dl	Z
ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZ  G d d	e          Z G d
 de          ZdS )    N   )InfoExtractor   )
compat_ord)ExtractorErrorOnDemandPagedListdetermine_extfloat_or_noneint_or_nonemerge_dictsmultipart_encodeparse_durationtry_callurl_or_noneurljoin)traverse_objc                       e Zd ZdZdZdZdZddiZdZdZ	d	d
dddddde
dddddddddddddde
ddddd dd!d"d#dd$d%d&d'dd(d)e
d*d+d,dd-d.d/dd0d1d2d3dd4d)e
d5d6d,dd7d8d9d:d8d9gZd; Zd< Zd= Zd> Zd? Zd@S )ACDAIEzWhttps?://(?:(?:(?:www|m)\.)?cda\.pl/video|ebd\.cda\.pl/[0-9]+x[0-9]+)/(?P<id>[0-9a-z]+)cdaplzhttps://www.cda.plzhttps://api.cda.plAcceptzapplication/vnd.cda.public+jsonzBasic YzU3YzBlZDUtYTIzOC00MWQwLWI2NjQtNmZmMWMxY2Y2YzVlOklBTm95QlhRRVR6U09MV1hnV3MwMW0xT2VyNWJNZzV4clRNTXhpNGZJUGVGZ0lWUlo5UGVYTDhtUGZaR1U1U3Qz
cda-bearerz http://www.cda.pl/video/5749950c 6f844bf51b15f31fae165365707ae9705749950cmp4i  u.   Oto dlaczego przed zakrętem należy zwolnić.z$md5:269ccd135d550da90d1662651fcb9772zre:^https?://.*\.jpg$'   r   20160221iV)idextheighttitledescription	thumbnailaverage_ratingduration	age_limitupload_date	timestamp)urlmd5	info_dictz http://www.cda.pl/video/57413289 a88828770a8310fc00be6c95faf7f4d557413289u!   Lądowanie na lotnisku na Maderzez$md5:60d76b71186dcce4e0ba6d4bbdb13e1acrash404   20160220iOV)r   r   r   r    r!   uploaderr"   r#   r$   r%   r&   z"https://www.cda.pl/video/8753244c4 d8eeb83d63611289507010d3df3bb8b3	8753244c4zF[18+] Bez Filtra: Rezerwowe Psy czyli...  najwulgarniejsza polska gra?z$md5:ae80bac31bd6a9f077a6cce03c7c077ei8  zarhn eui     i(ca20211010)r   r   r   r    r   r/   r!   r#   r$   r"   r&   r%   z#https://www.cda.pl/video/17028157b8 c1fe5ff4582bace95d4f0ce0fbd0f992
17028157b8u   STENDUPY MICHAŁ OGIŃSKIz$md5:5851f3272bfc31f762d616040a1d609ai  oginskiiI  i-tOe20231111zhttp://ebd.cda.pl/0x0/5749950cTr'   only_matchingz https://m.cda.pl/video/617297677c                 Z    t          ddi          \  }} | j        ||g|R |||dd|S )Nage_confirm )RefererContent-Type)dataheaders)r   _download_webpage)selfr'   video_idargskwargsr?   content_types          YC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/cda.py_download_age_confirm_pagez CDAIE._download_age_confirm_pagev   si    -}b.ABBl%t%   ,    
   	    c                 |   d}t          j        dd          }t          j        d          }d| d| d| d| j        d	<   | j                            | j        |          pi }|                    d
d          t          j	        
                                                                dz   k    rd|d          | j        d<   d S t          j        t          j        dd                    d t#          j        |                                                                          D                                                       t"          j                                                                                                                dd          }|                     | j         dd ddi | j        d| j        id||d          }| j                            | j        ||d         |d         t          j	        
                                                                z   d           d|d          | j        d<   d S )Nz1.2.255 build 21541      )zASUS ZenFone 8zMotorola edge 20 5GzMotorola edge 30 neo 5GzMotorola moto g22zOnePlus Nord 2T 5Gu   Samsung Galaxy A32 SM‑A325FzSamsung Galaxy M13zSamsung Galaxy S20 FE 5Gz
Xiaomi 11TzXiaomi POCO M4 ProzXiaomi Redmi 10zXiaomi Redmi 10CzXiaomi Redmi 9C NFCzXiaomi Redmi Note 10 ProzXiaomi Redmi Note 11 ProzXiaomi Redmi Note 11zXiaomi Redmi Note 11S 5GzXiaomi Redmi Note 11Sz	realme 10zrealme 9 Pro+z	vivo Y33szpl.cda 1.0 (version z
; Android z; )z
User-Agentvalid_untilr      zBearer tokenAuthorizationsW   s01m1Oer5IANoyBXQETzSOLWXgWs01m1Oer5bMg5xrTMMxRZ9Pi4fIPeFgIVRZ9PeXL8mPfXQETZGUAN5StRZ9Pr<   c              3   d   K   | ]+}t          |d z  f                                          dV  ,dS )   z0>2N)byteshex).0bts     rG   	<genexpr>z'CDAIE._perform_login.<locals>.<genexpr>   s^       G G b3h\**..0066 G G G G G GrI   =z/oauth/tokenz
Logging inrI   password)
grant_typeloginrZ   )r?   r@   queryaccess_token
expires_in)rP   rN   )random	randrangechoice_API_HEADERScacheload_BEARER_CACHEgetdtdatetimenowr&   base64urlsafe_b64encodehmacnewjoinhashlibr(   encodedigestsha256decodereplace_download_json_BASE_API_URL_LOGIN_REQUEST_AUTHstore)	rB   usernamerZ   app_versionandroid_versionphone_modelcached_bearerpassword_hash	token_ress	            rG   _perform_loginzCDAIE._perform_login   sV   + *1b11m %
  2 +z*y*yXg*y*ykv*y*y*y,'
(:HEEK]A..1B1B1L1L1N1NQR1RRR1S=;Q1S1SDo.F0fGG G G%k(//*;*;<<CCEEG G G G GGMvxxN	2 2 #FHH	& & '-fhhwwsB/?/?	 	 ''!///|#Tt(T/4;STT(!)  (  	 	
+X~.$\2R[__5F5F5P5P5R5RR8
 8
 	 	 	 .Sy7P-R-R/***rI   c                     |                      |          }d| j        v r|                     |          S |                     |          S )NrQ   )	_match_idrc   _api_extract_web_extract)rB   r'   rC   s      rG   _real_extractzCDAIE._real_extract   sI    >>#&&d///$$X...$$X...rI   c                    |                      | j         d| || j                  d         }t          |ddt          hf          }d |d         D             }|                    d          r(|                    d	          s|st          d
d          ||                    d          |                    d          |dk    rd n|t          |                    d                    |                    d          ||                    d          |                    d          rdnd|                    d          d
S )N/video/)r@   videoauthorr\   c           	          g | ]n                     d           d                               d                               d          t          fd                               d          doS )filer   namec                  >    t           d         d d                   S )Nr   )int)qualitys   rG   <lambda>z/CDAIE._api_extract.<locals>.<listcomp>.<lambda>   s    s76?3B3+?'@'@ rI   length)r'   format
resolutionr   filesize)rg   r   )rV   r   s    @rG   
<listcomp>z&CDAIE._api_extract.<locals>.<listcomp>   s     C C C gkk&.A.AC6?kk'**!++f--@@@@AAH--
 
 C C CrI   	qualitiespremiumpremium_freez0Video requires CDA Premium - subscription neededT)expectedr   r    anonimratingthumbr#   
for_adultsr2   r   views)
r   r   r    r/   r"   r!   formatsr#   r$   
view_count)rv   rw   rc   r   strrg   r   r
   )rB   rC   metar/   r   s        rG   r   zCDAIE._api_extract   s{   ""!44(44hHY # [ [[bd  x3%&@AAC C k*C C C 88I 	Stxx'?'? 	S 	S BTS S S S XXg&&88M22 (H 4 4(+DHHX,>,>??'**,,#xx55<1((7++
 
 	
rI   c           
                                ddd                                 j         d d          \  }}d|v r                     d           t	          j        d|          r                                  d	}                     d
|dd           r                     |j	        d          }d}g } 
                    d|dd d          } 
                    d|dd	d          }                     |                               |          |t          |                               |          |d |rdndd	                     |i           }d  fd}	 |	|d           t	          j        d|          D ]d\  }
}|r j        }n j        } |t%           j        |
          d| dd	           }|s                     d!| d           X |	||           et)          |          S )"Nzcda.plz
cda.playerhtml5r   z/vfilmu2   Ten film jest dostępny dla użytkowników premiumz.This video is only available for premium usersu.   niedostępn[ey] w(?:&nbsp;|\s+)Twoim kraju\s*<Fz*(<button[^>]+name="[^"]*age_confirm[^"]*")zbirthday validate form)defaultzConfirming age)noteTz(?x)
            <(span|meta)[^>]+itemprop=(["\'])author\2[^>]*>
            (?:<\1[^>]*>[^<]*</\1>|(?!</\1>)(?:.|\n))*?
            <(span|meta)[^>]+itemprop=(["\'])name\4[^>]*>(?P<uploader>[^<]+)</\3>
        r/   )r   group)zO<(?:span|meta)[^>]+itemprop=(["\'])ratingValue\1[^>]*>(?P<rating_value>[0-9.]+)zA<span[^>]+\bclass=["\']rating["\'][^>]*>(?P<rating_value>[0-9.]+)r   rating_valuefatalr   r2   r   )	r   r   r    r/   r"   r!   r   r#   r$   c                    dD ]}|                      |d          } t          j                            |           } g }| D ][}t	          |          }|                    d|cxk    rdk    rn nt          d|dz   dz  z             nt          |                     \d                    |          } |                      dd          } dD ]}|                      |d	          } d
| v r|                      d
d          } d| z   S d| z   dz   S )N)_XDDD_CDA_ADC_CXD_QWE_Q5_IKSDEr<   !   ~   rL   ^   z.cda.mp4)z.2cda.plz.3cda.plz.cda.plz	/upstreamz.mp4/upstreamzhttps://.mp4)ru   urllibparseunquoter   appendchrro   )apbcfs        rG   decrypt_filez(CDAIE._web_extract.<locals>.decrypt_file
  s&   O % %IIa$$$$Q''AA P PqMMB!NNNNsNNNNNR1r6R-/000AOOOO

A		*b))A- , ,IIa++aIIk?;;!A~%>F**rI   c                                         d| | ddd          }|sd S                     || dd          }|sd S |                    d          }|rd	|vr                    d
| d           d S |                    d          |                    di           }t	          fd|                                D                       |                    d	          r|d	                             d          rYt          j        |d	         d          |d	<   |d	         	                    d          r|d	         
                    dd          |d	<   n/|d	                             d          s |d	                   |d	<   d                             |d	         t          d d                   d           |                                D ]\  }}|k    rddd||                    d          |                    d          i gd}t          j        |                                          }                    d ddd |d!| d"d#| d"d$          }	t#          |	d%          d&k    st#          |	d'd(t$          hf          s|	d'         d(         }
t'          |
          }|d)k    r4d                                                 |
d*d+                     |d,k    r5d                                                 |
d-d.d/                     Od                             |
|t          |d d                   d           d0         s't/          |                    d0                    d0<   d S d S )1Nz,player_data=(\\?["\'])(?P<player_data>.+?)\1z player_jsonFplayer_datar   z player_datar   r   r   zUnable to extract  version informationr   r   c              3   .   K   | ]\  }}|k    |V  d S )N )rV   kvvideo_qualitys      rG   rX   z=CDAIE._web_extract.<locals>.extract_format.<locals>.<genexpr>+  s1      !X!X1Q-EWEW!EWEWEWEW!X!XrI   uggcrot_13zadc.mp4r   httpr   r   )r'   	format_idr   z2.0videoGetLinkr   tshash2)jsonrpcmethodr   paramshttps://www.cda.pl/video/zapplication/jsonXMLHttpRequest)r>   zX-Requested-Withz	Fetching z urlzFailed to fetch )r@   r?   r   errnoter   )resultstatusokr   respmpddash)mpd_idr   m3u8r   hls)m3u8_idr   r#   )_html_search_regex_parse_jsonrg   report_warningnextitems
startswithcodecsrt   endswithru   r   r   jsondumpsrq   rv   r   r   r	   extend_extract_mpd_formats_extract_m3u8_formatsr   )pageversionjson_strr   r   r   r   cda_qualityr?   response	video_urlr   r   r   r)   rB   rC   s               @rG   extract_formatz*CDAIE._web_extract.<locals>.extract_format  st   ..?(((] / L LH  **W222% + A AK OOG,,E F%//##$V$V$V$VWWW!IIi00M		+r22I !X!X!X!X	0A0A!X!X!XZghhMyy   =++F33 @$*M%-$J$JE&MV}--i88 Q(-f(=(=i(P(Pfv11&99 @$0Lv$?$?E&M)$++ =!.)-*<==- -   
 )2(9(9  $m++#(N!#+[%))D//599U\K]K]_a"bd dz$''..00..:::H(:,<O O !'@7'@'@'@<w<<<E / K K !+?@@DHH'8Vk]2STT I $X.v6	#I..%<<i(//0I0I!8F% 1J 1I 1I J J J JF]]i(//0J0J!8UE 1K 1P 1P Q Q Q Q i(//(%,"-gcrcl";";1 1     Z( N(6uyy7L7L(M(M	*%%%N NrI   r   zU<a[^>]+data-quality="[^"]+"[^>]+href="([^"]+)"[^>]+class="quality-btn"[^>]*>([0-9]+p)zDownloading r   r   zUnable to download )_set_cookie_download_webpage_handle	_BASE_URLraise_login_requiredresearchraise_geo_restrictedr   rH   r'   _search_regex_og_search_title_og_search_descriptionr
   _og_search_thumbnail_search_json_ldfindallrA   r   r   r   )rB   rC   webpageurlhneed_confirm_ager   r/   r"   infor   hrefr   handlerr   r)   s   ``           @@rG   r   zCDAIE._web_extract   s   <99955~66h666B B @7JJ%%&VWWW9FPP 	(%%''' ""#P#*,Dd # T T 	$55()9 6 ; ;G#%% ' j$j	 & B B
 ++ST[]emr  , " " **73366w?? +N;;227;;/6Q

 

	 ##GXr#BB	+ 	+ 	+">	N >	N >	N >	N >	N >	N >	N >	N@ 	w	*** "
h! ! 	0 	0D*   190g--x?z???uN N NG   ##$Z*$Z$Z$Z[[[N7J////9d+++rI   N)__name__
__module____qualname__
_VALID_URL_NETRC_MACHINEr   rw   rc   rx   rf   float_TESTSrH   r   r   r   r   r   rI   rG   r   r      s       kJN$I(M3L j M 21EA1#%#
 
 " 218A1"#%#
 
 $ 41]A!1##%
 
	 ( 510A!1##%
 
	 & 0  2 OJFX  5S 5S 5Sn/ / /
 
 
>S, S, S, S, S,rI   r   c                   `    e Zd ZdZdZddddddd	d
ddddddddddddddddgZd ZdS )CDAFolderIE$   zGhttps?://(?:(?:www|m)\.)?cda\.pl/(?P<channel>[\w-]+)/folder/(?P<id>\d+)z,https://www.cda.pl/domino264/folder/3118838531188385zSERIA DRUGA)r   r      )r'   r)   playlist_mincountz3https://www.cda.pl/smiechawaTV/folder/2664592/vfilm2664592z VideoDowcipy - wszystkie odcinkiG   z8https://www.cda.pl/DeliciousBeauty/folder/19129979/vfilm19129979u   TESTY KOSMETYKÓW   zFhttps://www.cda.pl/FILMY-SERIALE-ANIME-KRESKOWKI-BAJKI/folder/18493422Tr8   z1https://m.cda.pl/smiechawaTV/folder/2664592/vfilmc                                           |                              dd          \                       |          } fd}                     t	          | j                                       |                    S )Nr   channelc           	   3      K                        d d d| dz    d| dz    d          }t          j        d|          }|D ]#}                    d	| t          |          V  $d S )
Nzhttps://www.cda.pl/z/folder/z/vfilm/r   zDownloading page i  )expected_statusz <a[^>]+href="/video/([0-9a-z]+)"r   )rA   r   r  
url_resultr   )r   r  r   rC   r  	folder_idrB   s       rG   extract_page_entriesz7CDAFolderIE._real_extract.<locals>.extract_page_entries  s      ,,SgSSySSPQSSU^.D1H.. - E EG JBGLLE! _ _oo&L(&L&LeU]^^^^^^_ _rI   )_match_valid_urlr   rA   playlist_resultr   _MAX_PAGE_SIZEr   )rB   r'   r  r"  r  r!  s   `   @@rG   r   zCDAFolderIE._real_extract  s    !22377==dINN	7((i88	_ 	_ 	_ 	_ 	_ 	_ 	_ ##2D4GHHt,,W557 7 	7rI   N)r  r  r  r%  r  r  r   r   rI   rG   r  r  s  s        N[J="
 
    E7
 
    J(
 
 !  X  C 1F:7 7 7 7 7rI   r  )rk   r   ri   rh   rp   rm   r   r`   r   urllib.parser   commonr   compatr   utilsr   r   r	   r
   r   r   r   r   r   r   r   utils.traversalr   r   r  r   rI   rG   <module>r+     s}             				     ! ! ! ! ! !                                + * * * * *S, S, S, S, S,M S, S, S,l
/7 /7 /7 /7 /7- /7 /7 /7 /7 /7rI   