
    V|h1                     l    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	   " S S\5      r
 " S	 S
\5      rg)    N   )InfoExtractor   )	HTTPError)ExtractorErrorOnDemandPagedListurlencode_postdatac                      \ rS rSrSrSrSR                  SR                  \" \	R                  \5      5      5      r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 S
S!.S.S"S#S$S%S&S'S
S.S.S(SSS
S).S./rS* rS+rg,)-VideocampusSachsenIE	   ViMP)Fz
bergauf.tvzcampus.demo.vimp.comzcorporate.demo.vimp.comzdancehalldatabase.comzdrehzahl.tvzeduchannel.hs-gesundheit.dezemedia.ls.haw-hamburg.dezglobale-evolution.netzhohu.tvzhtvideos.hightechhigh.orgzk210039.vimp.mivitec.netzmedia.cmslegal.comzmedia.fh-swf.dezmedia.hs-furtwangen.dezmedia.hwr-berlin.dezmediathek.dkfz.dezmediathek.htw-berlin.dezmediathek.polizei-bw.dezmedien.hs-merseburg.dezmitmedia.manukau.ac.nzzmportal.europa-uni.dezpacific.demo.vimp.comz	slctv.comzstreaming.prairiesouth.caztube.isbonline.cnzunivideo.uni-kassel.dezursula2.genetics.emory.eduzursulablicklevideoarchiv.comzv.agrarumweltpaedagogik.atzvideo.eplay-tv.dezvideo.fh-dortmund.dezvideo.hs-nb.dezvideo.hs-offenburg.dezvideo.hs-pforzheim.dezvideo.hspv.nrw.dezvideo.irtshdf.frzvideo.pareygo.dezvideo.tu-dortmund.dezvideo.tu-freiberg.dezvideocampus.sachsen.dezvideoportal.uni-freiburg.dezvideoportal.vm.uni-freiburg.dezvideos.duoc.clzvideos.uni-paderborn.dezvimp-bemus.udk-berlin.dezvimp.aekwl.dezvimp.hs-mittweida.dezvimp.landesfilmdienste.dezvimp.oth-regensburg.dezvimp.ph-heidelberg.dezvimp.sma-events.comzvimp.weka-fachmedien.dezvimpdesk.comzwebtv.univ-montp3.frzwww.b-tu.de/mediazwww.bergauf.tvzwww.bigcitytv.dezwww.cad-videos.dezwww.drehzahl.tvzwww.hohu.tvzwww.hsbi.de/medienportalzwww.logistic.tvzwww.orvovideo.comzwww.printtube.co.ukz
www.rwe.tvzwww.salzi.tvzwww.signtube.co.ukzwww.twb-power.comzwww.wenglor-media.comzwww2.univ-sba.dzz(?x)https?://(?P<host>{})/(?:
        m/(?P<tmp_id>[0-9a-f]+)|
        (?:category/)?video/(?P<display_id>[\w-]+)/(?P<id>[0-9a-f]{{32}})|
        media/embed.*(?:\?|&)key=(?P<embed_id>[0-9a-f]{{32}}&?)
    )|zhttps://videocampus.sachsen.de/m/e0d6c8ce6e394c188f1342f1ab7c50ed6fc4490b808699801def5cb2e46d76ca7367f622a9f516c542ffb805b24d6b643bd7c81f385acaac4c59081b87a2767b e6b9349905c1628631f175712250f2a1z-Konstruktiver Entwicklungsprozess Vorlesung 7zIhttps://videocampus.sachsen.de/cache/1a985379ad3aecba8097a6902c7daa4e.jpgmp4)idtitledescription	thumbnailext)url	info_dictzfhttps://videocampus.sachsen.de/video/Was-ist-selbstgesteuertes-Lernen/fc99c527e4205b121cb7c74433469262 fc99c527e4205b121cb7c74433469262z!Was ist selbstgesteuertes Lernen?z$md5:196aa3b0509a526db62f84679522a2f5zIhttps://videocampus.sachsen.de/cache/6f4a85096ba24cb398e6ce54446b57ae.jpgz Was-ist-selbstgesteuertes-Lernen)r   r   r   r   
display_idr   zhttps://videocampus.sachsen.de/category/video/Tutorial-zur-Nutzung-von-Adobe-Connect-aus-Veranstalter-Sicht/09d4ed029002eb1bdda610f1103dd54c/100 09d4ed029002eb1bdda610f1103dd54cz=Tutorial zur Nutzung von Adobe Connect aus Veranstalter-Sichtz$md5:3d379ca3cc17b9da6784d7f58cca4d58zIhttps://videocampus.sachsen.de/cache/2452498fe8c2d5a7dc79a05d30f407b6.jpgz=Tutorial-zur-Nutzung-von-Adobe-Connect-aus-Veranstalter-Sichtzhttps://www2.univ-sba.dz/video/Presentation-de-la-Faculte-de-droit-et-des-sciences-politiques-Journee-portes-ouvertes-202122/0183356e41af7bfb83d7667b20d9b6a3zGhttps://www2.univ-sba.dz/getMedium/0183356e41af7bfb83d7667b20d9b6a3.mp4 0183356e41af7bfb83d7667b20d9b6a3uc   Présentation de la Faculté de droit et des sciences politiques - Journée portes ouvertes 2021/22z$md5:508958bd93e0ca002ac731d94182a54fzChttps://www2.univ-sba.dz/cache/4d5d4a0b4189271a8cc6cb5328e14769.jpgz]Presentation-de-la-Faculte-de-droit-et-des-sciences-politiques-Journee-portes-ouvertes-202122)r   r   r   r   r   r   r   zohttps://vimp.weka-fachmedien.de/video/Preisverleihung-Produkte-des-Jahres-2022/c8816f1cc942c12b6cce57c835cffd7c c8816f1cc942c12b6cce57c835cffd7cu,   Preisverleihung »Produkte des Jahres 2022«z$md5:60c347568ca89aa25b772c4ea564ebd3zJhttps://vimp.weka-fachmedien.de/cache/da9f3090e9227b25beacf67ccf94de14.pngz(Preisverleihung-Produkte-des-Jahres-2022zOhttps://videocampus.sachsen.de/media/embed?key=fc99c527e4205b121cb7c74433469262)r   r   r   c                    U R                  U5      R                  SSSSS5      u  p#pEnU R                  X=(       d    USS9=(       d    SnU(       d   U=(       d    U R                  S	U S
3US5      nU(       d  U(       d  U R                  SUSSS9nS n	S n
O3U R	                  SUSS9nU R	                  SUSS9n	U R	                  SUSS9n
/ 0 p U R                  SU SU S3USSSS9u  pUR                  SSU SU S305        UUU	U
UUUS.$ ! [         aD  n[        UR                  [        5      (       a  UR                  R                  S;  a  e  S nANmS nAff = f)Nhostr   tmp_idr   embed_idFfatal zsrc="https?://z'/media/embed.*(?:\?|&)key=([0-9a-f]+)&?video_idz*<video-js[^>]* data-piwik-title="([^"<]+)"r   )zog:titleztwitter:titler   )zog:descriptionztwitter:descriptionr   )zog:imageztwitter:imagezhttps://z/media/hlsMedium/key/z)/format/auto/ext/mp4/learning/0/path/m3u8r   hlsT)m3u8_idr"   )i  i  r   z/getMedium/z.mp4)r   r   r   r   r   formats	subtitles)_match_valid_urlgroup_download_webpage_html_search_regex_html_search_meta#_extract_m3u8_formats_and_subtitlesr   
isinstancecauser   statusappend)selfr   r   r$   r   r   r    webpager   r   r   r'   r(   es                 ^/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/videocampus_sachsen.py_real_extract"VideocampusSachsenIE._real_extract   s   7;7L7LS7Q7W7WD(L*8>4H((.@&(NTRT %4#:#:!$'NO$%H f++,Y[bdksx+yEKI**+QSZbg*hE00H'Y^ 1 `K../Lg]b.cI	!%!I!I4& 5hZ?hi%d "J "<G 	${8*DIJK &"$"
 	
  	aggy11QWW^^:5U 6V	s   D 
E:EE N)__name__
__module____qualname____firstlineno__IE_NAME
_INSTANCESformatjoinmapreescape
_VALID_URL_TESTSr7   __static_attributes__r9       r6   r   r   	   s   GGJP	 
RYY
34	5	  w8HNh		
 |8<Eh@
	
 f8XEh]
	
 s`8~Eb}	
 E8GEiH
	
 e8<	
q@FD(
rH   r   c                       \ rS rSrSrSR                  SR                  \" \R                  \
R                  5      5      5      rSSSS.S	S
.SSSS.SS
.SSSS.SS
.SSSS.SS
./rSrS rS rSrg)ViMPPlaylistIE   zViMP:Playlistz(?x)(?P<host>https?://(?:{}))/(?:
        (?P<mode1>album)/view/aid/(?P<album_id>[0-9]+)|
        (?P<mode2>category|channel)/(?P<name>[\w-]+)/(?P<channel_id>[0-9]+)|
        (?P<mode3>tag)/(?P<tag_id>[0-9]+)
    )r   zBhttps://vimp.oth-regensburg.de/channel/Designtheorie-1-SoSe-2020/3z	channel-3z:Designtheorie 1 SoSe 2020 - Channels - ViMP OTH Regensburg)r   r   r   )r   r   playlist_mincountz3https://www.hsbi.de/medienportal/album/view/aid/208z	album-208z4KG Praktikum ABT/MEC - Playlists - HSBI-Medienportal   z@https://videocampus.sachsen.de/category/online-tutorials-onyx/91zcategory-91z8Online-Seminare ONYX - BPS - Bildungseinrichtungen - VCS   z(https://videocampus.sachsen.de/tag/26902z	tag-26902z2advanced mobile and v2x communication - Tags - VCS   
   c              #      #    U R                  U SU 3UUSS.[        U5      S9n[        R                  " SU5      nU H  nU R	                  X-   [
        5      v   M     g 7f)Nz/media/ajax/component/boxList/r   )page	page_only)querydataz"([^"]*/video/[^"]+)")r+   r	   rC   findall
url_resultr   )	r3   r   url_partplaylist_idrU   rR   r4   urlsr   s	            r6   _fetch_pageViMPPlaylistIE._fetch_page   sm     ((f28*={a07I$7O ) Q zz2G<C//$*.BCC s   AA!c                    U R                  U5      R                  SSSSSSSS5      u  p#pEpgpU=(       d    U=(       d    U	n
U=(       d    U=(       d    UnU R                  XS	S
9=(       d    SnU R                  SUS	S
9=(       d    U R	                  U5      nU(       a  SU 3O U
S:X  a  SU SU 3OU
S:X  a  SU SU 3OSU 3nSU
SU
 S3USU(       a  SOU
S:X  a  SO	U
S:X  a  SOSSUSS S![        U R                  5      0nU R                  [        [        R                  " U R                  X.X5      U R                  5      X S"U 3S#9$ )$Nr   album_idname
channel_idtag_idmode1mode2mode3Fr!   r#   r   zaid/categoryz	category/z/category_id/channelztitle/z	/channel/ztag/z
vars[mode]zvars[]zvars[context]41album30zvars[context_id]zvars[layout]thumbzvars[per_page][thumb]-)playlist_titler   )r)   r*   r+   r-   _html_extract_titlestr
_PAGE_SIZEplaylist_resultr   	functoolspartialr[   )r3   r   r   r^   r_   r`   ra   rb   rc   rd   moderY   r4   r   rX   rU   s                   r6   r7   ViMPPlaylistIE._real_extract   s   HLH]H]^aHbHhHhJhRYI[E& &&6*6(((GM2'''F 6,,W5 	 *2d8*%HLPZHZ9TF-
|DAEAR6$y=x 	 $D6O[HS9K#X\`gXgQTmpG#S%9
 ##i//  $+EFJooW vQ{m%< $ > 	>rH   r9   N)r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   r   r?   rE   rF   rr   r[   r7   rG   r9   rH   r6   rJ   rJ      s    G	 
RYY(<(G(GHI	J	  TQ
  EK
  RO
  :I
 +F: JD>rH   rJ   )rt   rC   commonr   networking.exceptionsr   utilsr   r   r	   r   rJ   r9   rH   r6   <module>r{      s4     	 ! - I Iz
= z
zL>] L>rH   