
    VGhU                     j    d dl Z d dlZd dlZ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  G d de      Zy)    N   )InfoExtractor   )	ExtractorErrorint_or_noneparse_qssmuggle_urltraverse_objunified_timestampupdate_url_queryurl_or_none
xpath_textc                       e Zd ZdZ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i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id+d,d-dd.dd/d0dd1d2d3	ddidd4d5dd6dd1d7dd8d9d3	ddidd:d;dd<dd=d>dd?d@d3	ddiddAdBddCddDdEdd/dFd3	ddiddGdHddIdJddKddLdMdN	ddiddOdPdQdRdSdTdUddRdVddWddXdYdN	idTdZdd[dPdVdd\idTd]dd^d_dVdd\igddid`dadbdcdddSdTdeddddfddgddgdhdN	idTdiddjdPdfdd\igddid`dki dldmdndodpddqdrdsdtdudvdwdxdydzd{dvd|d}d~dddddddddddddddgg eeeddLdd	ddiddddddddddKdFd	ddiddddddddddgZdd-dd.dd/d0dd1d2d3	ddidgZed        Zd Z	d Z
ddZd Zy)SlidesLiveIEzDhttps?://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/r   RTPdrgkyTiE
display_id38932460r   r   z;Active Learning for Hierarchical Multi-Label ClassificationdescriptionzDWatch full version of this video at https://slideslive.com/38932460.channelzSlidesLive Videos - A
channel_idzUC62SdArr41t_-_fX40QCLRwchannel_urlz8https://www.youtube.com/channel/UC62SdArr41t_-_fX40QCLRwuploaderuploader_idz@slideslivevideos-a6075uploader_urlz/https://www.youtube.com/@slideslivevideos-a6075r   20200903r   ibv2er   i  	age_limitr   live_statusnot_liveplayable_in_embedTunlistedzPeople & Blogsz!re:^https?://.*\.(?:jpg|png|webp)zcount:20)	availability
categoriestagschannel_follower_count
like_count
view_countr   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-legend)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              #      K   t        j                  d|      D ]P  }t        j                  j	                  |      }|j
                   d|j                   }t        d| ||d       R y w)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         d/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/slideslive.py_extract_embed_urlsz SlidesLiveIE._extract_embed_urlsN  sy      

#lnuv 	H..s3J"))*#j.?.?-@AF"<XJG(+.4J 	s   A+A-c                 L    | j                  d| ||t        |ddd            S )NrM   RefererOriginrN   )headersquery)_download_webpage_handler
   )selfvideo_idrb   s      r]   _download_embed_webpage_handlez+SlidesLiveIE._download_embed_webpage_handleZ  s=    ,,8
CX<$-*2: $ -  	    c                 (   i }ddddddddd	d
d
}|j                         D ]E  }|j                  d      s|j                  d      \  }}}|j                  |dd        }|sA|||<   G dD ]%  }||v s| j	                  ||   d d      xs g ||<   ' |S )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-:   )rm   rn   F)fatal)
splitlines
startswith	partitionget_parse_json)	re   	m3u8_data	m3u8_dictlookuplinetag_valuekeys	            r]   _extract_custom_m3u8_infoz&SlidesLiveIE._extract_custom_m3u8_infob  s    	 #*'2&1,&4(!0(#4"2
 ((* 	#D??:. NN3/MCE**SW%C"IcN	# 2 	[Ci!%!1!1)C.$e!1!T!ZXZ	#	[ rh   c                 H   g d }}| j                  d| d| d|dddd      }|r-|s| j                  |d	   d
   |d      }|j                  |       | j                  d| d| d|dd      }|r0|s|s| j	                  d| d| d|d      }|j                  |       ||fS )Nhttps:///z/master.m3u8r   hlsFT)m3u8_idrs   liver   r   z%Extracting duration from HLS manifest)notez/master.mpddash)mpd_idrs   z&Extracting duration from DASH manifest)_extract_m3u8_formats_extract_m3u8_vod_durationextend_extract_mpd_formats_extract_mpd_vod_duration)	re   cdn_hostnamepathrf   skip_durationformatsr   hls_formatsdash_formatss	            r]   _extract_formats_and_durationz*SlidesLiveIE._extract_formats_and_duration  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<(  rh   c                       j                  |       j                  t        t        |      ddd            \  }}|j                  }d|v rFt        t        |      dd      }|st        d	d
       j                  d| dd| d      \  }} j                  d|d       j                  d ddi      } j                  |      }|d   j                         }	|	dv sJ |d   }
d}i g c}|j                  d      r j                  |d   ddd      xs i d}t        d      }|rd}d| d}t        t        d t        !      d"      D ]J  \  }}|j                  |t        |d#      t        |d$|%      t        |j                  d&      d'(      f       L s|j                  d)      r j!                  |d)   dd*d+      t#        t$        j&                  j(                  j*                        rXd,}t        j-                  d-            D ]9  \  }}|j                  |t/        |d.d/      dt        t/        |d0d&            f       ; g g }}t1        |j                  d1            r|j                  d2|d1   d3       |D ]=  \  }}}}|r|j                  |d4|||fz  d3       |j                  d5|d4|d6       ? i }t        |d7t        !      D ]V  }t1        |j                  d8            }|s |j3                  |j                  d9      xs d:g       j                  |d;d<       X |j                  d=      xs  j5                  d=|d>%      t7        |j                  d?            |j                  d@      dAk7  |||dB|	dCk(  r|
dC<   ns|	dDk(  r1 j9                  |dE   dF   |
      \  }}j;                  ||dG       n=j;                  dH|
|	j=                         dI       |	dJk(  rt?        dK|
 dL|i      dC<   t        dM        sS   fdN} jA                   |        dOd=         S )PN)rO   )rP   r   )r`   ra   )rb   domain_not_allowed)zallowed_domains[].Fget_allz9This is an embed-only presentation. Try passing --refererT)expectedr   r   zdata-player-token="([^"]+)"zplayer token"https://ben.slideslive.com/player/zDownloading player infoplayer_token)r   rc   rk   )r   yodavimeoyoutuberl   z5https://slides.slideslive.com/%s/slides/original/%s%sro   zDownloading slides JSON)rs   r   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  scalerp   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)rn   .
webvtt_urllanguageenvtt)r   r   r    r   rj   vod)r   r   r   is_liver   r   rn   r   r   rm   r   )r   r   url_transparent)_typer   ie_keyr5   r   zhttps://player.vimeo.com/video/referer)r   .videor   c            
   3     K    	j                  d dddj                        ddd      xs i } t        t        
d	      d
      D ]  \  }}t        |d      dk7  rt        |d      }t        | |ddfd      }|r|s8	j	                  ||d      \  }}|sS d|dd    d|dd   t        t        |d      d      |d  y w)Nr   z/slides_video_service_dataF,)r   videoszDownloading video slides infoz$Failed to download video slides info)rs   rc   r   r   r   r   )r   servicer   )r   r   rm   .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   r~   infor   re   r   rf   video_slidess          r]   entriesz+SlidesLiveIE._real_extract.<locals>.entries  s=    J..4XJ>XY$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& s   CCz	-playlist)!	_match_idrg   r
   r   r   r   _search_regex_download_webpager   lowerrw   r   r   dictappendr   _download_xml
isinstancexmletreeElementTreeElementrR   r   r   
setdefault_html_search_metar   r   update
capitalizer	   playlist_result)!re   r   rY   urlhredirect_urldomainr~   player_dataplayer_infork   rl   slide_url_templateslides_infoslide_ext_defaultslide_qualityr   r   r   r   
slide_path	slide_extr   rn   subr   r   r   r   r   r   r   rf   r   s!   `                           @@@@@r]   _real_extractzSlidesLiveIE._real_extract  s1   >>#&;;l8C=38;: ; < < xx</!(<"8:T^cdF$OZ^` `<<X%fXQ/$VH-P< JGQ
 ))*H'Sab,,0
;X*><2P - R 44[A">288:BBBB .
T "??,-((-.. ) ? EBD  !'(1GHM$*!'_`m_nns%t"#,\&/ae-fhi#j A%""l52CD (<FWX		& 1>$@ AA +//*:;'',-xu-7W ( YF &#))"7"7"?"?@%g"'0	1J'K NOHe&& *UM6"JF#Juk6$JK(M NN
  "2*{{34W[5MNO;F 		7Hj)Z!!%cN-:y0QQ#  OO!(30( 		 	-?tT 	C$SWW\%:;J  !4!<bAHH!J 		  __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Urh   N)F)__name__
__module____qualname__
_VALID_URLint_TESTS_WEBPAGE_TESTSclassmethodr^   rg   r   r   r    rh   r]   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
-
*
 5
 R	

 a
 .
 4
 U
 /
 4
 M
 :
 
 
 
  :!
"  #
$ '+,&)=$"5
: V
?"H 1>#%8$"

 V
& g P lA	dFP	 ET0##%!

 V
 N& 	 	@!.QVrh   r   )rQ   urllib.parserS   xml.etree.ElementTreer   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   r   rh   r]   <module>r      s0    	   !
 
 
WV= WVrh   