o
    iM                     @   s`   d dl Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 G dd deZG d	d
 d
eZdS )    N   )InfoExtractor   )determine_extint_or_noneparse_durationparse_iso8601url_or_none)traverse_objc                   @   s   e Zd ZdZdZdgZdddddd	d
ddddd	dddddddddddddddddddd d!d"dd#d$d%ddd&dd'd(d)d*d+ddgZd,d- Zd.d/ Zd0S )1KikaIEzKiKA.dez=https?://(?:www\.)?kika\.de/[\w/-]+/videos/(?P<id>[a-z-]+\d+)DEzghttps://www.kika.de/logo/videos/logo-vom-dienstag-achtundzwanzig-oktober-zweitausendfuenfundzwanzig-100 4a9f6e0f9c6bfcc82394c294f186d6dbzGlogo-vom-dienstag-achtundzwanzig-oktober-zweitausendfuenfundzwanzig-100mp4z$logo! vom Dienstag, 28. Oktober 2025z$md5:4d28b92cef423bec99740ffaa3e7ec04i  ii20251028i$i)	idexttitledescriptionduration	timestampupload_datemodified_timestampmodified_date)urlmd5	info_dictz/https://www.kika.de/kaltstart/videos/video92498 e58073070acb195906c55c4ad31dceb3
video92498z7. Wo ist Leo?z$md5:fb48396a5b75068bcac1df74f1524920i  zSeason 1r   z	Episode 7   ie20231218ibe20240319zcount:1)r   r   r   r   r   seasonseason_numberepisodeepisode_numberr   r   r   r   	subtitlesz;https://www.kika.de/die-pfefferkoerner/videos/abgezogen-102 62e97961ce5343c19f0f330a1b6dd736zabgezogen-102z1. Abgezogenz$md5:42d87963364391f9f8eba8affcb30bd2i&  z	Episode 1iog20241228i3h20250908zcount:0c                 C   s   |  |}| d| |}| |d d |}i }|drEt|d }r0|ddg|d< t|d	 }rE|dg |d
d |t| |||dt|dt	hfdt	hfdt
hfdt
hfdthfdthfftfdthfdthfdS )Nz.https://www.kika.de/_next-api/proxy/v1/videos/assetsr   hasSubtitlevideoSubtitlettml)r   r   de	webvttUrlvtt)r   formatsr%   r   r   datemodificationDatedurationInSecondsr   episodeNumberr!   )r   r   r   r   r   r$   r"   )	_match_id_download_jsongetr	   
setdefaultappendlist_extract_formatsr
   strr   r   r   any)selfr   video_iddocvideo_assetsr%   ttml_resourcewebvtt_resource rD   I/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/kika.py_real_extractM   s@   

zKikaIE._real_extractc                 c   s    t |ddd fD ]E}|d }t|}|dkr&| j||dddd	E d H  q
||d
t |dthfdthfdthtfdthdd hfdthdd hfdV  q
d S )Nr)   c                 S   s   t |d S )Nr   r	   _vrD   rD   rE   <lambda>t   s    z)KikaIE._extract_formats.<locals>.<lambda>r   m3u8r   hlsF)m3u8_idfatal)r   	format_id
frameWidthframeHeightfileSizebitrateAudioc                 S      | dkrd S | S NrD   xrD   rD   rE   rK          bitrateVideoc                 S   rU   rV   rD   rX   rD   rD   rE   rK      rZ   )widthheightfilesizeabrvbr)r
   r   _extract_m3u8_formatsr   filter)r>   
media_infor?   media
stream_urlr   rD   rD   rE   r;   s   s(   

zKikaIE._extract_formatsN)	__name__
__module____qualname__IE_DESC
_VALID_URL_GEO_COUNTRIES_TESTSrF   r;   rD   rD   rD   rE   r      sp    :&r   c                   @   s6   e Zd ZdZdddddddgZd	d
 Zdd ZdS )KikaPlaylistIEz5https?://(?:www\.)?kika\.de/[\w-]+/(?P<id>[a-z-]+\d+)z2https://www.kika.de/logo/logo-die-welt-und-ich-562zlogo-die-welt-und-ich-562zlogo!z$md5:7b9d7f65561b82fa512f2cfb553c397d)r   r   r   d   )r   r   playlist_countc                 c   s    t dD ]K}| j||d| d}t|ddd fD ]&}| j|d d fd	tit|d
thfdthfdthfdthfdV  qt|ddt	hf}|sQ d S qd S )Nr   zDownloading page )notecontentc                 S   s   t |d d S )Napir   rG   rH   rD   rD   rE   rK      rZ   z)KikaPlaylistIE._entries.<locals>.<lambda>rr   r   ier   r   r   r1   )r   r   r   r   linksnext)
	itertoolscountr6   r
   
url_resultr   r<   r   r   r	   )r>   playlist_urlplaylist_idpagedataitemrD   rD   rE   _entries   s*   

	zKikaPlaylistIE._entriesc                 C   sJ   |  |}| d| |}| j| |d d |||d|ddS )Nz.https://www.kika.de/_next-api/proxy/v1/brands/videoSubchannelvideosPageUrlr   r   )r   r   )r5   r6   playlist_resultr~   r7   )r>   r   rz   
brand_datarD   rD   rE   rF      s   

zKikaPlaylistIE._real_extractN)rf   rg   rh   rj   rl   r~   rF   rD   rD   rD   rE   rm      s    
rm   )rv   commonr   utilsr   r   r   r   r	   utils.traversalr
   r   rm   rD   rD   rD   rE   <module>   s    {