
    V|h	                     >    S SK rSSKJr  SSKJrJr   " S S\5      rg)    N   )InfoExtractor   )traverse_objupdate_url_queryc                   d    \ rS rSrSS/rSSSSSS	\S
.SS0S.SSSSSSS.SS0S.SSS./rS rSrg)ScreencastifyIE   z4https?://watch\.screencastify\.com/v/(?P<id>[^/?#]+)z<https?://app\.screencastify\.com/v[23]/watch/(?P<id>[^/?#]+)z6https://watch.screencastify.com/v/sYVkZip3quLKhHw4Ybk8sYVkZip3quLKhHw4Ybk8mp4z.Inserting and Aligning the Case Top and Bottom z	Paul Gunn)idexttitledescriptionuploaderextra_param_to_segment_urlskip_downloadm3u8)url	info_dictparamsz;https://app.screencastify.com/v3/watch/J5N7H11wofDN1jZUCr3tJ5N7H11wofDN1jZUCr3tzScott PiesenzLesson Recording 1-17 Burrr...)r   r   r   r   r   z;https://app.screencastify.com/v2/watch/BQ26VbUdfbQLhKzkktOkT)r   only_matchingc                    U R                  U5      nU R                  SU 3U5      n[        US5      n[        R                  R                  U5      n/ n[        US5      nU(       a!  UR                  U R                  XrSUSS95        [        US5      nU(       a"  UR                  U R                  XSS	USS
95        U H  n	[        U	S   U5      U	S'   M     UUR                  S5      UR                  S5      UR                  S5      UUS.$ )NzAhttps://umbrella.svc.screencastify.com/api/umbrellaService/watch/)manifestauthquery)r   r   dashF)mpd_idr   fatal)r   hlsUrlr   hls)r   m3u8_idr   r!   r   r   r   userName)r   r   r   r   formatsr   )	_match_id_download_jsonr   urllibparseparse_qsextend_extract_mpd_formats_extract_m3u8_formatsr   get)
selfr   video_idinfoquery_stringr   r&   dash_manifest_urlhls_manifest_urlfs
             X/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/screencastify.py_real_extractScreencastifyIE._real_extract*   s-   >>#&""OPXzZ\df $D*GH%%l3(/BCNN))%eSX * Z[ (.DENN**$E5PU]b + de A'%%8AeH  XXg&88M2,*6
 	
     N)	__name__
__module____qualname____firstlineno__
_VALID_URLstr_TESTSr8   __static_attributes__r;   r:   r7   r	   r	      s    ?GJ
 H(E#*-
 V
 M(&5
 V
 M3F<
r:   r	   )urllib.parser)   commonr   utilsr   r   r	   r;   r:   r7   <module>rG      s     ! 2?
m ?
r:   