
    iH                     L    S SK Jr  SSKJrJr   " S S\5      r " S S\5      rg)	   )InfoExtractor   )traverse_objurl_or_nonec            	       N    \ 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)S4CIE   z8https?://(?: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                 ^   U R                  U5      nU R                  SU 3USS9nU R                  SUUSSSSS	S
.SS9n0 n[        USS 45       HI  nUR                  UR	                  SS5      / 5      R                  US   UR	                  S5      S.5        MK     U R                  SUSSUR	                  S5      S:X  a  SOSSSUS   S.SS9S   nUU R                  XrSSS9U[        UR	                  S5      5      S.[        US S!S"[        14S#[        R                  14S$S% 14S&.4SS'9E$ )(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                     [        US   5      $ )Nr   )r   )_vs     A/app/mltbenv/lib/python3.13/site-packages/yt_dlp/extractor/s4c.py<lambda>%S4CIE._real_extract.<locals>.<lambda>.   s    +VWX[V\J]    31)r   namez4https://player-api.s4c-cdn.co.uk/streaming-urls/prodapplications4chttplUKWWfalsefilename)r   r0   regionextra
thirdPartyr5   zDownloading streaming urls JSONhlsr   )m3u8_idposter)r   formatsr%   r   full_prog_details    )programme_titleseries_titlefull_billingr   c                     [        U 5      S-  $ )N<   )int)xs    r)   r*   r+   E   s    CFRKr,   )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_extractS4CIE._real_extract   s   >>#&%%MhZXE & # ++H( ( [ 5 , 6 	=]/^_C  d!3R8??3xA  `
 &&BH%"/"3"3M"Bj"P$VZ %)*5U 6 ' 7 8=> 11(eUZ1["$]%6%6x%@A	


 7%8!=uE .<'*?)@A> % 	

 
	
r,    N__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSrU   __static_attributes__rW   r,   r)   r   r      sT    LJ?AW

 @AY
F.)
r,   r   c                   B    \ rS rSrSrSSSSS.S.S	S
SSS.S./rS rSrg)S4CSeriesIEJ   z5https?://(?: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                    U R                  U5      nU R                  SUSUSS.SS9nU R                  [        US5       Vs/ s H  nU R	                  SU 3[
        U5      PM     snU[        US	S
S[        145      5      $ s  snf )Nz'https://www.s4c.cymru/df/series_detailseY)r   	series_idshow_prog_in_serieszDownloading series details JSONr"   )other_progs_in_series.r   z%https://www.s4c.cymru/clic/programme/r=   r>   r@   )rG   rH   playlist_resultr   
url_resultr   rM   )rO   r   rk   series_details
episode_ids        r)   rU   S4CSeriesIE._real_extract\   s    NN3'	,,5y&'*I 6 - 7 ##+N<`aca __DZLQSXZdeac|N5H!^^a]b4cdf 	fcs   $BrW   NrX   rW   r,   r)   ra   ra   J   sB    IJ<%
 =!
F fr,   ra   N)commonr   utilsr   r   r   ra   rW   r,   r)   <module>ru      s(    ! -B
M B
Jf- fr,   