
    VGh                     L    d dl mZ ddlmZmZ  G d de      Z G d de      Zy)	   )InfoExtractor   )traverse_objurl_or_nonec            	       F    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y)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/856636948	856636948zAm Droi@  z$md5:100d8686fc9a632a0cb2db52a3433ffezAhttps://www.s4c.cymru/amg/1920x1080/Am_Dro_2022-23S4C_P6_4005.jpg)r   r   r   r   r   r   c                 L   | j                  |      }| j                  d| |d      }| j                  d||ddddd	d
d      }i }t        |dd f      D ]H  }|j                  |j	                  dd      g       j                  |d   |j	                  d      d       J | j                  d|ddddd|d   dd      d   }|| j                  ||dd      |t        |j	                  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     ]/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/s4c.py<lambda>z%S4CIE._real_extract.<locals>.<lambda>-   s    +VWX[V\J]     31)r   namez4https://player-api.s4c-cdn.co.uk/streaming-urls/prodWWfalsefilename)r   applicationregionextra
thirdPartyr0   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>D   s    CFRK 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   >>#&%%MhZXE & # ++H( ( [ 5 , 6 	=]/^_ 	C  d!3R8??3xA 	
 &&BH% %)*5U 6 ' 7 8=> 11(HeUZ1["$]%6%6x%@A	


 7%8!=uE .<'*?)@A> % 	

 
	
r*   N__name__
__module____qualname__
_VALID_URL_TESTSrQ    r*   r(   r   r      sT    LJ?AW

 @A\

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y)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                    | j                  |      }| j                  d|d|ddd      }| j                  t        |d      D cg c]  }| j	                  d| t
        |       c}|t        |d	d
dt        hf            S c c}w )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/r9   r:   r<   )rC   rD   playlist_resultr   
url_resultr   rI   )rK   r   rc   series_details
episode_ids        r(   rQ   zS4CSeriesIE._real_extract[   s    NN3'	,,5y&'*I 6 - 7 ##+N<`ac __DZLQSXZde c|N5H!^^a]b4cdf 	fcs   !BNrR   rX   r*   r(   rZ   rZ   I   sB    IJ<%
 =!
F fr*   rZ   N)commonr   utilsr   r   r   rZ   rX   r*   r(   <module>rl      s(    ! -A
M A
Hf- fr*   