o
    i!                     @   sh   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 deZG dd deZd	S )
   )InfoExtractor   )	UnsupportedErrorfloat_or_noneint_or_nonejoin_nonemptyjwt_decode_hs256mimetype2extparse_iso8601parse_qsurl_or_none)traverse_objc                   @   s   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d1d-d.Zd/d0 Zd+S )2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/2bccf7165d7c419ab87afc1ec3f3bb15NFc                 C   sB   | j td| d||dd||pd||rdd| idS d 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noter-    r6   Z/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/blackboardcollaborate.py	_call_apif   s   
z!BlackboardCollaborateIE._call_apic              	   C   s~  |  |}|d}|d}t|dd gd }| j||d|dd}|r0| j|||dd	}n| j||d
ddd}i }t|ddd ddthfdthfdf}t|dthf }	rc|D ]}
|	|
d< q\i }t|ddd fD ]}|	|dpxdg 
t|dthf|d d qnt|dddthfD ]}|	d g 
d|i qi t|d!thfd"thfd#td$d%hfd&|||d'S )(Nr1   r   	authTokenzdata/securezTrying auth token)r3   r4   r5   zRetrieving extra attributes)r4   r5   datazTrying fallbackT)r3   r5   r-   
extStreamsc                 S      t |d S )N	streamUrlr   _vr6   r6   r7   <lambda>z       z7BlackboardCollaborateIE._real_extract.<locals>.<lambda>r>   contentTypeaspectRatio)r   r   aspect_ratiostorageSizefilesizer   c                 S   r=   )Nr   r?   r@   r6   r6   r7   rC      rD   langundlabelr   )namer   chats.r   rM   createdr   i  )scale)r   r   r   )formatsr   r   )_match_valid_urlgroupr   getr8   r   r	   r   r   
setdefaultappendstrr   r
   )r0   r   mobjr1   r2   r4   
video_infovideo_extrarQ   rI   fmtr   subslive_chat_urlr6   r6   r7   _real_extractm   sH   





z%BlackboardCollaborateIE._real_extract)NNNF)__name__
__module____qualname__
_VALID_URL_TESTSr8   r^   r6   r6   r6   r7   r      s    

Mr   c                   @   s4   e Zd ZdZdddddddddgZdd Zd	S )
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                 C   sH   |  |}t|d d }| ||j}| |rt|| |t|S )NresourceAccessTicket
resourceId)	_match_idr   _request_webpager   suitabler   
url_resultr   )r0   r   r4   r2   redirect_urlr6   r6   r7   r^      s   

z+BlackboardCollaborateLaunchIE._real_extractN)r_   r`   ra   rb   rc   r^   r6   r6   r6   r7   rd      s    rd   N)commonr   utilsr   r   r   r   r   r	   r
   r   r   utils.traversalr   r   rd   r6   r6   r6   r7   <module>   s    , 