
    ukiM                     l    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e      Z G d	 d
e      Zy)    N   )InfoExtractor   )determine_extint_or_noneparse_durationparse_iso8601url_or_none)traverse_objc                       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, Zd- Zy.)/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                 T   | j                  |      }| j                  d| |      }| j                  |d   d   |      }i }|j                  d      ret        |j                  d            x}r	|ddg|d<   t        |j                  d	            x}r$|j	                  dg       j                  |d
d       |t        | j                  ||            |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_resources           P/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/yt_dlp/extractor/kika.py_real_extractzKikaIE._real_extractM   sl   >>#&!!$RS[R\"]_gh**3x=+?J	 77=! +L,<,<_,M NN}N(!$ #	$ #.l.>.>{.K"LLL$$T2.55* 7  D11,IJ"
 3!C5) -u5$}o6'9M?&K(;-8.!12458: $3[M"B"*[M!:
! 
	
 	
    c              #   .  K   t        |dd f      D ]}  }|d   }t        |      }|dk(  r| j                  ||ddd      E d {    7||d	t        |d
t        hfdt        hfdt        ht        fdt        hd hfdt        hd hfd        y 7 Ow)Nr,   c                     t        |d         S )Nr   r
   _vs     rG   <lambda>z)KikaIE._extract_formats.<locals>.<lambda>t   s    kRSTYRZF[ rI   r   m3u8r   hlsF)m3u8_idfatal)r   	format_id
frameWidthframeHeightfileSizebitrateAudioc                     | dk(  rd S | S N xs    rG   rP   z)KikaIE._extract_formats.<locals>.<lambda>       RSWYRY$ _` rI   bitrateVideoc                     | dk(  rd S | S r[   r]   r^   s    rG   rP   z)KikaIE._extract_formats.<locals>.<lambda>   r`   rI   )widthheightfilesizeabrvbr)r   r   _extract_m3u8_formatsr   filter)rA   
media_inforB   media
stream_urlr   s         rG   r>   zKikaIE._extract_formatss   s     !*x9[.\] 	EuJ
+Cf}55%e 6 M M M &!$ #5".!>#0;-"@%/+$G .@`?ab .@`?ab+  	Ms   ABBABN)	__name__
__module____qualname__IE_DESC
_VALID_URL_GEO_COUNTRIES_TESTSrH   r>   r]   rI   rG   r   r      s    GQJVN y1[;A#%",'

	$ A1%A "#%",'"
. M1!#A "#%",'"
	I8Ft$
LrI   r   c                   2    e Zd ZdZdddddddgZd	 Zd
 Zy)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              #   ^  K   t        j                  d      D ]  }| j                  ||d|       }t        |dd f      D ]N  } | 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       P t        |ddt        hf      }|r y  y w)Nr   zDownloading page )notecontentc                 $    t        |d   d         S )Napir   rL   rM   s     rG   rP   z)KikaPlaylistIE._entries.<locals>.<lambda>   s    KPQRWPXY^P_D` rI   r|   r   ier   r   r   r4   )r   r   r   r   linksnext)
	itertoolscountr9   r   
url_resultr   r?   r   r	   r
   )rA   playlist_urlplaylist_idpagedataitems         rG   _entrieszKikaPlaylistIE._entries   s     OOA& 	D&&|[IZ[_Z`Ga&bD$TI7`+ab %dooK&+1"4#cUm")C5!1%/+$?&,}o%>	*   (w.NOL	s   B&B-)B-c                     | j                  |      }| j                  d| |      }| j                  | j                  |d   d   |      ||j	                  d      |j	                  d            S )Nz.https://www.kika.de/_next-api/proxy/v1/brands/videoSubchannelvideosPageUrlr   r   )r   r   )r8   r9   playlist_resultr   r:   )rA   r   r   
brand_datas       rG   rH   zKikaPlaylistIE._real_extract   s|    nnS)((<[MJKY
 ##MM*%67H+Vz~~g6JNNS`Da $ c 	crI   N)rm   rn   ro   rq   rs   r   rH   r]   rI   rG   ru   ru      s7    IJ D-A

  F"crI   ru   )r   commonr   utilsr   r   r   r	   r
   utils.traversalr   r   ru   r]   rI   rG   <module>r      s7     !  +x] xv%c] %crI   