
    V|h!                     t    S SK Jr  SSKJrJrJrJrJrJrJ	r	J
r
Jr  SSKJr   " S S\5      r " S S\5      rg	)
   )InfoExtractor   )	UnsupportedErrorfloat_or_noneint_or_nonejoin_nonemptyjwt_decode_hs256mimetype2extparse_iso8601parse_qsurl_or_none)traverse_objc                       \ rS rSrSrSSSSSSS	S
SS0S.S.SSSSSSSSS.S.SSSSSSSSSS0S.S.SSS S!SS"S#S$SSS%.S.S.S&S'S(.S)S'S(.S*S'S(.S+S'S(./rS0S- jrS. rS/rg,)1BlackboardCollaborateIE   a,  (?x)
                        https?://
                        (?P<region>[a-z]+)(?:-lti)?\.bbcollab\.com/
                        (?:
                            collab/ui/session/playback/load|
                            recording
                        )/
                        (?P<id>[^/?#]+)z\https://us-lti.bbcollab.com/collab/ui/session/playback/load/0a633b6a88824deb8c918f470b22b256 bb7a055682ee4f25fdb5838cdf014541 0a633b6a88824deb8c918f470b22b256zAHESI A2 Information Session - Thursday, May 6, 2021 - recording_1mp4ih  iR`20210506	live_chatz
mincount:1)idtitleextduration	timestampupload_date	subtitles)urlmd5	info_dictzXhttps://eu.bbcollab.com/collab/ui/session/playback/load/4bde2dee104f40289a10f8e554270600 108db6a8f83dcb0c2a07793649581865 4bde2dee104f40289a10f8e554270600z$Meeting - Azerbaycanca erize formasiip  i"c20221216)r   r   r   r   r   r   zBhttps://eu.bbcollab.com/recording/f83be390ecff46c0bf7dccb9dddcf5f6 e3b0b88ddf7847eae4b4c0e2d40b83a5 f83be390ecff46c0bf7dccb9dddcf5f6z/Keynote lecture by Laura Carvalho - recording_1i  ic20220909zBhttps://eu.bbcollab.com/recording/c3e1e7c9e83d4cd9981c93c74888d496 fdb2d8c43d66fbc0b0b74ef5e604eb1f c3e1e7c9e83d4cd9981c93c74888d496z,International Ally User Group - recording_18i  ihf20240725)enr   zXhttps://us.bbcollab.com/collab/ui/session/playback/load/76761522adfe4345a0dee6794bbcabdaTr   only_matchingzXhttps://ca.bbcollab.com/collab/ui/session/playback/load/b6399dcb44df4f21b29ebe581e22479dzBhttps://eu.bbcollab.com/recording/51ed7b50810c4444a106e48cefb3e6b5zXhttps://au.bbcollab.com/collab/ui/session/playback/load/2bccf7165d7c419ab87afc1ec3f3bb15Nc           	      r    U R                  [        SU S3X#SS9X%=(       d    SUU(       a	  SSU 30S9$ S S9$ )	Nzhttps://z'.bbcollab.com/collab/api/csa/recordings/)delimzDownloading JSON metadataAuthorizationzBearer )fatalheaders)_download_jsonr   )selfregionvideo_idpathtokennoter1   s          `/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/blackboardcollaborate.py	_call_api!BlackboardCollaborateIE._call_apif   sh    ""HVH,STV^lop99<A_w&78 # M 	M HL # M 	M    c                 d   U R                  U5      nUR                  S5      nUR                  S5      n[        U5      R                  SS /5      S   nU R	                  X4SUSS9nU(       a  U R	                  X4USS	9nOU R	                  X4S
SSS9n0 n[        USS SS[        14S[        14S.45      n[        US[        145      =n	(       a  U H  n
XS'   M	     0 n[        USS 45       HS  nUR                  UR                  S5      =(       d    S/ 5      R                  [        US[        145      US   S.5        MU     [        USSS[        145       H&  nUR                  S/ 5      R                  SU05        M(     0 [        US [        14S![        14S"[        S#S$914S%.5      EUUUS&.E$ )'Nr5   r   	authTokenzdata/securezTrying auth token)r7   r8   r9   zRetrieving extra attributes)r8   r9   datazTrying fallbackT)r7   r9   r1   
extStreamsc                     [        US   5      $ )N	streamUrlr   _vs     r:   <lambda>7BlackboardCollaborateIE._real_extract.<locals>.<lambda>z   s    {STU`SaGbr=   rD   contentTypeaspectRatio)r   r   aspect_ratiostorageSizefilesizer   c                     [        US   5      $ )Nr   rE   rF   s     r:   rI   rJ      s    TUV[T\H]r=   langundlabelr   )namer   chats.r   rT   createdr   i  )scale)r   r   r   )formatsr   r   )_match_valid_urlgroupr   getr;   r   r
   r   r   
setdefaultappendstrr   r   )r4   r   mobjr5   r6   r8   
video_infovideo_extrarX   rO   fmtr   subslive_chat_urls                 r:   _real_extract%BlackboardCollaborateIE._real_extractm   s   $$S)H%::d#!!+v6r:^^F=PU\o^p
..Mj.kKvL]eijJKzL:b!L>2*]O<e
 ,  $K-+1OPP8P"*J  	 k;]-^_D  &!1!:UB?FF$TGcU+;<E{H  ` **wU[M6Z[M  b188%9OP \	
: 3%'-9'+D*A)BC( 	
 "	
 		
r=    )NNNF)	__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSr;   re   __static_attributes__rg   r=   r:   r   r      s	   +J r58\ ')
	
  n58?')	
 X58J ')
	
  X58G ')&!-	
" n!	

 n!	

 X!	

 n!	
OKFZM*
r=   r   c                   :    \ rS rSrSrSSS.SSS.SSS./rS rS	rg
)BlackboardCollaborateLaunchIE   z5https?://[a-z]+\.bbcollab\.com/launch/(?P<id>[^/?#]+)ah  https://au.bbcollab.com/launch/eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJiYkNvbGxhYkFwaSIsInN1YiI6ImJiQ29sbGFiQXBpIiwiZXhwIjoxNzQwNDE2NDgzLCJpYXQiOjE3NDA0MTYxODMsInJlc291cmNlQWNjZXNzVGlja2V0Ijp7InJlc291cmNlSWQiOiI3MzI4YzRjZTNmM2U0ZTcwYmY3MTY3N2RkZTgzMzk2NSIsImNvbnN1bWVySWQiOiJhM2Q3NGM0Y2QyZGU0MGJmODFkMjFlODNlMmEzNzM5MCIsInR5cGUiOiJSRUNPUkRJTkciLCJyZXN0cmljdGlvbiI6eyJ0eXBlIjoiVElNRSIsImV4cGlyYXRpb25Ib3VycyI6MCwiZXhwaXJhdGlvbk1pbnV0ZXMiOjUsIm1heFJlcXVlc3RzIjotMX0sImRpc3Bvc2l0aW9uIjoiTEFVTkNIIiwibGF1bmNoVHlwZSI6bnVsbCwibGF1bmNoQ29tcG9uZW50IjpudWxsLCJsYXVuY2hQYXJhbUtleSI6bnVsbH19.xuELw4EafEwUMoYcCHidGn4Tw9O1QCbYHzYGJUl0kKkTr+   ah  https://us.bbcollab.com/launch/eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJiYkNvbGxhYkFwaSIsInN1YiI6ImJiQ29sbGFiQXBpIiwiZXhwIjoxNjk0NDgxOTc3LCJpYXQiOjE2OTQ0ODE2NzcsInJlc291cmNlQWNjZXNzVGlja2V0Ijp7InJlc291cmNlSWQiOiI3YWU0MTFhNTU3NjU0OWFiOTZlYjVmMTM1YmY3MWU5MCIsImNvbnN1bWVySWQiOiJBRUU2MEI4MDI2QzM3ODU2RjMwMzNEN0ZEOTQzMTFFNSIsInR5cGUiOiJSRUNPUkRJTkciLCJyZXN0cmljdGlvbiI6eyJ0eXBlIjoiVElNRSIsImV4cGlyYXRpb25Ib3VycyI6MCwiZXhwaXJhdGlvbk1pbnV0ZXMiOjUsIm1heFJlcXVlc3RzIjotMX0sImRpc3Bvc2l0aW9uIjoiTEFVTkNIIiwibGF1bmNoVHlwZSI6bnVsbCwibGF1bmNoQ29tcG9uZW50IjpudWxsLCJsYXVuY2hQYXJhbUtleSI6bnVsbH19.yOhRZNaIjXYoMYMpcTzgjZJCnIFaYf2cAzbco8OAxlYah  https://eu.bbcollab.com/launch/eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJiYkNvbGxhYkFwaSIsInN1YiI6ImJiQ29sbGFiQXBpIiwiZXhwIjoxNzUyNjgyODYwLCJpYXQiOjE3NTI2ODI1NjAsInJlc291cmNlQWNjZXNzVGlja2V0Ijp7InJlc291cmNlSWQiOiI4MjQzYjFiODg2Nzk0NTZkYjkwN2NmNDZmZmE1MmFhZiIsImNvbnN1bWVySWQiOiI5ZTY4NzYwZWJiNzM0MzRiYWY3NTQyZjA1YmJkOTMzMCIsInR5cGUiOiJSRUNPUkRJTkciLCJyZXN0cmljdGlvbiI6eyJ0eXBlIjoiVElNRSIsImV4cGlyYXRpb25Ib3VycyI6MCwiZXhwaXJhdGlvbk1pbnV0ZXMiOjUsIm1heFJlcXVlc3RzIjotMX0sImRpc3Bvc2l0aW9uIjoiTEFVTkNIIiwibGF1bmNoVHlwZSI6bnVsbCwibGF1bmNoQ29tcG9uZW50IjpudWxsLCJsYXVuY2hQYXJhbUtleSI6bnVsbH19.Xj4ymojYLwZ1vKPKZ-KxjpqQvFXoJekjRaG0npngwWsc                     U R                  U5      n[        U5      S   S   nU R                  X5      R                  nU R	                  U5      (       a  [        U5      eU R                  U[        U5      $ )NresourceAccessTicket
resourceId)	_match_idr	   _request_webpager   suitabler   
url_resultr   )r4   r   r8   r6   redirect_urls        r:   re   +BlackboardCollaborateLaunchIE._real_extract   si    s##E*+AB<P,,S;??==&&"<00|-DhOOr=   rg   N)rh   ri   rj   rk   rl   rm   re   rn   rg   r=   r:   rp   rp      s>    IJ ~	!	

 ~	!	

 ~	!	
FPr=   rp   N)commonr   utilsr   r   r   r   r	   r
   r   r   r   utils.traversalr   r   rp   rg   r=   r:   <module>r~      s9    !
 
 
 +G
m G
TPM Pr=   