o
    i                     @   sP   d dl Z d dlZddlmZ ddlmZmZmZ ddl	m
Z
 G dd deZdS )	    N   )InfoExtractor   )determine_extint_or_noneurl_or_none)traverse_objc                   @   s   e Zd ZdZe de dg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ddddddddddddgZd d! Zd"S )#SharePointIEz!https?://[\w-]+\.sharepoint\.com/z5:v:/[a-z]/(?:[^/?#]+/)*(?P<id>[^/?#]{46})/?(?:$|[?#])z>(?!:v:)(?:[^/?#]+/)*stream\.aspx\?(?:[^#]+&)?id=(?P<id>[^&#]+)zhttps://lut-my.sharepoint.com/:v:/g/personal/juha_eerola_student_lab_fi/EUrAmrktb4ZMhUcY9J2PqMEBD_9x_l0DyYWVgAvp-TTOMw?e=ZpQOOw 2950821d0d4937a0a76373782093b435"01EQRS7EKKYCNLSLLPQZGIKRYY6SOY7KGBz.EUrAmrktb4ZMhUcY9J2PqMEBD_9x_l0DyYWVgAvp-TTOMwmp4CmvpJSTgjtHK@zre:https://.+/thumbnailz$8dcec565-a956-4b91-95e5-bacfb8bc015f)id
display_idexttitleduration	thumbnailuploader_id)urlmd5	info_dictzrhttps://greaternyace.sharepoint.com/:v:/s/acementornydrive/ETski5eAfNVEoPRZUAyy1wEBpLgVFYWso5bjbZjfBLlPUg?e=PQUfVb c496a01644223273bff12e93e501afd1"01QI4AVTZ3ESFZPAD42VCKB5CZKAGLFVYB.ETski5eAfNVEoPRZUAyy1wEBpLgVFYWso5bjbZjfBLlPUg930103681233985536gx馪@)r   r   r   r   r   r   zhttps://lut-my.sharepoint.com/personal/juha_eerola_student_lab_fi/_layouts/15/stream.aspx?id=%2Fpersonal%2Fjuha_eerola_student_lab_fi%2FDocuments%2FM-DL%2FCmvpJST.mp4&ga=1&referrer=StreamWebApp.Web&referrerScenario=AddressBarCopied.viewz?/personal/juha_eerola_student_lab_fi/Documents/M-DL/CmvpJST.mp4zSession cookies needed)r   r   skipz[https://izoobasisschool.sharepoint.com/:v:/g/Eaqleq8COVBIvIPvod0U27oBypC6aWOkk8ptuDpmJ6arHwT)r   only_matchingzhttps://uskudaredutr-my.sharepoint.com/:v:/g/personal/songul_turkaydin_uskudar_edu_tr/EbTf-VRUIbtGuIN73tx1MuwBCHBOmNcWNqSLw61Fd2_o0g?e=n5Vkofzphttps://epam-my.sharepoint.com/:v:/p/dzmitry_tamashevich/Ec4ZOs-rATZHjFYZWVxjczEB649FCoYFKDV_x3RxZiWAGA?e=4hswgAzhttps://microsoft.sharepoint.com/:v:/t/MicrosoftSPARKRecordings-MSFTInternal/EWCyeqByVWBAt8wDvNZdV-UB0BvU5YVbKm0UHgdrUlI6dg?e=QbPck6c                 C   s  t j| |}| ||\}}t j|jjdkr"| jdd d | 	d|d|}|d }t j|d }t j
|jt j|j dd	t jji t j|j|d
 dddddd}| j||dddidd}	dD ]}
|	| j||d|
d|
iddd qmt|dthf }r|	|t|dp|dddt|d|ddu rd nd d! ||	|d"p|d#||d$t|d%tjhd&d'd(d) hft|d*d+S ),Nzlogin.microsoftonline.comzSession cookies are required for this URL and can be passed with the --cookies option. The --cookies-from-browser option will not work)methodzg_fileInfo\s*=zplayer configVroomItemIdz.transformUrl/z../videomanifestz.ctagAccessindex)cTagactionpartT)doseq)pathquerydashformatF)mpd_idr(   fatal)hlsz	hls-vnextr   )m3u8_idr(   r,   qualitydownloadUrl	extensionnamer   sourcesizeisAudionone)r   r   r0   	format_idfilesizevcodecr   displayNameauthorIdMediaServiceFastMetadatamediar   c                 S   s   | d S )Ni  )xr?   r?   O/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/sharepoint.py<lambda>n   s    z,SharePointIE._real_extract.<locals>.<lambda>thumbnailUrl)r   formatsr   r   r   r   r   )urllibparseunquote	_match_id_download_webpage_handleurlparser   hostnameraise_login_required_search_json
urlunparse_replaceurljoinr'   	urlencodeparse_qsr(   _extract_mpd_formatsextend_extract_m3u8_formatsr   r   appendr   getr   jsonloads)selfr   r   webpageurlh
video_datavideo_id
parsed_urlbase_media_urlrD   hls_type	video_urlr?   r?   rA   _real_extract@   sb   




zSharePointIE._real_extractN)__name__
__module____qualname___BASE_URL_RE
_VALID_URL_TESTSrc   r?   r?   r?   rA   r	   	   sf    	1r	   )rX   urllib.parserE   commonr   utilsr   r   r   utils.traversalr   r	   r?   r?   r?   rA   <module>   s    