U
    g                     @   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=ZpQOOwZ 2950821d0d4937a0a76373782093b435Z"01EQRS7EKKYCNLSLLPQZGIKRYY6SOY7KGBz.EUrAmrktb4ZMhUcY9J2PqMEBD_9x_l0DyYWVgAvp-TTOMwmp4Z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=PQUfVbZ c496a01644223273bff12e93e501afd1Z"01QI4AVTZ3ESFZPAD42VCKB5CZKAGLFVYBZ.ETski5eAfNVEoPRZUAyy1wEBpLgVFYWso5bjbZjfBLlPUgZ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   Z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rD| jdd d | 	d|d|}|d }t j|d }t j
|jt j|j dd	t jj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 qt|dthf }r`|	|t|dp0|dddt|d|ddkrVd nd d! ||	|d"px|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 configZVroomItemIdz.transformUrl/z../videomanifestz.ctagZAccessindex)ZcTagactionpartT)doseq)pathqueryZdashformatF)Zmpd_idr   fatal)Zhlsz	hls-vnextr
   )Zm3u8_idr   r   qualityZdownloadUrl	extensionnamer   sourcesizeZisAudionone)r   r   r!   Z	format_idfilesizeZvcodecr   ZdisplayNameZauthorIdZMediaServiceFastMetadataZmediar   c                 S   s   | d S )Ni  )xr(   r(   ?/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/sharepoint.py<lambda>n       z,SharePointIE._real_extract.<locals>.<lambda>ZthumbnailUrl)r   formatsr   r   r   r   r   )urllibparseunquoteZ	_match_idZ_download_webpage_handleurlparser   hostnameZraise_login_requiredZ_search_json
urlunparse_replaceurljoinr   	urlencodeparse_qsr   Z_extract_mpd_formatsextendZ_extract_m3u8_formatsr   r   appendr   getr   jsonloads)selfr   r   ZwebpageZurlhZ
video_dataZvideo_id
parsed_urlZbase_media_urlr-   Zhls_typeZ	video_urlr(   r(   r*   _real_extract@   sz    

         

    zSharePointIE._real_extractN)__name__
__module____qualname__Z_BASE_URL_REZ
_VALID_URLZ_TESTSr?   r(   r(   r(   r*   r	   	   sd   	1r	   )r;   urllib.parser.   commonr   utilsr   r   r   Zutils.traversalr   r	   r(   r(   r(   r*   <module>   s
   