
    V|h?%                         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   " S S\5      r " S S	\5      r " S
 S\5      rg)    N   )InfoExtractor   )ExtractorErrordetermine_extextract_attributesint_or_noneparse_qssmuggle_urlunescapeHTMLunsmuggle_urlc                   \    \ rS rSrSrSr\S 5       r\SS j5       r	S r
SS jrS	 rS
 rSrg)GlomexBaseIE   zhttps://player.glomex.com/z:https://integration-cloudfront-eu-west-1.mes.glomex.cloud/c                 (    Uc  U $ [        U SU05      $ )Norigin)r   )url
origin_urls     Q/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/glomex.py_smuggle_origin_url GlomexBaseIE._smuggle_origin_url   s    J3: 677    Nc                 R    SU=(       d    U R                   0n[        XS9u  pEXES   4$ )Nr   )default)_DEFAULT_ORIGIN_URLr   )clsr   fallback_origin_urldefaultsunsmuggled_urldatas         r   _unsmuggle_origin_url"GlomexBaseIE._unsmuggle_origin_url   s2    1LS5L5LM,SCH~--r   c                 \    SSSSS.nUR                  S5      S   nUR                  US5      $ )	Nvideoplaylistzrelated videos playlistzcurated playlist)vplrlcl-r   zunknown type)splitget)selfvideo_id_VIDEOID_TYPESprefixs       r   _get_videoid_typeGlomexBaseIE._get_videoid_type!   s=    +$	
 $Q'!!&.99r   c                     UUU=(       d    U R                   S.nU R                  U5      nU R                  U R                  USU S3SU S3US9$ )N)integration_idplaylist_idcurrent_urlzDownloading z JSONzUnable to download )query)r   r1   _download_json_API_URL)r-   r.   integrationr6   r7   video_id_types         r   _download_api_dataGlomexBaseIE._download_api_data+   sk    )#&B$*B*B

 ..x8""MM]O59!-6	 #  	r   c                     U R                  XU5      nUS   nU(       d  [        SU 35      eU Vs/ s H  o`R                  Xa5      PM     nn[        U5      S:X  a  US   $ U R	                  XQ5      $ s  snf )Nvideoszno videos found for r   r   )r<   r   _extract_api_datalenplaylist_result)r-   r.   r:   r6   api_datar?   r$   s          r   _download_and_extract_api_data+GlomexBaseIE._download_and_extract_api_data8   s|    **8+N(# #7z!BCCGMNve((9vNK1,vayX$2F2Fv2XX Os   A2c           	         UR                  S5      S:X  a  U R                  US   S9  / 0 pCUS   R                  5        H`  u  pV[        U5      nUS:X  a6  U R	                  XbSUSS	9u  pUR                  U5        U R                  XS
9  ML  UR                  UUS.5        Mb     UR                  S5      (       a  U H  n
US   U
S'   M     UR                  S5      =(       d    / UR                  S5      =(       d    0 /-   nU Vs/ s H6  oR                  S5      (       d  M  UR                  S5      US    S3SSS.PM8     nnU R                  U5        UR                  S5      =(       d    UUR                  S5      UR                  S5      U[        UR                  S5      5      UR                  S5      UUS.$ s  snf )N
error_codecontentGeoblockedgeo_locations)	countriessourcem3u8mp4F)m3u8_idfatal)target)r   	format_idlanguageimagesimager   idz/profile:player-960x540i  i  )rU   r   widthheightclip_idtitledescriptionclip_duration
created_at)rU   rY   rZ   
thumbnailsduration	timestampformats	subtitles)
r,   raise_geo_restricteditemsr   #_extract_m3u8_formats_and_subtitlesextend_merge_subtitlesappend_remove_duplicate_formatsr	   )r-   r$   r.   r`   subsrQ   
format_urlextformats_subs_fmtrS   rT   r]   s                 r   r@   GlomexBaseIE._extract_api_data@   s   99\"&99%%o0F%GB%*8_%:%:%<!I
+Cf}"&"J"J% #K #! x(%%e%9%!*   &= 99Z  "'
"3J  ))H%+		'0B0Hb/II 3
 e5!1
))D/El^#:;	

  	 3 	&&z2 ))I&2(YYw' 99]3$#EIIo$>?<0	
 		
3s   F;  F; N)__name__
__module____qualname____firstlineno__r   r9   staticmethodr   classmethodr!   r1   r<   rD   r@   __static_attributes__rp   r   r   r   r      sH    6KH8 8
 . .
:Y(
r   r   c            
       N    \ rS rSrS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)GlomexIEk   glomexzGlomex videosz1https?://video\.glomex\.com/[^/]+/(?P<id>v-[^-]+)19syy24xjn1oqlpczehttps://video.glomex.com/sport/v-cb24uwg77hgh-nach-2-0-sieg-guardiola-mit-mancity-vor-naechstem-titelzv-cb24uwg77hghrM   u8   Nach 2:0-Sieg: Guardiola mit ManCity vor nächstem Titelz$md5:1ea6b6caff1443fcbbba159e432eedb8is  +re:https?://i[a-z0-9]thumbs\.glomex\.com/.+i颍`20210501rU   rk   rY   rZ   r^   	thumbnailr_   upload_dateskip_downloadrL   r   	info_dictparamsc                     U R                  U5      nU R                  [        R                  X R                  U5      [        R                  5       U5      $ rq   )	_match_id
url_resultGlomexEmbedIEbuild_player_url_INTEGRATION_IDie_key)r-   r   r.   s      r   _real_extractGlomexIE._real_extract   sE    >>#&**85I5I3O  "H. 	.r   rp   N)rr   rs   rt   ru   IE_NAMEIE_DESC
_VALID_URLr   _TESTSr   rx   rp   r   r   rz   rz   k   sT    GGEJ(O w"OAG#%	
 #F+ F.r   rz   c            
           \ rS rSrSrSrSr\R                  " \5      R                  SS5      r
S\
 S3rS	S
SSSSSSSS.SS0S.SSS0SS.SSS0SS./rSS SS!S"S#SS$S%S&.SS0S./r\S,S( j5       r\S) 5       rS* rS+rg')-r      zglomex:embedzGlomex embedded videosz4//player.glomex.com/integration/1/iframe-player.htmlz/1/z/[^/]/zhttps?:z$\?([^#]+&)?playlistId=(?P<id>[^#&]+)zvhttps://player.glomex.com/integration/1/iframe-player.html?integrationId=4059a013k56vb2yd&playlistId=v-cfa6lye0dkdd-sfzv-cfa6lye0dkdd-sfrM   uu   Φώφη Γεννηματά: Ο επικήδειος λόγος του 17χρονου γιου της, Γιώργουr~   iCyai 20211027z$md5:e741185fc309310ff5d0c789b437be66)rU   rk   rY   r   r_   r^   r   rZ   r   rL   r   zhttps://player.glomex.com/integration/1/iframe-player.html?origin=fullpage&integrationId=19syy24xjn1oqlpc&playlistId=rl-vcb49w1fb592p&playlistIndex=0rU   zrl-vcb49w1fb592pd   )r   r   playlist_countzthttps://player.glomex.com/integration/1/iframe-player.html?playlistId=cl-bgqaata6aw8x&integrationId=19syy24xjn1oqlpczcl-bgqaata6aw8xr   )r   r   playlist_mincountzwhttps://www.skai.gr/news/world/iatrikos-syllogos-tourkias-to-turkovac-aplo-dialyma-erntogan-eiste-apateones-kai-pseyteszv-ch2nkhcirwc9-sfu   Ιατρικός Σύλλογος Τουρκίας: Το Turkovac είναι ένα απλό διάλυμα –Ερντογάν: Είστε απατεώνες και ψεύτεςz$md5:8b517a61d577efe7e36fde72fd535995i i[-a20220111r   Nc                     [         R                  R                  UUS.5      nU R                  SU R                   SU 3U5      $ )N)
playlistIdintegrationIdzhttps:?)urllibparse	urlencoder   _BASE_PLAYER_URL)r   r.   r:   r   query_strings        r   r   GlomexEmbedIE.build_player_url   sK    ||--"(/
  &&0D0D/EQ|n'UWabbr   c              #   (  #    SnSU SU R                    S3n[        R                  " XB5       HH  n[        UR	                  S5      5      nU R                  U5      (       d  M5  U R                  Xa5      v   MJ     SU S3n[        R                  " XB5       Hh  n[        UR	                  S5      5      nUR                  S	5      (       d  M5  UR                  S
5      (       d  MM  U R                  US
   US	   U5      v   Mj     SU S3n[        R                  " SU5       Hn  nUR	                  S5      n[        R                  " US-  U5      n	U	(       d  M7  [        R                  " US-  U5      n
U
(       d  MZ  U R                  XU5      v   Mp     g 7f)Nz["\']z((?x)
            <iframe[^>]+?src=(?P<q>z&)(?P<url>
                (?:https?:)?z&\?(?:(?!(?P=q)).)+
            )(?P=q)r   zX(?x)
            <glomex-player [^>]+?>|
            <div[^>]* data-glomex-player=(?P<q>z)true(?P=q)[^>]*>r   zdata-integration-idzdata-playlist-idzN(?x)
            (?P<is_js>dataset\.)?%s\s*(?(is_js)=|:)\s*
            (?P<q>z!)(?P<id>(?:(?!(?P=q)).)+)(?P=q)\sz(?x)<script[^<]*>.+?</script>r   r   )_BASE_PLAYER_URL_RErefinditerr   groupsuitabler   r   r,   r   search)r   r   webpagequot_reregexmobj	embed_urlattrsscriptr4   r5   s              r   _extract_embed_urls!GlomexEmbedIE._extract_embed_urls   s{     $$+9 - 445 6 KK/D$TZZ%67I||I&&--i== 0
007y8IM KK/D&tzz!}5Eyy.//EII>P4Q4Q**51C+DeLaFbdghh 0)<@ KK @'JDZZ]FYYu'>GN!))EL$8&AK{**;LL Ks    AF#A$FF#BF9Fc                     U R                  U5      u  pU R                  U5      n[        U5      R                  SS /5      S   nU(       d
  [	        SSS9eU R                  X4U5      $ )Nr   r   zNo integrationId in URLT)expected)r!   r   r
   r,   r   rD   )r-   r   r   r5   r:   s        r   r   GlomexEmbedIE._real_extract   sc    44S9nnS)sm''$@C !:TJJ22;ZXXr   rp   rq   )rr   rs   rt   ru   r   r   r   r   escapereplacer   r   r   _WEBPAGE_TESTSrw   r   r   r   rx   rp   r   r   r   r      s!   G&GM))$45==eYO/00TUJ H% MG#%A	
 #F+ g$
  F#
 'F8 I% JAG#%	
 #F+ N c c  M  MDYr   r   )r   urllib.parser   commonr   utilsr   r   r   r	   r
   r   r   r   r   rz   r   rp   r   r   <module>r      sH    	  !	 	 	W
= W
t.| .8bYL bYr   