
    V|h                     N    S SK r SSKJr  SSKJrJrJrJrJrJ	r	   " S S\5      r
g)    N   )InfoExtractor   )merge_dictsparse_durationparse_iso8601parse_resolutiontry_geturl_basenamec                   F    \ rS rSrSrSrSrSSS.SSS./rS	 rS
 r	S r
Srg)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           	         0 n0 nU R                  U SU S3USSUSS0S9R                  S5      =(       d    / nU H  nUR                  S	5      (       a  UR                  S
5      (       d  M1  UR                  S5      (       a  UOUnUR                  US	   / 5      R                  SUR                  S
5      S.5        M     UU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	            Z/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/microsoftstream.py_get_all_subtitles$MicrosoftStreamIE._get_all_subtitles   s    	))ixz5x-UG -0 * 2 36#g,E CE 	 !E99Z((		%0@0@-2YY-G-G)YHj 126==yy'? 	 ! #"4
 	
    c                     U R                  SS5      (       d-  U R                  SS5      (       d  U R                  S5      (       a  U R                  " U0 UD6$ 0 $ )NwritesubtitlesFwriteautomaticsublistsubtitles)	get_paramr,   )r%   argskwargss      r+   extract_all_subtitles'MicrosoftStreamIE.extract_all_subtitles/   sP    NN+U33>>"5u==>>/22**D;F;;	r.   c                 z  ^ U R                  U5      nU R                  X5      nSU;  a  U R                  SS9  U R                  SUS5      nU R                  SUS5      nSS	U 30nU R	                  U S
U 3UUSSS.S9nUR                  S5      =(       d    UnUR                  S5      n/ n	S H  m[        UU4S j[        5      n
U
(       d  M!  TU
S.n[        U
5      n[        [        R                  " US[        U5      * S-  -  -   5      5      nUR                  [        U5      5        U	R                  U5        M     / nUS    H  nUS   S:X  a)  UR                  U R!                  US   USSSSUS95        M5  US   S:X  a'  UR                  U R#                  US   US SUS!95        Me  US   S":X  d  Mp  UR                  U R%                  US   US#SUS$95        M     U Vs/ s H  n['        USU05      PM     nnUUS%   UR                  S&5      [        US' [        5      [        US( S) 4[        5      U	S*.U R)                  XRU5      E[+        UR                  S+5      5      [-        [        US, 5      5      S-U 3[        US. [.        5      [        US/ [.        5      [        US0 [.        5      US1.E$ s  snf )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                    > U S   T   S   $ )NposterImager    )xthumbnail_ids    r+   <lambda>1MicrosoftStreamIE._real_extract.<locals>.<lambda>L   s    !M:J<:XY^:_r.   )r<   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                     U S   S   $ )NcreatorrV   rC   rD   s    r+   rF   rG   m   s    a	l66Jr.   c                     U S   S   $ )NrY   mailrC   rZ   s    r+   rF   rG   n   s    !I,v:Nr.   c                     U S   S   $ )NrY   r<   rC   rZ   s    r+   rF   rG   o   s    !I,t:Lr.   )r<   titlerW   uploaderuploader_id
thumbnailscreatedc                     U S   S   $ )NmediadurationrC   rZ   s    r+   rF   rG   s   s    QwZPZE[r.   z&https://web.microsoftstream.com/video/c                     U S   S   $ )NmetricsviewsrC   rZ   s    r+   rF   rG   u       )W8Mr.   c                     U S   S   $ )Nrg   likesrC   rZ   s    r+   rF   rG   v   ri   r.   c                     U S   S   $ )Nrg   commentsrC   rZ   s    r+   rF   rG   w   s    1Y<
;Sr.   )	timestampre   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   r6   r   r   int)r%   r   r'   webpageaccess_tokenr&   r   
video_datar   ra   thumbnail_urlthumb
thumb_namers   playlistfrE   s                   @r+   _real_extractMicrosoftStreamIE._real_extract6   s   >>#&((7,G;%%Y%7../GR`a))*DgyY"gl^$<=((ixz*HG,$ ) 
 >>$'38>>*-
FL#J0_adeM "$E &m4JV--j33z?BRUVBV;W.WXYJLL)*56e$ G ">2H
#'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K7a;q:x"897K '%>>-8
,JCP":0N0L0NORT$
 ((GD
 'z~~i'@A&wz;['\]CH:N!*.MsS!*.MsS$Z1SUXY
 	
 Ls   %J8rC   N)__name__
__module____qualname____firstlineno__IE_NAMEIE_DESC
_VALID_URL_TESTSr,   r6   r   __static_attributes__rC   r.   r+   r   r      sG    G G JJ R ]F
(C
r.   r   )ry   commonr   utilsr   r   r   r	   r
   r   r   rC   r.   r+   <module>r      s#     ! k
 k
r.   