
    VGh                     N    d dl Z ddlmZ ddlmZmZmZmZmZm	Z	  G d de      Z
y)    N   )InfoExtractor   )merge_dictsparse_durationparse_iso8601parse_resolutiontry_geturl_basenamec                   >    e Zd ZdZdZdZddddddgZd Zd	 Zd
 Z	y)MicrosoftStreamIEmicrosoftstreamzMicrosoft Streamzuhttps?://(?:web|www|msit)\.microsoftstream\.com/video/(?P<id>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})zhttps://web.microsoftstream.com/video/6e51d928-4f46-4f1c-b141-369925e37b62?list=user&userId=f5491e02-e8fe-4e34-b67c-ec2e79a6ecc0T)urlonly_matchingzKhttps://msit.microsoftstream.com/video/b60f5987-aabd-4e1c-a42f-c559d138f2cac           	      b   i }i }| j                  | d| d|dd|ddi      j                  d      xs g }|D ]p  }|j                  d	      r|j                  d
      s&|j                  d      r|n|}|j                  |d	   g       j                  d|j                  d
      d       r ||dS )N/videos/z/texttrackszDownloading subtitles JSONFapi-version1.4-private)notefatalheadersqueryvaluelanguager   autoGeneratedvtt)extr   )	subtitlesautomatic_captions)_download_jsonget
setdefaultappend)	selfapi_urlvideo_idr   r   r   text_trackstracksub_dicts	            i/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/microsoftstream.py_get_all_subtitlesz$MicrosoftStreamIE._get_all_subtitles   s    	))ixz5x-UG -0 * 2 36#g,E CE 	 ! 	E99Z(		%0@-2YY-G)YHj 126==yy'? 		 #"4
 	
    c                     | j                  dd      s#| j                  dd      s| j                  d      r | j                  |i |S i S )NwritesubtitlesFwriteautomaticsublistsubtitles)	get_paramr+   )r$   argskwargss      r*   extract_all_subtitlesz'MicrosoftStreamIE.extract_all_subtitles/   sI    NN+U3>>"5u=>>/2*4**D;F;;	r,   c                 d   | j                  |      }| j                  ||      }d|vr| j                  d       | j                  d|d      }| j                  d|d      }dd	| i}| j	                  | d
| ||ddd      }|j                  d      xs |}|j                  d      }g }	dD ]  t        |fdt              }
|
s|
d}t        |
      }t        t        j                  |dt        |       dz  z  z               }|j                  t        |             |	j                  |        g }|d   D ]  }|d   dk(  r+|j                  | j!                  |d   |dddd|             6|d   dk(  r)|j                  | j#                  |d   |d d|!             g|d   d"k(  sp|j                  | j%                  |d   |d#d|$              |D cg c]  }t'        |d|i       }}||d%   |j                  d&      t        |d' t              t        |d( d) ft              |	d*| j)                  |||      t+        |j                  d+            t-        t        |d,             d-| t        |d. t.              t        |d/ t.              t        |d0 t.              |d1S c c}w )2Nz<title>Microsoft Stream</title>cookies)methodz"AccessToken":"(.+?)"zaccess tokenz"ApiGatewayUri":"(.+?)"zapi urlAuthorizationzBearer r   z*creator,tokens,status,liveEvent,extensionsr   )z$expandr   )r   r   idr   )
extraSmallsmallmediumlargec                     | d      d   S )NposterImager    )xthumbnail_ids    r*   <lambda>z1MicrosoftStreamIE._real_extract.<locals>.<lambda>L   s    !M:J<:XY^:_ r,   )r9   r   =   playbackUrlsmimeTypezapplication/vnd.apple.mpegurlplaybackUrlmp4m3u8_nativehlsF)r   entry_protocolm3u8_idr   r   zapplication/dash+xmldash)mpd_idr   r   zapplication/vnd.ms-sstr+xmlmss)ism_idr   r   namedescriptionc                     | d   d   S )NcreatorrR   r@   rA   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>m   s    a	l66J r,   c                     | d   d   S )NrU   mailr@   rV   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>n   s    !I,v:N r,   c                     | d   d   S )NrU   r9   r@   rV   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>o   s    !I,t:L r,   )r9   titlerS   uploaderuploader_id
thumbnailscreatedc                     | d   d   S )Nmediadurationr@   rV   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>s   s    QwZPZE[ r,   z&https://web.microsoftstream.com/video/c                     | d   d   S )Nmetricsviewsr@   rV   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>u       )W8M r,   c                     | d   d   S )Nrc   likesr@   rV   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>v   re   r,   c                     | d   d   S )Nrc   commentsr@   rV   s    r*   rC   z1MicrosoftStreamIE._real_extract.<locals>.<lambda>w   s    1Y<
;S r,   )	timestampra   webpage_url
view_count
like_countcomment_countformats)	_match_id_download_webpageraise_login_required_html_search_regexr    r!   r
   strr   base64	b64decodelenupdater	   r#   extend_extract_m3u8_formats_extract_mpd_formats_extract_ism_formatsr   r4   r   r   int)r$   r   r&   webpageaccess_tokenr%   r   
video_datar   r]   thumbnail_urlthumb
thumb_namero   playlistfrB   s                   @r*   _real_extractzMicrosoftStreamIE._real_extract6   s$   >>#&((h7,G;%%Y%7../GR`a))*DgyY"gl^$<=((ixz*HG,$ ) 
 >>$'38>>*-
F 	%L#J0_adeM "$E &m4JV--j33z?BRUVBV;W.WXYJLL)*56e$	% ">2 	3H
#'FFt99]+XmU  :  2 3 *%)??t88]+Xf  9  2 3 *%)FFt88]+Xe  9  2 3	3 DKKa;q:x"89KK '%>>-8
,JCP":0N0L0NORT$
 (((GD
 'z~~i'@A&wz;['\]CH:N!*.MsS!*.MsS$Z1SUXY
 	
 Ls   J-N)
__name__
__module____qualname__IE_NAMEIE_DESC
_VALID_URL_TESTSr+   r4   r   r@   r,   r*   r   r      sG    G G JJ R ]F
(C
r,   r   )ru   commonr   utilsr   r   r   r	   r
   r   r   r@   r,   r*   <module>r      s#     ! k
 k
r,   