
    VGh                     V    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  G d de      Zy)   )InfoExtractor   )
ExtractorErrorint_or_none
js_to_jsonparse_filesizeparse_resolutionstr_or_nonetraverse_objurl_basenameurlencode_postdataurljoinc                   z    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ddddddddgZd Zd Zd Zy) 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                 6    | j                  d|d|t              S )Nzwindow\.__data__\s*=data)transform_source)_search_jsonr   )selfwebpagevideo_ids      ^/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/zoom.py_get_page_datazZoomIE._get_page_data<   s(      #WfhQ[ ! ] 	]    c                    | j                  ||d| d      }	 | j                  d|      }| j                  d      }|st        dd      |j	                  d	      d
k(  }| j                  |d|rdndz  z   |ddt        ||rdnddz      ||j	                  d      d            }	|	j	                  d      st        |	d   d      | j                  ||d| d      S # t        $ r |cY S w xY w)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   passwdr7   )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_webpagezZoomIE._get_real_webpage@   s-   ((h|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%%c8OH:U]:^%__#  	N	s   C C-,C-c                    | j                  |      j                  ddd      \  }}}i }|dk(  rY| j                  |||d      }| j                  ||      d   }| j	                  | d| |d      d	   d
   }t        ||      }d|d<   | j                  |||d      }| j                  ||      d   }	|	st        d      | j	                  | d|	 ||d      d	   }
i }dD ]0  }|
j                  | d      st        ||
| d         ddg||<   2 g }|
j                  d      r_|j                  d|
d   t        t        |
d            t        t        |
d            ddt        t        t        |
d                  dd       |
j                  d       rB|j                  d!|
d    t        t        |
d"            t        t        |
d#            ddd$d%       |
j                  d&      }|r@|j                  i t        | j                  d't        |      d(d )            d*|d+dd,d-       |t        t        |
d.            t        |
j                  d/            ||d0|id1S )2Nr@   typer   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)queryr,   )
transcriptccchapterUrlvtt)r   r   
viewMp4UrlzCamera stream)viewResolvtions    )rX   r   viewr   )	recordingfileSizeInMBrY   )format_noter   widthheight	format_idr   filesize_approx
preferenceshareMp4UrlzScreen share stream)shareResolvtionsrY   )rd   r   )r]   r   r^   r_   r`   r   rb   viewMp4WithshareUrlz_(\d+x\d+)\.mp4
resolution)defaultzScreen share with cameraview_with_sharer   )r]   r   r`   r   rb   )r4   topicr   Referer)r   r   r   	subtitlesr   http_headers)_match_valid_urlgrouprF   r(   r?   r   r   r>   appendr   r   r   r
   r	   _search_regexr   )r$   r   r@   rA   r&   rQ   r%   
meeting_idredirect_pathfile_idr!   rl   _typer   view_with_share_urls                  r'   _real_extractzZoomIE._real_extractW   s   '+'<'<S'A'G'G
TZ\`'a$(Hw,,S(HgNG,,Wh?LJ //*>zlK< 0 >>FHHUWM (M2C$*E.!((h&I%%gx8B !<==""j4WI>PU- # //79 	4 	Exx5'&"8TUG3--@A % $	% 	 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__IE_NAME
_VALID_URL_TESTSr(   rF   rw    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]`.M
r)   r   N)commonr   utilsr   r   r   r   r	   r
   r   r   r   r   r   r~   r)   r'   <module>r      s%    !  T
] T
r)   