
    uki!                     t    d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ  G d de      Z G d de      Zy	)
   )InfoExtractor   )	UnsupportedErrorfloat_or_noneint_or_nonejoin_nonemptyjwt_decode_hs256mimetype2extparse_iso8601parse_qsurl_or_none)traverse_objc                       e Zd ZdZdddddddd	d
diddddddddddddddddddddd
di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- Zy+)/BlackboardCollaborateIEa,  (?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           	      t    | j                  t        d| d||d      ||xs d||rdd| i      S d       S )	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noter0   s          a/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/yt_dlp/extractor/blackboardcollaborate.py	_call_apiz!BlackboardCollaborateIE._call_apif   sm    ""HVH,STV^`dlopd99<A_w&78 # M 	M HL # M 	M    c           
      Z   | j                  |      }|j                  d      }|j                  d      }t        |      j                  dd g      d   }| j	                  ||d|d      }|r| j	                  |||d	      }n| j	                  ||d
dd      }i }t        |dd ddt        hfdt        hfdf      }t        |dt        hf      x}	r|D ]  }
|	|
d<   	 i }t        |dd f      D ]M  }|j                  |j                  d      xs dg       j                  t        |dt        hf      |d   d       O t        |dddt        hf      D ]%  }|j                  dg       j                  d|i       ' i t        |d t        hfd!t        hfd"t        d#$      hfd%      |||d&S )'Nr4   r   	authTokenzdata/securezTrying auth token)r6   r7   r8   zRetrieving extra attributes)r7   r8   datazTrying fallbackT)r6   r8   r0   
extStreamsc                     t        |d         S )N	streamUrlr   _vs     r9   <lambda>z7BlackboardCollaborateIE._real_extract.<locals>.<lambda>z   s    {STU`SaGb r;   rB   contentTypeaspectRatio)r   r   aspect_ratiostorageSizefilesizer   c                     t        |d         S )Nr   rC   rD   s     r9   rG   z7BlackboardCollaborateIE._real_extract.<locals>.<lambda>   s    TUV[T\H] r;   langundlabelr   )namer   chats.r   rQ   createdr   i  )scale)r   r   r   )formatsr   r   )_match_valid_urlgroupr   getr:   r   r
   r   r   
setdefaultappendstrr   r   )r3   r   mobjr4   r5   r7   
video_infovideo_extrarU   rL   fmtr   subslive_chat_urls                 r9   _real_extractz%BlackboardCollaborateIE._real_extractm   s   $$S)H%::d#!!+v6r:^^FH=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[ 	QM  b188%9OP	Q	
: 3%'-9'+D*A)BC( 	
 "	
 		
r;   )NNNF)__name__
__module____qualname__
_VALID_URL_TESTSr:   rb    r;   r9   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                   2    e Zd ZdZdddddddddgZd Zy)	BlackboardCollaborateLaunchIEz5https?://[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                     | j                  |      }t        |      d   d   }| j                  ||      j                  }| j	                  |      rt        |      | j                  |t        |      S )NresourceAccessTicket
resourceId)	_match_idr	   _request_webpager   suitabler   
url_resultr   )r3   r   r7   r5   redirect_urls        r9   rb   z+BlackboardCollaborateLaunchIE._real_extract   sh    s##E*+AB<P,,S(;??==&"<00|-DhOOr;   N)rc   rd   re   rf   rg   rb   rh   r;   r9   rj   rj      s>    IJ ~	!	

 ~	!	

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