
    V|h5                         S SK r S SKrS SKrS SKrS SKrS SKrSSKJr  SSK	J
r
  SSKJrJrJrJrJrJrJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N   )InfoExtractor)SlidesLiveIE   )ExtractorErrorInAdvancePagedListint_or_noneremove_starttraverse_objupdate_url_queryurl_or_nonec                       \ rS rSrSSSS.rSSR                  \" \R                  \5      5       S3r	S	r
S
 rS rS rSrg)VideoKenBaseIE   ictscncfneurips)zvideos.icts.res.inzvideos.cncf.iozvideos.neurips.cczhttps?://(?P<host>|z)/   c                 F    U R                  SU S3USSS0S9nUS   US   4$ )	N-https://analytics.videoken.com/api/videolake/z/detailsz'Downloading organization ID and API keyAcceptapplication/json)noteheadersidapikey)_download_json)selforgvideo_iddetailss       S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/videoken.py_get_org_id_and_api_key&VideoKenBaseIE._get_org_id_and_api_key   sJ    %%;C5I8:,E & 
 t}gh///    c                     U(       d  U(       d  g U(       a  SU;   a  S[        US5       3n[        U5      (       a9  [        UUS[        R                  R                  U5      R                   3S.5      $ U$ )Nzembed/sign-inzhttps://slideslive.com/embed/slideslive-zhttps://)embed_parent_urlembed_container_origin)r
   r   r   urllibparseurlparsehostname)r   	video_urlr!   referers       r#   _create_slideslive_url%VideoKenBaseIE._create_slideslive_url'   sr    o:7X}8]7^_Iw#I$+,4V\\5J5J75S5\5\4]*^0   r&   c              #   r  #    [        US5       H  n[        USS5      nU(       d  M  S n[        USS5      S:X  a  UnSnO^[        USS	[        S
9nU(       d  MJ  [        R                  R	                  U5      R
                  S:X  a  [        nU R                  XdU5      nU R                  XeU5      v   M     g 7f)N))videosresults.
youtube_idvideoidtypesourceyoutubeYoutube	embed_urlembeddableurl)expected_typezslideslive.com)	r   r   r+   r,   r-   r.   r   r1   
url_result)r   r4   urlvideor!   ie_keyr/   s          r#   _extract_videosVideoKenBaseIE._extract_videos3   s     !&*FGE#E<CHFE684	A$	"(_\gh	 \\**95>>BRR)F $ ; ;IQT UI//)X>> Hs   B5B7 N)__name__
__module____qualname____firstlineno___ORGANIZATIONSjoinmapreescape_BASE_URL_RE
_PAGE_SIZEr$   r1   rC   __static_attributes__rE   r&   r#   r   r      sL    $ &N
 )#bii2P)Q(RRTULJ0
?r&   r   c                      \ rS rSr\R
                  S-   rSSSSSSS	S
SS.SS0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)S*_S+S,_S-\_S.\_S/S0S1S2// S3S4S5S6.ESS0S/S.S70 SS8_SS_SS9_SS:_SS;_SS<_SS=_S!S;_S"S>_S#S?_S%S@_S)SA_S+S,_SBS0_SCSD_SES1_S-\_\\SF// S3SGSHSI.ESS0SJ.SKS1SL.SMS1SL.SNS1SL./rSO r	SPr
gQ)R
VideoKenIEF   z4(?:(?:topic|category)/[^/#?]+/)?video/(?P<id>[\w-]+)z3https://videos.neurips.cc/video/slideslive-3892281538922815mp4zVEfficient Processing of Deep Neural Network: from Algorithms to Hardware Architecturesi(6a20210906re:^https?://.*\.(?:jpg|png)z	count:330z	count:329r   exttitle	timestampupload_date	thumbnail
thumbnailschaptersskip_downloadm3u8$Failed to download VideoKen API JSON)r@   	info_dictparamsexpected_warningszLhttps://videos.neurips.cc/topic/machine%20learning/video/slideslive-38923348r   2Xa_dt78rJErZ   
display_id38923348r[   zMachine EducationdescriptionzDWatch full version of this video at https://slideslive.com/38923348.channelzSlidesLive Videos - G2
channel_idUCOExahQQ588Da8Nft_Ltb9wchannel_urlz8https://www.youtube.com/channel/UCOExahQQ588Da8Nft_Ltb9wuploaderuploader_iduploader_urlz7http://www.youtube.com/channel/UCOExahQQ588Da8Nft_Ltb9wdurationi	  r\   i~`r]   20200131	age_limitr   channel_follower_count
view_countunlistednot_liveTzPeople & Blogszre:^https?://.*\.(?:jpg|webp)zcount:78zcount:77)availabilitylive_statusplayable_in_embed
categoriestagsr^   r_   r`   zDhttps://videos.icts.res.in/topic/random%20variable/video/zysIsojYdvczysIsojYdvczVSmall-worlds, complex networks and random graphs (Lecture 3)  by Remco van der Hofstadz$md5:87433069d79719eeadc1962cc2ace00bz-International Centre for Theoretical ScienceszUCO3xnVTHzB7l-nc8mABUJIQz8https://www.youtube.com/channel/UCO3xnVTHzB7l-nc8mABUJIQ	ICTStalksz%http://www.youtube.com/user/ICTStalksi,  20191004rz   ry   publicr{   zScience & Technologyzcount:42zcount:20)
like_countrv   r|   r}   r^   r_   r`   r@   rd   re   z5https://videos.cncf.io/category/478/video/IL4nxbmUIX8)r@   only_matchingz9https://videos.cncf.io/topic/kubernetes/video/YAM2d7yTrrIz,https://videos.icts.res.in/video/d7HuP_abpKUc           
         U R                  U5      R                  SS5      u  p#U R                  U R                  U   U5      u  pEU R	                  SUUUS.SS0SSS	S
9nU(       a  [        U R                  SU/0U5      5      $ UR                  S5      (       a'  U R                  U R                  S X15      [        U5      $ [        R                  " SU5      (       a  U R                  USU5      $ [        S5      e)Nhostr   z4https://analytics.videoken.com/api/videoinfo_private)r7   org_idr   r   zDownloading VideoKen API JSONrc   F)queryr   r   errnotefatalr4   r(   z^[\w-]{11}$r;   z/Unable to extract without VideoKen API response)_match_valid_urlgroupr$   rJ   r   nextrC   
startswithr?   r1   r   rM   matchr   )r   r@   r.   r!   r   _r"   s          r#   _real_extractVideoKenIE._real_extract   s	   !2237==fdK001D1DX1NPXY	%%BH# U !"45<[:% & I ,,h	-BCHII  //??++D(@,PXZ ZXXnh//??8YAA !RSSr&   rE   N)rF   rG   rH   rI   r   rO   
_VALID_URLint_TESTSr   rQ   rE   r&   r#   rS   rS   F   s   ,,/ffJ Em#%8%#	
 V
 EE!& ^
-
5
 *
 (	

 a
 /
 4
 U
 0
 5
 U
 
 
 :
 
  %c!
" ##
$ '%!%+,9$"3
8 V
 EEC"H V
-
5
 m
 A	

 F
 4
 U
 G
 ;
 C
 
 :
 
 :
 H
   !
" %c#
$ 129$"1
6 V
; B G K >s\F|Tr&   rS   c            
       B    \ rS rSrSrSSSSSSS	S
SS.SS0S./rS rSrg)VideoKenPlayerIE   z;https?://player\.videoken\.com/embed/slideslive-(?P<id>\d+)z5https://player.videoken.com/embed/slideslive-3896843438968434rV   z-Deep Learning with Label Differential Privacyi|a20220128rX   zcount:30zcount:29rY   ra   rb   r   c                 r    U R                  U5      nU R                  U R                  S X!5      [        U5      $ )N)	_match_idr?   r1   r   )r   r@   r!   s      r#   r   VideoKenPlayerIE._real_extract   s7    >>#&''h<lHV 	Vr&   rE   N)rF   rG   rH   rI   r   r   r   rQ   rE   r&   r#   r   r      sE    OJFD#%8$"	
 V
 F"Vr&   r   c                   L    \ rS rSr\R
                  S-   rSSSSS.S./rS	 rS
r	g)VideoKenPlaylistIE   z&(?:category/\d+/)?playlist/(?P<id>\d+)z5https://videos.icts.res.in/category/1822/playlist/381u   381zCosmology - The Next Decader   r[   r@   playlist_mincountrd   c                     U R                  U5      R                  SS5      u  p#U R                  U R                  U   U5      u  pEU R	                  SU SU S3USS0SS	9nU R                  U R                  Xa5      X6R                  S
5      5      $ )Nr   r   z#https://analytics.videoken.com/api/z/playlistitems//r   r   zDownloading API JSON)r   r   r[   )r   r   r$   rJ   r   playlist_resultrC   get)r   r@   r.   playlist_idr   r   r4   s          r#   r    VideoKenPlaylistIE._real_extract   s     $ 5 5c : @ @ N001D1DX1NP[\	$$1&UVW(,>!?F\ % ^ ##D$8$8$E{T^T^_fTghhr&   rE   N)
rF   rG   rH   rI   r   rO   r   r   r   rQ   rE   r&   r#   r   r      s6    ,,/XXJF 2
 Fir&   r   c                   |    \ rS rSr\R
                  S-   rSSSSS.S.S	S
SSS.S.SSSSS.S./rSS jrS r	S r
Srg)VideoKenCategoryIE   z category/(?P<id>\d+)/?(?:$|[?#])z)https://videos.icts.res.in/category/1822/  1822Programsr   r   z'https://videos.neurips.cc/category/350/"   350zNeurIPS 2018z$https://videos.cncf.io/category/479/iH  479z"KubeCon + CloudNativeCon Europe'19Nc           
      |    U R                  SU S3USU(       a  UOSU 3UUU R                  S.SS0S9=(       d    0 $ )	Nr   z/category_videosFzDownloading category page )category_idpage_numberlengthr   r   )r   r   r   r   r   rP   )r   r   r   pager   s        r#   _get_category_page%VideoKenCategoryIE._get_category_page  sb    "";F8CSTVadd2LTF0S*#// !"45 # 7 = ;=	=r&   c              #   l   #    U R                  XUS-   5      nU R                  XS5       S h  vN   g  N7fNr   )r   rC   )r   r   r   r@   r   r4   s         r#   _entriesVideoKenCategoryIE._entries  s/     ((dQhG''444s   *424c           
         U R                  U5      R                  SS5      u  p#U R                  U R                  U   U5      u  pEU R	                  X4SS9nUS   n[
        R                  " [        US   5      U R                  -  5      nU R                  [        [        R                  " U R                  X4U5      XR                  5      X75      $ )Nr   r   zDownloading category infor   category_namerecordsTotal)r   r   r$   rJ   r   mathceilr   rP   r   r   	functoolspartialr   )	r   r@   r.   r   r   r   category_infocategorytotal_pagess	            r#   r    VideoKenCategoryIE._real_extract  s     $ 5 5c : @ @ N001D1DX1NP[\	//Je/f 1iiM.$A BT__ TU##$6dmm[#F%*+6B 	Br&   rE   r   N)rF   rG   rH   rI   r   rO   r   r   r   r   r   rQ   rE   r&   r#   r   r      sp    ,,/RRJ: 
 9#
 6 :
F.=5Br&   r   c                   |    \ rS rSr\R
                  S-   rSSSSS.S.S	S
SSS.S.SSSSS.S./rSS jrS r	S r
Srg)VideoKenTopicIEi  z!topic/(?P<id>[^/#?]+)/?(?:$|[?#])z3https://videos.neurips.cc/topic/machine%20learning/r   machine_learningzmachine learningr   r   z7https://videos.icts.res.in/topic/gravitational%20waves/M   gravitational_waveszgravitational wavesz(https://videos.cncf.io/topic/prometheus/   
prometheusNc                     U R                  SUSUU R                  UUSSUSSUS.
SS	0U(       a  UOS
U 3S9=(       d    0 $ )Nz,https://es.videoken.com/api/v1.0/get_resultsFupload_descalltrue )
orgidsizer   r   sortfiltertokenis_topicr   searchidr   r   zDownloading topic page )r   r   r   r   r   )r   topicr   	search_idapi_keyr   r   s          r#   _get_topic_pageVideoKenTopicIE._get_topic_page3  sr    "":E% "%W !"45%<TF#C # E K IK	Kr&   c              #   n   #    U R                  XX4US-   5      nU R                  Xu5       S h  vN   g  N7fr   )r   rC   )r   r   r   r   r   r@   r   r4   s           r#   r   VideoKenTopicIE._entriesC  s2     %%eYPQR''444s   +535c                 ^   U R                  U5      R                  SS5      u  p#[        R                  R	                  U5      nUR                  SS5      nU R                  U R                  U   U5      u  pV[        R                  " SU S[        [        R                  " 5       5       S3R                  5       5      R                  5       n[        U R                  XEXvSS9S	   5      nU R!                  [#        [$        R&                  " U R(                  XEXvU5      XR*                  5      X45      $ )
Nr   r    r   :z
:transientzDownloading topic infor   total_no_of_pages)r   r   r+   r,   unquotereplacer$   rJ   base64	b64encoder   timeencodedecoder	   r   r   r   r   r   r   rP   )	r   r@   r.   topic_idr   r   r   r   r   s	            r#   r   VideoKenTopicIE._real_extractG  s   !2237==fdK$$X.==c*66t7J7J87TV[\$$qqTYY[1A0B*%M%T%T%VW^^`	!$"6"694L #7 #NNa#c d##$6dmmUIPST%*+3< 	<r&   rE   r   )rF   rG   rH   rI   r   rO   r   r   r   r   r   rQ   rE   r&   r#   r   r     sq    ,,/SSJD $'
 I'*
 : !
F.K 5
<r&   r   )r   r   r   rM   r   urllib.parser+   commonr   
slidesliver   utilsr   r   r	   r
   r   r   r   r   rS   r   r   r   r   rE   r&   r#   <module>r      s       	   ! $  .?] .?brT rTjV~ V2i i(/B /Bd7<n 7<r&   