
    i                     f    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JrJr  SSKJr   " S S\5      rg)   )InfoExtractor   )ExtractorErrorint_or_none
js_to_jsonparse_filesizeparse_qsparse_resolutionstr_or_noneupdate_url_queryurl_basenameurlencode_postdataurljoin)traverse_objc                       \ rS rSrSrSrSSSSSS	.S
S.SSSSSS	.S.SSSSSS	.SS.SSSSSSSS.S./rS rS rS r	S r
g!)"ZoomIE   zoomz_(?P<base_url>https?://(?:[^.]+\.)?zoom\.us/)rec(?:ording)?/(?P<type>play|share)/(?P<id>[\w.-]+)zhttps://economist.zoom.us/rec/play/dUk_CNBETmZ5VA2BwEl-jjakPpJ3M1pcfVYAPRsoIbEByGsLjUZtaa4yCATQuOL3der8BlTwxQePl_j0.EImBkXzTIaPvdZO5 ab445e8c911fddc4f9adc842c2c5d434zadUk_CNBETmZ5VA2BwEl-jjakPpJ3M1pcfVYAPRsoIbEByGsLjUZtaa4yCATQuOL3der8BlTwxQePl_j0.EImBkXzTIaPvdZO5mp4z1China's "two sessions" and the new five-year plan)idexttitlez1Recording requires email authentication to access)urlmd5	info_dictskipzhttps://ffgolf.zoom.us/rec/play/qhEhXbrxq1Zoucx8CMtHzq1Z_2YZRPVCqWK_K-2FkEGRsSLDeOX8Tu4P6jtjZcRry8QhIbvKZdtr4UNo.QcPn2debFskI9whJ 2c4b1c4e5213ebf9db293e88d9385beezaqhEhXbrxq1Zoucx8CMtHzq1Z_2YZRPVCqWK_K-2FkEGRsSLDeOX8Tu4P6jtjZcRry8QhIbvKZdtr4UNo.QcPn2debFskI9whJu1   Prépa AF2023 - Séance 5 du 11 avril - R20/VM/GO)r   r   r   zshttps://us02web.zoom.us/rec/share/hkUk5Zxcga0nkyNGhVCRfzkA2gX_mzgS3LpTxEEWJz9Y_QpIQ4mZFOUx7KZRZDQA.9LGQBdqmDAYgiZ_8 90fdc7cfcaee5d52d1c817fc03c43c9bzQhkUk5Zxcga0nkyNGhVCRfzkA2gX_mzgS3LpTxEEWJz9Y_QpIQ4mZFOUx7KZRZDQA.9LGQBdqmDAYgiZ_8z*Timea Andrea Lelik's Personal Meeting RoomzThis recording has expiredzyhttps://cityofdetroit.zoom.us/rec/share/VjE-5kW3xmgbEYqR5KzRgZ1OFZvtMtiXk5HyRJo5kK4m5PYE6RF4rF_oiiO_9qaM.UTAg1MI7JSnF3ZjX bdc7867a5934c151957fb81321b3c024zQVjE-5kW3xmgbEYqR5KzRgZ1OFZvtMtiXk5HyRJo5kK4m5PYE6RF4rF_oiiO_9qaM.UTAg1MI7JSnF3ZjXz3February 2022 Detroit Revenue Estimating Conferencei  z
mincount:3)r   r   r   durationformatsc                 0    U R                  SUSU[        S9$ )Nzwindow\.__data__\s*=data)transform_source)_search_jsonr   )selfwebpagevideo_ids      B/app/mltbenv/lib/python3.13/site-packages/yt_dlp/extractor/zoom.py_get_page_dataZoomIE._get_page_data>   s(      #WfhQ[ ! ] 	]    c                    U R                  XSU S3S9n U R                  SU5      nU R                  S5      nU(       d
  [        SSS9eUR	                  S	5      S
:H  nU R                  USU(       a  SOS-  -   USS[        Xh(       a  SOSS-      UUR	                  S5      S.5      S9n	U	R	                  S5      (       d  [        U	S   SS9eU R                  XSU S3S9$ ! [         a    Us $ f = f)NzDownloading z webpagenotepassword_formvideopasswordzFThis video is protected by a passcode, use the --video-password optionT)expecteduseWhichPasswdmeetingzrec/validate%s_passwd_meet zValidating passcodezWrong passcodemeetfileIdaction)r   passwdr;   )r$   statuserrorMessagezRe-downloading )_download_webpage_form_hidden_inputsr   	get_paramget_download_jsonr   )
r'   r   base_urlr)   url_typer(   formpassword
is_meeting
validations
             r*   _get_real_webpageZoomIE._get_real_webpageB   s,   ((|H:U]=^(_	++OWED >>/2 Xcgi iXX./9<
((.Z'RPP+-=DVjFfDE"((8,X E ) 
 ~~h'' N!;dKK%%cOH:U]:^%__#  	N	s   C! !C0/C0c                 6   U R                  U5      R                  SSS5      u  p#n0 n[        US[        1SS405      nUS:X  a]  U R	                  XUS5      nU R                  Xt5      S   nU R                  U SU 3US	S
9S   S   n	[        [        X)5      U5      nSUS'   U R	                  XUS5      nU R                  Xt5      S   n
U
(       d  [        S5      eUR                  U5        U R                  U SU
 3XESS9S   n0 nS H5  nUR                  U S35      (       d  M  [        X+U S3   5      SS./X'   M7     / nUR                  S5      (       a_  UR                  SUS   [        [        US5      5      [        [        US5      5      SS[        [        [        US5      5      5      S S!.5        UR                  S"5      (       aB  UR                  S#US"   [        [        US$5      5      [        [        US%5      5      SSSS&.5        UR                  S'5      nU(       a=  UR                  0 [!        U R#                  S([%        U5      S)S S*95      ES+US,SS-S..E5        U[        [        US/5      5      [        UR                  S05      5      UUS1U0S2.$ )3NrD   typer   	startTimeshare	meetingIdz"nws/recording/1.0/play/share-info/zDownloading share info JSONr/   resultredirectUrltruecontinueModeplayfileIdzUnable to extract file IDznws/recording/1.0/play/info/zDownloading play info JSON)queryr0   )
transcriptccchapterUrlvtt)r   r   
viewMp4UrlzCamera stream)viewResolvtions    )r_   r   viewr   )	recordingfileSizeInMBr`   )format_noter   widthheight	format_idr   filesize_approx
preferenceshareMp4UrlzScreen share stream)shareResolvtionsr`   )rk   r   )rd   r   re   rf   rg   r   ri   viewMp4WithshareUrlz_(\d+x\d+)\.mp4
resolution)defaultzScreen share with cameraview_with_sharer   )rd   r   rg   r   ri   )r8   topicr!   Referer)r   r   r!   	subtitlesr"   http_headers)_match_valid_urlgroupr   r	   rJ   r+   rC   r   r   r   updaterB   appendr   r   r   r
   _search_regexr   )r'   r   rD   rE   r)   rX   start_paramsr(   
meeting_idredirect_pathfile_idr$   rr   _typer"   view_with_share_urls                   r*   _real_extractZoomIE._real_extractY   s   '+'<'<S'A'G'G
TZ\`'a$H#C+
KQS7T)UVw,,SHgNG,,W?LJ //*>zlK< 0 >>FHHUWM #78#C\RC$*E.!((&I%%g8B !<==\"""j4WI>- # //79 	4Exx5'&&"8UG3--@A % $	  5 88L!!NN.L)$\$8N%OP%l49O&PQ##1+l4Qn>o2p#q	 	 88M""NN4M*$\$8O%PQ%l49P&QR$   #hh'<=NN "4#5#5&5H(I<ae $6 $g h  :*.   d4E!FG#DHHZ$89"8	
 		
r-    N)__name__
__module____qualname____firstlineno__IE_NAME
_VALID_URL_TESTSr+   rJ   r   __static_attributes__r   r-   r*   r   r      s    GsJ V1uI

 D	 S1uH
		 E1eB

 -
 K1eJ#
	9'FR]`.O
r-   r   N)commonr   utilsr   r   r   r   r	   r
   r   r   r   r   r   utils.traversalr   r   r   r-   r*   <module>r      s/    !    +V
] V
r-   