
    i                     h    S SK r S SKrSSKJr  SSKJrJr  SSKJr   " S S\5      r	 " S	 S
\	5      r
g)    N   )InfoExtractor   )jwt_decode_hs256url_or_none)traverse_objc                   8    \ rS rSrSr\S 5       rS rSS jrSr	g)AGalegaBaseIE	   Nc                 P    [        U 5      S   [        R                  " 5       -
  S:  $ )Nexpx   )r   time)tokens    E/app/mltbenv/lib/python3.13/site-packages/yt_dlp/extractor/agalega.py_jwt_is_expiredAGalegaBaseIE._jwt_is_expired   s"    &u-		;cAA    c                     U R                  SUS[        R                  " S S SSS.5      R                  5       S9S   [        l        g )Nz/https://www.agalega.gal/api/fetch-api/jwt/tokenzDownloading access tokencrtvgF)usernamepasswordclientcheckExistsCookies)notedataaccess)_download_jsonjsondumpsencoder
   _access_token)selfvideo_ids     r   _refresh_access_token#AGalegaBaseIE._refresh_access_token   sR    &*&9&9=x+  !&+	 
 vx ': ' "'##r   c           
          [         R                  (       a$  U R                  [         R                  5      (       a  U R                  U5        U R	                  SU 3UX4USS[         R                   30S9$ )Nz5https://api-agalega.interactvty.com/api/2.0/contents/Authorizationzjwtok )r   fatalqueryheaders)r
   r"   r   r%   r   )r#   endpoint
display_idr   r)   r*   s         r   	_call_apiAGalegaBaseIE._call_api   sq    **d.B.B=C^C^._._&&x0""CH:NPZ%$}/J/J.K&LM # O 	Or    )TN)
__name__
__module____qualname____firstlineno__r"   staticmethodr   r%   r.   __static_attributes__r0   r   r   r
   r
   	   s&    MB B	#Or   r
   c            	       R    \ rS rSrSrSrSSSSSS	S
S.S.SSSSSSS
S.S./rS rSrg)	AGalegaIE$   zagalega:videoszAhttps?://(?:www\.)?agalega\.gal/videos/(?:detail/)?(?P<id>[0-9]+)z8https://www.agalega.gal/videos/288664-lr-ninguencheconta 04533a66c5f863d08dd9724b11d1c223288664u;   Roberto e Ángel Martín atenden consultas dos espectadoresuQ   O cómico ademais fai un repaso dalgúns momentos da súa traxectoria profesionalzWhttps://crtvg-bucket.flumotion.cloud/content_cards/2ef32c3b9f6249d9868fd8f11d389d3d.pngmp4)idtitledescription	thumbnailext)urlmd5	info_dictz;https://www.agalega.gal/videos/detail/296152-pulso-activo-7 26df7fdcf859f38ad92d837279d6b56d296152zPulso activo | 18-11-2025uK   Anxo, Noemí, Silvia e Estrella  comparten as sensacións da clase de Eddy.zWhttps://crtvg-bucket.flumotion.cloud/content_cards/a6bb7da6c8994b82bf961ac6cad1707b.pngc                    U R                  U5      nU R                  SU S3USSSS0S9nU R                  SU S3US	SS
0S9n/ n0 n[        USSS
[        145       H6  nU R	                  XrSSS9u  pUR                  U5        U R                  XS9  M8     UUUS.[        US[        14S[        1[        4S[        14S.5      E$ )Nzcontent//zDownloading content dataFoptional_fieldsz/image,is_premium,short_description,has_subtitle)r   r)   r*   zcontent_resources/zDownloading resource data	media_url)r   r*   results.r<   hls)rA   m3u8_id)target)r=   formats	subtitlesname)r?   short_descriptionimage)r>   r?   r@   )		_match_idr.   r   r   #_extract_m3u8_formats_and_subtitlesextend_merge_subtitlesstrany)
r#   rB   r$   content_dataresource_datarO   rP   m3u8_urlfmtssubss
             r   _real_extractAGalegaIE._real_extract=   s#   >>#&~~xj"H3MUZ!#T & 
  
!,h=X!; '  	$]Y[S^R_4`aHAAu B >JDNN4 !!$!9	 b "	
 < 3% DseSQ%}5* 		
 		
r   r0   N)	r1   r2   r3   r4   IE_NAME
_VALID_URL_TESTSr_   r6   r0   r   r   r8   r8   $   sY    GUJI1Rnr

 M10hr

F,
r   r8   )r   r   commonr   utilsr   r   utils.traversalr   r
   r8   r0   r   r   <module>rg      s.      ! 1 *OM O67
 7
r   