
    V|h2R                     j    S SK r S SKrS SKr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\5      rg)    N   )InfoExtractor   )	ExtractorErrorint_or_noneparse_qssmuggle_urltraverse_objunified_timestampupdate_url_queryurl_or_none
xpath_textc                      \ rS rSrSr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0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0S,.S-S.SS/S	S0S1SS2S3S4.	SS0S.S5S6SS7SS2S8SS9S:S4.	SS0S.S;S<SS=S	S>S?SS@SAS4.	SS0S.SBSCSSDSSESFSS0SGS4.	SS0S.SHSISSJSKSSLSSMSNSO.	SS0S.SPSQSRSSST.SUSVSSSSWSSXSSYSZSO.	0SUS[SS\SQSWSS].0SUS^SS_S`SWSS].0/SS0Sa.SbScSdSeST.SUSfSSeSgSShSShSiSO.	0SUSjSSkSQSgSS].0/SS0Sa.SlSmSSnSoSpSqSrSsSt.SS0S.SuSvSSwSxSSSySLSGS.	SS0S.SzS{S|.S}S{S|.S~S{S|./rSS.SS/S	S0S1SS2S3S4.	SS0S./r\S 5       rS r	S r
SS jrS rSrg)SlidesLiveIE   zDhttps?://slideslive\.com/(?:embed/(?:presentation/)?)?(?P<id>[0-9]+)z0https://slideslive.com/38902413/gcc-ia16-backend38902413mp4zGCC IA16 backendi\E2e20231020zre:^https?://.*\.jpgzcount:42zcount:41if  )	idexttitle	timestampupload_date	thumbnail
thumbnailschaptersdurationskip_downloadm3u8)url	info_dictparamszhttps://slideslive.com/3893578538935785zGOffline Reinforcement Learning: From Algorithms to Practical Challengesiz2ezre:^https?://.*\.(?:jpg|png)z	count:640z	count:639ih&  )	r   r   r   r   r   r   r   r   r   z^https://slideslive.com/38973182/how-should-a-machine-learning-researcher-think-about-ai-ethics38973182z?How Should a Machine Learning Researcher Think About AI Ethics?i92ezcount:3zcount:2i  )	r   r   r   r   r   r   r   r   r   z`https://slideslive.com/38897546/special-metaprednaska-petra-ludwiga-hodnoty-pro-lepsi-spolecnost 8a79b5e3d700837f40bd2afca3c8fa0138897546uK   SPECIÁL: Meta-přednáška Petra Ludwiga - Hodnoty pro lepší společnost20231029ie>ez	count:169z	count:168i  )	r   r   r   r   r   r   r   r   r   )r    md5r!   r"   z2https://slideslive.com/embed/presentation/3892585038925850z=Towards a Deep Network Architecture for Structured Smoothnesszcount:8iek2ezcount:7iF  )	r   r   r   r   r   r   r   r   r   z https://slideslive.com/38979920/38979920z&MoReL: Multi-omics Relational Learningi2ezcount:6   zhttps://slideslive.com/3895407438954074z.Decentralized Attribution of Generative Modelszcount:16iu2ezcount:15i2  z https://slideslive.com/38979570/38979570z?Efficient Active Search for Combinatorial Optimization Problemszcount:9i2ei'  zfhttps://slideslive.com/embed/presentation/38979880?embed_parent_url=https%3A%2F%2Fedit.videoken.com%2F38979880z+The Representation Power of Neural Networksi2ezcount:22zcount:21i&  )	r   r   r   r   r   r   r   r   r   zihttps://slideslive.com/embed/presentation/38979682?embed_container_origin=https%3A%2F%2Fedit.videoken.com   z38979682-playlistz2LoRA: Low-Rank Adaptation of Large Language Models)r   r   r!   38979682i/2ezcount:30zcount:31i  z38979682-021z>LoRA: Low-Rank Adaptation of Large Language Models - Slide 021)r   r   r   r   r   r   z38979682-024z>LoRA: Low-Rank Adaptation of Large Language Models - Slide 024   )r    playlist_countr!   playlistr"   z https://slideslive.com/38979481/r   z38979481-playlistz:How to Train Your MAML to Excel in Few-Shot Classification38979481i̿2ezcount:43i;  z38979481-013zFHow to Train Your MAML to Excel in Few-Shot Classification - Slide 013z&https://slideslive.com/embed/38932460/38932460z;Active Learning for Hierarchical Multi-Label Classificationi  zre:https?://.+/.+\.(?:jpg|png)zcount:20i/e20240219)r   r   r   r   r   r   r   r   zhttps://slideslive.com/3898399438983994z'Zero-Shot AutoML with Pretrained Modelsi2ezcount:23zUhttps://slideslive.com/38903721/magic-a-scientific-resurrection-of-an-esoteric-legendT)r    only_matchingz>https://slideslive.com/38922070/learning-transferable-skills-1zZhttps://slideslive.com/38921896/retrospectives-a-venue-for-selfreflection-in-ml-research-3z3https://iclr.cc/virtual_2020/poster_Hklr204Fvr.htmlc              #      #    [         R                  " SU5       HQ  n[        R                  R	                  U5      nUR
                   SUR                   3n[        SU 3UUS.5      v   MS     g 7f)NzF(?s)new\s+SlidesLiveEmbed\s*\([^)]+\bpresentationId:\s*["\'](\d+)["\']z://*https://slideslive.com/embed/presentation/embed_parent_urlembed_container_origin)refindallurllibparseurlparseschemenetlocr   )clsr    webpageembed_id
url_parsedorigins         U/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/slideslive.py_extract_embed_urls SlidesLiveIE._extract_embed_urls<  st      

#lnuvH..s3J"))*#j.?.?-@AF"<XJG(+.4J  ws   A.A0c                 F    U R                  SU 3UU[        USSS.5      S9$ )Nr:   RefererOriginr;   )headersquery)_download_webpage_handler
   )selfvideo_idrP   s      rJ   _download_embed_webpage_handle+SlidesLiveIE._download_embed_webpage_handleH  s=    ,,8
CX<$-*2: $ -  	    c                 H   0 nSSSSSSSSS	S
S.
nUR                  5        HP  nUR                  S5      (       d  M  UR                  S5      u  pVnUR                  USS  5      nU(       d  ML  XrU'   MR     S H(  nX;   d  M
  U R	                  X(   S SS9=(       d    / X('   M*     U$ )Nr   r   r   playlist_typeservice_name
service_idvideo_servers	subtitlesslides_json_urlslides_xml_url)
zPRESENTATION-TITLEzPRESENTATION-UPDATED-ATzPRESENTATION-THUMBNAILzPLAYLIST-TYPEzVOD-VIDEO-SERVICE-NAMEzVOD-VIDEO-IDzVOD-VIDEO-SERVERSzVOD-SUBTITLESzVOD-SLIDES-JSON-URLzVOD-SLIDES-XML-URLz#EXT-SL-:   )r\   r]   F)fatal)
splitlines
startswith	partitionget_parse_json)	rS   	m3u8_data	m3u8_dictlookuplinetag_valuekeys	            rJ   _extract_custom_m3u8_info&SlidesLiveIE._extract_custom_m3u8_infoP  s    	 #*'2&1,&4(!0(#4"2
 ((*D??:.. NN3/MCE**SW%C"cN + 2C!%!1!1).$e!1!T!ZXZ	 2 rW   c           	      ^   / S peU R                  SU SU S3USSSSS9nU(       a/  U(       d  U R                  US	   S
   USS9nUR                  U5        U R                  SU SU S3USSS9nU(       a7  U(       d  U(       d  U R	                  SU SU S3USS9nUR                  U5        XV4$ )Nhttps:///z/master.m3u8r   hlsFT)m3u8_idrb   liver   r    z%Extracting duration from HLS manifest)notez/master.mpddash)mpd_idrb   z&Extracting duration from DASH manifest)_extract_m3u8_formats_extract_m3u8_vod_durationextend_extract_mpd_formats_extract_mpd_vod_duration)	rS   cdn_hostnamepathrT   skip_durationformatsr   hls_formatsdash_formatss	            rJ   _extract_formats_and_duration*SlidesLiveIE._extract_formats_and_durationp  s    00|nAdV<8eU%d 1 D  ::N5)8:a ; cNN;'00|nAdV;7&X] 1 _M99|nAdV;?A : C NN<(  rW   c                   ^ ^^^^^  T R                  U5      mT R                  T[        [        U5      SSS.5      S9u  p#UR                  nSU;   aA  [        [        U5      SSS9nU(       d
  [        S	S
S9eT R                  TSU S3SU 3S.S9u  p&T R                  SUS5      mT R                  ST 3TSST0S9nT R                  U5      nUS   R                  5       n	U	S;   d   eUS   n
Sn0 / smnUR                  S5      (       a  T R                  US   TSSSS9=(       d    0 mSn[        TS5      nU(       a  SnSU S3n[        [        TS [        S!9S"5       HE  u  nnUR                  U[        US#5      [        US$US%9[        UR                  S&5      S'S(945        MG     T(       d  UR                  S)5      (       a  T R!                  US)   TSS*S+S9m[#        T[$        R&                  R(                  R*                  5      (       aZ  S,n[        TR-                  S-5      5       H:  u  nnUR                  U[/        US.S/5      S[        [/        US0S&5      5      45        M<     / / nn[1        UR                  S15      5      (       a  UR                  S2US1   S3.5        U HC  u  nnnnU(       a  UR                  US4 UTUU4-  S3.5        UR                  S5US4 3US6.5        ME     0 n[        US7[        S!9 Hb  n[1        UR                  S85      5      nU(       d  M&  UR3                  UR                  S95      =(       d    S:/ 5      R                  US;S<.5        Md     TUR                  S=5      =(       d    T R5                  S=US>S%9[7        UR                  S?5      5      UR                  S@5      SA:g  UUUSB.mU	SC:X  a  U
TSC'   OuU	SD:X  a1  T R9                  USE   SF   U
T5      u  nnTR;                  UUSG.5        O>TR;                  SHU
U	R=                  5       TSI.5        U	SJ:X  a  [?        SKU
 3SLU05      TSC'   [        TSM5      m T (       d  T$ UUU UUU 4SN jnT RA                  U" 5       T SO3TS=   5      $ )PN)r<   )r=   r   )rN   rO   )rP   domain_not_allowed)zallowed_domains[].Fget_allz9This is an embed-only presentation. Try passing --refererT)expectedrs   rt   zdata-player-token="([^"]+)"zplayer tokenhttps://slideslive.com/player/zDownloading player infoplayer_token)rx   rQ   rZ   )r    yodavimeoyoutuber[   z5https://slides.slideslive.com/%s/slides/original/%s%sr^   zDownloading slides JSON)rb   rx   errnotez.png)slide_qualitiesr   z.jpgz8https://cdn.slideslive.com/data/presentations/%s/slides/z/%s%sslides.)expected_typer   )imagename)r   extname)defaulttime  scaler_   zDownloading slides XMLzFailed to download slides infoz@https://cdn.slideslive.com/data/presentations/%s/slides/big/%s%sz./slidez./slideNamer   z	./timeSecr   cover)r   r    03dzSlide )r   
start_time)r]   .
webvtt_urllanguageenvtt)r    r   r    r   rY   vod)r   r   r   is_liver   r   r]   r    r   r\   r   )r   r   url_transparent)_typer    ie_key
display_idr   zhttps://player.vimeo.com/video/referer)r   .videor   c            
   3     >#    Tv   T	R                  ST S3TSTSR                  T5      S.SSS9=(       d    0 n [        [        T
S	5      S
5       H  u  p[        US5      S:w  a  M  [        US5      n[        U USS4SS9nU(       a  U(       d  MA  T	R	                  XCTSS9u  pVU(       d  M]  T SUS 3TS    SUS 3TS   [        [        US5      SS9US.v   M     g 7f)Nr   z/slides_video_service_dataF,)r   videoszDownloading video slides infoz$Failed to download video slides info)rb   rQ   rx   r   r   r   )r   servicer   )r   r   r\   .r   T)r   -r   r   z	 - Slide r   )r   duration_msr   r   )r   r   r   r   r   )_download_jsonjoin	enumerater
   r   r   )service_dataslide_idslide
video_pathr   r   rm   infor   rS   r   rT   video_slidess          rJ   entries+SlidesLiveIE._real_extract.<locals>.entries  s2    J..0
:TU$0!hh|4. 8Ag / i o
 mo  $-\&/-RTU#V';<F)%A
+L;6?D F#:!?? hd @ L
%Ja~6 $Wi~F!%k!2 +L@X,Yae f&  $Ws   CC!z	-playlist)!	_match_idrU   r
   r   r    r   _search_regex_download_webpagerp   lowerrf   r   r   dictappendr   _download_xml
isinstancexmletreeElementTreeElementr?   r   r   
setdefault_html_search_metar   r   update
capitalizer	   playlist_result)!rS   r    rF   urlhredirect_urldomainrm   player_dataplayer_inforZ   r[   slide_url_templateslides_infoslide_ext_defaultslide_qualityr   r   r   r   
slide_path	slide_extr   r]   subr   r   r   r   r   r   r   rT   r   s!   `                           @@@@@rJ   _real_extractSlidesLiveIE._real_extract  s%   >>#&;;l8C=38;: ; < < xx</!(<"8:T^cdF$OZ^` `<<X%fXQ/$VH-P< JG
 ))*H'Sab,,,XJ7*><2P - R 44[A">288:BBBB .
T "??,--((-.. ) ? EBD  !'(1GHM$*!'_`m_nns%t"#,\&/ae-fhi#j%""l52CD (<FWX		& 1>$@ A $k +//*:;;'',-xu-7W ( YF &#))"7"7"?"?@@%g"'0	1J'KOHe&& *UM6"JF#Juk6$JK(M N (L
  "2*{{344W[5MNO;F7Hj)Z!!%cN-:y0QQ#  OO!(30(  <G 	-?tTC$SWW\%:;J  !4!<bAHH!J 	 U  __W-e1G1GQXbd1G1e*;??;+GH"75@$ "
 5 $DKV# $ B BO,Q/X!GGXKK$" 
 KK*!&113&	  w&)5j\B$&U $F,JKK	 	< ##GI(9/EtG}UUrW    N)F)__name__
__module____qualname____firstlineno__
_VALID_URL_TESTS_WEBPAGE_TESTSclassmethodrK   rU   rp   r   r   __static_attributes__r   rW   rJ   r   r      s	   XJ B'#%0$"

 V
& 1^%#8%#

 V
& pV%0##!

 V
& r1b0%#%#

 V
( DT0##%!

 V
& 2=8##%!

 V
& 1E0$#%"

 V
& 2V8##%!

 V
& xB#8$%"

 V
& {%I

  M'<()&

 $Y')	
 $Y')	
+@ V
O*X 2%Q

  U'<()&

 $a')	
. V
=!F 8R:"#%	
 V
$ 1>#%8$"

 V
& g P l]RFl ET0##%!

 V
 N& 	 	@!.QVrW   r   )r>   urllib.parser@   xml.etree.ElementTreer   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   r   rW   rJ   <module>r      s0    	   !
 
 
EV= EVrW   