Ë
    š„jÉ"  ã                   ó|   — 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y	)
é   )Ú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                   ó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.-]+)z„https://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Úskipz�https://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      úL/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/zoom.pyÚ_get_page_datazZoomIE._get_page_data>   s(   € Ø× Ñ Ø# W¨f°hÔQ[ð !ó ]ð 	]ó    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   Ú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_webpagezZoomIE._get_real_webpageB   s-  € Ø×(Ñ(¨¨h¸|ÈHÈ:ÐU]Ð=^Ð(Ó_ˆð	Ø×+Ñ+¨O¸WÓEˆDð —>‘> /Ó2ˆÙÜ ØXÐcgôið ià—X‘XÐ.Ó/°9Ñ<ˆ
Ø×(Ñ(ØÐ.¹Z±'ÈRÑPÑPØÐ+Ð-=ÔDVØ¡j™F°fÀÑDÑEØ"ØŸ(™( 8Ó,ñXó Eð )ó ˆ
ð �~‰~˜hÔ'Ü  ¨NÑ!;ÀdÔKÐKØ×%Ñ% c¨8¸OÈHÈ:ÐU]Ð:^Ð%Ó_Ð_øô# ò 	ØŠNð	ús   šC ÃC-Ã,C-c                 ó   — | j                  |«      j                  ddd«      \  }}}i }t        |dt        hddfi«      }|dk(  rc| j	                  |||d«      }| j                  ||«      d   }| j                  |› d|› �|d	¬
«      d   d   }	t        t        ||	«      |«      }d|d<   | j	                  |||d«      }| j                  ||«      d   }
|
st        d«      ‚|j                  |«       | 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                  d0«      «      ||d1|id2œS )3NrC   Útyper   Ú	startTimeéÿÿÿÿÚshareÚ	meetingIdz"nws/recording/1.0/play/share-info/ú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é    )r^   r   Úviewr   )Ú	recordingÚfileSizeInMBr_   )Úformat_noter   ÚwidthÚheightÚ	format_idr   Úfilesize_approxÚ
preferenceÚshareMp4UrlzScreen share stream)ÚshareResolvtionsr_   )rj   r   )rc   r   rd   re   rf   r   rh   ÚviewMp4WithshareUrlz_(\d+x\d+)\.mp4Ú
resolution)ÚdefaultzScreen share with cameraÚview_with_sharer   )rc   r   rf   r   rh   )r7   Útopicr!   ÚReferer)r   r   r!   Ú	subtitlesr"   Úhttp_headers)Ú_match_valid_urlÚgroupr   r	   rI   r+   rB   r   r   r   ÚupdaterA   Úappendr   r   r   r
   Ú_search_regexr   )r'   r   rC   rD   r)   rW   Ústart_paramsr(   Ú
meeting_idÚredirect_pathÚfile_idr$   rq   Ú_typer"   Úview_with_share_urls                   r*   Ú_real_extractzZoomIE._real_extractY   s  € Ø'+×'<Ñ'<¸SÓ'A×'GÑ'GÈ
ÐTZÐ\`Ó'aÑ$ˆ�(˜HØˆÜ# C¨+¼¸
ÀKÐQSÐ7TÐ)UÓVˆà�wÒØ×,Ñ,¨S°(¸HÀgÓNˆGØ×,Ñ,¨W°hÓ?ÀÑLˆJØ ×/Ñ/Ø�*Ð>¸z¸lÐKØÐ<ð 0ó >à>FñHàHUñWˆMô #¤7¨8°]Ó#CÀ\ÓRˆCØ$*ˆE�.Ñ!à×(Ñ(¨¨h¸À&ÓIˆØ×%Ñ% g¨xÓ8¸ÑBˆÙä Ð!<Ó=Ð=à�‰�\Ô"Ø×"Ñ"ØˆjÐ4°W°IÐ>ÀÐPUØ-ð #ó /à/7ñ9ˆð ˆ	Ø4ò 	ˆEØ�x‰x˜5˜' ˜Õ&ä" 8¨T°U°G¸3°-Ñ-@ÓAØ ñ%ð $�	˜%Ò ð	ð ˆà�8‰8�LÔ!Ø�N‰NØ.Ø˜LÑ)Ü$¤\°$Ð8NÓ%OÓPÜ%¤l°4Ð9OÓ&PÓQØ#ØÜ#1´+¼lÈ4ÐQnÓ>oÓ2pÓ#qØñ	ô 	ð �8‰8�MÔ"Ø�N‰NØ4Ø˜MÑ*Ü$¤\°$Ð8OÓ%PÓQÜ%¤l°4Ð9PÓ&QÓRØ$ØØ ñô ð #Ÿh™hÐ'<Ó=ÐÙØ�N‰Nð Ü" 4×#5Ñ#5Ø&¬Ð5HÓ(IÈ<Ðaeð $6ó $gó hðð  :Ø*Ø.ØØòô ð Ü ¤¨dÐ4EÓ!FÓGÜ# D§H¡H¨ZÓ$8Ó9Ø"Øà˜8ðñ	
ð 		
r,   N)	Ú__name__Ú
__module__Ú__qualname__ÚIE_NAMEÚ
_VALID_URLÚ_TESTSr+   rI   r~   © r,   r*   r   r      s§   „ Ø€GØs€Jð VØ1àuØØIñ
ð
 Dñ	ð SØ1àuØØHñ
ñ		ð EØ1àeØØBñ
ð
 -ñ
ð KØ1àeØØJØØ#ñ
ñ	ð9'€FòR]ò`ó.O
r,   r   c                   ó:   — e Zd ZdZdZddddddd	d
dedœdœgZd„ Zy)ÚZoomClipsIEz
zoom:clipsz9https?://(?:[^.]+\.)?zoom\.us/clips/share/(?P<id>[\w.-]+)z2https://zoom.us/clips/share/6YEG4i_qS0eiT7UH9zPeYwÚ 1431f67d2e74a3ff3fec4feadb984777Ú6YEG4i_qS0eiT7UH9zPeYwr   z	Test Clipu   Hans MÃ¼llerr   i� 5jÚ20260619)r   r   r   Úuploaderr!   Úrelease_timestampÚrelease_dateÚ
view_countr   c           
      ó  — | j                  |«      }| j                  d|› �|d¬«      d   }|d   }d|it        |dt        hfdt        hfd	t	        d
¬«      hfdt        hfdœ«      ¥t        |ddt        hf«      |d   dddœgdœ¥S )Nz5https://zoomclips.zoom.us/nws/marvel/2.0/clips/share/rP   r.   rQ   Ú	mediaInfor   Ú
mediaTopicÚ	ownerNameÚcreatedTimeiè  )ÚscaleÚmediaDuration)r   r‹   rŒ   r!   ÚstatisticsInfoÚcountÚplayUrlÚm3u8_nativer   )r   Úprotocolr   )rŽ   r"   )Ú	_match_idrB   r   Ústrr   )r'   r   Úclip_idrQ   Ú
media_infos        r*   r~   zZoomClipsIE._real_extract½   sÐ   € Ø—.‘. Ó%ˆà×$Ñ$ØCÀGÀ9ÐMØÐ7ð %ó 9à9AñCˆð ˜KÑ(ˆ
ð �'ð
ä˜:Ø&¬¨Ð.Ø(¬3¨%Ð0Ø&3´kÈÔ6MÐ5NÐ%OØ,¬{¨mÐ<ñ	(ó ð
ô ' vÐ0@À'ÌKÈ=Ð/YÓZà! )Ñ,Ø)Øñð ò
ð 	
r,   N)r   r€   r�   r‚   rƒ   Úintr„   r~   r…   r,   r*   r‡   r‡   «   s@   „ Ø€GØM€JàCØ1à*ØØ Ø&ØØ!+Ø&Øñ	
ñð €Fó
r,   r‡   N)Úcommonr   Úutilsr   r   r   r   r	   r
   r   r   r   r   r   Úutils.traversalr   r   r‡   r…   r,   r*   ú<module>r£      s<   ðÝ !÷÷ ÷ ñ õ +ôV
ˆ]ô V
ôr(
�-õ (
r,   