
    ĞiH                     Z    d dl mZ ddlmZmZ  G d de          Z G d de          ZdS )	   )InfoExtractor   )traverse_objurl_or_nonec            	       H    e Zd ZdZdddddddd	d
dddddddd	d
gZd ZdS )S4CIEz8https?://(?:www\.)?s4c\.cymru/clic/programme/(?P<id>\d+)z.https://www.s4c.cymru/clic/programme/861362209	861362209mp4zY Swnz$md5:f7681a30e4955b250b3224aa9fe70cf0i  z<https://www.s4c.cymru/amg/1920x1080/Y_Swn_2023S4C_099_ii.jpg)idexttitledescriptionduration	thumbnail)url	info_dictz.https://www.s4c.cymru/clic/programme/886303048	886303048zPennod 1z$md5:7e3f364b70f61fcdaa8b4cb4a3eb3e7ai@  z>https://www.s4c.cymru/amg/1920x1080/Stad_2025S4C_P1_210053.jpgc                    |                      |          }|                     d| |d          }|                     d||ddddd	d
d          }i }t          |dd f          D ][}|                    |                    dd          g                               |d         |                    d          d           \|                     d|dd|                    d          dk    rdnddd|d         dd          d         }||                     ||dd          |t          |                    d                    dt          |d d!d"t          hfd#t          j	        hfd$d% hfd&fd'          S )(Nz?https://www.s4c.cymru/df/full_prog_details?lang=e&programme_id=F)fatalz:https://player-api.s4c-cdn.co.uk/player-configuration/prod0enodclic )programme_idsignedlangmodeappId
streamNamezDownloading player config JSONquerynote	subtitlesc                 ,    t          |d                   S )Nr   )r   )_vs     YC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/s4c.py<lambda>z%S4CIE._real_extract.<locals>.<lambda>.   s    +VWX[V\J]J]     31)r   namez4https://player-api.s4c-cdn.co.uk/streaming-urls/prodapplications4chttplUKWWfalsefilename)r   r.   regionextra
thirdPartyr3   zDownloading streaming urls JSONhlsr
   )m3u8_idposter)r   formatsr$   r   full_prog_details    )programme_titleseries_titlefull_billingr   c                 &    t          |           dz  S )N<   )int)xs    r(   r)   z%S4CIE._real_extract.<locals>.<lambda>E   s    CFFRK r*   )r   r   r   )get_all)
	_match_id_download_jsonr   
setdefaultgetappend_extract_m3u8_formatsr   strstrip)selfr   video_iddetailsplayer_configr$   subm3u8_urls           r(   _real_extractzS4CIE._real_extract   s   >>#&&%%XhXXE & # # ++H( ( [ [ 5 , 6 6 	=]=]/^__ 	 	C  d!3!3R88??3xA A     &&BH%"/"3"3M"B"Bj"P"P$$VZ %)*5U U 6 ' 7 7 8=> 11(HeUZ1[["$]%6%6x%@%@AA	

 


 7%8!=uE .<'*?*?)@A> > % 	  

 
	
r*   N__name__
__module____qualname__
_VALID_URL_TESTSrS    r*   r(   r   r      s        LJ?AW
 

 
 @AY
 
 F.)
 )
 )
 )
 )
r*   r   c                   <    e Zd ZdZdddddddd	d
dddgZd ZdS )S4CSeriesIEz5https?://(?:www\.)?s4c\.cymru/clic/series/(?P<id>\d+)z+https://www.s4c.cymru/clic/series/864982911   	864982911zIaith ar Daith)r   r   )r   playlist_mincountr   z+https://www.s4c.cymru/clic/series/866852587   	866852587z
FFIT Cymruc                                            |          }                     d|d|ddd          }                      fdt          |d          D             |t          |d	d
dt          hf                    S )Nz'https://www.s4c.cymru/df/series_detailseY)r   	series_idshow_prog_in_serieszDownloading series details JSONr!   c                 N    g | ]!}                     d | t          |          "S )z%https://www.s4c.cymru/clic/programme/)
url_resultr   ).0
episode_idrM   s     r(   
<listcomp>z-S4CSeriesIE._real_extract.<locals>.<listcomp>f   sJ     c c c __QZQQSXZdee c c cr*   )other_progs_in_series.r   r;   r<   r>   )rE   rF   playlist_resultr   rK   )rM   r   re   series_detailss   `   r(   rS   zS4CSeriesIE._real_extract\   s    NN3''	,,5y&'*I I 6 - 7 7 ##c c c c+N<`aac c c|N5H!^^a]b4cddf f 	fr*   NrT   rZ   r*   r(   r\   r\   J   sv        IJ<%
 
  =!
 
 F f f f f fr*   r\   N)commonr   utilsr   r   r   r\   rZ   r*   r(   <module>rq      s    ! ! ! ! ! ! - - - - - - - -B
 B
 B
 B
 B
M B
 B
 B
Jf f f f f- f f f f fr*   