o
    iB                     @   s8   d dl mZ ddlmZmZmZmZ G dd deZdS )   )InfoExtractor   )ExtractorErrorint_or_nonetry_getunified_timestampc                   @   s<   e Zd ZdZdZdZdddddddddgZd	d
 ZdS )CiscoWebexIE
ciscowebexzCisco WebexaU  (?x)
                    (?P<url>https?://(?P<subdomain>[^/#?]*)\.webex\.com/(?:
                        (?P<siteurl_1>[^/#?]*)/(?:ldr|lsr).php\?(?:[^#]*&)*RCID=(?P<rcid>[0-9a-f]{32})|
                        (?:recordingservice|webappng)/sites/(?P<siteurl_2>[^/#?]*)/recording/(?:playback/|play/)?(?P<id>[0-9a-f]{32})
                    ))zYhttps://demosubdomain.webex.com/demositeurl/ldr.php?RCID=e58e803bc0f766bb5f6376d2e86adb5bT)urlonly_matchingzXhttp://demosubdomain.webex.com/demositeurl/lsr.php?RCID=bc04b4a7b5ea2cc3a493d5ae6aaff5d7zvhttps://demosubdomain.webex.com/recordingservice/sites/demositeurl/recording/88e7a42f7b19f5b423c54754aecc2ce9/playbackc                 C   s8  |  |}|d}|r| j|d dd}| j| j|ddd}| j|d ddj}|  |}|d}|d	p:|d
}|d}| d}ddi}	|rO||	d< | jd| d| d||	d|idd\}
}|j	dkr|
d dkrs| 
  |
d dkr|rtdddtdddt| j d|
d  d|
d   dd|j	d!kr| j
| j d"d#d$ |
d%p|}d&|
d' d(d)d*d+g}|
d,d-u rt|
d.d/ }|r|d&|d(d)d*d+ t|
d0d/ }|r|d1|d2d3d2d+ ||
d4 |
d5|
d6|
d7p|
d8t|
d9t|
d:d;d| d<| d=| |d>	S )?NrcidzGetting video ID)notezredirection urlr
   )groupzResolving final URL	subdomain	siteurl_1	siteurl_2idvideopasswordAcceptzapplication/json	accessPwdzhttps://z&.webex.com/webappng/api/v1/recordings/z/streamsiteurl)    )headersqueryexpected_statusr   codei  i  zWrong passwordT)expectedzFThis video is protected by a password, use the --video-password optionz said: z - messager   z: asks you to solve a CAPTCHA. Solve CAPTCHA in browser andcookies)method
recordUUIDvideofallbackPlaySrcmp4zavc1.640028z	mp4a.40.2)	format_idr
   extvcodecacodecpreventDownloadFc                 S      | d d d S )NdownloadRecordingInfodownloadInfomp4URL xr.   r.   O/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/ciscowebex.py<lambda>M       z,CiscoWebexIE._real_extract.<locals>.<lambda>c                 S   r*   )Nr+   r,   audioURLr.   r/   r.   r.   r1   r2   V   r3   audiomp3none
recordNamedescriptionownerDisplayNameownerUserNameownerId
createTimedurationi  z".webex.com/recordingservice/sites/z/recording/playback/)	r   titler9   uploaderuploader_id	timestampr>   webpage_urlformats)_match_valid_urlr   _download_webpage_search_regex
_VALID_URL_request_webpager
   	get_param_download_json_handlestatusraise_login_requiredr   IE_NAMEgetr   appendr   r   )selfr
   mobjr   webpager   r   video_idpasswordr   streamurlhrD   mp4urlaudiourlr.   r.   r1   _real_extract   s   







&

	zCiscoWebexIE._real_extractN)__name__
__module____qualname__rN   IE_DESCrH   _TESTSrZ   r.   r.   r.   r1   r   
   s    r   N)commonr   utilsr   r   r   r   r   r.   r.   r.   r1   <module>   s    